0

我试图了解为什么我刚刚创建的免费送货 carrule 不适用于所有可用的送货方式。我有一种免费送货方式,另一种 ( socolissimoflexibilite) 不变。

有人可以给我一个提示、解释或一些配置/数据/代码来检查socolissimoflexibilite运输方式吗?我的第一次调查将我引向了sales/quote_address_rate收藏:一个费率很好地更改为 0.00 欧元,但不是另一个。

我还检查了报价送货地址:它的free_shipping字段设置为 1。

帮助 ?

4

1 回答 1

0

好的,我找到了答案:我们有一个 module( socolissimoflexibilite) 扩展了该模块socolissimosimplicitesocolissimoflexibilite重写collectRates()函数,freeShipping不再支持。我不得不自己重写这部分。对于使用此模块遇到相同问题的人,这里是诀窍:

Addonline_SoColissimoFlexibilite_Model_Carrier_ShippingMethod类中,该collectRates()函数必须替换为以下代码:

public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
    $rates = parent::collectRates($request);
    $shippingAddress = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();

    if ($shippingAddress && $shippingAddress->getData('soco_product_code') == 'RDV') {
        foreach ($rates->getAllRates() as $rate) {
            if ($rate->getCarrier()===$this->_code) {
                $rate->setPrice($rate->getPrice()+(int)Mage::getStoreConfig('carriers/socolissimoflexibilite/rdv_fees'));
            }
        }
    }
    if($shippingAddress->getFreeShipping()) {
        foreach ($rates->getAllRates() as $rate) {
            if($rate->getCarrier() === $this->_code) {
                $rate->setPrice(0) ;
                $rate->setCost(0) ;
            }
        }
    }
    return $rates;
}

现在,freeShipping 规则将得到支持socolissimoflexibilite

于 2012-12-10T10:01:55.987 回答