Автор Тема: Как пересчитать стоимость доставки для корзины программно getOrderShippingCost ?  (Прочитано 77 раз)

29 Сентябрь 2020, 18:17:53
  • Старожил
  • ****
  • Сообщений: 448
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите пожалуйста,

В каждом модуле доставки есть метод
public function getOrderShippingCost($params,
Подскажите могу ли я программно выполнить метод getOrderShippingCost,
чтобы пересчитать стоимость доставки для id_carrier?

Например как то так?
$cart->getOrderShippingCost($id_carrier)или так
$cart->update();
Возможно есть другой способ пересчитать стоимость доставки для корзины?

И ещё один вопрос, при создании заказа validateOrder происходит ли перерасчёт стоимость доставки  через getOrderShippingCost?

В наличии P.S. 1.6

Заранее спасибо!
30 Сентябрь 2020, 10:35:21
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1504
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
getOrderShippingCost возвращает стоимость доставки, а не меняет.
$cart->update();обновит стоимость доставки, но перед вызовом этого метода нужно передать id выбранного метода.
30 Сентябрь 2020, 16:12:09
Ответ #2
  • Старожил
  • ****
  • Сообщений: 448
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
getOrderShippingCost возвращает стоимость доставки, а не меняет.
$cart->update();обновит стоимость доставки, но перед вызовом этого метода нужно передать id выбранного метода.

Спасибо,
как я понял даже если просто выполнить:
$cart = new Cart($invoiceId);,то во время инициализации корзины вызывается перерасчёт стоимости доставки:
public function getOrderShippingCost($params,
01 Октябрь 2020, 11:25:26
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1504
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Во время обновления корзины вызывается перерасчёт стоимости доставки.
При инициализации вызывается метод который передает стоимость доставки по выбранному перевозчику.
Это разные методы.
01 Октябрь 2020, 12:43:10
Ответ #4
  • Старожил
  • ****
  • Сообщений: 448
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Во время обновления корзины вызывается перерасчёт стоимости доставки.
При инициализации вызывается метод который передает стоимость доставки по выбранному перевозчику.
Это разные методы.

Вопрос: чем перерасчёт стоимости доставки во время обновления корзины
отличается от
инициализации когда вызывается метод: public function getOrderShippingCost($params,

В корзине нет свойства по которому можно узнать сумму стоимости доставки.
При любом обращении к корзине дергается  метод: public function getOrderShippingCost($params,
01 Октябрь 2020, 14:54:39
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1659
  • Репутация: +46/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Для корзины getPackageShippingCost класса Cart. В корзине множество товаров и разные условия доставки.
01 Октябрь 2020, 15:11:08
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 16164
  • Репутация: +14616/-5
  • Сообщество PrestaShop
    • Просмотр профиля
getOrderShippingCost (): для вычисления стоимости доставки в зависимости от диапазонов, установленных в бэк-офисе.
getOrderShippingCostExternal (): для вычисления стоимости доставки без использования диапазонов.

Метод getOrderShippingCost () также можно использовать для вычисления стоимости доставки в зависимости от продуктов.