Skip to content
msRussianPost
msRussianPost
Расчёт доставки Почтой России для MODX 3 и MiniShop3
  1. Компоненты
  2. msRussianPost
  3. Системные настройки

Системные настройки

Все ключи относятся к пространству имён msrussianpost (префикс в БД: msrussianpost_).

Где изменить: Настройки → Системные настройки — фильтр по namespace msrussianpost.

Быстрый переход из менеджера: Extras → Почта России → Системные настройки — откроется список настроек MODX с фильтром по msrussianpost (если пункт реализован в вашей сборке пакета).

Доставка и параметры расчёта

НастройкаОписаниеПо умолчанию
msrussianpost_delivery_idID доставок MiniShop3 через запятую. Пусто — авто: все доставки с классом msrussianpost\Delivery\RussianPostDelivery(пусто)
msrussianpost_sender_indexПочтовый индекс пункта отправления (6 цифр)101000
msrussianpost_object_codesКоды типов отправлений через запятую23030,27030
msrussianpost_object_labelsСвои подписи в виджете: строки код=текст (допустимы : | или таб между кодом и текстом), по одной на строку. Строки с # в начале — комментарий. Ручные подписи важнее подписи из ответа API(пусто)
msrussianpost_tariff_packПараметр pack в запросе GET …/v2/calculate/tariff/delivery публичного API. Для EMS RT (27030) без pack API возвращает ошибку 1201. Значение 1 подходит в большинстве случаев. Пустая строка — не передавать pack (редкие сценарии, часть услуг может перестать считаться). Ключ кэша учитывает это поле1

Популярные коды объектов (ориентир):

КодУслуга
23030Посылка онлайн
27030EMS RT
47030Курьер онлайн
4030Бандероль
2010Заказное письмо 1 класса

Полный перечень удобно смотреть во вкладке Extras → Почта России → Справочник объектов (нужен VueTools).

Для кода 2010 публичный API допускает вес не более 100 г. При большем весе корзины компонент не запрашивает тариф для этого кода (чтобы не получать ошибку 2003 в журнале). Не смешивайте коды писем с посылками без учёта лимитов.

Публичный API часто отдаёт одинаковый caption для разных кодов. Тогда в виджет подставляется название из справочника API по коду. Поле object_labels позволяет задать свои формулировки. После смены подписей очистите кэш на странице компонента (в ключ кэша входит содержимое object_labels).

Справочник кодов объектов расчёта для публичного API — в документации калькулятора Почты России (PDF).

Вес и габариты

НастройкаОписаниеПо умолчанию
msrussianpost_default_weightВес в граммах, если в корзине нет веса1000
msrussianpost_weight_coefficientМножитель веса (например 1000, если вес задан в килограммах)1
msrussianpost_dimensions_enabledПередавать в API габариты посылки0
msrussianpost_default_lengthДлина по умолчанию, см30
msrussianpost_default_widthШирина по умолчанию, см20
msrussianpost_default_heightВысота по умолчанию, см10
msrussianpost_product_length_keyИмя поля длины товара в данных корзины(пусто → length)
msrussianpost_product_width_keyИмя поля ширины(пусто → width)
msrussianpost_product_height_keyИмя поля высоты(пусто → height)

Для каждой позиции корзины читаются три оси (пустые подставляются из дефолтов), в расчёт уходит максимум по каждой оси среди позиций («ящик не меньше самого крупного товара»). Публичный API tariff принимает размеры в сантиметрах. API Отправки POST /1.0/tariff — в миллиметрах (внутри компонента выполняется перевод см × 10). Кэш и журнал учитывают переданные габариты.

API

НастройкаОписаниеПо умолчанию
msrussianpost_api_modetariff — публичный API. otpravka — персональный API с fallback на tariff при ошибкахtariff
msrussianpost_api_base_urlБазовый URL публичного APIhttps://tariff.pochta.ru
msrussianpost_otpravka_base_urlБазовый URL API Отправкиhttps://otpravka.pochta.ru
msrussianpost_otpravka_tokenBase64-значение для заголовка X-User-Authorization: Basic <token>(пусто)
msrussianpost_otpravka_keyAccessToken для заголовка Authorization: AccessToken <key>(пусто)

В режиме otpravka тарифы персональные (в т.ч. по договору), действуют лимиты порядка трети суточного объёма отправлений по данным личного кабинета. Режим tariff — публичные тарифы, отдельной авторизации не требует.

Где взять ключи для API Отправки (otpravka)

Персональный расчёт через otpravka.pochta.ru доступен при договоре с Почтой России и подключённом доступе к API в сервисе Отправка (личный кабинет организации). Без договора и активации API остаётся только публичный режим tariff.

  1. Зарегистрируйтесь или войдите в личный кабинет Отправки, оформите договорные отношения с Почтой России, если их ещё нет.
  2. В кабинете откройте раздел API → Настройки (или актуальный аналог в меню личного кабинета). Там выдают пару значений для авторизации запросов.
  3. Значение для Authorization: AccessToken … вставьте в msrussianpost_otpravka_key. Значение для X-User-Authorization: Basic … (как выдаёт кабинет) — в msrussianpost_otpravka_token. При расхождении подписей в интерфейсе с заголовками HTTP ориентируйтесь на официальную спецификацию API Отправки (раздел про авторизацию).
  4. В системных настройках MODX выставьте msrussianpost_api_mode в otpravka и сохраните настройки. Очистите кэш сайта и при необходимости кэш компонента (см. раздел про кэш ниже).

Если токен или ключ неверные, API вернёт 401 и компонент при включённом fallback доберёт варианты через публичный tariff (см. Интеграция и кастомизация → Режимы API).

В режиме otpravka, если токен и ключ пусты, расчёт выполняется только через публичный API. При ошибках по отдельным кодам недостающие варианты добираются через tariff.

Параметры тарифа

НастройкаОписаниеПо умолчанию
msrussianpost_isaviaАвиа: 0 — нет, 1 — авиа, 2 — наземная0
msrussianpost_sumoc_enabledОбъявленная ценность (стоимость корзины в расчёте)1
msrussianpost_sumin_enabledНаложенный платёж / стоимость вложения1
msrussianpost_servicesДополнительные услуги — коды через запятую(пусто)

Кэш и журнал

НастройкаОписаниеПо умолчанию
msrussianpost_cache_ttlTTL кэша ответов API, секунды21600 (6 ч.)
msrussianpost_log_enabledПисать запросы и ответы в журнал раздела «Почта России» в MODX0

Кэш хранится в core/cache/msrussianpost/. Очистка — кнопка в разделе Extras → Почта России (панель управления MODX) или смена параметров, влияющих на ключ кэша.

Ориентир по msrussianpost_cache_ttl:

СценарийTTL (сек.)
Обычный магазин21600 (6 ч.)
Частые изменения тарифов3600 (1 ч.)
Минимум запросов к API86400 (24 ч.)

Рекомендации

  • Для рабочего сайта задайте delivery_id, чтобы виджет не показывался при выборе курьера или самовывоза.
  • Начните с api_mode = tariff. Переключайтесь на otpravka, когда есть договор и ключи в личном кабинете Отправки.
  • log_enabled включайте точечно при диагностике — журнал может разрастаться.

Логотип доставки

В MiniShop3 в списке доставок колонка Логотип берётся из поля logo. При установке или обновлении пакета для всех доставок с классом msrussianpost\Delivery\RussianPostDelivery с пустым логотипом подставляется URL файла assets/components/msrussianpost/img/pochta-ru-logo.png (фирменный знак Почты России).