0

作成したばかりの送料無料カートルールが、利用可能なすべての配送方法で機能しない理由を理解しようとしています。1 つの配送方法が無料になり、もう 1 つの配送方法 ( socolissimoflexibilite) は変更されません。

socolissimoflexibilite配送方法を確認するためのヒント、説明、または構成/データ/コードを教えてもらえますか? 私の最初の調査は、コレクションに私を導きますsales/quote_address_rate: 1 つのレートは 0.00 ユーロに変更されましたが、他のレートは変更されませんでした。

見積もりの​​配送先住所も確認しました。そのfree_shippingフィールドは 1 に設定されています。

ヘルプ ?

4

1 に答える 1

0

わかりました。答えは見つかりました。socolissimoflexibiliteモジュールを拡張する module() がありましたsocolissimosimplicite。 関数をsocolissimoflexibilite書き直し、サポートされなくなりました。この部分は自分で書き直さなければなりませんでした。このモジュールで同じ問題を抱えている人のために、ここにトリックがあります: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;
}

そして今、送料無料ルールは によってサポートされsocolissimoflexibiliteます!

于 2012-12-10T10:01:55.987 に答える