Come enabel / disabilitare un metodo di spedizione basato sul subtotale dell'ordine?
-
13-12-2019 - |
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!
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