Pergunta

É sempre uma boa abordagem mostrar qualquer resultado (negativo ou positivo) ao usuário.

No meu caso, quando clico no botão 'Obter orçamentos' em Meu carrinho página e taxas estão disponíveis - tudo bem.

Mas quando NÃO há taxas disponíveis para esse endereço, preciso mostrar ao cliente algo como 'Ei, sem taxas, cara'.

Tanto quanto eu entendo, preciso cavar no estimatePostAction método e verifique as taxas manualmente e defina algumas mensagens flash.

Mas estou pensando se existe outra maneira do Magento de ter essa abordagem?

Obrigado por qualquer sugestão ou visão.

Foi útil?

Solução

Bem, finalmente resolvi esse problema.

Mas não usei o CartController devido a esse assunto, mas o observador sales_quote_collect_totals_after.

Outras dicas

Eu apenas uso algo semelhante a:

<?php $_shippingRateGroups = $this->getShippingRates(); ?>
<?php if (!$_shippingRateGroups): ?>
    <p><?php echo $this->__('Sorry, no shipping quotes are available to this address. Please contact us at ' . Mage::getStoreConfig('general/store_information/phone') . ' for a shipping quote') ?></p>
<?php else: ?>
    ...success message...

e nossa função getshippingrates é mais ou menos assim:

 public function getShippingRates()
{
    if (empty($this->_rates)) {
        $this->getAddress()->collectShippingRates()->save();
        $groups = $this->getAddress()->getGroupedAllShippingRates();
        /**
        * If no shipping rate is found an error report will be logged containing product and customer information.
        */
        if (empty($groups)) {
            $this->noShipRateError();
        }
        return $this->_rates = $groups;
    }
    return $this->_rates;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top