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

KeepinCRM Sync — CRM для OpenCart 2.3, 3.x & 4.x

Автоматична передача замовлень OpenCart 2.3, 3.x і 4.x у CRM KeepinCRM: угода створюється при оформленні з клієнтом, товарами та коментарем. Ідемпотентність, повторні спроби через cron, журнал синхронізації.

Версія
v1.1.1 (OpenCart 4)
v1.1.0 (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
KeepinCRM Sync — CRM для OpenCart 2.3, 3.x & 4.x

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

Функція Free
Угода в KeepinCRM на кожне замовлення OpenCart
Клієнт, товари й коментар передаються автоматично
Тригер-статуси на вибір
Дедуплікація та черга повторних спроб
Журнал обмінів в адмінці
Окремі збірки під OpenCart 2.3, 3.x і 4.x
Безкоштовний

KeepinCRM Sync для OpenCart — модуль, який передає замовлення магазину на OpenCart 2.3, 3.x або 4.x у KeepinCRM у вигляді угод. При оформленні замовлення (або при переході в обраний статус) у CRM автоматично з’являється угода з клієнтом, товарами з ціною й валютою та коментарем покупця. Менеджер обробляє заявку в KeepinCRM, поки замовлення ще «гаряче», без копіювання даних із адмінки OpenCart.

Модуль повністю безкоштовний, код відкритий. Завантажити з GitHub: github.com/catcodestudio/opencart-keepincrm-sync — без ліцензійних ключів і обмежень.

Що отримує адмін

Налаштування KeepinCRM Sync в адмінці OpenCart — API-токен, статус-тригер, момент відправки
Сторінка модуля в адмінці OpenCart: API-токен (зберігається зашифрованим; порожнє поле при збереженні не затирає наявний токен), момент відправки — при оформленні чи за статусом-тригером, кнопка перевірки з’єднання і кнопка журналу синхронізації.
Ліміт спроб, мітка джерела, cron-токен і маршрутизація угод у KeepinCRM
Ліміт повторних спроб, мітка джерела, необов’язковий cron-токен для захисту публічного URL повторних спроб і маршрутизація нових угод: ID воронки, етапу, джерела та відповідального.
Журнал синхронізації KeepinCRM: статус, ID угоди, кількість спроб
Журнал синхронізації: по кожному замовленню — статус, ID створеної угоди в KeepinCRM, кількість спроб, остання помилка й час оновлення. Тіло запиту та відповіді CRM зберігається повністю.

Як це працює — крок за кроком

  1. Клієнт оформлює замовлення в магазині OpenCart.
  2. Модуль ловить подію додавання історії замовлення і спрацьовує при оформленні або при переході у вибраний статус.
  3. Формується угода: клієнт-лід (ПІБ, email, телефон у форматі +380), товари рядками угоди з ціною та валютою, коментар — і відправляється в KeepinCRM (POST /agreements на api.keepincrm.com/v1, заголовок X-Auth-Token).
  4. ID угоди фіксується в журналі синхронізації. Запис на замовлення унікальний, тому повторні події не породжують дублі — одна угода на одне замовлення, гарантовано.
  5. Якщо KeepinCRM недоступний — замовлення лишається в черзі, і погодинний cron OpenCart повторює відправку (за замовчуванням до 5 спроб).
  6. Адмін бачить результат у журналі: статус, ID угоди, кількість спроб, останню помилку і повне тіло запиту/відповіді.

Скільки коштує

Безкоштовно, код відкритий. Репозиторій на GitHub: catcodestudio/opencart-keepincrm-sync — користуйтесь без активацій і підписок.

Технічні вимоги

  • OpenCart 4.0.2 – 4.1.x — збірка cc_keepincrm.ocmod.zip, PHP 7.4 і новіше
  • OpenCart 3.0.0 – 3.0.5 — збірка cc_keepincrm-oc3.ocmod.zip, PHP 5.6 – 8.2
  • OpenCart 2.3.0.0 – 2.3.0.2 — збірка cc_keepincrm-oc2.ocmod.zip, PHP 5.6 і новіше
  • API-токен KeepinCRM — створюється в кабінеті: Налаштування → Профіль компанії → вкладка API → «Створити»
  • Увімкнений cron OpenCart — для автоматичних повторів при збоях (основна відправка працює одразу за подією, без cron)

Що під капотом

  • Подієва архітектура OC4 — модуль реєструє event на додавання історії замовлення і працює без OCMOD-патчів системних файлів чи теми.
  • Ідемпотентність на рівні БД: таблиця журналу cc_keepincrm_sync з унікальним ключем по order_id — дублі угод виключені фізично.
  • Retry-черга через штатний cron OpenCart: задача cc_keepincrm_retry виконується щогодини і добирає невдалі відправки до вичерпання ліміту спроб.
  • API-токен шифрується перед збереженням у БД, у відкритому вигляді в базі не зберігається.
  • Повний лог обміну: журнал зберігає тіло запиту й відповіді CRM по кожному замовленню — діагностика проблем без вгадувань.

Як встановити

  1. В адмінці OpenCart відкрийте Розширення → Інсталятор і завантажте cc_keepincrm.ocmod.zip.
  2. У Розширення → Розширення → Модулі знайдіть KeepinCRM Sync і натисніть «Встановити» — створяться таблиця журналу, подія і cron-задача.
  3. Відкрийте налаштування модуля і вставте API-токен із кабінету KeepinCRM (Налаштування → Профіль компанії → вкладка API).
  4. Натисніть кнопку перевірки з’єднання — переконайтесь, що CRM відповідає.
  5. За бажанням заповніть маршрутизацію (воронка, етап, джерело, відповідальний), оберіть момент відправки і збережіть.

Окремо для OpenCart 3.x. Завантажте cc_keepincrm-oc3.ocmod.zip через Розширення → Інсталятор і оновіть модифікації. Планувальника завдань в OpenCart 3 немає, тому повторні спроби ставляться в crontab хостингу — адреса показана в налаштуваннях модуля; там же задайте cron-токен, інакше адреса відкрита будь-кому:

curl -s "https://ВАШ-МАГАЗИН/index.php?route=extension/module/cc_keepincrm/cronRetry&token=ТОКЕН"

Окремо для OpenCart 2.3. Штатний Інсталятор 2.3 копіює файли тільки по FTP: якщо FTP у магазині не налаштовано, розпакуйте cc_keepincrm-oc2.ocmod.zip і залийте вміст теки upload/ у корінь магазину, після чого встановіть модуль у Розширення → Модулі. Планувальника в 2.3 немає взагалі, тому повторні спроби ставляться в системний crontab вручну — адреса показана на вкладці «Cron» у налаштуваннях модуля; задайте там же cron-токен, інакше адреса відкрита будь-кому:

curl -s "https://ВАШ-МАГАЗИН/index.php?route=extension/module/cc_keepincrm_cron/retry&token=ТОКЕН"

Історія версій

1.1.1 — серпень 2026
Суми угоди й позицій надсилаються у валюті замовлення за його історичним курсом — раніше в CRM їхали числа базової валюти магазину поруч із кодом валюти замовлення.
1.1.0 (OpenCart 3) — серпень 2026
Збірка під OpenCart 3 підтягнута до рівня 2.3 і 4.x. Суми в угоді тепер переводяться у валюту замовлення за його історичним курсом — на магазині, де базова валюта не збігається з валютою продажу, у CRM їхали «сирі» числа бази. HTML-сутності (лапки, амперсанд) більше не потрапляють ні в налаштування, ні в назви товарів і адреси, що йдуть у CRM. Доданий необов’язковий cron-токен для адреси повторних спроб (порожній за замовчуванням, щоб наявний crontab не зламався), відповідь крону стала машинно-читаною. Черга добирає записи, що зависли в стані «pending» довше години; «Перевірити з’єднання» тепер доступне лише користувачам з правом редагування.
1.0.0 (OpenCart 2.3) — серпень 2026
Окрема збірка під OpenCart 2.3.0.0 – 2.3.0.2 і PHP 5.6+: шаблони на PHP замість Twig, подія addOrderHistory, повторні спроби через адресу вітрини з власним cron-токеном (планувальника в 2.3 немає). Суми в CRM переводяться у валюту замовлення за його історичним курсом — на магазині, де базова валюта не збігається з валютою продажу, у 4.x-збірці в угоду йшли «сирі» числа бази.
1.1.0 — серпень 2026
Виправлено відправку на PHP 7.4: обробник події мав тип mixed (синтаксис PHP 8), через що на 7.4 синхронізація не спрацьовувала взагалі. Виправлено чергу повторних спроб — cron перевіряв неіснуючий ключ і не переспрямовував жодного замовлення; тепер добирає і записи, що зависли в стані «pending» довше години. Доданий необов’язковий cron-токен: прямий виклик URL повторних спроб можна закрити, штатний планувальник OpenCart працює й без нього. Гард mbstring у журналі, посилання на модуль у списку розширень виправлене.
1.0.1 — липень 2026
Виправлено «мовчазну» подію на OpenCart 4.0.2.x: у 4.0.2 роздільник методу — слеш, у 4.1 — крапка, тому тригер переведено на шаблон із зірочкою, який працює на всіх 4.x.
1.0.0 — липень 2026
Перший публічний реліз: створення угод у KeepinCRM (POST /agreements) при оформленні або за статусом-тригером, ідемпотентний журнал синхронізації, retry-черга через погодинний cron, мапінг товарів/оплати/доставки, маршрутизація воронка/етап/джерело/відповідальний, шифрування токена, перевірка з’єднання, лог запитів і відповідей.

Часті питання

Чи змінює модуль файли OpenCart, checkout або тему?

Ні. Це подієве розширення OC4 без OCMOD-патчів: checkout і тема лишаються як були, після видалення модуля магазин працює без слідів.

Звідки взяти API-токен?

Кабінет KeepinCRM → Налаштування → Профіль компанії → вкладка API → «Створити». Токен передається в заголовку X-Auth-Token і зберігається зашифрованим.

Замовлення кілька разів змінює статус — у CRM буде кілька угод?

Ні. Журнал синхронізації тримає унікальний запис на замовлення: якщо угода вже створена, повторні події пропускаються.

Що буде, якщо KeepinCRM тимчасово недоступний?

Замовлення в OpenCart створиться як завжди, а відправка в CRM стане в чергу — погодинний cron повторюватиме її до успіху (до 5 спроб за замовчуванням). Помилка і відповідь сервера видимі в журналі.

Чи можна направляти угоди в потрібну воронку?

Так. У налаштуваннях є необов’язкові поля ID воронки, етапу, джерела та відповідального працівника — нові угоди створюються одразу з цією прив’язкою.

Що станеться після видалення модуля?

Подія і cron-задача видаляються автоматично. Таблиця журналу навмисно зберігається, щоб не втратити історію синхронізації; за потреби її можна прибрати вручну.

Питання щодо модуля?

Пишіть у Telegram — відповімо протягом робочого дня. Допоможемо з налаштуванням, сумісністю та активацією ключа.

@catcode_support

Не той варіант, що шукаєте?

Ми робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

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