Magento チェックアウトで割引後の配送料を適用しようとしています
私は価格でUPS送料無料を使用しているので、割引後の合計が送料無料の最小額を下回っている場合、送料無料にはなりません.
Magento は割引前に送料無料を計算するので、ローカルの ups.php ファイルで割引後の正しい金額を計算し、それをコードに適用しました。
$coupon_code=Mage::getSingleton('checkout/cart')->getQuote()->getCouponCode();
Mage::getSingleton("checkout/session")->setData("coupon_code",$coupon_code);
Mage::getSingleton('checkout/session')->getQuote()->setCouponCode($coupon_code)->setTotalsCollectedFlag(false)->collectTotals();
//Mage::getSingleton('checkout/cart')->getQuote()->setCouponCode($coupon_code)->collectTotals()->save();
$totals =Mage::getSingleton('checkout/session')->getQuote()->getTotals(); //Total object
$subtotal = $totals["subtotal"]->getValue(); //Subtotal value
if(isset($totals['discount']) && $totals['discount']->getValue()) {
$discount = $totals['discount']->getValue(); //Discount value if applied
} else {
$discount = '';
}
$r->setValue($request->getPackageValueWithDiscount( ) - $giftCardPrice);
if($discount!='') $r->setValueWithDiscount($subtotal-abs($discount));
else $r->setValueWithDiscount($request->getPackageValueWithDiscount( )- $giftCardPrice);
これは、Magentoを出荷するためのすべてのAjax呼び出しでカートの総計を2回計算するという問題を解決します
私に何ができる?