Domanda

Sto imparando Magento e cercando di creare un metodo di spedizione che appare solo quando il subtotale del carrello è superiore a $100.

Ci ho provato getSubTotal() in funzione collectRates(), poi return false se il valore restituito è inferiore a 100.Tuttavia, ritorna sempre 0.Immagino che non fosse stato calcolato a quel punto, è vero?

E c'è un altro modo in cui posso fare quello che volevo?

Ti prego, aiutami...Grazie mille!

È stato utile?

Soluzione

vostro collectRates il metodo dovrebbe essere simile a questo

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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top