Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Для пользователяДля разработчикаДля администратора
Веб-сайтБаза знаний
Русский
  • Русский
  • English
v75
Войти
  • API пользователя
  • Взаимодействие с API
  • Матчинг
  • Профили
  • Базы данных
  • Ресурсы
  • Сегменты
  • Стоп-списки
  • Шаблоны
  • Рассылки
  • Кампании
  • Сценарии (цепочки)
  • Промокоды
  • Программы лояльности
    • Получить уровень профиля в программе лояльности
    • Экспорт транзакций баллов
    • Сгораемые баллы за период
    • Получение транзакций по счёту профиля
    • Получение списка триггерных промоакций
    • Начисление баллов участнику
    • Списание баллов участника
    • Подтверждение временной транзакции
    • Предварительный расчет заказа
    • Подтверждение заказа
    • Отмена временной транзакции
    • Отмена балльной транзакции
    • Получение баланса балльного счёта
    • Регистрация участника в программе лояльности
    • Удаление участника из программы лояльности
  • Цели
  • Пуши приложений
  • Маркет
  • Отчеты и статистика
  • Сендеры
  • Объекты
  • Запросы к внешним базам данных
  • Прочее
  • Список API-методов
  • Импорт и настройка коллекции API-методов в Postman
  • SDK
  • Программы лояльности
  • Предварительный расчет заказа
Документация для версии v75

Предварительный расчет заказа

Описание​

Метод preorder позволяет выполнить предварительный расчет заказа с учетом промоакций и баллов участника программы лояльности.

Результат запроса может использоваться для отображения итоговых сумм, скидок и списаний до создания окончательного заказа.

подсказка

Метод не создает заказ в системе, а возвращает расчетное состояние заказа с примененными правилами маркета и лояльности. Для создания рассчитанного заказа после успешного выполнения preorder используйте метод preorder_commit.

URL-адрес​

Метод: POST

https://example.com/api/v1.1/market/orders/preorder

Параметры запроса​

ПараметрТипПримерОбязательныйОписание
tokenstring"abcdefghijklmnqrstuvwxyz"ДаAPI-токен
external_idstring"12"ДаВнешний идентификатор заказа
matchingstring

"email"
"phone"
"profile_id"
"custom"

Да

Способ поиска профиля участника программы лояльности

emailstring"example@example.com"Если matching = emailEmail участника
phonestring"+79000000000"Если matching = phoneТелефон участника
profile_idstring"696e304f547840a7286619e0"Если matching = profile_idИдентификатор профиля
dataJSON object
{
   "endpoint": "site",
   "status": "new",
   "currency": "RUB",
   "total_price": "139999.00",
   "lines": [...]
}
Да

Объект data содержит данные заказа

подсказка

Поле lines обязательно и должно содержать как минимум одну позицию заказа.

Объект data​

ПараметрТипПримерОбязательныйОписание
endpointstring"bot", "website"ДаИсточник заказа (точка контакта). Должен быть настроен в Маркете
statusstring"new", "confirmed", "paid"ДаСтатус заказа. Используются статусы, настроенные в платформе
currencystring"RUB", "USD", "EUR"ДаВалюта заказа (трехбуквенный код ISO)
total_pricestring"2500.00"ДаОбщая стоимость заказа до применения скидок
final_total_pricestring"2150.00"ДаИтоговая стоимость заказа после применения всех скидок
delivery_coststring"300.00"НетСтоимость доставки
create_timestring (ISO 8601)"2026-02-18T13:01:05.141Z"НетДата и время создания заказа. Если не передано, используется текущее время сервера
regionstring"region_moscow"НетИдентификатор региона для применения региональных цен и акций
linesarrayСм. ниже раздел "Массив lines"ДаМассив позиций заказа. Должен содержать минимум 1 элемент
promocodesarrayСм. ниже раздел "Массив promocodes"НетМассив промокодов, примененных к заказу
applied_promotionsarrayСм. ниже раздел "Массив applied_promotions"НетПромоакции, примененные к данному заказу.
redeem_pointsarrayСм. ниже раздел "Массив redeem_points"Да, если указано type="redeem_points" в applied_promotionsМассив списаний баллов по типам валют
custom_fieldsobject
{
"field1": "value1",
"field2": "value2"
}
НетДополнительные поля заказа
tagsarray
[
"summer_sale",
"first_order"
]
НетТеги для маркировки заказа

Массив lines​

Массив содержит информацию о позициях заказа. Должен содержать минимум 1 позицию.

Каждая позиция вынесена в отдельный объект внутри массива со следующими параметрами:

ПараметрТипПримерОбязательныйОписание
external_idstring"line_1"ДаВнешний идентификатор позиции в системе клиента
productstring"iphone17pmb256"Да*Идентификатор продукта
skustring"IPHONE17-256-BLACK"Да*Идентификатор SKU
line_numberinteger1НетПорядковый номер линии в заказе
countinteger1ДаКоличество единиц товара
base_price_per_itemstring"139999.00"ДаБазовая цена за единицу товара
min_price_per_itemstring"130000.00"НетМинимально допустимая цена за единицу товара
final_price_per_itemstring"139500.00"ДаФинальная цена за единицу после применения всех скидок
statusstring"new"НетСтатус позиции заказа
custom_fieldsobject{"color": "black", "size": "XL"}НетДополнительные поля позиции
applied_promotionsarrayСм. ниже раздел "Массив applied_promotions"НетПромоакции, примененные к данной позиции.

* — обязателен один из параметров: product или sku

Массив promocodes​

Массив содержит объекты с информацией о промокодах.

Полное описание структуры промокода можно найти в этой статье.

ПараметрТипПримерОбязательныйОписание
codestring"SUMMER20"ДаКод промокода
pool_idinteger42ДаИдентификатор пула промокодов

Массив redeem_points​

Массив с инфомацией о списании баллов лояльности. Каждый объект описывает отдельное списание.

Полное описание структуры списания баллов можно найти в этой статье.

ПараметрТипПримерОбязательныйОписание
points_currency_iidinteger1Да*Внутренний идентификатор типа баллов
points_currency_eidstring"bonus1"Да*Внешний идентификатор типа баллов
namestring"Бонусные баллы"НетНазвание типа баллов
amountinteger499ДаКоличество баллов для списания

* — обязателен один из параметров: points_currency_iid или points_currency_eid

Массив applied_promotions​

подсказка

Массив applied_promotions может содержаться как в объекте data, так и в массиве lines внутри этого объекта. В первом случае в массиве будут переданы промоакции, применяемые к продуктам, во втором — акции, применяемые к заказу.

Массив применяемых к заказу промоакций. Каждый объект массива описывает отдельную промоакцию.

ПараметрТипПримерОбязательныйОписание
typestring"discount", "accrue_points", "redeem_points", "code_issue", "message"ДаТип промоакции
promotionobject
"promotion": {
"external_id": "promo_1",
"name": "Summer Sale"
}
ДаОбъект с идентификатором и названием промоакции
amountstring"150.00"Да, если type равен discount,accrue_points или redeem_pointsРазмер скидки или количество баллов
points_infoobject
"points_info": {
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Бонусные баллы",
"amount": "50"
}
Да, если type равен accrue_points или redeem_pointsОбъект с информацией о баллах

Структура объекта points_info выглядит следующим образом:

ПараметрТипПримерОбязательныйОписание
points_currency_iidinteger1Да*Внутренний идентификатор типа баллов
points_currency_eidstring"bonus1"Да*Внешний идентификатор типа баллов
namestring"Бонусные баллы"НетНазвание типа баллов
amountstring"6999"ДаКоличество баллов
expiration_datestring (ISO 8601)"2027-02-18T00:00:00.000Z"НетДата сгорания начисленных баллов

* — обязателен один из параметров: points_currency_iid или points_currency_eid

Пример запроса​

  • JSON
  • XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"external_id": "12",
"matching": "email",
"email": "example@example.com",
"data": {
"endpoint": "site",
"status": "new",
"delivery_cost": "0.00",
"total_price": "139999.00",
"currency": "RUB",
"redeem_points": [
{
"points_currency_iid": 1,
"amount": 499
}
],
"lines": [
{
"external_id": "line___ASTGRf",
"product": "iphone17pmb256",
"base_price_per_item": "139999.00",
"min_price_per_item": "0.00",
"final_price_per_item": "139999.00",
"count": 1,
"custom_fields": {},
"currency": "RUB"
}
]
}
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<external_id>12</external_id>
<matching>email</matching>
<email>example@example.com</email>
<data>
<endpoint>site</endpoint>
<status>new</status>
<delivery_cost>0.00</delivery_cost>
<total_price>139999.00</total_price>
<currency>RUB</currency>
<redeem_points>
<points_currency_iid>1</points_currency_iid>
<amount>499</amount>
</redeem_points>
<lines>
<external_id>line___ASTGRf</external_id>
<product>iphone17pmb256</product>
<base_price_per_item>139999.00</base_price_per_item>
<min_price_per_item>0.00</min_price_per_item>
<final_price_per_item>139999.00</final_price_per_item>
<count>1</count>
<currency>RUB</currency>
</lines>
</data>
</xml>

Пример ответа​

  • JSON
  • XML
{
"data": {
"profile": {
"profile_id": "696e304f547840a7286619e0"
},
"order": {
"processing_target": "calculated",
"total_price": "139999.00",
"final_total_price": "139500.00",
"delivery_cost": "0.00",
"currency": "RUB",
"lines": [
{
"external_id": "line___ASTGRf",
"line_number": 0,
"count": 1,
"product": "iphone17pmb256",
"base_price_per_item": "139999.00",
"min_price_per_item": "0.00",
"final_price_per_item": "139500.00",
"custom_fields": {},
"applied_promotions": [
{
"type": "accrue_points",
"promotion": {
"external_id": "bonus",
"name": "Начисление баллов"
},
"points_info": {
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Основной балл ",
"amount": "6999"
}
},
{
"type": "redeem_points",
"promotion": {
"external_id": "bonus",
"name": "Списание баллов"
},
"points_info": {
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Основной балл ",
"amount": "499"
}
}
]
}
],
"custom_fields": {},
"applied_promotions": [],
"points_info": [
{
"points_currency_iid": 1,
"points_currency_eid": "bonus1",
"name": "Основной балл ",
"status": "success",
"active_amount_for_current_order": "20999",
"accrue_points_amount_for_current_order": "6999",
"redeemed_points_amount_for_current_order": "499"
}
],
"promocodes_info": []
}
},
"error": 0,
"error_text": "Successful operation"
}
<xml>
<data>
<profile>
<profile_id>696e304f547840a7286619e0</profile_id>
</profile>
<order>
<processing_target>calculated</processing_target>
<total_price>139999.00</total_price>
<final_total_price>139500.00</final_total_price>
<delivery_cost>0.00</delivery_cost>
<currency>RUB</currency>
<lines>
<external_id>line___ASTGRf</external_id>
<line_number>0</line_number>
<count>1</count>
<product>iphone17pmb256</product>
<base_price_per_item>139999.00</base_price_per_item>
<min_price_per_item>0.00</min_price_per_item>
<final_price_per_item>139500.00</final_price_per_item>
<custom_fields/>
<applied_promotions>
<type>accrue_points</type>
<promotion>
<external_id>bonus</external_id>
<name>Начисление баллов</name>
</promotion>
<points_info>
<points_currency_iid>1</points_currency_iid>
<points_currency_eid>bonus1</points_currency_eid>
<name>Основной балл </name>
<amount>6999</amount>
</points_info>
</applied_promotions>
<applied_promotions>
<type>redeem_points</type>
<promotion>
<external_id>bonus</external_id>
<name>Начисление баллов</name>
</promotion>
<points_info>
<points_currency_iid>1</points_currency_iid>
<points_currency_eid>bonus1</points_currency_eid>
<name>Основной балл </name>
<amount>499</amount>
</points_info>
</applied_promotions>
</lines>
<custom_fields/>
<applied_promotions/>
<points_info>
<points_currency_iid>1</points_currency_iid>
<points_currency_eid>bonus1</points_currency_eid>
<name>Основной балл </name>
<status>success</status>
<active_amount_for_current_order>20999</active_amount_for_current_order>
<accrue_points_amount_for_current_order>6999</accrue_points_amount_for_current_order>
<redeemed_points_amount_for_current_order>499</redeemed_points_amount_for_current_order>
</points_info>
<promocodes_info/>
</order>
</data>
<error>0</error>
<error_text>Successful operation</error_text>
</xml>

Возвращаемые параметры​

ПараметрТипОписание
dataobjectДанные результата расчета
errorintКод ошибки
error_textstringТекст ошибки

Объект data содержит следующую структуру.

ПараметрТипОписание
profileobjectПрофиль участника. Содержит идентификатор профиля
orderobjectРассчитанный заказ. Подробнее
Последнее обновление 27 февр. 2026 г.
Предыдущая страница
Подтверждение временной транзакции
Следующая страница
Подтверждение заказа
  • Описание
  • URL-адрес
  • Параметры запроса
    • Объект data
      • Массив lines
      • Массив promocodes
      • Массив redeem_points
      • Массив applied_promotions
  • Пример запроса
  • Пример ответа
  • Возвращаемые параметры
© 2015 - 2026 Altcraft. Все права защищены.