1. Saby
  2. База знаний
  3. API
  4. API Presto
  5. Заказать доставку
  6. Создать заказ на доставку

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

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

Запрос позволяет создать заказ на доставку с помощью 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

Фамилия

email

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} — идентификатор заказа.
  • Параметры ответа

    Параметр

    Тип

    Описание

    state

    integer

    Статус заказа
    payments

    array[{...}]

    Список массивов с информацией об оплате
     amount

    number

    Сумма, на которую была оплата
    paymentType

    string

    Тип оплаты
    isClosed

    boolean

    Принимает значение true, если оплата прошла корректно
    errorMessage

    string

    В случае некорректной оплаты выводится описание ошибки

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

    Параметр
    * — обязательный

    Тип

    Описание

    externalId *

    string

    Идентификатор заказа
    shopURL*

    string

    URL, откуда поступил запрос
    successURL

    string

    URL для перехода при успешном выполнении запроса
    errorURL

    string

    URL для перехода, если запрос не выполнен

    Параметры ответа

    Параметр

    Тип

    Описание

    link

    string

    Ссылка на заказ

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

    Параметр
    * — обязательный

    Тип

    Описание

    Вид расчета*
    cashSum

    number

    Cумма оплаты наличными
    bankSum

    number

    Cумма безналичной оплаты
    salarySum

    number

    Cумма оплаты под зарплату
    paymentType*

    string

    Тип оплаты: full, advance, prepay, refund, full_prepay, credit
    Вид типа способа расчета
    nonFiscal

    boolean

    Признак нефискального способа расчета. По умолчанию false
    Место расчета
    retailPlace

    string

    Адрес сайта интернет-магазина, где проводится оплата

    Параметры запроса регистрации чека на возврат

    Параметр
    * — обязательный

    Тип

    Описание

    refund_type*

    string

    Тип возврата: full, partial, pre_pay
    refund_position

    array[{...}]

    Cписок возвращаемых позиций
     position

    integer

    Идентификатор возвращаемой позиции
    count

    number

    Количество возвращаемой позиции

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

Примеры

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

Создать заказ с помощью функции cURL

Создать заказ с помощью библиотеки Requests

Ответ

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

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

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

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

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

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

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

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