CRM и интеграции · WordPress

OneBox Sync — синхронизация заказов для WooCommerce

Версия
v0.2.0
Совместимость
WordPress 6.2+, WooCommerce 6.0+
Платформа
WordPress
OneBox Sync — синхронизация заказов для WooCommerce

Что внутри

  • Процесс-заказ в OneBox OS создаётся после каждого checkout
  • Передаются клиент, телефон, адрес доставки и список товаров
  • Поддержка классического чекаута и Checkout Blocks
  • Триггер-статусы на выбор
  • Дедупликация процессов
  • Очередь повторных попыток при сбоях
  • Журнал обменов и метабокс в заказе
  • Совместимость с HPOS
  • Бесплатный

OneBox Sync для WooCommerce — плагин, который после каждого checkout автоматически создаёт в OneBox OS процесс-заказ с клиентом, телефоном, адресом доставки и списком товаров. Менеджер открывает готовую заявку в CRM вместо того, чтобы переносить данные из заказа WooCommerce руками — и ни один ордер не теряется между сайтом и OneBox.

Плагин полностью бесплатный, код открытый. Скачать можно с GitHub: github.com/catcodestudio/wp-onebox-sync. Без платных версий, ключей и ограничений.

Что получает админ

Настройки OneBox Sync в WooCommerce
Страница настроек: домен вашего OneBox, API-логин и API-пароль сотрудника, триггерные статусы отправки и необязательная маршрутизация — ID бизнес-процесса, этапа и источника. Кнопка «Проверить соединение» сразу показывает, валидны ли доступы, а вкладка «Журнал» — последние события синхронизации.
Метабокс OneBox в заказе WooCommerce
В каждом заказе — метабокс OneBox: статус синхронизации, ID процесса в CRM и кнопка «Отправить повторно». Повторная отправка обновляет тот же процесс — товары обновляются, а не дублируются.
Журнал синхронизации OneBox Sync
Вкладка «Журнал» — последние попытки синхронизации: дата, заказ, событие (create / update / adopted / no_response), номер попытки, код HTTP и ответ OneBox. Видно и успешные отправки, и причину, почему что-то не ушло.

Как это работает — шаг за шагом

  1. Покупатель оформляет заказ — плагин поддерживает и классический чекаут, и Checkout Blocks.
  2. Плагин авторизуется в OneBox: получает токен через POST /api/v2/token/get/ (токен кешируется и обновляется автоматически) и отправляет заказ через POST /api/v2/order/set/ на домен вашего OneBox.
  3. Клиент и товары маппятся на CRM: clientname/clientemail/clientphone/clientaddress плюс массив products с привязкой к каталогу OneBox — каталожные товары находятся по артикулу (SKU) или создаются автоматически. Доставка — отдельной строкой, поэтому сумма процесса сходится с суммой заказа.
  4. OneBox возвращает ID процесса — он сохраняется в мете _cc_onebox_order_id; дополнительно передаётся externalid wc-{id}, поэтому дубли исключены дважды.
  5. Если OneBox недоступен — WP-Cron повторяет отправку: 3 попытки с паузами 5 мин / 30 мин / 2 ч. Оплаченные онлайн заказы получают в комментарии процесса пометку «✅ Оплачено онлайн» (COD и офлайн-методы не помечаются).

Сколько стоит

Бесплатно. Плагин распространяется под GPLv2 с открытым кодом на GitHub — все функции доступны без оплаты сразу после установки.

Технические требования

  • WordPress 6.2+ (протестировано до 7.0)
  • WooCommerce 6.0 или новее
  • PHP 7.4+
  • OneBox OS с компонентом «API v2» (1b.app → Приложения → API-сервисы) и REST API логином/паролем сотрудника (Пользователи и сотрудники → карточка сотрудника)

Что под капотом

  • Двойная дедупликация: externalid wc-{id} даёт upsert на стороне OneBox, а сохранённый ID процесса в мете заказа блокирует повторное создание со стороны плагина.
  • Лок на уровне БД — если хук чекаута, смена статуса и колбэк платёжки прилетают на один заказ одновременно, в OneBox уйдёт ровно один запрос на создание (проверено 24 параллельными запросами на 3 заказа).
  • Попытка без ответа не дублирует сделку — если OneBox не ответил (таймаут), заказ помечается, а перед повтором плагин спрашивает CRM по externalid (POST /order/get/) и подхватывает уже созданный процесс.
  • API-пароль зашифрован в БД — libsodium с HMAC-фолбеком; токен доступа кешируется и обновляется автоматически.
  • Нормализация телефона до E.164 (+380…) — номера в CRM приходят в едином формате.
  • HPOS-совместимость (custom order tables) — работа с заказами исключительно через WC_Order CRUD.
  • Расширяемость: фильтр cc_onebox_order_payload позволяет изменить данные перед отправкой, хук cc_onebox_order_sent — выполнить свой код после успешной синхронизации.

Как установить

  1. Установите в OneBox компонент «API v2» (1b.app → Приложения → API-сервисы) и задайте сотруднику логин и пароль в карточке (Пользователи и сотрудники → Логин, пароль, права доступа).
  2. Загрузите catcode-order-sync-with-onebox-for-woocommerce-0.2.0.zip через Плагины → Добавить новый → Загрузить плагин и активируйте.
  3. Откройте WooCommerce → OneBox Sync и укажите домен вашего OneBox, API-логин и API-пароль.
  4. Нажмите «Проверить соединение» — плагин получит токен и список бизнес-процессов.
  5. При необходимости укажите ID бизнес-процесса, этапа и источника (пустые поля = первый бизнес-процесс автоматически) и сохраните.
  6. Сделайте тестовый заказ — в OneBox появится процесс-заказ.

История версий

0.2.0 — 13 августа 2026
Починена кнопка «Отправить повторно» в метабоксе: форма метабокса была вложена в форму заказа, и браузер её выбрасывал — теперь это нонсифицированная ссылка, а результат показывается админ-нотисом. Параллельные запросы на один заказ больше не могут отправить его дважды — лок на уровне БД плюс перечитывание заказа мимо кеша HPOS. Попытка, не получившая ответа, перед повтором ищет процесс в OneBox по externalid. Удаление плагина теперь убирает таблицу журнала, настройки и остаточные локи. Интерфейс переведён на английский с украинским переводом, стили подключаются как отдельный хендл. Плагин переименован в catcode-order-sync-with-onebox-for-woocommerce (настройки, мета заказов и таблица не изменились — миграция не нужна).
0.1.0 — июль 2026
Первый публичный релиз: отправка заказов в OneBox OS через API v2 (token/get + order/set), двойная дедупликация (externalid + мета), привязка товаров к каталогу, маршрутизация по бизнес-процессу/этапу/источнику, ретраи через WP-Cron, метабокс, журнал, проверка соединения, шифрование API-пароля.

Частые вопросы

Откуда взять API-логин и пароль?

Кабинет OneBox OS → приложение «Пользователи и сотрудники» → карточка сотрудника → REST API пароль. Логин — логин этого сотрудника. Плагин сам обменивает их на токен через /api/v2/token/get/.

Создаются ли дубли при повторной смене статуса?

Нет. Плагин передаёт externalid wc-{id} — OneBox сам обновляет найденный процесс — и дополнительно сверяет сохранённый OneBox ID в мете заказа.

Что делает кнопка «Отправить повторно»?

Если заказ ещё не в OneBox — создаёт процесс. Если уже отправлен — обновляет тот же процесс актуальными данными: товары обновляются, а не дублируются.

Трогает ли плагин checkout или тему?

Нет. Вся работа происходит на сервере через хуки заказов — фронтенд, тема и страница оформления не меняются.

Что будет, если у товара нет совпадения в каталоге OneBox?

Плагин передаёт товары с привязкой к каталогу (productinfo: название, артикул, externalid) — товар находится по артикулу или создаётся в каталоге автоматически.

Что будет, если OneBox совсем не ответит?

Заказ помечается как «попытка без ответа», и перед повтором плагин спрашивает OneBox, нет ли там уже процесса с таким externalid. Если есть — подхватывает его ID и пишет заметку в заказе; второй процесс не создаётся.

Что будет после удаления плагина?

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

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

Не тот вариант, что искали?

Мы делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль