0

私が働いているあるmagentoストアで、注文に問題がありました(問題は、magentoがデフォルトで2の精度で価格を丸め、4も税金が必要だったという事実によって発生しました)。

この問題を修正したため、新しい注文は正確な合計で保存されますが、再計算が必要な注文がいくつかあります。

1 つの方法は、orders と order_items テーブルをループして正しい合計を設定することです。

しかし、多くの列があり、そのうちのいくつかは、それらが何を表しているかについてあまり自明ではありません (hidden_​​tax_amount など)。

original_price と tax_percent が正しいことは確かで、数量もわかっているので、再計算は簡単にできると思いますが、ルールを知っている場合に限られます。

それで、あなたはそれを知っていますか?

4

1 に答える 1

0

Mage_Sales_Model_QuoteメソッドがありcollectTotals()ます。このメソッドは、すべての価格と税金のデータを計算するために使用されます。注文は見積もりに基づいて作成されます (ほとんどのデータは見積もりから注文にコピーされます)。これは、すべての注文データを再計算することは困難です。

Mage_Sales_Model_Service_Quoteクラスとそのメソッドを見ることができますsubmitOrder()

または、注文を読み込んでから、見積もり ( $order->getQuote()) を取得してから、オブジェクトで実行collectTotals()することもでき$quoteます。最後に、foreachlike ループで、希望の値を見積もりから注文にコピーできます。save()両方のオブジェクトを忘れないでください。

于 2013-04-07T14:29:27.583 に答える