Wie kann ich eine Versandart basierend auf der Zwischensumme der Bestellung aktivieren/deaktivieren?
-
13-12-2019 - |
Frage
Ich lerne Magento und versuche, eine Versandmethode zu erstellen, die nur angezeigt wird, wenn die Zwischensumme des Warenkorbs mehr als 100 $ beträgt.
Ich versuchte zu getSubTotal()
in Funktion collectRates()
, Dann return false
wenn der Rückgabewert kleiner als 100 ist.Es kommt jedoch immer wieder 0
.Ich schätze, es war zu diesem Zeitpunkt noch nicht berechnet worden, stimmt das?
Und gibt es eine andere Möglichkeit, das zu tun, was ich wollte?
Bitte helfen Sie...Vielen Dank!
Lösung
dein collectRates
Methode sollte so aussehen
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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange