msRussianPost — расчёт доставки Почтой России и EMS для MODX 3 и MiniShop3

Встречайте msRussianPost — расчёт стоимости и сроков доставки Почтой России и EMS (настраиваемые коды объектов отправления) для MiniShop3 в MODX Revolution 3.x. Два источника тарифов: публичный API tariff.pochta.ru и персональный otpravka.pochta.ru (скидки по договору) с автоматическим fallback.



Зачем он нужен
Чтобы в MiniShop3 на чекауте отображались актуальные тарифы и сроки по выбранному индексу и весу корзины без кастомных скриптов к API Почты: один пакет, системные настройки с префиксом msrussianpost_ (namespace msrussianpost), сниппеты msRussianPost и msrpLexiconScript, чанки tplRussianPostStatus, tplRussianPostMethods. Класс доставки msrussianpost\Delivery\RussianPostDelivery; плагины подставляют стоимость в потоке заказа и сохраняют выбранный код объекта в properties заказа. После смены адреса (например, через mxDadata) срабатывает mxdadata:order-address-updated — виджет пересчитывает тарифы.

Для покупателя
После выбора способа доставки «Почта России» в блоке msrp (класс msrp__wrapper, атрибут data-msrp-widget) — выбор варианта отправления, стоимость и срок. Индекс получателя (6 цифр) обычно обязателен; подсказки по адресу и индексу не встроены — рекомендуется mxDadata (сниппет mxDadataAddressSuggest до блока msRussianPost). Порядок подключения и события — в документации msRussianPost.

Для владельца и менеджера
После установки в меню: раздел msRussianPost / Почта Россиитестовый расчёт, журнал API-запросов, справочник кодов объектов, очистка кэша. Минимум в Системные настройки (фильтр msrussianpost): msrussianpost_delivery_id (ID доставки MS3), msrussianpost_sender_index, msrussianpost_object_codes; для режима договора — otpravka (токен и ключ).

  • Два API + fallback — публичный tariff и персональный otpravka; при ошибке или пустом ответе — добор через публичный API; кэш с настраиваемым TTL.
  • Интеграция с MS3 — плагин msRussianPost Delivery (msOnGetDeliveryCost), msRussianPost Order tariff на событиях заказа; привязка виджета к доставке через delivery_id.
  • Совместно с подсказками адресаmxDadata (или иной ввод индекса); после обновления адреса — пересчёт тарифа по событию mxdadata:order-address-updated.
Для режима otpravka нужны данные договора в кабинете Почты России. Публичный tariff.pochta.ru работает без ключей, с лимитами, приемлемыми для типичного витринного сценария (подробности в документации API и в FAQ компонента).

Скриншот: журнал API или справочник объектов.

Коннектор (фронт + админка)

Запросы виджета идут к …/assets/components/msrussianpost/connector.php. При блокировке запросов (WAF, Basic) проверьте путь, права к каталогу компонента и правила в .htaccess. См. документацию msRussianPost (в т.ч. руководство по фронтенду и устранение неполадок).

Для разработчика
Интеграция с чек-аутом: ms3Hooks, события DOM и данные корзины MS3. Фронтенд — ES6+, BEM-префикс msrp, тексты из лексиконов. В заказе в properties сохраняются поля msrussianpost (код объекта, подпись способа). Событие mxdadata:order-address-updated (CustomEvent) — для согласованного пересчёта после DaData. Исходники админки: npm run build:mgrassets/components/msrussianpost/js/mgr/vue-dist/.

Официальные API: тарифный калькулятор (публичный), документация личного кабинета Отправка — на сайте otpravka.pochta.ru.

Установка и совместимость
  • MODX Revolution 3.0.3+
  • MiniShop3 (доставки, плагины заказа)
  • PHP 8.2+
  • VueTools — для страницы в менеджере
📷 Скриншоты
msRussianPost: виджет способов доставки Почты России на чекауте

msRussianPost: админка в менеджере MODX



msRussianPost: настройки или диагностика



Быстрый старт
  1. Установите пакет через УстановщикУправление пакетами (Modstore).
  2. Extras → MiniShop3 → Доставки: создайте доставку с class msrussianpost\Delivery\RussianPostDelivery, price 0, при необходимости validation_rules с индексом (6 цифр) и обязательными полями адреса.
  3. В Системные настройки (namespace msrussianpost) укажите msrussianpost_delivery_id, msrussianpost_sender_index, msrussianpost_object_codes; при необходимости режим otpravka и ключи.
  4. Убедитесь, что VueTools подключён. Откройте раздел msRussianPost и проверьте тестовый расчёт.
  5. Подключите сниппеты и чанки в шаблон заказа по документации; включите плагины msRussianPost Delivery и msRussianPost Order tariff на соответствующие события.
Ссылки
Иван Бочкарев
5 часов назад
modx.pro
28
0
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0