Wie kann ich eine Versandart basierend auf der Zwischensumme der Bestellung aktivieren/deaktivieren?

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

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!

War es hilfreich?

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
scroll top