Запрос позволяет создать заказ на доставку с помощью API-интерфейса.
Предварительно выполните сервисную авторизацию и в заголовке запроса передайте полученный token.
Структура запроса
Метод запроса: POST
Адрес запроса: https://api.sbis.ru/retail/order/create
Параметр | Тип | Описание | ||
| product* | string | Постоянное значение параметра — «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} — идентификатор заказа.
- Изменить заказ:
- метод: PUT
- запрос: https://api.sbis.ru/retail/order/{externalId}/update, где {externalId} — идентификатор заказа. Отправьте всю информацию по заказу вместе с измененными данными.
- Отменить заказ:
- метод: PUT
- запрос: https://api.sbis.ru/retail/order/{externalId}/cancel, где {externalId} — идентификатор заказа.
- Узнать статус заказа:
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}/state, где {externalId} — идентификатор заказа.
- Запросить ссылку на оплату заказа. Для этого должны быть включены интернет-платежи.
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}/payment-link, где {externalId} — идентификатор заказа.
- Зарегистрировать чек заказа, оплаченного на сайте:
- метод: POST
- запрос: https://api.sbis.ru/retail/order/{externalId}/register-payment, где {externalId} — идентификатор заказа.
- Узнать состояние регистрации чека:
- метод: GET
- запрос: https://api.sbis.ru/retail/order/{externalId}/state, где {externalId} — идентификатор заказа.
Параметры ответа
Параметр | Тип | Описание | |
| state | integer | Статус заказа | |
| payments | array[{...}] | Список массивов с информацией об оплате | |
| amount | number | Сумма, на которую была оплата | |
| paymentType | string | Тип оплаты | |
| isClosed | boolean | Принимает значение true, если оплата прошла корректно | |
| errorMessage | string | В случае некорректной оплаты выводится описание ошибки | |
Параметры запроса
Параметр | Тип | Описание |
| externalId * | string | Идентификатор заказа |
| shopURL* | string | URL, откуда поступил запрос |
| successURL | string | URL для перехода при успешном выполнении запроса |
| errorURL | string | URL для перехода, если запрос не выполнен |
Параметры ответа
Параметр | Тип | Описание |
| link | string | Ссылка на заказ |
Параметры запроса регистрации чека на оплату
Параметры запроса регистрации чека на возврат
Параметр | Тип | Описание | |
| refund_type* | string | Тип возврата: full, partial, pre_pay | |
| refund_position | array[{...}] | Cписок возвращаемых позиций | |
| position | integer | Идентификатор возвращаемой позиции | |
| count | number | Количество возвращаемой позиции | |
Примеры
Создать заказ с помощью функции cURL
Создать заказ с помощью библиотеки Requests
Ответ