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 или справочник объектов.
Коннектор (фронт + админка)
Запросы виджета идут к …/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:mgr → assets/components/msrussianpost/js/mgr/vue-dist/.
Официальные API: тарифный калькулятор (публичный), документация личного кабинета Отправка — на сайте otpravka.pochta.ru.
Установка и совместимость





Быстрый старт

Чтобы в 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.
Скриншот: журнал 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:mgr → assets/components/msrussianpost/js/mgr/vue-dist/.
Официальные API: тарифный калькулятор (публичный), документация личного кабинета Отправка — на сайте otpravka.pochta.ru.
Установка и совместимость
- MODX Revolution 3.0.3+
- MiniShop3 (доставки, плагины заказа)
- PHP 8.2+
- VueTools — для страницы в менеджере





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