Como ativar/desativar um método de envio baseado no Subtotal do Pedido?
-
13-12-2019 - |
Pergunta
Estou aprendendo Magento e tentando criar um método de envio que apareça apenas quando o subtotal do carrinho for superior a US$ 100.
Eu tentei getSubTotal()
em função collectRates()
, então return false
se o valor de retorno for menor que 100.Porém, sempre retorna 0
.Acho que não foi calculado naquela etapa, é verdade?
E existe alguma outra maneira de fazer o que queria?
Por favor ajude...Muito obrigado!
Solução
seu collectRates
método deve ficar assim
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;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange