К содержимому
TURANYOLРазработчикам

Исполнение заказа

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

Где вы принимаете заказ

Сборщики приносят товар с прилавков, хаб сканирует каждую строку на приёмке и упаковывает заказ в посылки — у каждой код вида ES-1042-P1. Только после этого есть что грузить.

lifecycle
RUNNER_PICKUP → AT_HUB → PACKED → EN_ROUTE → DELIVERED

На хабе вы забираете заказ в статусе PACKED. AT_HUB означает «принят, но ещё не упакован»: посылок пока нет, класть в машину нечего.

Назначение может опередить упаковку

Оператор может передать заказ вашему ключу в любом из этих статусов: AT_HUB, PACKED. Поэтому вебхук order.assigned_to_partner может прийти, пока хаб ещё упаковывает, — считайте это предупреждением и дождитесь упакованного заказа, прежде чем отправлять машину.

События, о которых вы сообщаете

POST /v1/partner/orders/:code/events со scope logistics:write. Каждый type соответствует ровно одному переходу, который выполняется актором PARTNER и помечается вашим названием партнёра:

События, о которых вы сообщаете
typeЗначение
PICKED_UPПосылки погружены через наше сканирование передачи на хабе. Заказ становится SCANNED_TO_VAN.
EN_ROUTEПосылки в пути к клиенту. Если грузите в свою машину, сообщайте это сразу из PACKED.
DELIVEREDПередано клиенту. По заказу с наложенным платежом отправьте codCollectedQepik — целое число в гяпиках, 4750 = 47.50 ₼.
FAILEDДоставка не состоялась. Заказ остаётся у вас, пока вы не повторите попытку или не вернёте его.

Переходы, которые мы принимаем

Все пары from → to, которые API принимает от партнёрского ключа, в порядке сообщения:

transitions
PICKED_UP  PACKED         → SCANNED_TO_VAN
EN_ROUTE   PACKED         → EN_ROUTE        (только партнёр)
EN_ROUTE   SCANNED_TO_VAN → EN_ROUTE
DELIVERED  EN_ROUTE       → DELIVERED
FAILED     EN_ROUTE       → FAILED

PACKED → EN_ROUTE принадлежит только вам. Заказ с региональным исполнением уезжает с хаба в вашей машине и потому никогда не проходит через SCANNED_TO_VAN — этот статус означает, что посылки отсканированы в микроавтобус Turanyol, и этот шлюз наш. Никакой другой актор платформы этот переход сделать не может.

Когда мы отказываем

Всё, чего нет в таблице выше, отклоняется, и заказ сохраняет свой статус — невозможный переход никогда не портит заказ.

ERR_INVALID_TRANSITION

Машина состояний заказа отклоняет переход из текущего статуса.

ERR_PARTNER_ORDER_NOT_ASSIGNED

Заказ не назначен вашему партнёрскому аккаунту.

ERR_API_KEY_SCOPE

Ключ валиден, но не содержит скоуп, который нужен этому эндпоинту.

Смотреть полный каталог ошибок

Сообщить о доставке

Код заказа — тот, что напечатан на этикетке посылки (ES-1042), а не идентификатор заказа.

bash
curl -sS -X POST "https://api.turanyol.com/v1/partner/orders/ES-1042/events" \
  -H "X-Api-Key: $ESADARAK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"DELIVERED","codCollectedQepik":4750}'