magento添加购物车总价计算实现方法

作者:袖梨 2022-06-25

添加一个affiliate Points项目进去。

这个费了一翻功夫。

首先要在配置文件中添加

 代码如下 复制代码

****




<**>
**/***
subtotal,freeshipping,tax_subtotal,shipping
grand_total




**/**
550



*****

totals下的class是model下的模型类,必须继承于Mage_Sales_Model_Quote_Address_Total_Abstract,而nominal_totals下的class必须继承totals下的class.

totals下的class要实现2个方法

 代码如下 复制代码

public function collect(Mage_Sales_Model_Quote_Address $address){

parent::collect($address);

$items = $this->_getAddressItems($address);
if (!count($items)) {
return $this;
}

$address->setAffiliatepointsAmount(10);
$address->setGrandTotal($address->getGrandTotal() – 10);
$address->setBaseGrandTotal($address->getBaseGrandTotal()-10);

return $this;
}

 

 

public function fetch(Mage_Sales_Model_Quote_Address $address)
{
$amount = $address->getAffiliatepointsAmount();
if ($amount != 0) {
$title = Mage::helper(‘affiliate’)->__(‘Affiliate Points’);
$address->addTotal(array(
‘code’ => $this->getCode(),
‘title’ => $title,
‘value’ => -$amount
));
}

return $this;
}

 

其中     

 代码如下 复制代码
    $items = $this->_getAddressItems($address);
if (!count($items)) {
return $this;
}

这个是必须判断的,要不可能带来价格的重复计算。。

相关文章

精彩推荐