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

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

Автоматична передача замовлень OpenCart 2.3, 3.x і 4.x у CRM SalesDrive: заявка створюється при оформленні з покупцем, товарами, доставкою та коментарем. Ідемпотентність, повторні спроби через 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
SalesDrive Sync — CRM для OpenCart 2.3, 3.x і 4.x

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

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

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

Модуль повністю безкоштовний. Завантажити: cc_salesdrive.ocmod.zip для OpenCart 4.x або cc_salesdrive-oc3.ocmod.zip для OpenCart 3.0.2–3.0.5, або cc_salesdrive-oc2.ocmod.zip для OpenCart 2.3.0.0–2.3.0.2 — без ліцензійних ключів і обмежень за кількістю замовлень.

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

Сторінка налаштувань SalesDrive Sync в адмінці OpenCart
Підключення: домен кабінету SalesDrive і API-ключ (зберігається зашифрованим, у полі ніколи не показується). Кнопка «Перевірити з’єднання» одразу каже, чи бачить модуль вашу CRM.
Загальні налаштування SalesDrive Sync: момент відправки, ліміт спроб, cron-токен
Момент відправки — при оформленні або при переході в обраний статус, пропуск нульових позицій, вартість доставки, ліміт повторних спроб і необовʼязковий cron-токен для захисту публічного URL повторів.
Журнал синхронізації SalesDrive Sync у адмінці OpenCart
Журнал синхронізації: номер замовлення, статус, ID заявки в SalesDrive, кількість спроб і остання помилка — видно одразу, що доїхало, а що ні.
Запис SalesDrive у історії замовлення OpenCart
Результат синхронізації дублюється в історію замовлення — менеджер бачить номер заявки, не відкриваючи журнал модуля.

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

  1. Покупець оформлює замовлення у вашому магазині OpenCart.
  2. Спрацьовує подія catalog/model/checkout/order*addHistory — модуль реагує на оформлення або на перехід замовлення у статус-тригер.
  3. Формується заявка: покупець із телефоном у форматі +380, товари з SKU, ціною та кількістю, вартість доставки, коментар — і відправляється у SalesDrive через обробник заявок (POST /handler/, заголовок X-Api-Key).
  4. Номер заявки фіксується у журналі синхронізації. Журнал має унікальний запис на замовлення, тому повторна подія ніколи не створить дубль — завершений запис просто пропускається.
  5. Якщо SalesDrive недоступний — запис лишається в черзі, і погодинний cron OpenCart повторює відправку (за замовчуванням до 5 спроб).
  6. Результат видно в адмінці: журнал показує статус, ID заявки, кількість спроб і останню помилку, якщо вона була.

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

Безкоштовно. Завантажуйте і користуйтесь — без активацій, підписок і прихованих платежів.

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

  • OpenCart 4.0.2 – 4.1.x, 3.0.2 – 3.0.5 або 2.3.0.0 – 2.3.0.2 — для кожної гілки окрема збірка
  • PHP 7.4 або новіший для збірок OC4 і OC3; збірка для OpenCart 2.3 працює починаючи з PHP 5.6
  • Кабінет SalesDrive: домен виду yourshop.salesdrive.me та API-ключ бази заявок із правом «Заявки: додавання»
  • Увімкнений cron OpenCart — для автоматичних повторних спроб при збоях (сама відправка працює і без нього)

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

  • Native-розширення для OpenCart 4.x — події (events) і окрема таблиця, без OCMOD-патчів чужих файлів. Подія реєструється у форматі OC4 з роздільником * перед методом — саме так ядро 4.x зіставляє події моделей.
  • Ідемпотентність на рівні БД: таблиця cc_salesdrive_sync з UNIQUE-ключем по order_id — фізично неможливо створити дві заявки з одного замовлення.
  • API-ключ шифрується перед збереженням у БД — у відкритому вигляді в базі не лежить.
  • Retry-черга через штатний cron OpenCart: задача cc_salesdrive_retry виконується щогодини і добирає замовлення зі статусом помилки, а також ті, що зависли в процесі відправки довше години. URL повторів можна закрити власним cron-токеном.
  • Журнал з excerpt-ами запиту і відповіді — при розборі проблем видно, що саме модуль відправив і що відповіла CRM.

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

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

OpenCart 2.3. Штатний Інсталятор 2.3 копіює файли тільки по FTP: якщо FTP у магазині не налаштований, розпакуйте cc_salesdrive-oc2.ocmod.zip і залийте вміст теки upload/ у корінь магазину, а далі так само — Розширення → Модулі → SalesDrive Sync → «Встановити».

Повтори в OpenCart 2.3. У 2.3 планувальника немає взагалі, тому чергу повторів запускає звичайна адреса вітрини — додайте її в crontab хостингу (типово раз на 15 хвилин) і закрийте власним cron-токеном із налаштувань модуля:

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

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

1.1.1 — серпень 2026
Суми заявки й позицій надсилаються у валюті замовлення за його історичним курсом — раніше в SalesDrive їхали числа базової валюти магазину (збірки 4.x і 3.x).
1.0.0 (OpenCart 2.3) — серпень 2026
Окрема збірка під OpenCart 2.3.0.0–2.3.0.2 і PHP 5.6–7.x: шаблони Bootstrap 3, подія addOrderHistory/after, черга повторів як адреса вітрини з cron-токеном (планувальника в 2.3 немає). Суми в заявці переводяться у валюту замовлення за його історичним курсом — магазин із базовою валютою, відмінною від валюти продажу, більше не відправляє в CRM занижені суми. Назви товарів, спосіб оплати/доставки та адреса декодуються з HTML-сутностей, у яких їх зберігає 2.3.
1.1.0 — серпень 2026
Виправлено відправку позицій: SalesDrive мовчки викидав товари без поля id, і заявка приходила з порожнім списком і нульовою сумою. Подія тепер реєструється у форматі OC4 із * перед методом (з крапкою вона не спрацьовувала). Сумісність з PHP 7.4. У чергу повторів потрапляють замовлення, що зависли в процесі відправки. Додано необовʼязковий cron-токен для публічного URL повторів і префікс externalId для кількох магазинів в одному акаунті SalesDrive.
1.0.1 — липень 2026
Дрібні виправлення реєстрації події та мапінгу позицій.
1.0.0 — липень 2026
Перший публічний реліз: відправка замовлень у SalesDrive при оформленні або за статусом-тригером, ідемпотентний журнал синхронізації (UNIQUE по order_id), retry-черга через погодинний cron, мапінг товарів/оплати/доставки, шифрування API-ключа, перевірка з’єднання, журнал із логом запитів і відповідей.

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

Чи модифікує модуль файли OpenCart або тему?

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

Звідки взяти API-ключ SalesDrive?

Кабінет SalesDrive → Установки → Загальні налаштування і інтеграції → Інші сервіси → API → API-ключі. Потрібен ключ бази заявок із правом «Заявки: додавання».

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

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

Що буде, якщо SalesDrive «ляже» у момент замовлення?

Нічого не загубиться: спроба зафіксується як помилка, і погодинний cron повторюватиме відправку (до 5 спроб за замовчуванням). Замовлення в OpenCart створюється у будь-якому разі.

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

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

Чи потрібен постійно працюючий cron?

Тільки для автоматичних повторів при збоях. Основна відправка відбувається одразу за подією замовлення, без cron.

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

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

@catcode_support

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

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

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