Как связать 1С-Битрикс и RetailCRM: от стандартной интеграции к кастомизации под ваш бизнес
В этой статье мы на реальном примере разберём, как настроить интеграцию между 1С-Битрикс и RetailCRM — от стандартного модуля до доработки под нестандартную бизнес-логику (передача опций товара).
Почему интеграция с CRM — это не «хотелка», а база
Современный интернет-магазин — это сложная система: заказы идут с сайта, из мобильного приложения, с маркетплейсов. Менеджеры тратят часы на ручной перенос данных, а клиент не видит актуального статуса заказа.
Правильная интеграция с CRM решает три главные задачи:
- Автоматическая передача заказов и клиентов из сайта в CRM.
- Актуальные статусы заказов (оплачен, собран, отгружен, доставлен) на сайте и в CRM.
- Единая база клиентов для маркетинга и повторных продаж.
RetailCRM из коробки поддерживает связку с 1С-Битрикс. Но, как показывает практика, стандартного модуля часто недостаточно.
Шаг 1. Базовая интеграция: готовый модуль
Самый быстрый способ — установить официальный бесплатный модуль из Маркетплейс 1С-Битрикс:
intaro.retailcrm.
Модуль с открытым исходным кодом (доступен на GitHub). Обновления лучше брать оттуда — в Маркетплейсе они появляются позже.
Что умеет модуль «из коробки»:
- Выгружать новые заказы из Битрикса в RetailCRM.
- Обновлять уже переданные заказы при изменениях.
- Импортировать заказы и клиентов из CRM на сайт.
- Отправлять информацию об онлайн-оплате.
Шаг 2. Когда «коробки» не хватает: пример с опциями товара
Проблема
В одном из наших проектов товары на сайте дополнялись опциями (например, цвет, размер, дополнительная гравировка). Эти опции передавались в заказ как свойства товара.
Стандартный модуль RetailCRM отправлял в CRM только сам товар (номенклатуру), без свойств. В итоге на складе не понимали, какую именно комплектацию отгружать. Были случаи, когда клиент получал товар не в той конфигурации.
Решение
Мы решили использовать в RetailCRM «свойства товара в заказе» — они хранятся только в конкретном заказе и не меняют номенклатуру в CRM. Это позволяет видеть точную комплектацию, не дублируя товары в каталоге.
Техническая реализация:
Стандартный модуль отправляет заказ на событие OnSaleOrderEntitySaved, но в этот момент свойства товаров ещё не сформированы. Поэтому мы подключились к более позднему событию — OnSaleOrderSaved.
use Bitrix\Main;
use Bitrix\Main\Loader;
Loader::includeModule("sale");
Loader::includeModule("intaro.retailcrm");
Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderSaved',
'updateCrmOrder'
);
function updateCrmOrder($event)
{
$customRetailCrm = new customRetailCrm();
$customRetailCrm->updateCrmOrder($event);
}
В кастомном классе
customRetailCrm мы:
- Получили данные заказа из RetailCRM (через API).
- Получили актуальные свойства товаров из корзины Битрикса.
- Сформировали новую корзину с опциями и отправили обратно в CRM методом
ordersEdit.
Также доработали форму заказа в 1 клик — теперь и она передаёт выбранную комплектацию.
Шаг 3. Другие способы кастомизации (без потери при обновлениях)
Если вам нужно расширить интеграцию, но не хочется переписывать весь модуль, используйте официальные механизмы:
- Вызываемые функции — в модуль встроены хуки, в которых можно модифицировать отправляемые или получаемые данные.
Документация RetailCRM - Переопределение классов — скопируйте файлы классов из модуля в
/bitrix/php_interface/retailcrmи изменяйте их. При обновлении модуля ваши правки не затронутся. - Использование методов модуля в своих компонентах — вызывайте методы
RetailCrmнапрямую из вашего кода. - Полностью кастомная интеграция — если ваш бизнес-процесс сильно отличается от стандартного, проще взять за основу официальную PHP-библиотеку и написать свой обмен.
Выводы и рекомендации от Monoplan
- Не экономьте на интеграции. Криво настроенный обмен приводит к потерянным заказам, ошибкам отгрузки и недовольству клиентов.
- Всегда тестируйте на тестовом контуре перед внедрением в боевой проект.
- Учитывайте особенности вашего товара. Если у вас не просто «товар + цена», а опции, комплекты, подарки — стандартного модуля будет недостаточно.
- Закладывайте время на кастомизацию. Даже простая на первый взгляд интеграция может потребовать 10–20 часов доработок.
Статья: Ошибки обмена 1С и Битрикс, которые снижают производительность сайта
Нужна помощь с интеграцией?
Если вы хотите связать свой интернет-магазин на 1С-Битрикс с RetailCRM или другой учётной системой, напишите нам на hello@monoplan.team. Проведём аудит вашего текущего обмена, спроектируем архитектуру и реализуем надёжную интеграцию.