Ответить Новая тема Новый опрос 
 Модуль перевозки и опции доставки
tim8917
Новичок
Сообщений: 3
Регистрация: 07-03-2015


07-03-2015 02:53
У меня есть один перевозчик Amazon и три опции доставки (Standard, Expedite, Priority). Как правильно провести в Prestashop несколько опций доставки одного перевозчика ?

Я написал модуль доставки (CarrierModule). После активации модуля создался новый Carrier. Через hookExtraCarrier хук вывожу на этапе заказа 4. Shipping опции доставки. В зависимости от выбранной опции методе getOrderShippingCost возвращает ту или иную стоимость. В итоге на этапе 5. Payment, getOrderShippingCost возвращает стоимость предыдущей выбранной опции. И только после перезагрузки страницы 5. Payment отображается нужная стоимость выбранной опции. То есть страница как бы рендерится раньше, чем присваивается результат сабмита формы с опциями доставки.
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ggyyvv


Cпециалист
Сообщений: 233
Регистрация: 23-11-2012


07-03-2015 06:24
не совсем понял чем отличаются эти опции.
может проще было сделать трех перевозчиков с разными условиями?

Amazon Standard
Amazon Expedite
Amazon Priority


Сообщение отредактировано ggyyvv 07-03-2015 01:25 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
tim8917
Новичок
Сообщений: 3
Регистрация: 07-03-2015


07-03-2015 22:04
Вообще я получаю опции доставки динамически по ресту. Мне приходит ответ с сервера, что-то вроде [{label: "Standard", price: "6.40"},{label: "Expedite", price: "9.60"},{label: "Priority", price: "18.50"}]. Возможно создавать несколько перевозчиков - это вариант, если имена меняться не будут.


Сообщение отредактировано tim8917 07-03-2015 17:05 ...
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ggyyvv


Cпециалист
Сообщений: 233
Регистрация: 23-11-2012


07-03-2015 22:56
а с помощью настройки диапазонов не пробовали? можно одного перевозчика, но разные диапазоны под себя, а там называйте их уже как хотите. А как часто меняются значения опций?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
tim8917
Новичок
Сообщений: 3
Регистрация: 07-03-2015


08-03-2015 19:10
Диапазоны (Range) используются для вычисления ОДНОЙ стоимости, исходя из итогового веса или итоговой цены... Но мне в любом случае нужно пользователю показать N опций, которые пришли с сервера. В данном случае их три. Пока вижу выход создавать N перевозчиков под каждую опцию. Prestashop видимо не имеет такого функционала "опций", и теперь приходится изобретать велосипед.
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


11-03-2015 10:57
Нужно создавать способы доставки при установке модуля в самом модуле и сохранять их идентификаторы в конфигурации. В свойствах способа доставки установить is_module = true и external_module_name = module->name

Один из параметров getOrderShippingCost это идентификатор запрашиваемого способа доставки. Сравниваете с сохраненными и выдаете нужную стоимость

В hookExtraCarrier ничего выводить не нужно
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос