Предварительный расчет заказа
Описание
Метод preorder позволяет выполнить предварительный расчет заказа с учетом промоакций и баллов участника программы лояльности.
Результат запроса может использоваться для отображения итоговых сумм, скидок и списаний до создания окончательного заказа.
Метод не создает заказ в системе, а возвращает расчетное состояние заказа с примененными правилами маркета и лояльности. Для создания рассчитанного заказа после успешного выполнения preorder используйте метод preorder_commit.
URL-адрес
Метод: POST
https://example.com/api/v1.1/market/orders/preorder
Параметры запроса
| Параметр | Тип | Пример | Обязательный | Описание |
|---|---|---|---|---|
| external_id | string | "12" | Да | Внешний идентификатор заказа |
| matching | string | "email" | Да | Способ поиска профиля участника программы лояльности |
| string | "example@example.com" | Если matching = email | Email участника | |
| phone | string | "+79000000000" | Если matching = phone | Телефон участника |
| profile_id | string | "696e304f547840a7286619e0" | Если matching = profile_id | Идентификатор профиля |
| data | JSON object | { | Да | Объект |
Поле lines обязательно и должно содержать как минимум одну позицию заказа.
Объект data
| Параметр | Тип | Пример | Обязательный | Описание |
|---|---|---|---|---|
| endpoint | string | "bot", "website" | Да | Источник заказа (точка контакта). Должен быть настроен в Маркете |
| status | string | "new", "confirmed", "paid" | Да | Статус заказа. Используются статусы, настроенные в платформе |
| currency | string | "RUB", "USD", "EUR" | Да | Валюта заказа (трехбуквенный код ISO) |
| total_price | string | "2500.00" | Да | Общая стоимость заказа до применения скидок |
| final_total_price | string | "2150.00" | Да | Итоговая стоимость заказа после применения всех скидок |
| delivery_cost | string | "300.00" | Нет | Стоимость доставки |
| create_time | string (ISO 8601) | "2026-02-18T13:01:05.141Z" | Нет | Дата и время создания заказа. Если не передано, используется текущее время сервера |
| region | string | "region_moscow" | Нет | Идентификатор региона для применения региональных цен и акций |
| lines | array | См. ниже раздел "Массив lines" | Да | Массив позиций заказа. Должен содержать минимум 1 элемент |
| promocodes | array | См. ниже раздел "Массив promocodes" | Нет | Массив промокодов, примененных к заказу |
| applied_promotions | array | См. ниже раздел "Массив applied_promotions" | Нет | Промоакции, примененные к данному заказу. |
| redeem_points | array | См. ниже раздел "Массив redeem_points" | Да, если указано type="redeem_points" в applied_promotions | Массив списаний баллов по типам валют |
| custom_fields | object | | Нет | Дополнительные поля заказа |
| tags | array | | Нет | Теги для маркировки заказа |
Массив lines
Массив содержит информацию о позициях заказа. Должен содержать минимум 1 позицию.
Каждая позиция вынесена в отдельный объект внутри массива со следующими параметрами:
| Параметр | Тип | Пример | Обязательный | Описание |
|---|---|---|---|---|
| external_id | string | "line_1" | Да | Внешний идентификатор позиции в системе клиента |
| product | string | "iphone17pmb256" | Да* | Идентификатор продукта |
| sku | string | "IPHONE17-256-BLACK" | Да* | Идентификатор SKU |
| line_number | integer | 1 | Нет | Порядковый номер линии в заказе |
| count | integer | 1 | Да | Количество единиц товара |
| base_price_per_item | string | "139999.00" | Да | Базовая цена за единицу товара |
| min_price_per_item | string | "130000.00" | Нет | Минимально допустимая цена за единицу товара |
| final_price_per_item | string | "139500.00" | Да | Финальная цена за единицу после применения всех скидок |
| status | string | "new" | Нет | Статус позиции заказа |
| custom_fields | object | {"color": "black", "size": "XL"} | Нет | Дополнительные поля позиции |
| applied_promotions | array | См. ниже раздел "Массив applied_promotions" | Нет | Промоакции, примененные к данной позиции. |
* — обязателен один из параметров: product или sku