0

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回計算するという問題を解決します

私に何ができる?

4

0 に答える 0