0

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

我已经解决了这个问题,所以新订单与正确的总和一起存储,但是有些订单需要重新计算。

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

但是有很多列,其中一些列并不是很自我谈论它们所代表的内容(例如 hidden_​​tax_amount)。

我确定 original_price 和 tax_percent 是正确的,然后我就有了数量,所以我相信可以轻松地进行一些重新计算,但前提是我知道规则。

那么,你知道吗?

4

1 回答 1

0

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

你可以看看Mage_Sales_Model_Service_Quoteclass 和它的方法submitOrder()

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

于 2013-04-07T14:29:27.583 回答