2

エクステンションを作っています。この拡張機能では、総計を更新する必要があります。

たとえば、 と の場合subtotal=$4discount_amount=$1助成金の合計は になります$3。私の問題は、計算を実行すると割引価格が 2 倍になることです。

class PunchTab_Points_Model_Total_Calcdiscount extends Mage_Sales_Model_Quote_Address_Total_Abstract {
    public function collect(Mage_Sales_Model_Quote_Address $address) {
        $session = 2;
        //$session=   Mage::getSingleton('core/session')->getMyValue();
        if (isset($session)) {
            $total_discount = $session;
            //Mage::helper('core')->currency($total_discount, true, false);
            $address - > setCalcdiscountAmount((float) $total_discount);
            $address - > setGrandTotal(($address - > getGrandTotal() - $address - > getCalcdiscountAmount()));
            $address - > setBaseGrandTotal(($address - > getBaseGrandTotal() - $address - > getCalcdiscountAmount()));
            return $this;
        }
    }
    public function fetch(Mage_Sales_Model_Quote_Address $address) {
        $amt = $address - > getCalcdiscountAmount();
        if ($address - > getCalcdiscountAmount() > 0) {
            $address - > addTotal(array('code' => $this - > getCode(), 'title' => Mage :: helper('sales') - > __('Reward Discount'), 'value' => -$amt,));
        }
        return $this;
    }
}

この時点で、割引/セッションの値は 2 倍になります。助けてください。

4

1 に答える 1

1

たとえば、簡単な修正を行うことはできません。

$subtotal = 4
$discount_amount= 1

$temp_discount_amount = $discount_amount % 2

$discount_amount = $temp_discount_amount

出力は 2 倍の金額の半分になり、これが予想される割引になります。私はそれが簡単な修正であることを知っていますが、うまくいくはずです。

于 2013-05-21T09:51:47.403 に答える