カスタムディスカウント付きのモジュールを持っていますが、問題ありません。
config.xml:
<sales>
<quote>
<totals>
<aver>
<class>Dani_Prueba_Model_Total_Aver</class>
<after>subtotal</after>
</aver>
</totals>
</quote>
</sales>
私のモジュール:
<?php
class Dani_Prueba_Model_Total_Aver extends Mage_Sales_Model_Quote_Address_Total_Abstract{
public function collect(Mage_Sales_Model_Quote_Address $address){
$baseDiscount = 2.5;
$discount = Mage::app()->getStore()->convertPrice($baseDiscount);
$address->setCustomDiscount($baseDiscount);
$address->setBaseGrandTotal($address->getBaseGrandTotal() - $baseDiscount);
$address->setGrandTotal($address->getGrandTotal() - $discount);
return $this;
}
public function fetch(Mage_Sales_Model_Quote_Address $address){
$this->setCode('aver');
$amount = $address->getCustomDiscount();
if ($amount != 0){
$address->addTotal(array(
'code' => $this->getCode(),
'title' => 'Custom Discount',
'value' => $amount
));
}
return $this;
}
}
これで問題ありません。製品をカートに追加すると、カスタム割引が自動的に適用されます。
しかし、今はボタンでそれを行う必要があります。商品をカートに追加しても、割引が適用されず、正しい合計が表示されます。しかし、ボタンをクリックすると、カスタム割引が適用され、他のボタン「キャンセル」で割引がキャンセルされます。クーポンコードの機能のようなものが必要です。
どうやってやるの??