msEMS

Купить msEMS в магазине дополнений →
21 августа 2017, 18:14

Компонент предоставляет возможность автоматического расчета стоимости доставки службой EMS Russian Post. Для расчетов используется API самой службы, потому можно не беспокоиться ни о изменениях тарифов, ни максимального веса.

При установке пакета на вашем сайте появится новый способ доставки «Почта России EMS». Настройка аналогична настройке любых других способов доставки в miniShop2, после установки этот способ доставки отключен, чтобы он стал доступен — включите его и укажите какие способы оплаты будут работать с ним.

Для корректной работы обязательно нужно указать город или регион из которого Вы планируете отправлять заказы в настройках системы (пространство имен «minishop2», раздел «Доставка EMS», параметр ms2_delivery_from). Обратите внимание, что указать город или регион можно только из списка доступных для API, этот список можете посмотреть на сайте службы в калькуляторе. Внимательно вводите город/регион, не перепутайте буквы, иначе ничего работать не будет, регистр букв при этом значения не имеет.

Остается одна проблема. Если сервис службы работает только если указать определенное место из списка, то как заставить покупателя внимательно его выбирать и вводить?

Для этого в пакет добавлен специальный сниппет, который умеет получать список этих самых мест. Сниппет называется msEmspost, и принимает всего 2 параметра:

  • tpl — чанк для оформления каждого отдельного иеста (доступен плейсхолдер city, в котором хранится название места).
  • toPlaceholder — если указан, то вывод сниппета будет записан в плейсхолдер, соответствующий значению этого параметра.

Кроме места отправления и места назначения компонент также учитывает при расчетах вес заказа, если его вес превышает максимальный вес отправления, то будет рассчитана стоимость такого количества отправлений, чтобы заказ был отправлен полностью.

Хочу также обратить ваше внимание на один из стандартных чанков — tpl.msEmspost.select. Это чанк, включающий в себя код, необходимый для вывода выпадающего списка мест и обработки его изменения. В частности в нем добавлено несколько строк кода javascript, среди которых есть такая $.ajaxSetup({async: false}); она необходима для корректной работы. Разбирающийся в javascript вполне сможет переделать всё под себя, но необходимо, чтобы запрос на определение стоимости заказа не отправлялся до тех пор, пока не будет получен ответ в предыдущем.

Для вывода списка доступных мест достаточно заменить чанком tpl.msEmspost.select поле для указания города на странице оформления заказа, всё остальное компонент сделает сам.

По умолчанию для покупателя будут доступен список городов России, в которые возможна доставка. Но, если потребуется предоставить возможность выбирать из регионов РФ или даже выбрать другую страну, то с версии 1.0.2 такая возможность есть. За то какого типа регионы будут доступны отвечает системная настройка (пространство имен «minishop2», раздел «Доставка EMS») ms2_delivery_ems_type. Она может принимать одно из пяти значений:

  • cities – получить список идентификаторов городов России, для которых может быть рассчитана доставка;
  • regions – получить список идентификаторов регионов России, для которых может быть рассчитана доставка;
  • russia – получить объединенный список идентификаторов городов и регионов России, для которых может быть рассчитана доставка;
  • countries – получить список идентификаторов стран, для которых может быть рассчитана доставка.
  • all – получить объединенный список идентификаторов стран, городов России и регионов России для которых может быть рассчитана доставка.