Запрос позволяет создать заказ на доставку с помощью API-интерфейса.
Предварительно выполните сервисную авторизацию и в заголовке запроса передайте полученный token.
Структура запроса
Метод запроса: POST
Адрес запроса: https://api.sbis.ru/retail/order/create
Параметр | Тип | Описание | ||
product* | string | название продукта Saby, с которым работает точка продаж. Укажите параметр delivery | ||
pointId* | integer | идентификатор точки продаж, который возвращается в результате запроса «Получить точку продаж» | ||
comment | string | примечание к заказу | ||
customer* | array{...} | информация о покупателе | ||
| externalId | string | идентификатор клиента из внешней системы | |
name* | string | имя | ||
patronymic | string | отчество | ||
lastname | string | фамилия | ||
string | электронная почта | |||
phone* | string | номер телефона | ||
datetime* | string | дата и время, на которое создается заказ, в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС | ||
promocode | string | название ручной скидки в Saby | ||
nomenclatures* | array[{...}] | список позиций в заказе | ||
| externalId** | string(uuid) | внешний идентификатор позиции. Обязателен, если не указаны id и nomNumber | |
| id** | integer | сквозной идентификатор внешней системы. Обязателен, если не указаны externalId и nomNumber | ||
| nomNumber** | string | идентификатор позиции в Saby. Обязателен, если не указаны externalId и id | ||
| count* | number | количество позиций | ||
| cost | number | цена за одну позицию. Вы можете указать цену, отличную от той, что установлена в Saby | ||
| name | string | наименование позиции | ||
| modifiers | array[{...}] | информация о модификаторах | ||
| id* | integer | внутренний идентификатор модификатора. Отсутствует у модификаторов-заметок | ||
| hierarchicalId* | integer | идентификатор в иерархии | ||
| count* | integer | количество позиций модификатора | ||
| cost | number | цена модификатора | ||
| name | string | название блюда | ||
| priceListId* | integer | идентификатор прайс-листа, из которого получены позиции | ||
| hierarchicalId | integer | указатель позиции в иерархии | ||
| delivery* | array{...} | информация об адресе доставки и оплате | ||
| isPickup* | boolean | признак самовывоза, где true — самовывоз, false — доставка | ||
| addressJSON** | string | адрес доставки в формате JSON. Заполняется, если в isPickup указано false. Используйте ответ, который вернулся из запроса «Скорректировать адрес доставки» Пример | ||
| persons | integer | количество приборов | ||
| district | integer | идентификатор района, в который осуществляется доставка | ||
| changeAmount | number | сумма, с которой нужна сдача | ||
| paymentType* | string | способ оплаты: card, online, cash | ||
| shopURL** | string | URL, откуда поступил запрос | ||
| successURL** | string | URL для перехода при успешном выполнении запроса | ||
| errorURL** | string | URL для перехода, если запрос не выполнен | ||
Обработка заказа
С помощью API-запросов вы можете получить информацию о заказе, узнать его статус, обновить, удалить или отменить заказ.
- Запросить информацию о заказе:
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}, где {externalId} — UUID заказа.
- Изменить заказ:
- метод: PUT
- запрос: https://api.sbis.ru/retail/order/{externalId}/update, где {externalId} — UUID заказа. Отправьте всю информацию по заказу вместе с измененными данными.
- Отменить заказ:
- метод: PUT
- запрос: https://api.sbis.ru/retail/order/{externalId}/cancel, где {externalId} — UUID заказа.
- Узнать статус заказа:
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}/state, где {externalId} — UUID заказа.
- Узнать статус нескольких заказов:
- метод: GET
- запрос: https://api.sbis.ru/retail/order/state?externalIds=[{externalId}...], где {externalId} — UUID заказа.
- Запросить ссылку на оплату заказа. Для этого должны быть включены интернет-платежи.
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}/payment-link, где {externalId} — UUID заказа.
- Зарегистрировать чек заказа, оплаченного на сайте:
- метод: POST
- запрос: https://api.sbis.ru/retail/order/{externalId}/register-payment, где {externalId} — UUID заказа.
- Узнать состояние регистрации чека:
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}/state, где {externalId} — идентификатор (UUID) заказа.
Параметры ответа
Параметр | Тип | Описание | |
| state | integer | статус заказа. Возможные значения | |
| payState | integer | статус оплаты по заказу. Возможные значения | |
| payments | array[{...}] | информация об оплате. Актуален только для интернет-оплат | |
| amount | number | сумма, на которую была оплата | |
| paymentType | string | тип оплаты | |
| isClosed | boolean | принимает значение true, если оплата прошла корректно | |
| errorMessage | string | выводит информацию о чеке. При успешной регистрации отображаются данные чека, а в случае ошибки — ее детальное описание | |
| productState | integer | продуктовый статус доставки. Возможные значения | |
Параметры запроса
Параметр | Тип | Описание |
externalId * | string | идентификатор заказа |
shopURL* | string | URL, откуда поступил запрос |
successURL | string | URL для перехода при успешном выполнении запроса |
errorURL | string | URL для перехода, если запрос не выполнен |
Параметры ответа
Параметр | Тип | Описание |
link | string | ссылка на заказ |
Параметры запроса регистрации чека на оплату
Параметры запроса регистрации чека на возврат
Параметр | Тип | Описание | |
refund_type* | string | тип возврата: full, partial, pre_pay | |
refund_position | array[{...}] | список возвращаемых позиций | |
position | integer | идентификатор возвращаемой позиции | |
count | number | количество возвращаемой позиции | |
Примеры
Получить статус нескольких заказов
Создать заказ и применить промокод
Ответ при неудачном применении промокода
Зарегистрировать чек на оплату с сайта