Создать заказ на доставку по API для Saby Retail

Создать заказ на доставку по API для Saby Retail

Запрос создает заказ на доставку на основе данных во внешней системе.

Структура запроса

Метод запроса: POST

Адрес запроса: https://api.sbis.ru/retail/order/create

Параметр
* — обязательный
** — условно-обязательный
ТипОписание
product*stringПостоянное значение параметра — «delivery»
pointId*integerИдентификатор точки продаж, который возвращается в результате запроса «Получить точку продаж»
commentstringПримечание к заказу
customer*array{...}Массив с информацией о покупателе

 

externalIdstringИдентификатор клиента из внешней системы
name*stringИмя
lastnamestringФамилия
patronymicstringОтчество
emailstringАдрес электронной почты
phone*stringТелефон
datetime*stringДата и время, на которое создается заказ, в формате гггг-мм-дд чч:мм:сс
promocodetextНазвание ручной скидки в Saby
promocodeV2textНазвание промокода
nomenclatures*array[{...}]Список массивов номенклатуры заказа
 externalId**

string(uuid)

Внешний идентификатор номенклатуры. Обязателен, если не указаны id и nomNumber
id**integerСквозной идентификатор внешней системы. Обязателен, если не указаны externalId и nomNumber
nomNumber**stringИдентификатор номенклатуры в Saby. Обязателен, если не указаны externalId и id
count*numberКоличество позиций
costnumberЦена за одну позицию. Вы можете указать цену, отличную от той, что установлена в Saby
namestringНаименование позиции
modifiersarray[{...}]Список массивов с информацией о модификаторах

 

id*integerВнутренний идентификатор модификатора. Отсутствует у модификаторов-заметок
hierarchicalId*integerИдентификатор в иерархии
count*integerКоличество позиций модификатора
costnumberЦена модификатора
namestringНазвание блюда
priceListId*integerИдентификатор прайс-листа, из которого получены номенклатурные позиции
hierarchicalIdintegerУказатель номенклатурной позиции в иерархии
serialNumbersarray[string]Список кодов маркировки
delivery*array{...}Массив с информацией об адресе доставки и оплате

 

addressJSON**stringАдрес доставки в формате JSON. Пример
Обязателен к заполнению, если в параметре isPickup передано «false». Получить необходимое значение можно в запросе «Скорректировать адрес доставки»
addressFull**stringАдрес, написанный в строку. Включает город, улицу, дом. Обязателен к заполнению, если в параметре isPickup передано «false»
personsintegerКоличество приборов
districtintegerИдентификатор района, в который осуществляется доставка
changeAmountnumberСумма, с которой нужна сдача
paymentType*stringСпособ оплаты: «card», «online», «cash»
shopURL**stringURL, с которого производится вызов
successURL**stringURL для перехода при успехе
errorURL**stringURL для перехода при неудаче
isPickup*booleanПризнак самовывоза

Обработать заказ

С помощью 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} — идентификатор заказа.
  • В ответ вы получите

    Имя поля
    * — обязательный
    ТипОписание
    stateintegerСтатус заказа
    paymentsarray[{...}]Список массивов с информацией об оплате

     

    amountnumberСумма, на которую была оплата
    paymentTypestringТип оплаты
    isClosedbooleanПринимает значение «true», если оплата прошла корректно
    errorMessagestringВ случае некорректной оплаты выводится описание ошибки

  • Запросить ссылку на оплату заказа. Для этого должны быть включены интернет-платежи.
    • метод: GET
    • запрос: https://api.sbis.ru/retail/order/{externalId}/payment-link, где {externalId} — идентификатор заказа.
  • Параметры запроса

    Параметр
    * — обязательный
    ТипОписание
    externalId *stringИдентификатор заказа
    shopURL*stringURL, с которого производится вызов
    successURLstringURL для перехода при успехе
    errorURLstringURL для перехода при неудаче

    В ответ вы получите

    ПараметрТипОписание
    link stringСсылка на заказ

  • Зарегистрировать чек заказа, оплаченного на сайте:
    • метод: GET
    • запрос: https://api.sbis.ru/retail/order/{externalId}/register-payment, где {externalId} — идентификатор заказа.
  • Параметры запроса на оплату

    Параметр
    * — обязательный
    ТипОписание
    cashSumnumberCумма оплаты наличными
    bankSumnumberCумма безналичной оплаты
    salarySumnumberCумма оплаты под зарплату
    paymentTypestringТип оплаты: «full», «advance», «prepay», «refund»
    nonFiscaltrue/falseПо умолчанию «false»

    Параметры запроса на возврат

    Параметр
    * — обязательный
    ТипОписание
    refund_type*stringТип возврата: «full», «advance», «pre_pay»

     

    refund_positionarray[{...}]Cписок возвращаемых позиций
    positionintegerИдентификатор возвращаемой позиции
    countnumberКоличество возвращаемой позиции

  • Узнать состояние регистрации чека:
    • метод: GET
    • запрос: https://api.sbis.ru/retail/order/{externalId}/state, где {externalId} — идентификатор заказа.

Примеры

Создать заказ

*.php
*.php
*.py
*.py

В качестве примера используется функция «cURL».

В качестве примера используется библиотека «Requests».

Получить статус заказа

Создать заказ и применить промокод

Ответ при неудачном применении промокода

Получить ссылку на оплату

Зарегистрировать чек на оплату с сайта

Зарегистрировать чек на возврат

Ответ на запрос регистрации чека

Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.