Запрос создает заказ на доставку на основе данных во внешней системе.
Структура запроса
Метод запроса: POST
Адрес запроса: https://api.sbis.ru/retail/order/create
| Параметр * — обязательный ** — условно-обязательный | Тип | Описание | ||
product* | string | название продукта Saby, с которым работает точка продаж. Укажите параметр delivery | ||
pointId* | integer | идентификатор точки продаж, который возвращается в результате запроса «Получить точку продаж» | ||
comment | string | примечание к заказу | ||
customer* | array{...} | информация о покупателе | ||
| externalId | string | идентификатор клиента из внешней системы | |
name* | string | имя | ||
lastname | string | фамилия | ||
patronymic | string | отчество | ||
string | адрес электронной почты | |||
phone* | string | телефон | ||
datetime* | string | дата и время, на которое создается заказ, в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС | ||
promocode | text | название ручной скидки в Saby | ||
promocodeV2 | text | название промокода | ||
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 | указатель позиции в иерархии | ||
serialNumbers | array[string] | список кодов маркировки | ||
delivery* | array{...} | информация об адресе доставки и оплате | ||
| isPickup* | boolean | признак самовывоза, где true — самовывоз, false — доставка | |
addressJSON** | string | адрес доставки в формате JSON. Заполняется, если в isPickup указано false. Используйте ответ, который вернулся из запроса «Скорректировать адрес доставки» Пример | ||
addressFull** | string | адрес, написанный в строку. Включает город, улицу, дом. Обязателен к заполнению, если в параметре 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} — идентификатор заказа.
- Зарегистрировать чек заказа, оплаченного на сайте:
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}/register-payment, где {externalId} — идентификатор заказа.
- Узнать состояние регистрации чека:
- метод: 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 | ссылка на заказ |
Параметры запроса на оплату
Параметр | Тип | Описание |
cashSum | number | сумма оплаты наличными |
bankSum | number | сумма безналичной оплаты |
salarySum | number | сумма оплаты под зарплату |
retailPlace | string | адрес сайта интернет-магазина, где проводится оплата |
paymentType | string | тип оплаты: «full», «advance», «prepay», «refund» |
nonFiscal | true/false | по умолчанию «false» |
Параметры запроса на возврат
Параметр | Тип | Описание | |
refund_type* | string | тип возврата: «full», «advance», «pre_pay» | |
| refund_position | array[{...}] | список возвращаемых позиций |
position | integer | идентификатор возвращаемой позиции | |
count | number | количество возвращаемой позиции | |
Примеры
Получить статус нескольких заказов
Создать заказ и применить промокод
Ответ при неудачном применении промокода
Зарегистрировать чек на оплату с сайта