Comment activer/désactiver une méthode d'expédition basée sur le sous-total de la commande ?

magento.stackexchange https://magento.stackexchange.com//questions/86305

Question

J'apprends Magento et j'essaie de créer une méthode d'expédition qui n'apparaît que lorsque le sous-total du panier est supérieur à 100 $.

j'ai essayé de getSubTotal() en fonction collectRates(), alors return false si la valeur de retour est inférieure à 100.Cependant, cela revient toujours 0.Je suppose que cela n’avait pas été calculé à cette étape, est-ce vrai ?

Et y a-t-il un autre moyen de faire ce que je voulais ?

S'il vous plaît, aidez-moi...Merci beaucoup!

Était-ce utile?

La solution

ton collectRates la méthode devrait ressembler à ceci

public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
    //if method is disabled
    if (!$this->getConfigFlag('active')) {
        return false;
    }

    if ($request->getPackageValue() < 100) {
        return false;
    }
    /** @var Mage_Shipping_Model_Rate_Result $result */
    $result = Mage::getModel('shipping/rate_result');
    $method = Mage::getModel('shipping/rate_result_method');
    $method->setCarrier($this->_code); //add here the payment method code
    $method->setCarrierTitle($this->getConfigData('title')); //or you can add any title if it's not configurable
    $method->setPrice(your shiping cost here);
    $result->append($method);
    return $result;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top