Как включить/отключить способ доставки на основе промежуточного итога заказа?

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

Вопрос

Я изучаю Magento и пытаюсь создать способ доставки, который появляется только тогда, когда промежуточная сумма в корзине превышает 100 долларов.

Я пытался getSubTotal() в функции collectRates(), затем return false если возвращаемое значение меньше 100.Однако он всегда возвращается 0.Я предполагаю, что это не было рассчитано на том этапе, это правда?

И есть ли какой-нибудь другой способ, которым я могу сделать то, что хотел?

Пожалуйста, помогите...Большое вам спасибо!

Это было полезно?

Решение

твой collectRates метод должен выглядеть следующим образом

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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top