Модуль RetailCRM для OpenCart — это официальное расширение Intaro, которое связывает витрину магазина с CRM: выгружает каталог в формате ICML, передаёт новые заказы и синхронизирует статусы в обе стороны. Разберём установку, ключевые настройки и типовые ошибки.
Что делает модуль и как устроен обмен
Расширение retailcrm для OpenCart работает как двусторонний коннектор. Он ставит в очередь три независимых процесса обмена, каждый из которых запускается по расписанию (cron) или по событию на витрине.
- Каталог — модуль генерирует файл
retailcrm.xmlв формате ICML, который RetailCRM забирает по URL и раскладывает по товарам и торговым предложениям. - Заказы — при оформлении на сайте заказ уходит в CRM методом
orders/createс проставленнымexternalId. - История изменений — cron регулярно опрашивает
orders/historyиcustomers/history, чтобы подтянуть в OpenCart смену статуса, оплату и правки менеджера.
Поддерживаются линейки OpenCart 2.x и 3.x, а также популярные сборки ocStore. Ключевое понятие обмена — externalId: это ID сущности на стороне сайта, по которому CRM однозначно находит заказ, клиента или товар и не создаёт дублей.
Установка расширения
Модуль распространяется как .ocmod.zip — устанавливается штатным установщиком без правки ядра.
- Скачайте актуальный релиз с официального репозитория Intaro или из маркетплейса OpenCart.
- В админке откройте
Расширения → Установка расширенийи загрузите архив. - Перейдите в
Расширения → Модификаторыи нажмите Обновить, чтобы применились ocmod-правки шаблонов. - Найдите модуль в списке
Расширения → Модули → RetailCRMи нажмите Установить (зелёный плюс).
Пользователи → Группы пользователей — отметьте доступ и на просмотр, и на изменение.Подключение по API
В RetailCRM создайте отдельный API-ключ: Настройки → Интеграция → Ключи доступа к API. Для модуля выбирайте тип доступа с ограничением по магазину и включайте только нужные методы (заказы, клиенты, справочники, загрузка каталога).
| Поле в модуле | Значение |
|---|---|
| URL CRM | https://ваш-аккаунт.retailcrm.ru |
| API-ключ | ключ из раздела «Ключи доступа к API» |
| Версия API | v5 (используется по умолчанию) |
После сохранения модуль проверит соединение. Если ключ верный, откроются вкладки сопоставления справочников.
Сопоставление справочников
Самая ответственная часть настройки — маппинг словарей OpenCart и RetailCRM. Пока справочники не сведены, заказы будут падать в CRM с пустыми полями или уходить с ошибкой.
- Способы оплаты — каждому методу OpenCart (наличные, карта, онлайн-касса) сопоставьте тип оплаты CRM.
- Способы доставки — курьер, самовывоз, транспортная компания.
- Статусы заказов — статусы витрины и статусы CRM в обе стороны.
- Магазин (site) — если в CRM несколько торговых площадок, укажите, к какому коду
siteотносится эта витрина.
Незамапленные значения лучше свести к одному «по умолчанию», а не оставлять пустыми — так менеджер увидит заказ и вручную уточнит детали.
Выгрузка каталога и cron
Модуль формирует ICML не «на лету», а по расписанию. Настройте системный cron на генерацию файла и укажите этот же URL в CRM.
Пример строки crontab для генерации каталога и синхронизации истории:
*/15 * * * * php /var/www/opencart/index.php --route=extension/retailcrm/icml
*/5 * * * * php /var/www/opencart/index.php --route=extension/retailcrm/history
Затем в RetailCRM: Администрирование → Магазины → ваш магазин → поле Адрес файла каталога ICML. Вставьте публичный URL сгенерированного файла, например https://site.ru/retailcrm.xml, и запустите разовую загрузку для проверки.
curl -I — ответ должен быть 200.Проверка и типовые ошибки
После настройки прогоните полный сценарий: оформите тестовый заказ на сайте и убедитесь, что он появился в CRM с товаром, ценой, оплатой и доставкой.
| Симптом | Вероятная причина |
|---|---|
| Заказы не уходят | Не запущен cron истории или неверный API-ключ |
| Каталог пустой в CRM | ICML недоступен по URL или не проходит валидацию |
| Статусы не синхронизируются | Не заполнен маппинг статусов в обе стороны |
| Дубли заказов | Сброшен или изменён externalId |
Логи обмена модуль пишет в системный журнал OpenCart и в раздел загрузки каталога CRM — начинать разбор ошибок стоит именно с них.
Итог
Модуль RetailCRM для OpenCart закрывает три задачи: каталог, заказы и статусы. Установка занимает минуты, но качество работы определяется маппингом справочников и корректно настроенным cron. Ошибки чаще всего кроются не в самом модуле, а в доступности ICML и правах API-ключа.
Если нужно подключить витрину без простоев и рисков потери заказов, мы настраиваем интеграцию OpenCart с RetailCRM под ключ — от аудита процессов до боевого запуска и обучения операторов.
Частые вопросы
Какие версии OpenCart поддерживает модуль?
Официальное расширение работает с линейками OpenCart 2.x и 3.x, а также с распространёнными сборками ocStore. Для более старых или сильно переработанных сборок может потребоваться доработка.
Нужен ли cron для работы модуля?
Да. По cron генерируется файл каталога ICML и подтягивается история изменений заказов из CRM. Без расписания синхронизация статусов и оплат работать не будет.
Можно ли подключить несколько витрин к одному аккаунту?
Да, в RetailCRM для каждой витрины заводится отдельный магазин с собственным кодом site и своим ICML. В модуле указывается, к какому магазину относится данная площадка.
Почему заказ ушёл в CRM без товаров?
Чаще всего товар витрины не найден в каталоге CRM по externalId. Проверьте, что каталог загружен и артикулы совпадают. До загрузки ICML позиции в заказе могут оставаться несопоставленными.
Что передаётся в externalId заказа?
Идентификатор заказа на стороне OpenCart. По нему CRM отличает новый заказ от изменения существующего и не плодит дубли.
Обязательно ли выдавать API-ключу полные права?
Нет и не рекомендуется. Достаточно прав на заказы, клиентов, справочники и загрузку каталога. Ключ лучше ограничить конкретным магазином.
Как проверить, что каталог доступен для CRM?
Откройте URL файла ICML в браузере или выполните curl — он должен отдавать XML с кодом 200 без авторизации и редиректов. Затем запустите разовую загрузку каталога в разделе «Магазины».
Поможем с настройкой и поддержкой RetailCRM
Поможем с настройкой, доработкой и поддержкой RetailCRM.