Magento:订单和order_items表中的计算规则是什么?

时间:2013-04-05 14:46:04

标签: magento

在我工作的一家magento商店,我遇到了一些订单问题(问题是由于magento默认以2的精度四舍五入价格,而4也需要税收)。

我已修复此问题,因此新订单与核心总和一起存储,但有些订单需要重新计算。

一种方法是循环遍历orders和order_items表并设置正确的总和。

但是有很多专栏,其中一些专栏并不是很自我说话(如hidden_​​tax_amount)。

我肯定知道original_price和tax_percent是正确的,然后我有数量,所以我相信一些重新计算可以轻松完成,但只有我知道规则。

所以,你知道吗?

1 个答案:

答案 0 :(得分:0)

Mage_Sales_Model_Quote有一个方法collectTotals()。此方法用于计算所有价格和税收数据。订单是根据报价创建的(大多数数据只是从报价到订单复制)。这很难重新计算所有订单数据。

您可以查看Mage_Sales_Model_Service_Quote课程及其方法submitOrder()

或者您可以尝试加载订单,然后获取其引用($order->getQuote()),然后在collectTotals()对象上运行$quote。最后,在foreach之类的循环中,您可以将所需的值从报价复制到订单。不要忘记save()两个对象。