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

OneBox Sync — CRM для OpenCart 2.3, 3.x и 4.x

Версия
v1.1.1 (OpenCart 4)
v1.1.1 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Совместимость
OpenCart 2.3.0.0 – 2.3.0.2 · 3.0.2 – 3.0.5 · 4.0.2 – 4.1.x
Платформа
OpenCart
OneBox Sync — CRM для OpenCart 2.3, 3.x и 4.x

Что внутри

  • Процесс-заказ в OneBox OS на каждый заказ OpenCart
  • Клиент, телефон, адрес доставки и товары
  • Триггер-статусы на выбор
  • Дедупликация и повторные попытки
  • Журнал обменов в админке
  • Совместимость с OpenCart 2.3, 3.x и 4.x
  • Бесплатный

OneBox Sync для OpenCart — модуль, который связывает магазин на OpenCart 2.3, 3.x или 4.x с OneBox OS: каждый новый заказ автоматически становится процессом-заказом в CRM вместе с клиентом, телефоном, адресом доставки и товарами. Вместо ручного переноса данных менеджер сразу видит заявку в OneBox и работает с ней по вашему бизнес-процессу.

Модуль полностью бесплатный, код открытый. Репозиторий на GitHub: github.com/catcodestudio/opencart-onebox-sync. Без ключей, подписок и лимитов на заказы.

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

Настройки OneBox Sync в OpenCart 4
Настройки модуля в админке OpenCart: домен OneBox, API-логин и API-пароль сотрудника, триггер отправки (при создании заказа или при переходе в выбранный статус), маршрутизация по бизнес-процессу/этапу/источнику и кнопка «Проверить соединение». Журнал синхронизации показывает по каждому заказу статус, OneBox ID, количество попыток и ошибки.
Параметры отправки OneBox Sync: триггер, повторы, cron-токен
Параметры отправки: когда отправлять (при создании заказа или при переходе в выбранный статус), пропуск позиций с нулевой ценой, отдельная строка доставки, очередь повторов с лимитом попыток и cron-токен — без него публичный URL повторов доступен кому угодно, с ним нужен &token=.

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

  1. Покупатель оформляет заказ — модуль реагирует на событие добавления истории заказа, не вмешиваясь в checkout.
  2. Модуль авторизуется в вашем OneBox: получает токен через POST /api/v2/token/get/ и отправляет заказ через POST /api/v2/order/set/.
  3. Товары привязываются к каталогу OneBox: название, артикул (SKU/модель), количество и цена — каталожные продукты находятся или создаются автоматически, без дублей в каталоге. Доставка передаётся отдельной строкой, поэтому сумма процесса сходится с суммой заказа.
  4. OneBox возвращает ID процесса — он фиксируется в журнале синхронизации; дополнительно передаётся externalid, поэтому повторное срабатывание не создаст второй процесс.
  5. Неудачные отправки повторяет cron-ретрай — заказы, которые не ушли с первой попытки, доезжают в CRM автоматически.

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

Бесплатно. Код модуля открытый — скачивайте с GitHub и пользуйтесь без ограничений. Платной версии не существует.

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

  • OpenCart 2.3.0.0 – 2.3.0.2, 3.0.2 – 3.0.5 и 4.0.2 – 4.1.x — три отдельные сборки
  • PHP 7.4+ для сборок OpenCart 3.x и 4.x; сборка для OpenCart 2.3 работает и на PHP 5.6 – 7.x
  • OneBox OS с компонентом «API v2» (1b.app → Приложения → API-сервисы) и логином/паролем сотрудника для REST API

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

  • События OpenCart — модуль подписывается на добавление истории заказа (addHistory в OpenCart 4, addOrderHistory в 3.x и 2.3); файлы ядра и темы не модифицируются.
  • Идемпотентность: upsert по externalid на стороне OneBox плюс уникальный журнал синхронизации в БД магазина — ни дублированных процессов, ни дублированных товаров в каталоге.
  • Маппинг товаров, оплаты и доставки в поля процесса OneBox; необязательная маршрутизация workflowid/statusid/sourceid (пусто = первый бизнес-процесс автоматически).
  • Cron-очередь повторов для заказов, которые не удалось отправить с первого раза: подбираются и неудачные отправки, и те, что зависли в состоянии «в процессе» больше часа (например, если PHP оборвался посреди запроса).
  • Cron-токен — публичный URL повторов можно закрыть общим секретом: ...&token=<значение>. Штатный планировщик OpenCart работает и без токена, пустое поле оставляет эндпоинт открытым.
  • API-пароль хранится в БД в зашифрованном виде, а журнал синхронизации содержит запрос и ответ API для диагностики.

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

  1. В OneBox установите компонент «API v2» (1b.app → Приложения → API-сервисы) и задайте сотруднику логин и пароль (Пользователи и сотрудники → Логин, пароль, права доступа).
  2. Загрузите cc_onebox.ocmod.zip через Расширения → Инсталлятор в админке OpenCart. Для OpenCart 3.0.2–3.0.5 берите отдельную сборку — cc_onebox-oc3.ocmod.zip (после установки обновите модификации: Расширения → Модификации → кнопка «Обновить»).
  3. Для OpenCart 2.3.0.0–2.3.0.2 берите сборку cc_onebox-oc2.ocmod.zip. ⚠️ Штатный инсталлятор 2.3 копирует файлы только по FTP: если FTP не настроен, распакуйте архив и залейте содержимое папки upload/ в корень магазина, далее Расширения → Модули → OneBox Sync → «Установить».
  4. В Расширения → Модули найдите OneBox Sync, нажмите «Установить» и откройте настройки.
  5. Укажите домен вашего OneBox, API-логин и API-пароль, нажмите «Проверить соединение».
  6. При необходимости заполните ID бизнес-процесса, этапа и источника (можно оставить пустыми — модуль возьмёт первый бизнес-процесс) и сохраните.
  7. Оформите тестовый заказ и проверьте процесс в OneBox и строку в журнале.
  8. В OpenCart 2.3 планировщика нет — строка повторов добавляется в crontab хостинга вручную (обычно раз в 15 минут):
    curl -s "https://SHOP/index.php?route=extension/module/cc_onebox_cron/retry&token=ТОКЕН"

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

1.1.1 — август 2026
Суммы в CRM больше не едут в базовой валюте магазина: цены позиций и доставки переводятся в валюту заказа по его историческому курсу (currency_value), а код валюты дописывается в поле «Содержание» процесса. В магазине с базой USD и продажей в гривне позиция на 629.99 доезжала как «629.99» вместо 26 144.59 ₴. Изменение есть в сборках для OpenCart 4 и 3.x (в 2.3-сборке оно было с первого релиза).
1.0.0 (OpenCart 2.3) — август 2026
Отдельная сборка под OpenCart 2.3.0.0–2.3.0.2 и PHP 5.6–7.x: классы без неймспейсов, шаблоны Bootstrap 3, событие addOrderHistory через extension/event. Вместо планировщика — URL витрины с собственным cron-токеном. Журнал синхронизации отдельной страницей с пагинацией. Суммы позиций и доставки переводятся в валюту заказа по его историческому курсу, а код валюты и статус заказа едут в поле «Содержание» процесса.
1.1.0 — август 2026
Событие заказа регистрируется как order*addHistory — на OpenCart 4.0.2.x разделитель метода другой, и с точкой модуль не срабатывал совсем. Совместимость с PHP 7.4 (убран синтаксис PHP 8, добавлены полифилы строковых функций, mb_substr под гардом для хостингов без mbstring). Cron-токен для публичного URL повторов. Очередь повторов теперь подбирает зависшее «в процессе», а не только неудачные отправки. Те же изменения в OC3-сборке: cron-токен (без него URL повторов отдаёт 403), подбор зависших отправок, экранирование подсказки в шаблоне.
1.0.1 — июль 2026
Исправлен «тихий» триггер на OpenCart 4.0.2.x: событие добавления истории заказа не срабатывало из-за разделителя метода.
1.0.0 — июль 2026
Первый публичный релиз: отправка заказов OpenCart 4.x в OneBox OS через API v2 (POST /order/set/ с токен-авторизацией), upsert по externalid + уникальный журнал синхронизации, маппинг товаров/оплаты/доставки, маршрутизация workflowid/statusid/sourceid, cron-очередь повторов, шифрование API-пароля, проверка соединения.

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

Откуда взять API-доступы OneBox?

Из карточки сотрудника в приложении «Пользователи и сотрудники» вашего OneBox: логин сотрудника и REST API пароль. Модуль сам обменивает их на токен через /api/v2/token/get/.

Меняет ли модуль checkout или тему?

Нет. Модуль работает через события OpenCart на сервере — страница оформления и шаблоны остаются как были, и после удаления модуля ничего восстанавливать не надо.

Могут ли задублироваться процессы или товары в OneBox?

Нет. Модуль передаёт externalid (OneBox обновляет найденный процесс вместо создания нового) и ведёт уникальный журнал синхронизации; товары каталога находятся по артикулу, а не создаются каждый раз.

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

Отправка попадёт в очередь повторов — cron-ретрай автоматически доставит заказ, когда OneBox снова будет отвечать. Количество попыток и ошибки видно в журнале.

Куда в OneBox попадают заказы?

В бизнес-процесс, который вы укажете в настройках (workflowid + statusid + sourceid). Если поля пустые — модуль автоматически использует первый бизнес-процесс вашего OneBox.

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

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

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

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

@catcode_support

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

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

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