Заказы
Заказы дают платформе выручку, историю покупок и статусы — на них строятся сегменты вроде «покупал за последние 90 дней» и расчёт выручки по товарам.
Заказ привязывается к клиенту и к товарам по вашим идентификаторам, поэтому клиенты и товары должны быть переданы раньше заказов.
Отправка заказов
POST /orders/sync
{
"orders": [
{
"ID": "8801",
"ACCOUNT_NUMBER": "8801/2026",
"USER_ID": "1042",
"PRICE": 14800,
"CURRENCY": "RUB",
"STATUS_ID": "P",
"PAYED": "Y",
"CANCELED": "N",
"DATE_INSERT": "2026-09-14 11:02:30",
"DATE_PAYED": "2026-09-14 11:09:12",
"DATE_CANCELED": null,
"BASKET": [
{ "PRODUCT_ID": "5501", "NAME": "Куртка зимняя Аврора", "PRICE": 12900, "QUANTITY": 1 },
{ "PRODUCT_ID": "5601", "NAME": "Футболка Базовая, M", "PRICE": 1900, "QUANTITY": 1 }
],
"DELIVERY_ID": "3",
"DELIVERY_NAME": "Курьер",
"DELIVERY_PRICE": 0,
"PAY_SYSTEM_ID": "5",
"PAY_SYSTEM_NAME": "Онлайн-оплата",
"PAYMENT_ID": "9001",
"PAYMENT_SUM": 14800,
"PAYMENT_PAID": "Y",
"PAYMENT_DATE_PAID": "2026-09-14 11:09:12"
}
],
"statuses": [
{ "ID": "N", "NAME": "Новый", "SORT": 100 },
{ "ID": "P", "NAME": "Оплачен", "SORT": 200 },
{ "ID": "F", "NAME": "Выполнен", "SORT": 300 }
]
}
Требования и особенности:
orders— непустой массив; за один запрос не больше 50 заказов;- регистр имён полей не важен:
USER_ID,User_Idиuser_idплатформа считает одним и тем же полем. Это относится и к обёрткамorders/statuses, и к позициямBASKET; IDобязателен — это ваш идентификатор заказа;USER_ID— ваш идентификатор клиента. Если такой клиент не передавался, заказ не принимается со статусомUSER_NOT_FOUND;BASKET[].PRODUCT_ID— ваш идентификатор товара;- даты — строкой в формате
ГГГГ-ММ-ДД ЧЧ:ММ:СС; statusesпередавайте вместе с заказами: платформа создаёт у себя отсутствующие статусы, чтобы в кабинете они назывались так же, как у вас.
Поля заказа
| Поле | Обязательно | Описание |
|---|---|---|
ID | да | Ваш идентификатор заказа |
USER_ID | да | Ваш идентификатор клиента |
PRICE | нет | Не используется: сумму заказа платформа считает сама из состава корзины. Поле можно передавать для наглядности, на результат оно не влияет |
CURRENCY | нет | Валюта заказа. По умолчанию — базовая валюта проекта |
ACCOUNT_NUMBER | нет | Номер заказа для человека, если он отличается от ID |
STATUS_ID | нет | Код статуса. Должен присутствовать в массиве statuses |
PAYED | нет | Оплачен ли заказ: Y/N |
CANCELED | нет | Отменён ли заказ: Y/N |
DATE_INSERT | нет | Дата оформления. Если не передана — дата приёма запроса |
DATE_PAYED | нет | Дата оплаты. Учитывается при PAYED: "Y" |
DATE_CANCELED | нет | Дата отмены. Учитывается при CANCELED: "Y" |
BASKET | нет, но важно | Состав заказа. Именно из него считается сумма: без корзины заказ сохранится с нулевой суммой и не попадёт в выручку |
statuses | нет | Справочник статусов, поле верхнего уровня рядом с orders. Передаётся вместе с заказами, чтобы статусы назывались у вас и в кабинете одинаково |
Состав заказа
| Поле | Обязательно | Описание |
|---|---|---|
PRODUCT_ID | да | Ваш идентификатор товара |
NAME | да | Название позиции на момент заказа |
PRICE | да | Цена за единицу в заказе |
QUANTITY | да | Количество |
Цена позиции берётся из заказа как есть и не пересчитывается по текущей цене товара — история сохраняется корректно.
Доставка и оплата
Блоки необязательные. Если передаёте — платформа создаёт у себя службу доставки и платёжную систему с вашими названиями и в дальнейшем узнаёт их по вашим идентификаторам.
Все поля ниже необязательные, но внутри блока есть зависимости: доставка обрабатывается только при наличии DELIVERY_ID, оплата — только при наличии PAY_SYSTEM_ID.
| Поле | Обязательно | Описание |
|---|---|---|
DELIVERY_ID | нет | Ваш идентификатор службы доставки. Без него остальные поля доставки игнорируются |
DELIVERY_NAME | да, если есть DELIVERY_ID | Название службы доставки |
DELIVERY_PRICE | нет | Стоимость доставки |
PAY_SYSTEM_ID | нет | Ваш идентификатор способа оплаты. Без него остальные поля оплаты игнорируются |
PAY_SYSTEM_NAME | да, если есть PAY_SYSTEM_ID | Название способа оплаты |
PAYMENT_ID | нет | Ваш идентификатор платежа. По нему платёж обновляется, а не дублируется |
PAYMENT_SUM | нет | Сумма платежа. Если не передана — сумма заказа |
PAYMENT_PAID | нет | Оплачен ли платёж: Y/N |
PAYMENT_DATE_PAID | нет | Дата оплаты платежа |
Ответ
{
"success": true,
"code": 200,
"message": "Заказы обработаны",
"data": {
"results": [
{ "order_id": "8801", "local_order_id": 512, "status": "created" },
{ "order_id": "8802", "status": "USER_NOT_FOUND", "user_id": "1099", "message": "Пользователь не найден" }
]
}
}
Значение status | Что означает |
|---|---|
created | Заказ создан, в local_order_id — его номер в CDP |
updated | Заказ найден по вашему ID и обновлён |
USER_NOT_FOUND | Клиент из USER_ID не передавался. Пришлите клиента и повторите заказ |
error | Заказ не принят, причина в message |
Повторная отправка и изменение статуса
Смена статуса, факт оплаты, отмена — это повторная отправка того же заказа с новыми значениями. Отдельных методов для этого нет.
Присылайте заказ целиком при каждом изменении. Платформа находит его по вашему ID, обновляет поля и дополнительно фиксирует переходы статусов и факты оплаты и отмены в отдельных журналах — на них опираются сегменты и сценарии вроде «оплатил заказ».
Обработка одного заказа защищена от одновременного изменения: если два запроса по одному ID придут параллельно, второй дождётся первого. Специально разносить их по времени не нужно.
Удаление заказа
POST /orders/delete
{ "order_id": "8801" }
| Поле | Обязательно | Описание |
|---|---|---|
order_id | да | Ваш идентификатор заказа. Без него — ошибка, "code": 400 |
Заказ удаляется из CDP полностью. Если заказа с таким идентификатором нет, метод отвечает успехом и "deleted": false — повторный вызов безопасен.
{
"success": true,
"code": 200,
"data": { "order_id": "8801", "deleted": true }
}
Если заказ отменён, а не стёрт из вашей системы, присылайте его через /orders/sync с "CANCELED": "Y". Так сохранится история и отмена попадёт в статистику. Удаление имеет смысл только для заказов, созданных по ошибке.
Что дальше
- Отслеживать наполнение корзины до оформления заказа — «Визиты и корзина».