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

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

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

email

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

    Параметр

    Тип

    Описание

    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»
    Вид типа способа расчета
    nonFiscal

    boolean

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

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

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

    Тип

    Описание

    refund_type*

    string

    Тип возврата: «full», «advance», «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.