Перейти к содержимому


Несколько вариантов стоимости доставки в конкректном методе доставки

Метод доставки Стоимость Select

  • Вы не можете ответить в тему
В теме одно сообщение

#1 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 01 March 2016 - 09:35 AM

Просматривая код шаблона вывода стоимости доставки в вариантах доставки, видно что предусмотрен вывод вариантов стоимости в виде _Rate.name - _Rate.rate в выпадающем списке (select). У кого-то есть опыт, как задействовать эту возможность? Мне это показалось полезным когда надо вывести разные стоимости доставки для Предоплаты и Наложенного платежа, касающиеся одного и того же варианта доставки.
  • 0

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 01 March 2016 - 11:08 AM

У кого-то есть опыт, как задействовать эту возможность?

У меня так сделан модуль доставки Почтой России, использующий для расчета стоимости доставки сервис postcalc.ru.
ShopCMS написан так, что функция модуля доставки calculate_shipping_rate() может отдавать либо число (стоимость доставки), либо массив с пучком данных. Оба варианта валидны и нормально обрабатываются, но в случае массива это позволяет вернуть из функции куда больше данных. Поэтому в своих модулях доставки я всегда возвращаю стоимость доставки массивом, даже если вариант доставки всего один.

В ShopCMS есть один штатный модуль, использующий эту возможность - "Почта России".
Там два варианта доставки - "Обычная" и "Авиа" - можно подсмотреть, как сделано.

PS. В этот массив удобно загонять и другие данные (не штатные), используемые потом при выводе стоимости доставки.
Я туда добавляю сроки доставки и вес заказа, потом вывожу их в нужном месте.
Как-то так:

$rates = array(array('name' => $days, 'id' => 1, 'rate' => $ship_cost, 'weight' => CONF_EMSPOST_WEIGHT_SHOW?$full_weight:0));


Только чтобы разобраться, как оно работает (особенно при нескольких вариантах доставки, т.е. при использовании $shippingID) - это голову сломаешь. Ну очень все замороченно написано. Не сам класс доставки, а дальнейшее его использование.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)