在Magento结账时取消税

时间:2013-05-03 09:46:04

标签: php magento

我正在开展的一个项目允许客户购买能够免征增值税(通过残疾/慢性疾病)的产品。我在结账流程中添加了一个额外的步骤,以便客户可以轻松填写​​免税增值税表。填写完表格后,我需要从报价/订单中删除税款。

我已经做了很多挖掘我可能做到这一点的方法。下面是我到目前为止所获得的代码,但是它有效,但是当我访问我们的支付提供商时,税收已经重置。即使我使用支票/汇票支付选项。

档案:app/code/local/Vat/Exempt/controllers/OnepageController.php(方法:saveExemptAction()

$quote = $this->getOnepage()->getQuote();
$quote->setCustomerTaxClassId(6); // Tried forcing a custom tax class id
$quote->setCustomerGroupId(4); //also tried forcing a different customer group...

foreach($quote->getAllItems() as $item){
                   // Attempt to zero the tax on each item
                    $item->setTaxAmount(0);
                    $item->setBaseTaxAmount(0);
                    //re-calculate & save each item.
                    $item->calcTaxAmount();
                    $item->save();
                }
 $quote->collectTotals()->save();

非常感谢任何建议!

1 个答案:

答案 0 :(得分:1)

最简单的方法是将客户的组更改为不支付增值税的组(您可以在Sales> Tax> Manage Tax Rules中定义)。
在他们填写表格后,你改变了他们的小组($customer->setGroup(self::GROUP_EXEMPT_VAT)->save();),从这一刻起他们就不会交税了 如果这对您的问题有用,并且您需要更多帮助,请告诉我。