Запрос позволяет с помощью API-интерфейса создать заказ на доставку на основе данных во внешней системе.
Структура запроса
Метод запроса: POST
Адрес запроса: https://api.sbis.ru/retail/order/create
Параметр | Тип | Описание | ||
product* | string | Постоянное значение параметра — «delivery» | ||
pointId* | integer | Идентификатор точки продаж, который возвращается в результате запроса «Получить точку продаж» | ||
comment | string | Примечание к заказу | ||
customer* | array{...} | Массив с информацией о покупателе | ||
externalId | string | Идентификатор клиента из внешней системы | ||
name* | string | Данные покупателя | ||
lastname | string | |||
patronymic | string | |||
string | ||||
phone* | string | |||
datetime* | string | Дата и время, на которое создается заказ, в формате гггг-мм-дд чч:мм:сс | ||
promocode | string | Название ручной скидки в Presto | ||
nomenclatures* | array[{...}] | Список массивов номенклатуры заказа | ||
externalId** | string(uuid) | Внешний идентификатор номенклатуры. Обязателен, если не указаны id и nomNumber | ||
id** | integer | Сквозной идентификатор внешней системы. Обязателен, если не указаны externalId и nomNumber | ||
nomNumber** | string | Идентификатор номенклатуры в СБИС. Обязателен, если не указаны externalId и id | ||
count* | number | Количество позиций | ||
cost | number | Цена за одну позицию. Вы можете указать цену, отличную от той, что установлена в СБИС | ||
name | string | Наименование позиции | ||
modifiers | array[{...}] | Список массивов с информацией о модификаторах | ||
id* | integer | Внутренний идентификатор модификатора. Отсутствует у модификаторов-заметок | ||
hierarchicalId* | integer | Идентификатор в иерархии | ||
count* | integer | Количество позиций модификатора | ||
cost | number | Цена модификатора | ||
name | string | Название блюда | ||
priceListId* | integer | Идентификатор прайс-листа, из которого получены номенклатурные позиции | ||
hierarchicalId | integer | Указатель номенклатурной позиции в иерархии | ||
delivery* | array{...} | Массив с информацией об адресе доставки и оплате | ||
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 для перехода при неудаче | ||
isPickup* | boolean | Признак самовывоза, где «true» — самовывоз, «false» — доставка |
Обработка заказа
С помощью 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», «advance», «pre_pay» | |
refund_position | array[{...}] | Cписок возвращаемых позиций | |
position | integer | Идентификатор возвращаемой позиции | |
count | number | Количество возвращаемой позиции |
Примеры
Создать заказ
В качестве примера используется функция «cURL».
В качестве примера используется библиотека «Requests».