@Zitttz

Как правильно считать стоимость доставки в своем модуле доставки prestashop?

Здравствуйте.
Пытаюсь написать свой модуль доставки для Prestashop 1.6. В официальной документации написано, что для расчета используется метод getOrderShippingCost(), который и должен возвращать стоимость доставки. Но ситуация в том, что как показывает отладка, этот метод вызывается на каждой странице магазина, если пользователь указал адрес который подходит.
В этом методе у меня рассчитывается стоимость доставки через сторонний API, неправильно ведь рассчитывать её при заходе на любую страницу магазина. Нужно расчитать стоимость, только когда пользователь уже делает заказ.
Как это реализовывать правильно? Спасибо.
  • Вопрос задан
  • 361 просмотр
Пригласить эксперта
Ответы на вопрос 2
@hector
php программист
Вызывается, он если у вас дергается корзина. На каждой странице ведь она есть и доставка выводится. А что бы апи не дергать, то проверяйте id_carrier

if ($this->id_carrier == (int)(Configuration::get('INPOSTSHIPPING_CARRIER_ID')) {
//дергаем api
}
Ответ написан
@Zitttz Автор вопроса
Вообщем опишу сам что сделал...
Создал промежуточную таблицу cache в которой храню адрес пользователя, вес для которого уже был расчет и сумму доставки.
При вызове getOrderShippingCost() сначала по адресу и общему весу пользователя ищется запись в cache, если не находится то вызывается api. Так же при каждом поиске удаляются записи старше одного дня.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы