KeyCRM Sync — CRM для OpenCart 2.3, 3.x и 4.x
Бесплатный модуль CRM для OpenCart 2.3, 3 и 4: автоматическая синхронизация заказов в KeyCRM. Без дублей, очередь повторных попыток, журнал. Без лицензионных ключей.
- Совместимость
- OpenCart 2.3.0.0 – 2.3.0.2 · 3.0.0 – 3.0.5 · 4.0.2 – 4.1.x
- PHP
- 7.4 и новее
- Версия
-
v1.1.4 (OpenCart 4)
v1.1.3 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3)
Модуль в работе — 36 секунд
Понятно и без звука: субтитры на украинском
Что умеет модуль
Технические требования
OpenCart 4 4.0.2 – 4.1.x, PHP 7.4+
OpenCart 3 3.0.0 – 3.0.5, PHP 5.6 – 8.2 — отдельная сборка cc_crm-oc3.ocmod.zip
OpenCart 2.3 2.3.0.0 – 2.3.0.2, PHP 5.6+ — отдельная сборка cc_crm-oc2.ocmod.zip
API-ключ KeyCRM — кабинет KeyCRM → Настройки → Общие → API-ключ
Cron на хостинге — для очереди повторных попыток и обратной синхронизации (прямая отправка заказов работает и без крона)
История версий
Cron-токен со спецсимволом (&, кавычки) больше не отбрасывается.
Релиз фикса валюты: суммы в KeyCRM отправляются в валюте заказа (курс заказа), а не в базовой валюте магазина.
3.x-сборку подтянули до уровня 2.3 и 4.x.
Все версии (8)
Отдельная сборка под OpenCart 2.3.
Исправлена совместимость с PHP 7.4.
Исправлено событие заказа на OpenCart 4.0.2.x (разделитель метода) и проверка дубля ТТН на драйвере базы PDO.
Обратная синхронизация KeyCRM → OpenCart.
Отправка заказов в KeyCRM при оформлении или смене статуса, идемпотентность без дублей, очередь повторных попыток через cron, маппер полей и оплат, шифрование API-ключа, журнал…
Полное описание модуля
KeyCRM Sync для OpenCart 2.3, 3.x и 4.x — модуль двусторонней синхронизации магазина с KeyCRM. В прямом направлении каждый заказ OpenCart автоматически создаётся в CRM — с покупателем, товарами, доставкой и способом оплаты. В обратном (опционально) модуль подтягивает из KeyCRM обратно в OpenCart статусы заказов, номера ТТН и даже остатки товаров. Менеджеры ведут продажи в одном окне CRM, а магазин остаётся актуальным без ручной работы.
Модуль полностью бесплатный. Код открыт на GitHub: github.com/catcodestudio/opencart-keycrm-sync. Для работы достаточно API-ключа из кабинета KeyCRM — без подписок и дополнительных сервисов.
Как это работает — шаг за шагом
- Покупатель оформляет заказ в магазине OpenCart.
- Модуль формирует данные для CRM: контакты, товары, доставка и оплата. Телефон нормализуется в формат +380, позиции с нулевой ценой пропускаются.
- Заказ отправляется в KeyCRM — сразу при оформлении или при переходе в настроенный статус. Источник заказов создаётся в CRM автоматически при первой отправке.
- Защита от дублей: уникальный ключ
UNIQUE(order_id, target)в журнале гарантирует, что заказ не задвоится, даже если событие сработает повторно. - Неудачные отправки попадают в очередь повторных попыток — отдельная cron-задача добивает их с ограничением количества попыток.
- Обратная синхронизация (если включена): вторая cron-задача периодически забирает из KeyCRM обновлённые статусы (по вашему маппингу «статус KeyCRM → статус OpenCart»), добавляет в историю заказа комментарий с ТТН и, отдельным чекбоксом, обновляет остатки товаров по SKU.
Что под капотом
- Идемпотентность на уровне БД —
UNIQUE(order_id, target)в таблице журнала: дубликат невозможен даже при повторном срабатывании события OpenCart. - API-ключ зашифрован в БД — sodium с HMAC-фолбеком, в открытом виде не хранится.
- Журнал синхронизации с постатусной записью по каждому заказу и фрагментами запроса/ответа API — удобно разбирать, почему конкретный заказ не ушёл.
- Обратная синхронизация без петель: читает KeyCRM только на получение, а во время записи истории заказа глушит событие прямой синхронизации — обратно в CRM ничего не отправляется. Каждый прогон пересканирует 10-минутное перекрытие, чтобы не потерять граничные обновления; время — в UTC.
- Адаптерная архитектура — маппер заказов и диспетчер отделены от конкретной CRM, KeyCRM реализована как адаптер.
Как установить
- Загрузите
cc_crm.ocmod.zipчерез Расширения → Инсталлятор в админке OpenCart. Для OpenCart 3.x — сборкуcc_crm-oc3.ocmod.zip.
Для OpenCart 2.3 возьмите сборкуcc_crm-oc2.ocmod.zip. Штатный инсталлятор 2.3 копирует файлы только по FTP, поэтому если FTP не настроен — распакуйте архив и залейте содержимое папкиupload/в корень магазина. - Перейдите в Расширения → Модули, найдите KeyCRM Sync и нажмите «Установить».
- Откройте настройки модуля и вставьте API-ключ из кабинета KeyCRM.
- Включите отправку и выберите триггер: сразу при оформлении или при смене статуса.
- При необходимости включите обратную синхронизацию на вкладке «Зворотна синхронізація» (в английском интерфейсе — «Reverse sync»): настройте маппинг статусов (список статусов KeyCRM подгружается прямо в админке) и добавьте cron-задачи.
- OpenCart 2.3 и 3.x: планировщика в этих версиях нет вообще, поэтому обе cron-адреса (очередь повторных попыток и обратная синхронизация) показаны просто в настройках модуля — добавьте их в системный crontab. Рядом есть поле «Cron-токен»: заполните его, чтобы адреса не мог дёргать кто-то посторонний.
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Меняет ли модуль checkout или тему магазина?
Нет. Модуль слушает события заказов на стороне сервера — никаких изменений в витрине или checkout-е покупатель не увидит.
Создадутся ли дубликаты заказов в CRM?
Нет. Идемпотентность гарантируется уникальным ключом в БД по паре «заказ + CRM», а KeyCRM дополнительно получает source_uuid = oc-{order_id}.
Что будет, если KeyCRM временно недоступна?
Заказ попадёт в очередь повторных попыток — cron-задача отправит его позже. Результат каждой попытки видно в журнале синхронизации.
Обязательна ли обратная синхронизация?
Нет, она выключена по умолчанию. Прямая отправка заказов в KeyCRM работает сама по себе; статусы, ТТН и остатки — отдельная опция для тех, кому нужно.
Как модуль обновляет остатки товаров?
Через GET /offers/stocks KeyCRM: предложения сопоставляются с товарами OpenCart по SKU, количество обновляется, а итог прогона пишется в лог. Опция включается отдельным чекбоксом.
Нужно ли что-то настраивать в самой KeyCRM?
Минимум: только API-ключ. Источник заказов модуль создаст автоматически при первой отправке, если вы не указали Source ID вручную.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—


