Перейти к содержимому
Доставка: CDEK, Почта России, Яндекс Доставка и ApiShip

Доставка: CDEK, Почта России, Яндекс Доставка и ApiShip

EasyChat дополняет заказ актуальным статусом отправления из официального API перевозчика. Интеграция работает только на чтение: она не создаёт, не меняет и не отменяет отправления.

Каждый перевозчик подключается отдельно. Можно включить только нужные сервисы: CDEK, Почту России, Яндекс Доставку и ApiShip.

Что увидит оператор

В карточке заказа показываются перевозчик, трек-номер, текущий статус, место и время последнего события. Оператор может открыть заказ, перейти к официальному отслеживанию или вставить подтверждённый статус в ответ клиенту. Те же данные доступны в Android-приложении.

EasyChat обращается к CMS или API один раз при получении commerce-контекста, затем использует локальный кэш. Для каждого трек-номера действует отдельный кэш и single-flight-блокировка: при одновременном открытии нескольких окон внешний API вызывается одним процессом, остальные используют его результат. Если первый запрос ещё выполняется, второй экран покажет сохранённый статус или аккуратное состояние обновления — повторный запрос не отправляется.

Завершённые, отменённые и возвращённые заказы не проверяются автоматически. Статус вручённого или возвращённого отправления хранится сутки, активного — обычно пять минут, а ошибка API — одну минуту. Ручное обновление позволяет запросить конкретное отправление явно. При смене ключей перевозчика старый кэш не используется.

Подключение CDEK

  1. Получите Client ID и Client secret официального API CDEK для своей учётной записи.
  2. В EasyChat откройте Интеграции → Доставка.
  3. Включите CDEK, вставьте оба значения и нажмите Сохранить.
  4. Введите трек-номер отправления, доступного этой учётной записи, и нажмите Проверить.

CDEK API не является публичным поиском всех посылок: ключи дают доступ только к разрешённым владельцу отправлениям.

Подключение Почты России

  1. Подключите API сервиса отслеживания на tracking.pochta.ru.
  2. Введите выданные логин и пароль API в блоке Почта России.
  3. Сохраните настройки и проверьте их на реальном трек-номере.

Подключение Яндекс Доставки

  1. Оформите доступ к API в кабинете Яндекс Доставки и выпустите OAuth-токен для интеграции.
  2. В EasyChat откройте Интеграции → Доставка, включите Яндекс Доставку и сохраните токен.
  3. Для проверки укажите claim_id реальной заявки из Яндекс Доставки.

Яндекс Доставка возвращает статус именно по claim_id (32–64 символа). Обычный публичный трек-номер для этого API не подходит.

Подключение ApiShip

  1. Получите API token в своей учётной записи ApiShip.
  2. В EasyChat откройте Интеграции → Доставка, включите ApiShip и сохраните токен.
  3. Для проверки укажите clientNumber реального заказа ApiShip.

ApiShip возвращает статус по clientNumber, а не по произвольному номеру посылки перевозчика. Для заказов, проведённых через ApiShip, трекинг входит в базовый сценарий сервиса; обработка сторонних заказов может тарифицироваться ApiShip отдельно — проверьте условия своего тарифа перед включением регулярного обновления.

Автоматически из официального модуля

EasyChat распознаёт подтверждённые записи официальных модулей ApiShip без настройки полей вручную:

  • OpenCart 2.1, 2.3 и 3.x: модуль ApiShip создаёт таблицу *_apiship_order. EasyChat пакетно читает связанный orderId ApiShip и безопасно строит clientNumber из настроенного в модуле префикса и номера заказа.
  • WooCommerce: EasyChat читает integratorOrder и providerNumber из meta строки доставки, которую создаёт официальный плагин ApiShip. Это работает и с обычным хранилищем WooCommerce, и с HPOS.

Когда модуль сохранил orderId ApiShip, EasyChat запрашивает статус именно по нему: clientNumber может быть повторно использован после отмены или удаления заказа. Если официального модуля нет, нужная запись не создана или данные неоднозначны, EasyChat не строит отправление по телефону, email или случайному трек-номеру.

Как EasyChat находит отправление

OpenCart: способ доставки и перевозчик

В OpenCart 1.5–3.x адаптер читает штатные поля заказа shipping_method, shipping_code и tracking. В OpenCart 4 поле shipping_method может быть JSON; EasyChat извлекает из него name и code. Название показывается оператору, а технический код используется как устойчивый ключ.

Код из известного модуля (cdek.*, apiship.* и аналогичные подтверждённые коды) сопоставляется автоматически. Если EasyChat встретит новый код в заказе с трек-номером, на странице доставки появится одна понятная строка: название способа, число таких заказов и выбор перевозчика. Достаточно выбрать СДЭК, Почту России, Яндекс Доставку, ApiShip или «Не отслеживать» и сохранить. Набирать технические коды или JSON не нужно. Соответствие сохраняется для установки и применяется только к точному коду модуля. Неизвестное или неоднозначное соответствие не запускает API перевозчика, но не скрывает заказ и исходный трек-номер. Формат трек-номера сам по себе не является доказательством перевозчика. В карточке заказа оператор также видит источник решения: например, «Определено по коду доставки» или «Код способа доставки не распознан».

OpenCart, WooCommerce, Shop-Script и 1С-Битрикс передают заказ через единый контракт Commerce Context 2.0. OpenCart и WooCommerce дополнительно распознают описанные выше официальные записи ApiShip; для Shop-Script, 1С-Битрикс и МойСклад автоматическое сопоставление добавляется только после проверки конкретного официального контракта, а не по догадке. Если платформа или установленный модуль хранит стандартный трек-номер, адаптер получает его пакетно вместе с заказами. МойСклад остаётся независимым дополнительным источником. Неоднозначные контакты не объединяются, а отсутствие статуса никогда не подменяется догадкой.

Доступы шифруются локально на сервере установки и не отправляются в центральный EasyChat. TLS-сертификат API всегда проверяется. Отдельный кэш и single-flight-блокировка действуют для каждого перевозчика и идентификатора отправления, поэтому несколько открытых окон не дублируют один и тот же запрос.

Последнее обновление