Перейти к основному содержимому

Очередь команд

Обмен с платформой односторонний: Октопус не обращается к вашей системе сам. Вместо этого он складывает задания в очередь, а вы периодически её опрашиваете. Так платформа просит досинхронизировать данные, которых ей не хватает.

Опрашивать очередь не обязательно, но без этого некоторые ситуации придётся разбирать вручную — например, торговое предложение, пришедшее раньше родительского товара.


Получение команд

GET /client/commands?limit=100
{
"success": true,
"code": 200,
"data": {
"commands": [
{ "id": 4501, "type": "SYNC_PRODUCT", "data": { "id": "5600" } },
{ "id": 4502, "type": "SYNC_SECTIONS", "data": [] }
],
"count": 2
}
}
ПараметрОбязательноОписание
limitнетСколько команд вернуть за раз. Если не передан — 100
Команда выдаётся один раз

При выдаче команда сразу помечается отправленной и в следующем запросе не придёт снова. Если вы её не обработали и не сообщили об ошибке, она просто потеряется. Обрабатывайте команды сразу после получения и всегда отвечайте — подтверждением или ошибкой.

Рекомендуемая периодичность опроса — раз в несколько минут. Готовый коннектор 1С-Битрикс совмещает этот опрос с повторной отправкой неудавшихся запросов из своей очереди.


Подтверждение выполнения

После успешной обработки отправьте номера команд:

POST /client/commands/confirm
{ "command_ids": [4501, 4502] }
ПолеОбязательноОписание
command_idsдаНепустой массив номеров выполненных команд. Пустой массив — ошибка, "code": 400
{ "success": true, "code": 200, "message": "Команды успешно подтверждены" }

Сообщение об ошибке

Если команду выполнить не удалось, сообщите об этом — платформа зафиксирует причину, и её будет видно в кабинете.

POST /client/commands/errors
{
"errors": {
"4501": "Товар 5600 удалён в учётной системе"
}
}
ПолеОбязательноОписание
errorsдаНепустой объект: ключ — номер команды, значение — текст ошибки. Пустой объект — ошибка, "code": 400

Ключ — номер команды, значение — текст ошибки. Ответ: {"success": true, "code": 200, "message": "Ошибки зафиксированы"}.


Типы команд

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

ТипДанныеЧто от вас нужно
SYNC_PRODUCT{ "id": "5600" }Прислать этот товар через /products/sync. Платформа запрашивает его, когда пришло торговое предложение, а родителя ещё нет
SYNC_SECTIONS[]Прислать всё дерево разделов через /products/syncSections. Приходит, когда товар ссылается на неизвестный раздел
SYNC_GOALОписание цели: ID, NAME, ELEMENT_TYPE, INTEGRATION, SETTINGS, ACTIVEСохранить или обновить цель у себя, если вы отслеживаете цели по элементам страницы. Иначе — подтвердить без действий
DELETE_GOAL{ "ID": 12 }Удалить цель у себя
POPUP_SHOW, POPUP_HIDEОписание всплывающего окнаОтносится к показу всплывающих окон на сайте. Если вы их не показываете — подтвердить без действий

Команды промокодов и правил работы с корзиной (SYNC_PROMO_CODE, ACTIVATE_PROMO_CODE и подобные) приходят только проектам с коннектором 1С-Битрикс. Если такая команда пришла и вы её не поддерживаете — подтвердите её, чтобы очередь не копилась.

Неизвестные типы команд

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