Маппинг статусов заказа — наш Order Service ↔ Яндекс.Еда

Наши статусы (в Order Service)

КодНазваниеЗначение
NEWНовыйТолько что создан
IN_PROGRESSГотовитсяПринят кассиром, готовится на кухне
READYГотовСобран, ждёт курьера / выдачи
HANDED_OVERПередан курьеруПокинул ресторан
CANCELLEDОтменёнОтказ (кассиром или гостем)

Статусы Яндекс.Еды (Vendor API)

Точные коды будут известны после подписания договора. По публичной документации и косвенным источникам:

Их статус (ожидаемый)Описание
newЗаказ размещён в приложении
acceptedРесторан подтвердил
cookingПриготовление
readyГотов к передаче курьеру
handed_over / picked_upКурьер забрал заказ
deliveredКурьер вручил гостю
rejectedОтклонён рестораном
cancelledОтменён гостем

Таблица соответствия

Заказ пришёл от Яндекса нам

Яндекс →Наш статус
newNEW

Изменения статуса у нас → push в Яндекс

НашИх (push)
IN_PROGRESS (кассир нажал «Принять»)accepted
IN_PROGRESScooking (отдельный push через ~минуту после accepted если разные статусы)
READYready
HANDED_OVERhanded_over
CANCELLED (кассир «Отклонить», до принятия)rejected с причиной
CANCELLED (уже в IN_PROGRESS)cancelled (ресторан не может выполнить)

Двойной push для accepted + cooking

У Яндекса два статуса для «подтвердил» и «готовит» — у нас один. Если их API требует обоих — шлём последовательно: сразу accepted, через паузу cooking. Уточнить на kick-off.

Изменения статуса у Яндекса → нам (pull/webhook)

ИхНаш
cancelled (гость отменил)CANCELLED + флаг cancelled_by_customer
delivered— не меняем (у нас заказ уже в HANDED_OVER, вручение курьера — вне нашей ответственности)

Причины отклонения/отмены (reject reasons)

КодОписаниеКто может выбрать
out_of_stockТовар закончилсяКассир
too_busyРесторан перегруженКассир
technical_issueПроблема с оборудованиемКассир
closing_soonСкоро закрытие, не успеваемКассир
customer_cancelГость отменилЗаполняется автоматом при pull от Яндекса

При отклонении причина передаётся в Яндекс. На стороне гостя показывается нейтральная формулировка «Ресторан не смог выполнить заказ» + возврат денег.

Timing SLA

ПереходЦелевое время
NEWIN_PROGRESS≤ 3 минуты после получения
IN_PROGRESSREADYПо договору с Яндексом (обычно 15-25 минут)
READYHANDED_OVER≤ 5 минут после прибытия курьера

Нарушение SLA — штраф от Яндекса / понижение рейтинга ресторана.

Ссылки