Обновить заказ в системе ресторана
Обновление состава заказа в системе партнера по инициативе Яндекс Еды. Для использования данного метода требуется согласование с сотрудниками Яндекса. Передается объект заказа целиком. Актуальная версия модели запроса - application/vnd.eats.order.v2+json
Request
PUT
/order/{orderId}
Path parameters
|
Name |
Description |
|
orderId* |
Type: string Идентификатор заказа в системе партнера |
Body
application/vnd.eats.order.v2+json
{
"platform": "YE",
"discriminator": "marketplace",
"eatsId": "190330-12345678",
"restaurantId": "937c57f6-4508-4858-be7f-20691a16fbb0",
"deliveryInfo": {
"clientName": "Иванов Иван Иванович",
"phoneNumber": "+79031111111 доб. 4432",
"additionalPhoneNumbers": [
"+79031111111 доб. 4432"
],
"deliveryDate": "1937-01-01T12:00:27.870000+00:20",
"deliveryAddress": {
"full": "Москва, улица Тверская, дом 1 строение 4, подъезд 2. 4-й этаж, код домофона: 123 К 4567",
"latitude": "55.756994",
"longitude": "37.614006"
}
},
"paymentInfo": {
"paymentType": "CARD",
"itemsCost": 100,
"deliveryFee": 100,
"total": 200,
"change": 500
},
"items": [
{
"id": "937c57f6-4508-4858-be7f-20691a16fbb0",
"name": "Пицца Пепперони",
"quantity": 3.5,
"price": 100,
"modifications": [
{
"id": "937c57f6-4508-4858-be7f-20691a16fbb0",
"group_id": "937c57f6-4508-4858-be7f-20691a16fbb1",
"name": "Европейские приборы",
"quantity": 3,
"price": 100
}
],
"promos": [
{
"type": "GIFT",
"discount": 200,
"partner_discount": 100,
"yandex_discount": 100
}
],
"comboInfo": {
"id": "937c57f6-4508-4858-be7f-20691a16fbb0",
"componentId": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
],
"persons": 2,
"comment": "Дополнительная информация о заказе: ...",
"promos": [
{
"type": "GIFT",
"discount": 200,
"partner_discount": 100,
"yandex_discount": 100
}
]
}
|
Name |
Description |
|
...rest |
oneOf MarketplaceOrderV2 Актуальная версия модели заказа по схеме доставки "marketplace" |
|
...rest |
oneOf YandexOrderV2 Актуальная версия модели заказа по схеме доставки "yandex". |
|
...rest |
oneOf PickupOrderV1 Актуальная версия модели заказа по схеме доставки "pickup" |
MarketplaceOrderV2
Актуальная версия модели заказа по схеме доставки "marketplace"
|
Name |
Description |
|
comment* |
Type: string Дополнительная информация о заказе Example: |
|
deliveryInfo* |
Type: MarketplaceOrderDeliveryInfo Информация о доставке |
|
discriminator* |
Type: string Дискриминатор схемы обьекта. Для MarketplaceOrder равен "marketplace" Example: |
|
eatsId* |
Type: string Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD Example: |
|
items* |
Type: OrdersItem[] |
|
paymentInfo* |
|
|
promos* |
Type: OrdersPromoItem[] Список акций, действующих на весь заказ. Если у заказа объект "promos" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции |
|
restaurantId* |
Type: string Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4 Example: |
|
persons |
Type: integer Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов Example: |
|
platform |
Type: string Идентификатор платформы. YE - Yandex Eda, DC - Delivery club Enum: |
YandexOrderV2
Актуальная версия модели заказа по схеме доставки "yandex".
|
Name |
Description |
|
comment* |
Type: string Дополнительная информация о заказе Example: |
|
deliveryInfo* |
Type: YandexOrderDeliveryInfo Информация о доставке. |
|
discriminator* |
Type: string Дискриминатор схемы обьекта. Для YandexOrder равен "yandex". Example: |
|
eatsId* |
Type: string Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD. Example: |
|
items* |
Type: OrdersItem[] |
|
paymentInfo* |
Type: YandexOrderPaymentInfo |
|
promos* |
Type: OrdersPromoItem[] Список акций, действующих на весь заказ. Если у заказа объект "promos" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции |
|
restaurantId* |
Type: string Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4. Example: |
|
persons |
Type: integer Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов Example: |
|
platform |
Type: string Идентификатор платформы:
Enum: |
PickupOrderV1
Актуальная версия модели заказа по схеме доставки "pickup"
|
Name |
Description |
|
comment* |
Type: string Дополнительная информация о заказе Example: |
|
deliveryInfo* |
Type: PickupOrderDeliveryInfo Информация о доставке |
|
discriminator* |
Type: string Дискриминатор схемы обьекта. Для PickupOrder равен "pickup" Example: |
|
eatsId* |
Type: string Сквозной идентификатор заказа на стороне Яндекс Еды в формате DDDDDD-DDDDDD Example: |
|
items* |
Type: OrdersItem[] |
|
paymentInfo* |
Type: PickupOrderPaymentInfo |
|
promos* |
Type: OrdersPromoItem[] Список акций, действующих на весь заказ. Если у заказа объект "promos" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции |
|
restaurantId* |
Type: string Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4 Example: |
|
persons |
Type: integer Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов Example: |
|
platform |
Type: string Идентификатор платформы. YE - Yandex Eda, DC - Delivery club Enum: |
MarketplaceOrderDeliveryInfo
|
Name |
Description |
|
clientName* |
Type: string Имя клиента в сервисе Яндекс Еда Example: |
|
deliveryAddress* |
Type: DeliveryAddress Информация об адресе доставки |
|
deliveryDate* |
Type: string<date-time> Дата доставки (к которой клиент ожидает доставку заказа), в формате RFC3339 с дробной частью секунд (Y-m-d\TH:i:s.uP) Example: |
|
phoneNumber* |
Type: string Номер телефона для связи с клиентом в международном формате. Состоит из частей "+<код страны><номер>". Может содержать добавочный номер: "+<код страны><номер> доб. <добавочный номер>". Example: |
|
additionalPhoneNumbers |
Type: string[] Список дополнительных номеров для связи с клиентом. Example: |
OrdersItem
|
Name |
Description |
|
id* |
Type: string ID позиции меню в системе партнера Example: |
|
modifications* |
Type: OrdersModificationItem[] Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками "modifications" |
|
price* |
Type: number<double> Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций Example: |
|
promos* |
Type: OrdersPromoItem[] Список акций, действующих на текущее блюдо. Если у блюда объект "promos" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции |
|
quantity* |
Type: number<float> Количество позиции в заказе Example: |
|
comboInfo |
Type: OrderItemComboInfo Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо. |
|
name |
Type: string Наименование позиции меню Example: |
MarketplaceOrderPaymentInfo
|
Name |
Description |
|
change* |
Type: number<double> Сумма, с которой потребуется сдача. Example: |
|
deliveryFee* |
Type: number<double> Стоимость доставки Example: |
|
itemsCost* |
Type: number<double> Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле. Example: |
|
paymentType* |
Type: string Информация о типе оплаты. CARD – уже оплаченный заказа, CASH – неоплаченный заказ. Enum: |
|
total |
Type: number<double> Общая стоимость заказа. То есть itemsCost + deliveryFee Example: |
OrdersPromoItem
|
Name |
Description |
|
discount* |
Type: number Сумма скидки в валюте, оплачиваемая партнёром Example: |
|
type* |
Type: string Тип акции. Может быть подарок "GIFT", процентная скидка "PERCENTAGE", софинансируемая скидка "COFINANCE", фиксированная скидка "FIXED" Example: Enum: |
|
partner_discount |
Type: number Часть суммы скидки в валюте, оплачиваемая партнером Example: |
|
yandex_discount |
Type: number Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой Example: |
YandexOrderDeliveryInfo
|
Name |
Description |
|
courierArrivementDate* |
Type: string<date-time> Дата, когда придет курьер в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\TH:i:s.uP). Example: |
|
additionalPhoneNumbers |
Type: string[] Список дополнительных номеров для связи с клиентом. Example: |
|
clientName |
Type: string Имя клиента в сервисе Яндекс Еда Example: |
|
phoneNumber |
Type: string Номер телефона для связи с клиентом в международном формате. Состоит из частей "+<код страны><номер>". Может содержать добавочный номер: "+<код страны><номер> доб. <добавочный номер>". Example: |
|
pickupCode |
Type: string Код для идентификации курьера Example: |
|
realPhoneNumber |
Type: string Номер телефона для связи с клиентом в международном формате. Состоит из частей "+<код страны><номер>". Указывается в случае если клиент дает согласие на обработку своих персональных данных Example: |
YandexOrderPaymentInfo
|
Name |
Description |
|
itemsCost* |
Type: number<double> Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле. Example: |
|
paymentType* |
Type: string Информация о типе оплаты. CARD – оплаченный заказа, CASH – неоплаченный заказ. Enum: |
PickupOrderDeliveryInfo
|
Name |
Description |
|
clientArrivementDate* |
Type: string<date-time> Дата, когда придет клиент в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\TH:i:s.uP) Example: |
|
clientName* |
Type: string Имя клиента в сервисе Яндекс Еда Example: |
|
phoneNumber* |
Type: string Номер телефона для связи с клиентом в международном формате. Состоит из частей "+<код страны><номер>". Может содержать добавочный номер: "+<код страны><номер> доб. <добавочный номер>". Example: |
|
additionalPhoneNumbers |
Type: string[] Список дополнительных номеров для связи с клиентом. Example: |
PickupOrderPaymentInfo
|
Name |
Description |
|
change* |
Type: number<double> Сумма, с которой потребуется сдача. Example: |
|
itemsCost* |
Type: number<double> Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле. Example: |
|
paymentType* |
Type: string Информация о типе оплаты Enum: |
|
total |
Type: number<double> Общая стоимость заказа Example: |
DeliveryAddress
|
Name |
Description |
|
full* |
Type: string Полный адрес Example: |
|
latitude* |
Type: string Широта точки доставки Example: |
|
longitude* |
Type: string Долгота точки доставки Example: |
OrdersModificationItem
|
Name |
Description |
|
id* |
Type: string ID модификатора в системе партнера Example: |
|
price* |
Type: number<double> Цена модификатора для пункта меню (например - дополнительный соус) Example: |
|
quantity* |
Type: integer Количество в заказе Example: |
|
group_id |
Type: string ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании. Example: |
|
name |
Type: string Наименование модификатора Example: |
OrderItemComboInfo
Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.
|
Name |
Description |
|
componentId* |
Type: string ID компонента комбо, к которому относится данная позиция. Example: |
|
id* |
Type: string ID комбо из меню, к которому относится данная позиция. Example: |
Responses
200 OK
Обновление заказа успешно обработано внутренней системой ресторана
Body
application/json
{
"result": "OK"
}
|
Name |
Description |
|
result |
Type: string Example: |
400 Bad Request
Bad request. Ошибка в параметрах. В теле ответа ожидается массив с объектом из списка ошибок
ErrorItem
|
Name |
Description |
|
code |
Type: integer Согласованный с Яндекс.Еда числовой код ошибки Example: |
|
description |
Type: string Сообщение об ошибке Example: |
401 Unauthorized
Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай.
Body
application/json
{
"reason": "Access token has been expired. You should request a new one"
}
|
Name |
Description |
|
reason* |
Type: string Причина, по которой не прошла авторизация Example: |
404 Not Found
Заказ не найден в системе. В теле ответа ожидается массив с объектом из списка ошибок
422 Unprocessable Entity
Заказ не может быть обновлен
500 Internal Server Error
Внутренние ошибки сервера. В теле ответа ожидается массив с объектом из списка ошибок
No longer supported, please use an alternative and newer version.