“Получить котировки” не возвращает ошибки, если доступных ставок нет
-
12-12-2019 - |
Вопрос
Это всегда хороший подход - показать пользователю любой результат (отрицательный или положительный).
В моем случае, когда я нажимаю на кнопку "Получить котировки" на Моя тележка страница и тарифы доступны — все в порядке.
Но когда для этого адреса нет доступных тарифов, мне нужно показать клиенту что-то вроде "Эй, чувак, никаких тарифов".
Насколько я понимаю, мне нужно покопаться в estimatePostAction
метод и проверьте тарифы вручную и установите какое-нибудь флэш-сообщение.
Но мне просто интересно, есть ли другой Magento-способ использовать этот подход?
Спасибо за любое предложение или видение.
Решение
Что ж, наконец-то я решил эту проблему.
Но я не использовал CartController из-за этот вопрос, но наблюдатель sales_quote_collect_totals_after
.
Другие советы
Я просто использую что-то похожее на:
<?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...
и наша функция getshippingrates выглядит примерно так:
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;
}