これが私の問題です:
Eコース(送料なし)と通常の商品(送料あり)をカートに追加し、チェックアウト時に送料を選択すると、料金が見積もりに設定されます。これを設定した後でチェックアウトを終了し、送料のある商品を削除すると、送料は見積もりに設定されたままになり、設定を解除できません...見積もりのすべてのアイテムを削除しても。
商品をカートから取り出した後、配送方法の設定を解除して合計を再計算する方法を見つけようとしています。
いくつかのものが見積もりと配送先住所モデルにキャッシュされるため、qouteアイテムまたは配送を変更した場合に、Magentoに合計を再計算させるためにこれを行う必要があります。
$quote->setTotalsCollectedFlag(false);
$quote->getShippingAddress()->unsetData('cached_items_all');
$quote->getShippingAddress()->unsetData('cached_items_nominal');
$quote->getShippingAddress()->unsetData('cached_items_nonnominal');
$quote->collectTotals();
それは私のために働いた。Magentoは通常、見積もりが変更された後、顧客をカートまたは別のページにリダイレクトするため、通常、ページの読み込みごとに1回合計を計算する必要があります。
プログラムで実行している場合は、次のことを試すことができます。
$quote->collectTotals()
$quote->getShippingAddress()->collectTotals()