Что внутри
- Сделка в 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 — без лицензионных ключей и ограничений.
Что получает админ



Как это работает — шаг за шагом
- Клиент оформляет заказ в магазине OpenCart.
- Модуль ловит событие добавления истории заказа и срабатывает при оформлении или при переходе в выбранный статус.
- Формируется сделка: клиент-лид (ФИО, email, телефон в формате +380), товары строками сделки с ценой и валютой, комментарий — и отправляется в KeepinCRM (POST /agreements на api.keepincrm.com/v1, заголовок X-Auth-Token).
- ID сделки фиксируется в журнале синхронизации. Запись на заказ уникальна, поэтому повторные события не порождают дубли — одна сделка на один заказ, гарантированно.
- Если KeepinCRM недоступен — заказ остаётся в очереди, и почасовой cron OpenCart повторяет отправку (по умолчанию до 5 попыток).
- Админ видит результат в журнале: статус, 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 по каждому заказу — диагностика проблем без угадываний.
Как установить
- В админке OpenCart откройте Расширения → Инсталлятор и загрузите
cc_keepincrm.ocmod.zip. - В Расширения → Расширения → Модули найдите KeepinCRM Sync и нажмите «Установить» — создадутся таблица журнала, событие и cron-задача.
- Откройте настройки модуля и вставьте API-токен из кабинета KeepinCRM (Настройки → Профиль компании → вкладка API).
- Нажмите кнопку проверки соединения — убедитесь, что CRM отвечает.
- При желании заполните маршрутизацию (воронка, этап, источник, ответственный), выберите момент отправки и сохраните.
Отдельно для 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 — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.
Пока ни одного отзыва. Будь первым — ниже.
Оставить отзыв
Отзыв модерируется перед публикацией — обычно это занимает до 24 часов.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Задать вопрос
Обычно отвечаем в течение 24 часов в рабочее время.
Покупка модуля
—