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

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

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

Существуют два способа обработки заказов с помощью API: с использованием только pull-компонента и с использованием как pull-, так и push-компонента. О компонентах API Маркета

Не рекомендуем настраивать новые интеграции с push-компонентом

Первый способ

Только pull-компонент

Второй способ

Оба компонента

Получение информации о новых заказах, изменениях статусов заказов и об отменах заказов

Нужно регулярно запрашивать у Маркета изменения.

Маркет сам отправляет запрос, как только появляется новый заказ или что-то меняется. ⚠️ На такие запросы обязательно нужно отвечать.

Подтверждение получения заказа

Заказы подтверждаются автоматически, как при работе в кабинете.

Необходимо подтверждать получение каждого заказа.

Возможность обрабатывать часть заказов через кабинет

Есть.

Есть, но магазин должен отвечать на все запросы Маркета.

За некорректные ответы магазин отключат от Маркета. О том, что считается некорректным ответом, читайте на странице Проверки Маркета.

Опция Включить запросы от Маркета в кабинете на странице Модули и API на вкладке Получение запросов от Маркета

Опция должна быть отключена.

Опция должна быть включена.

Большинству магазинов достаточно pull-компонента для комфортного решения всех задач, связанных с обработкой заказов.

Если вам нужно настроить push-компонент (например, это рекомендовал менеджер Маркета), воспользуйтесь дополнительной инструкцией.

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

Этот шаг нужен, если вы не используете push-компонент

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

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

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

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

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

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

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

  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}/boxes можно воспользоваться сколько угодно раз, пока заказ не перешел в статус Готов к отгрузке. Каждый новый запрос заменяет данные, переданные с предыдущим запросом.

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

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

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

Если ваш бизнес делает ярлыки сам, вам нужно будет передать запрос GET campaigns/{campaignId}/orders/{orderId}/delivery/labels/data. Он возвращает JSON с данными, из которых нужно самостоятельно собирать картинку для печати.

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

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

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

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

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

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

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

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

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

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

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

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

Действие с заказом Запрос
Перенос в следующую отгрузку 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

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

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