私たちは 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 は製品価格と税率を取得して再計算します。それが理にかなっていれば。
メソッド saveOrderAction() の OnepageController.php でそれを特定しました
if ($data = $this->getRequest()->getPost('payment', false)) {
$this->getOnepage()->getQuote()->getPayment()->importData($data);
}
コードのこのセクションでは、設定したカスタム値を、Magento が通常設定する方法に置き換えています。
私の質問は、上記のコードブロックが値を再計算するのを防ぎ、すでに設定した値を使用する理由があるということです:
Mage::getSingleton('checkout/session')->getQuote()
前もって感謝します、