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