Обработка FBS-заказов

API Маркета позволяет выполнять все те же действия, что выполняются в кабинете: смотреть новые заказы, получать для них ярлыки, что-то менять в них при необходимости и так далее.

Чтобы понимать, как все происходит

Шаг 1. Регулярная проверка новых заказов

Используйте API-уведомления вместо этого шага

Маркет отправит вам запрос POST notification, когда появится новый заказ.

Как работать с уведомлениями

Яндекс МаркетВаш магазинЯндекс МаркетВаш магазинМагазин регулярно запрашиваетсписок новых заказовGET campaigns/{campaignId}/ordersOK: список заказовПроверяетналичие заказанных товаров.

Список новых заказов, поступивших от покупателей, нужно запрашивать у Маркета не реже чем раз в сутки. Это делается с помощью запроса GET campaigns/{campaignId}/orders.

По умолчанию в ответ на запрос возвращаются все заказы. Чтобы увидеть только новые заказы, передайте в запросе фильтр по статусу и подстатусу: "status": "PROCESSING", "substatus": "STARTED".

Получив список заказов, проверьте, все ли нужные товары есть на складе. Если все в порядке, переходите к шагу 2.

Если чего-то не хватает, сначала прочитайте инструкцию Перенос, отмена и сокращение заказа.

Шаг 2. Генерация листа сборки

Генерация листа сборки занимает время, поэтому получение происходит в два этапа: вначале нужно сделать запрос на генерацию, а потом запрос на готовый лист сборки.

Яндекс МаркетВаш магазинЯндекс МаркетВаш магазинМагазин запрашиваетлист сборкиМагазин может в любой моментпроверять статус листа сборкиПосле того как прошло время,указанное в estimatedGenerationTimealt[Лист сборки удалось сгенерировать][Генерация завершилась ошибкой]POST reports/documents/shipment-list/generateСтавит лист сборкив очередь на генерацию.OK: идентификатор,с помощью которогоможно будет получитьготовый лист сборки,а также ожидаемаяпродолжительность генерации(reportId+ estimatedGenerationTime)GET reports/info/<report_id>OK: статус и сколько времени займет(status = PENDING)+ estimatedGenerationTime)Запускает генерацию.GET reports/info/<report_id>OK: статус и сколько времени займет(status = PROCESSING)+ estimatedGenerationTime)Генерация завершается.Запрашивает готовый лист сборкиGET reports/info/<report_id>OK: статус и ссылка(status = DONE + file)Запрашивает готовый лист сборкиGET reports/info/<report_id>OK: статус и ссылка(status = FAILED илиstatus = NODATA)
  1. Сделайте запрос POST reports/documents/shipment-list/generate.
  2. Чтобы узнать, готов ли лист сборки, выполните запрос GET reports/info/{reportId}. Вы получите статус генерации и примерное время, оставшееся до ее завершения.
  3. После того как время на генерацию закончится, повторите запрос GET reports/info/{reportId}. Если сгенерировать лист сборки удалось, вы получите ссылку на его скачивание.

Шаг 3. Передача кодов маркировки и распределения товаров по коробкам

Эти сведения передаются одновременно одним запросом: PUT campaigns/{campaignId}/orders/{orderId}/boxes.

Яндекс МаркетВаш магазинЯндекс МаркетВаш магазинПередача информации о заказе(для каждого заказа)Передает: коды маркировки,если они предусмотреныдля конкретных товаров, и распределяет товары по коробкамPUT campaigns/{campaignId}/orders/{orderId}/boxesOK

Коды маркировки

Маркировка товаров необязательна для заказов от физических лиц

Если для товара предусмотрена маркировка в «Честном знаке» или других системах маркировки, передайте Маркету код каждого проданного экземпляра.

Например, если человек заказал три пары одинаковых домашних тапочек, для этой позиции в заказе нужно передать три кода.

Распределение по коробкам

Перед отгрузкой заказа нужно передать Маркету информацию о том, как товары распределены по коробкам. Эти сведения бывают нужны, если что-то идет не так.

Что делать, если нужно изменить информацию о заказе?

Запросом PUT campaigns/{campaignId}/orders/{orderId}/boxes можно воспользоваться сколько угодно раз, пока заказ не перешел в статус Готов к отгрузке. Каждый новый запрос заменяет данные, переданные с предыдущим запросом.

Шаг 4. Печать ярлыков и передача статуса «Готов к отгрузке»

Яндекс МаркетВаш магазинЯндекс МаркетВаш магазинПодготовка заказовЗапрашивает ярлыки для одного заказаGET campaigns/{campaignId}/orders/{orderId}/delivery/labelsOK: ярлыки для заказаУпаковывает заказы.Переводит заказы в статус «Готов к отгрузке»"status": "PROCESSING", "substatus": "READY_TO_SHIP"PUT campaigns/{campaignId}/orders/{orderId}/statusилиPOST campaigns/{campaignId}/orders/status-updateOK
Яндекс МаркетВаш магазинЯндекс МаркетВаш магазинПодготовка заказовМагазин может в любой моментпроверять статус генерации ярлыковПосле того как прошло время,указанное в estimatedGenerationTimealt[Ярлыки удалось сгенерировать][Генерация завершилась ошибкой]Запрашивает ярлыки для нескольких заказовPOST reports/documents/labels/generateСтавит ярлыкив очередь на генерацию.OK: идентификатор, с помощью которогоможно будет получить готовые ярлыки,а также ожидаемая продолжительность генерации(reportId + estimatedGenerationTime)GET reports/info/<report_id>OK: статус и сколько времени займет(status = PENDING) + estimatedGenerationTime)Запускает генерацию.GET reports/info/<report_id>OK: статус и сколько времени займет(status = PROCESSING) + estimatedGenerationTime)Генерация завершается.Запрашивает готовые ярлыкиGET reports/info/<report_id>OK: статус и ссылка(status = DONE + file)Запрашивает готовые ярлыкиGET reports/info/<report_id>OK: статус и ссылка(status = FAILED или status = NODATA)Упаковывает заказы.Переводит заказы в статус «Готов к отгрузке»"status": "PROCESSING", "substatus": "READY_TO_SHIP"PUT campaigns/{campaignId}/orders/{orderId}/statusилиPOST campaigns/{campaignId}/orders/status-updateOK

Собранный заказ нужно упаковать — это делается согласно правилам, подробно описанным в Справке Маркета для продавцов.

На упакованный заказ наклеивается специальный стандартный ярлык с номером, штрих-кодами и другой информацией — по нему службы доставки определяют, куда везти посылку. Ярлык можно получить по API с помощью запроса:

Подготовив заказ, переведите его в статус Готов к отгрузке ("status": "PROCESSING" "substatus": "READY_TO_SHIP" ). Это делается с помощью запросов PUT campaigns/{campaignId}/orders/{orderId}/status (если хочется передавать по одному заказу) или POST campaigns/{campaignId}/orders/status-update (если хочется передавать массово).

Переводя заказ в статус Готов к отгрузке, вы подтверждаете Маркету, что товар есть и будет отгружен. Товары в статусе Готов к отгрузке попадают в акт приема-передачи.

Шаг 5. Работа с отгрузкой

Яндекс МаркетВаш магазинЯндекс МаркетВаш магазинРабота с отгрузкойНеобязательные шагиМагазин планирует отгрузить товары без пересчетаoptПередает количество коробов или палетPUT campaigns/{campaignId}/first-mile/shipments/{shipmentId}/palletsOKЗапрашивает ярлыки для коробов или палетGET campaigns/{campaignId}/first-mile/shipments/{shipmentId}/pallet/labelsOK: ярлыки для коробов или палетЗапрашивает акт приема-передачии подтверждает отгрузкуGET campaigns/{campaignId}/shipments/reception-transfer-actOK

Чтобы отгрузить заказы, водителю понадобится акт приема-передачи. С помощью запроса GET campaigns/{campaignId}/shipments/reception-transfer-act вы можете:

  1. Получить и подписать акт приема-передачи по API. О том, как подключить работу с электронными актами приема-передачи, читайте в Справке Маркета для продавцов.

  2. Подтвердить отгрузку. При работе в кабинете такого шага нет, а при работе по API — есть.

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

Только после перевода всех заказов в статус Готов к отгрузке. Если в отгрузке есть неподтвержденные заказы, в ответ на запрос придет сообщение об ошибке со списком заказов.

Планируется доверительная приемка

Передайте количество коробов или палет с помощью запроса PUT campaigns/{campaignId}/first-mile/shipments/{shipmentId}/pallets.

Чтобы получить ярлыки для них, используйте запрос GET campaigns/{campaignId}/first-mile/shipments/{shipmentId}/pallet/labels.

Если товара не хватает: перенос, отмена и сокращение заказа

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

Перенос даты доставки и полная отмена заказа делаются отдельными запросами.

Для изменения состава заказа используется PUT campaigns/{campaignId}/orders/{orderId}/boxes — тот же запрос, что передает коды маркировки и распределение товаров по коробкам.

Яндекс МаркетВаш магазинЯндекс МаркетВаш магазинНеобязательные шагиЕсли на складе не оказалось нужных товаровoptЕсли таких товаров много,магазин отменяет заказ:"status": "CANCELLED", "substatus": "SHOP_FAILED"PUT campaigns/{campaignId}/orders/{orderId}/statusOKЕсли не хватает отдельных позиций,их можно удалить из заказа:PUT campaigns/{campaignId}/orders/{orderId}/boxesOKЕсли товар вот-вот прибудет на склад,можно перенести дату доставки:POST campaigns/{campaignId}/first-mile/shipments/{shipmentId}/orders/transferOK
Действие с заказом Запрос
Перенос в следующую отгрузку POST campaigns/{campaignId}/first-mile/shipments/{shipmentId}/orders/transfer
Полная отмена заказа Запрос PUT campaigns/{campaignId}/orders/{orderId}/status. (Переведите заказ в "status":"CANCELLED" "substatus": "SHOP_FAILED".)
Исключение товара из заказа PUT campaigns/{campaignId}/orders/{orderId}/boxes

Так нельзя делать часто

Любое из этих действий понизит индекс качества магазина. Когда индекс качества снижается, магазин сталкивается с ограничениями.