Зв'язатись
CRM та інтеграції · OpenCart

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

Автоматична відправка замовлень OpenCart 2.3, 3.x і 4.x у OneBox OS: процес-замовлення з клієнтом і товарами створюється в CRM одразу після оформлення. Журнал синхронізації, cron-ретраї, зашифровані доступи.

Версія
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

Що включено в ліцензії

Функція Free
Процес-замовлення в 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. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль