Руководство разработчика
Методы API

Заказ на Маркете

Методы используются для реализации программы «Заказ на Маркете» и предоставляют возможность производить обмен данными по заказу, оформленному пользователем на Яндекс.Маркете. Запросы могут поступать как от Яндекс.Маркета к магазину, так и от магазина к Яндекс.Маркету.

Таблица 1. Методы, с помощью которых Яндекс.Маркет выполняет запросы к магазину

Метод

Краткое описание

POST /cart

Запрашивает у магазина информацию о товарах в корзине.

POST /order/accept

Передает заказ магазину и запрашивает подтверждение принятия заказа магазином.

POST /order/status

Уведомляет магазин о смене статуса заказа.

Магазин должен уметь обрабатывать данные запросы и возвращать ответ.

Таблица 2. Методы, с помощью которых магазин выполняет запросы к Яндекс.Маркету

Метод

Краткое описание

PUT /campaigns/{campaignId}/orders/{orderId}/status

Изменяет статус заказа.

PUT /campaigns/{campaignId}/orders/{orderId}/delivery

Изменяет условия доставки заказа.

GET /campaigns/{campaignId}/orders/{orderId}

Запрашивает информацию о конкретном заказе, оформленном на магазин в интерфейсе Яндекс.Маркета.

GET /campaigns/{campaignId}/orders

Запрашивает информацию о заказах, оформленных на магазин в интерфейсе Яндекс.Маркета.

Порядок взаимодействия через API в рамках программы «Заказ на Маркете»

   Резервирование товаров на складе

   Особенности смены статуса с PROCESSING на DELIVERY

Порядок взаимодействия через API в рамках программы «Забронировать на Маркете»

   Особенности передачи данных по пунктам самовывоза

Запрос информации о заказах

Порядок взаимодействия через API в рамках программы «Заказ на Маркете»

  1. Как только на странице корзины покупатель нажимает кнопку Оформить заказ, магазину поступает запрос методом POST /cart с целью актуализации данных по цене, наличию товара, условиям доставки и т. п. Ответ магазина должен содержать актуальные данные — они отображаются покупателю на странице оформления заказа.

  2. Как только покупатель завершает оформление заказа, на стороне Яндекс.Маркета формируется заказ со статусом RESERVED (зарезервирован), а магазину поступает запрос методом POST /order/accept на принятие заказа.

    Магазин должен отправить ответ либо с подтверждением принятия заказа (accepted=TRUE), либо с отказом от заказа (accepted=FALSE).

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

    Покупатель не подтверждает заказ:

    Яндекс.Маркет отправляет магазину запрос методом POST /order/status со статусом заказа CANCELLED (отменен).

    Покупатель подтверждает заказ и выбрана оплата при оформлении (payment-method=YANDEX):

    Яндекс.Маркет отправляет магазину запрос методом POST /order/status со статусом заказа UNPAID (не оплачен). Покупателю предоставляется два часа на совершение оплаты. После успешного проведения оплаты Яндекс.Маркет отправляет магазину запрос методом POST /order/status со статусом заказа PROCESSING (заказ можно обрабатывать). Если же оплата не совершена в течение двух часов, Яндекс.Маркет отправляет магазину запрос методом POST /order/status со статусом заказа CANCELLED (отменен).

    Внимание! Оплата при оформлении проводится через Яндекс.Деньги и возможна только по заказам российских магазинов.
    Покупатель подтверждает заказ и выбран любой другой способ оплаты:

    Яндекс.Маркет отправляет магазину запрос методом POST /order/status со статусом заказа PROCESSING (заказ можно обрабатывать).

    Таблица 3. Варианты получения статусов заказа на шаге 3

    Условие

    Промежуточный статус

    Итоговый статус

    Дальнейшие действия магазина

    Покупатель не подтвердил заказ в течение 10 минут.

    Магазин получает статус заказа CANCELLED.

    Магазин отменяет резервирование товаров на складе и завершает работу с заказом.

    Покупатель подтвердил заказ в течение 10 минут, выбрана оплата при оформлении.

    Магазин получает статус заказа UNPAID, покупатель должен произвести оплату в течение двух часов.

    Оплата произведена успешно: магазин получает статус заказа PROCESSING.

    Магазин приступает к обработке заказа.

    Оплата не произведена: магазин получает статус заказа CANCELLED.

    Магазин отменяет резервирование товаров на складе и завершает работу с заказом.

    Покупатель подтвердил заказ в течение 10 минут, выбран любой другой способ оплаты.

    Магазин получает статус заказа PROCESSING.

    Магазин приступает к обработке заказа.

  4. Если во время обработки заказа изменяются условия доставки, магазин должен отправить запрос методом PUT /campaigns/{campaignId}/orders/{orderId}/delivery, указав в теле запроса новые данные.

  5. После того как заказ подготовлен к отправке покупателю, магазин должен отправить запрос PUT /campaigns/{campaignId}/orders/{orderId}/status, указав в теле запроса новый статус заказа — DELIVERY (передан в доставку). Особенности смены статуса на DELIVERY описаны ниже.

    Если на данном этапе покупатель откажется от заказа либо выяснится, что магазин не может выполнить заказ, тогда магазин должен указать в теле запроса статус CANCELLED с уточнением причины.

  6. По возможности магазин уведомляет Яндекс.Маркет о дальнейших статусах заказа, используя запросы методом PUT /campaigns/{campaignId}/orders/{orderId}/status:

    • Если способ доставки — курьерская доставка, то после выдачи заказа покупателю магазин изменяет статус заказа с DELIVERY на DELIVERED.

    • Если способ доставки — самовывоз, то по прибытии заказа в пункт самовывоза магазин изменяет статус заказа с DELIVERY на PICKUP. После выдачи заказа покупателю магазин изменяет статус заказа с PICKUP на DELIVERED.

    • Если покупатель отменяет заказ в статусе DELIVERY либо не является за заказом в статусе PICKUP, магазин изменяет статус заказа на CANCELLED.

    Примечание. Если информация о доставке (трекинг) магазину неизвестна, сообщать о статусах PICKUP и DELIVERED необязательно.

Резервирование товаров на складе

После того как магазин принял заказ, он должен дождаться получения статуса PROCESSING, чтобы начать обработку заказа. Яндекс.Маркет сообщит данный статус не сразу, а в течение:

  • двух часов, если покупатель выбрал оплату при оформлении (payment-method=YANDEX), так как ему предоставляется два часа на проведение оплаты;

  • десяти минут, если покупатель выбрал любой другой тип оплаты, так как ему предоставляется десять минут на подтверждение заказа.

Поэтому магазин должен отложить (зарезервировать) товары из заказа на своем складе на указанное время. Если магазин не отложит заказанные пользователем товары, возможна ситуация, что к моменту получения подтверждения от Яндекс.Маркета какого-либо товара уже не будет в наличии. Помните, что отсутствие заказанного товара в наличии — одна из главных причин негативного мнения покупателей о магазине.

Особенности смены статуса с PROCESSING на DELIVERY

Рекомендуется изменять статус заказа с PROCESSING на DELIVERY (шаг 5) непосредственно в момент готовности заказа к отправке, но до передачи в службу доставки — на случай, если на этом этапе покупатель отменит заказ.

Не рекомендуется изменять статус заказа с PROCESSING на DELIVERY задолго до его готовности к отправке, так как в личном кабинете на Яндекс.Маркете покупатель не может отменить заказ в статусе DELIVERY. В этом случае он может не явиться за заказом или отказаться от заказа по прибытии курьера. Это приведет к издержкам магазина, так как комиссия за заказ списывается при присвоении ему статуса DELIVERY и возврат средств не предусмотрен.

Внимание! Максимальный срок, в течение которого магазин должен перевести заказ в статус DELIVERY с момента получения статуса PROCESSING (заказ можно выполнять) — 7 календарных дней. Если магазин не передает статус DELIVERY вовремя, заказ автоматически отменяется, а магазину выставляется ошибка.

Рекомендуется изменять статусы вовремя. Статус должен соответствовать реальному состоянию заказа, так как покупателю поступают уведомления при каждом изменении статуса.

Порядок взаимодействия через API в рамках программы «Забронировать на Маркете»

Взаимодействие через API осуществляется по той же схеме, что и в рамках программы «Заказ на Маркете», но в сокращенном варианте:

  1. Как только покупатель нажимает кнопку Забронировать, магазину поступает запрос методом POST /cart. Ответ магазина должен содержать актуальные данные.

  2. Как только покупатель завершает оформление заказа, магазину поступает запрос методом POST /order/accept. Магазин должен отправить ответ либо с подтверждением принятия заказа (accepted=TRUE), либо с отказом от заказа (accepted=FALSE).

  3. Если магазин принял заказ, Яндекс.Маркет отправляет магазину запрос методом POST /order/status со статусом заказа PROCESSING (заказ можно обрабатывать).

Внимание! 

После того, как магазин получил запрос методом POST /order/status со статусом заказа PROCESSING, от него не требуется отправлять запросы PUT /campaigns/{campaignId}/orders/{orderId}/delivery и PUT /campaigns/{campaignId}/orders/{orderId}/status.

Яндекс.Маркет автоматически переведет заказ в статус DELIVERY, затем в PICKUP. Покупатель сразу получит уведомление, что заказ находится в пункте самовывоза и он может его забрать.

Особенности передачи данных по пунктам самовывоза

  • Пункты самовывоза, в которых доступно бронирование товара, вы передаете двумя способами: в прайс-листе и с помощью API. Если в ответ на запрос методом POST /cart вы не передаете какие-либо пункты в указанном регионе, которые есть в прайс-листе, возможность бронирования товара в этих пунктах будет отключена в течение 15–20 минут до следующего обновления данных на сервисе.

    Например, вы передаете в прайс-листе информацию, что товар доступен для бронирования в десяти пунктах самовывоза в указанном регионе. При этом в ответ на запрос методом POST /cart вы передаете только шесть пунктов из десяти. Тогда, для четырех пунктов, не переданных по API, перестанет показываться возможность бронирования товара.

  • Если вы отказываетесь от заказа в ответ на запрос методом POST /order/accept, в течение 15–20 минут возможность бронирования переданного товара в указанном пункте самовывоза перестает показываться до следующего обновления данных на сервисе.

Запрос информации о заказах

В любой момент магазин может получить актуальную информацию как о конкретном заказе, так и обо всех своих заказах, оформленных в интерфейсе Яндекс.Маркета. Чтобы получить эти данные, магазину необходимо выполнить запросы методами GET /campaigns/{campaignId}/orders/{orderId} и GET /campaigns/{campaignId}/orders.

Заказ на Маркете Методы API