我们正在使用 Magento Enterprise 1.10,并且一直在实施一种自定义方式来提供免费送货,并且对特定产品不征税。我已经成功地在购物车和 Onepage 结帐中实现了显示部分(第 5 步)。我遇到的问题是,当您单击“下订单”时,它会删除(或重置)subTotal、grandTotal 和 taxAmount 的自定义值。我可以在 sales_flat_quote 和 sales_flat_quote_item 表中看到,这些值是使用我给它的自定义值设置的。但是sales_flat_quote_address 表中的grandTotal 和taxAmount 设置不正确(不确定这是否相关,但假设)。它们正在按照 Magento 计算它们的默认方式重新计算。
因此,例如,我可能会将TaxAmount 设置为自定义值,例如 20 美元。但 Magento 采用产品价格和税率并重新计算。如果这是有道理的。
我已经在我们的 OnepageController.php 中的 saveOrderAction() 方法中指出了这一点
if ($data = $this->getRequest()->getPost('payment', false)) {
$this->getOnepage()->getQuote()->getPayment()->importData($data);
}
这部分代码正在用 Magento 通常设置它们的方式替换我设置的自定义值:
我的问题是为什么要阻止上述代码块重新计算值而只使用我已经设置的值:
Mage::getSingleton('checkout/session')->getQuote()
提前致谢,