ФиксИнтернет-магазин на 1С-Битрикс под ключ за 30 дней по фиксированной цене

Интеграция 1С-Битрикс с RetailCRM: заказы, клиенты и товары

Схема интеграции интернет-магазина на 1С-Битрикс с RetailCRM: заказы, клиенты, товары и статусы через REST API и ICML

Заказы приходят из разных каналов — с сайта на 1С-Битрикс, из мессенджеров, с маркетплейсов, по телефону, — а менеджеры собирают их вручную по вкладкам, теряют часть обращений и не видят, что этот покупатель уже заказывал у вас три раза. Пока заказов немного, это терпимо, но с ростом магазина «сборка вручную» превращается в узкое место: медленная обработка, потерянные лиды, ноль аналитики и никакого нормального маркетинга. Решение — интеграция 1С-Битрикс с RetailCRM: заказы и клиенты с сайта уходят в CRM в реальном времени, каталог выгружается фидом, а менеджеры работают в едином окне с полной историей покупателя.

Это подробное руководство о том, как устроена связка магазина на Битриксе и RetailCRM: чем RetailCRM отличается от 1С и где между ними граница, какой официальный модуль ставить из Маркетплейса, что и в какую сторону синхронизируется (заказы, клиенты, товары, статусы, оплаты, доставки), как работает ICML-выгрузка каталога, как собирается единая история покупателя и RFM-сегменты, как связать RetailCRM с 1С и складом и на чём чаще всего спотыкаются при настройке. Материал основан на нашей практике внедрения и интеграции RetailCRM — без маркетинговых обещаний и выдуманных цифр, по делу.

Коротко

  • RetailCRM — облачная CRM для e-commerce; обмен с 1С-Битрикс идёт по REST API (JSON) для заказов и клиентов и через ICML-выгрузку для каталога.
  • Заказы и клиенты уходят в CRM в реальном времени, статусы, оплаты и доставки синхронизируются в обе стороны.
  • Способы интеграции: официальный модуль из Маркетплейса Битрикс или собственный обмен по REST API RetailCRM.
  • RetailCRM ≠ 1С: CRM обрабатывает заказы и маркетинг, 1С ведёт товарный и складской учёт; их связывают вместе.
  • 90% проблем — не в API, а в несогласованном маппинге статусов, дублях клиентов и незагруженном ICML-каталоге.

Что такое RetailCRM и зачем магазину

RetailCRM — это облачная CRM-система, заточенная под электронную коммерцию и розницу. В отличие от «универсальных» CRM, она изначально построена вокруг заказа интернет-магазина: собирает заявки из всех каналов в единое окно, ведёт клиентов и их историю покупок, помогает менеджеру быстро обработать заказ, а маркетологу — сегментировать базу и запускать коммуникации. По сути это «пульт управления продажами» магазина, отдельный от витрины и от учётной системы.

Для магазина на 1С-Битрикс RetailCRM закрывает ровно ту часть, которую неудобно вести на самом сайте: операционную обработку заказов и работу с клиентом. Сайт умеет показывать каталог и принимать заказы, но он не место, где менеджер весь день обрабатывает заявки, звонит, меняет статусы, ведёт переписку и смотрит на историю покупателя. Всё это удобнее делать в CRM. Интеграция соединяет две половины: витрину и систему обработки заказов.

Что даёт связка сайта и RetailCRM

Интеграция убирает ручную «сборку заказов по вкладкам» и даёт менеджеру единое рабочее место, где видно всё о заказе и клиенте. Когда сайт и CRM обмениваются данными автоматически, заявки не теряются, обрабатываются быстрее, а у бизнеса появляется аналитика и почва для маркетинга.

Признаки, что интеграцию пора настраивать

Если вы узнаёте свой магазин в нескольких пунктах ниже — связка Битрикса с RetailCRM окупится быстро:

RetailCRM и 1С: где граница ответственности

Частый вопрос на старте: если у нас уже есть 1С, зачем ещё RetailCRM, и не заменяет ли одно другое. Короткий ответ: не заменяет — это разные системы с разными задачами. 1С — это учётная система: товарный и складской учёт, документы, бухгалтерия, отгрузки. RetailCRM — это система обработки заказов и работы с клиентом: воронка, статусы, коммуникации, маркетинг. Они не конкурируют, а дополняют друг друга.

Чтобы связка работала без конфликтов, важно заранее провести границу: какая система «хозяин» каждого типа данных. Ошибка «пусть всё будет везде» приводит к тому, что заказ правят и в CRM, и в 1С, а остатки приходят из двух источников — и начинается рассинхрон. Практичное разделение выглядит так.

ДанныеГде «хозяин»Комментарий
Заказы и их обработкаRetailCRMВоронка, статусы, менеджеры, коммуникации
Клиенты и история покупокRetailCRMЕдиная карточка, сегменты, маркетинг
Номенклатура и характеристики1С (или сайт)Каталог ведётся в учёте, попадает в CRM через ICML
Остатки и цены1С / складСчитаются в учётной системе, отдаются на сайт и в CRM
Документы и бухгалтерия1СОтгрузки, накладные, взаиморасчёты
Витрина и приём заказовСайт (1С-Битрикс)Каталог, корзина, оформление заказа

Типовая схема выглядит так: покупатель оформляет заказ на сайте, заказ уходит в RetailCRM, где менеджер его обрабатывает; из CRM заказ передаётся в 1С для отгрузки и учёта, а остатки и цены идут обратным потоком из 1С на сайт и в CRM. Сайт при этом остаётся витриной, RetailCRM — операционным центром, 1С — учётным ядром. Про обмен именно с 1С у нас есть отдельный подробный разбор — интеграция магазина с 1С по CommerceML.

Определите «хозяина» данных заранее. До настройки решите, где создаётся заказ (обычно на сайте, дальше «живёт» в CRM), где ведётся номенклатура (1С или сайт), где считаются остатки (склад/1С). Если несколько систем правят одно и то же поле без правил, интеграция превратится в источник конфликтов, а не порядка.
Сайт на 1С-Битрикс каталог · приём заказов RetailCRM обработка · клиенты REST API: заказы · клиенты ICML: выгрузка каталога Статусы · оплаты · доставки — обратно на сайт Ключ API
Схема: сайт на Битриксе передаёт в RetailCRM заказы и клиентов по REST API и каталог через ICML, а статусы, оплаты и доставки возвращаются на сайт. Доступ авторизуется ключом API.

Что синхронизируется между Битрикс и RetailCRM

Полноценная интеграция закрывает несколько больших групп данных, и понимание, что и в какую сторону передаётся, — половина успеха при настройке. В отличие от обмена с учётной системой, где основной поток — товары на сайт, здесь ключевое направление обратное: заказы и клиенты идут с сайта в CRM, а каталог отдаётся фидом.

ДанныеНаправлениеЗачем
Заказысайт → RetailCRMОбработка заказа менеджером в едином окне CRM
Изменения заказа и статусыRetailCRM ↔ сайтСинхронное состояние заказа в обеих системах
Клиенты и контактысайт → RetailCRMЕдиная карточка покупателя, история, сегменты
Каталог товаров (ICML)сайт → RetailCRMПозиции, категории, цены и остатки для карточки заказа
ОплатыRetailCRM ↔ сайтПризнак и способ оплаты в обеих системах
ДоставкиRetailCRM ↔ сайтСпособ доставки, адрес, трек-номер
Менеджеры и каналынастройкаКто обрабатывает заказ и из какого канала он пришёл

В терминах RetailCRM заказ — это order, клиент — customer, товар и торговое предложение — product и offer в каталоге, статус — status из справочника статусов, способ оплаты — paymentType, способ доставки — deliveryType, канал заказа — orderMethod или site. Дальше в статье разберём, как правильно связать эти сущности с объектами Битрикса, потому что именно на маппинге чаще всего и возникают ошибки.

Официальный модуль интеграции из Маркетплейса

Хорошая новость: для связки 1С-Битрикс и RetailCRM не обязательно писать обмен с нуля. В Маркетплейсе Битрикс есть официальный модуль интеграции RetailCRM, который закрывает базовые сценарии «галочками»: выгрузку заказов и клиентов в CRM, приём изменений статусов обратно на сайт и формирование ICML-каталога. Это самый быстрый и предсказуемый старт для типового магазина.

Что делает модуль после установки и настройки:

Как и любой готовый модуль, он ограничен своей логикой. Если нужен нестандартный маппинг полей, особые правила создания клиентов или сценарий, которого в модуле нет, его либо дорабатывают, либо часть обмена выносят на прямой API. Перед установкой стоит проверить совместимость с вашей версией Битрикса и редакцией, а также то, что модуль поддерживает нужные вам сущности: несколько складов, типы цен, торговые предложения, каналы продаж.

Проверьте версии и права. Официальный модуль требует корректно настроенного модуля «Интернет-магазин» на сайте и активного аккаунта RetailCRM с доступом к API. До установки уточните, какую версию API использует модуль и хватает ли прав у выданного ключа — половина «странных» ошибок на старте именно про несовпадение версий и урезанные права ключа.

Способы интеграции: модуль или REST API

Первый архитектурный выбор — каким способом связывать сайт и RetailCRM. По сути их два, и они отличаются трудозатратами, гибкостью и стоимостью поддержки. Часто их комбинируют: база на модуле, нестандартные сценарии — на прямом API.

1. Официальный модуль из Маркетплейса

Вы устанавливаете модуль, прописываете адрес аккаунта RetailCRM и ключ API, настраиваете соответствие статусов, оплат, доставок и каталога — и обмен начинает работать. Это быстрый старт без разработки: типовые сценарии закрыты из коробки, обновления приходят от вендора. Подходит большинству магазинов, у которых процессы близки к стандартным.

Минус — вы ограничены логикой модуля. Нестандартный маппинг, особая обработка клиентов, сложные правила разбиения заказов могут не поместиться в его настройки, и тогда нужна доработка.

2. Собственный обмен по REST API RetailCRM

Второй путь — писать обмен под свои процессы, обращаясь к REST API RetailCRM напрямую. Это максимально гибко: вы полностью контролируете, какие поля куда едут, как создаются и объединяются клиенты, как разбиваются заказы, как обрабатываются ошибки. Так делают, когда бизнес-логика нестандартная или готовый модуль её не покрывает. Обмен обычно оформляют как модуль или набор обработчиков на стороне Битрикса плюс приём уведомлений от RetailCRM.

Минус — это разработка: её нужно проектировать, тестировать и поддерживать. Зато результат ложится ровно на ваши процессы.

3. Гибрид: модуль плюс доработки

На практике чаще всего встречается третий вариант — базовый обмен держат на официальном модуле, а нетиповые сценарии добавляют точечно через API поверх него. Например, модуль выгружает заказы и статусы, а отдельная доработка по-своему объединяет клиентов или подмешивает данные из внешней системы. Это баланс скорости и гибкости: не переписывать всё с нуля, но и не упираться в потолок модуля.

Как устроен REST API RetailCRM

Независимо от способа, в основе обмена заказами и клиентами лежит REST API RetailCRM — набор HTTP-адресов, к которым обращается сайт, чтобы читать и записывать данные. Формат обмена — JSON: и запросы, и ответы представляют собой структурированные объекты. Это принципиально иной транспорт, чем файловый XML CommerceML у 1С: здесь живые вызовы к облаку CRM, а не «пакет на диске».

Работает это так. Каждая сущность в RetailCRM — заказ, клиент, справочники — доступна по своему адресу (endpoint). Сайт отправляет запрос: «создай заказ», «обнови клиента», «дай список статусов», «дай изменившиеся заказы» — и получает ответ в JSON. У каждой сущности есть идентификаторы: внутренний id CRM и внешний код (externalId), по которому RetailCRM связывает объект со своим двойником на сайте.

Авторизация: ключ API

Чтобы сайт мог обращаться к API, ему нужен ключ доступа. В RetailCRM ключ API создаётся в настройках аккаунта, и ему выдаётся набор прав — на какие методы и сущности он может влиять. На практике для интеграции заводят отдельный ключ с нужными правами, который сайт подставляет в каждый запрос. Ключ удобнее и безопаснее полного доступа: его можно отозвать и перевыпустить, не трогая остальные, и ограничить ровно теми операциями, которые нужны обмену.

Ключевые сущности и методы

Сущность RetailCRMЧто этоРоль в обмене
order (заказ)Заказ покупателяСоздаётся из заказа сайта, обрабатывается менеджером
customer (клиент)Карточка покупателяЕдиная история, привязка заказов, сегменты
каталог (ICML)Товары и предложенияЗагружается фидом, из него выбирают позиции заказа
status / statusGroupСтатусы и их группыСостояние заказа в воронке
paymentTypeСпособ оплатыКак оплачен заказ
deliveryTypeСпособ доставкиКак доставляется заказ
orderMethod / siteКанал и магазинОткуда пришёл заказ
managerОтветственныйКто ведёт заказ

Отдельно стоит упомянуть механику «получить изменения»: сайт может периодически спрашивать у RetailCRM, какие заказы и клиенты изменились с определённого момента, и подтягивать только их, а не всю базу. Это экономит запросы и держит системы в синхроне без «прокачки» всего объёма каждый раз. Плюс RetailCRM умеет уведомлять сайт о событиях, чтобы реакция была быстрой, — об этом ниже, в разделе про обмен заказами.

Обмен заказами в реальном времени

Заказ — центральная сущность интеграции. Ради быстрой и надёжной обработки заказов связку с RetailCRM чаще всего и затевают. Поток здесь двусторонний: заказ рождается на сайте и уходит в CRM, а любые изменения (статус, состав, оплата, доставка) синхронизируются между системами почти мгновенно.

Работает так: покупатель оформляет заказ на сайте; сайт по API создаёт заказ в RetailCRM, подставляя клиента, позиции, способ оплаты и доставки, комментарий и канал. Менеджер видит заказ в едином окне CRM, обрабатывает его — уточняет, меняет статус, добавляет позиции, оформляет доставку. Изменения возвращаются на сайт: покупатель в личном кабинете видит актуальный статус, а суммы и состав совпадают в обеих системах.

Что важно передать в заказе

Немедленное событие плюс сверка

Надёжный обмен заказами устроен как гибрид. Основной механизм — немедленная реакция на событие: заказ создан или изменён, и это тут же уходит в другую систему. Но разовое событие может не доставиться (сеть, недоступность, ошибка), поэтому поверх ставят периодическую сверку — фоновый процесс регулярно спрашивает «что изменилось» и добирает пропущенное. Так заказы не теряются и не задваиваются даже при сбоях связи.

Договоритесь о «хозяине» заказа. После выгрузки в RetailCRM именно CRM обычно становится местом, где заказ обрабатывают и меняют. Сайт при этом отражает статусы. Решите заранее, что можно править на сайте после оформления, а что — только в CRM, иначе две системы будут перетирать изменения друг друга.
Покупатель оформил заказ Сайт создаёт заказ RetailCRM order Менеджер статус · доставка Статусы, оплата и доставка возвращаются на сайт → в личный кабинет
Схема: заказ с сайта создаётся в RetailCRM, менеджер его обрабатывает в едином окне, а статусы, оплата и доставка возвращаются на сайт в личный кабинет покупателя.

Клиенты и единая карточка покупателя

Вторая половина интеграции — клиенты. RetailCRM ценна ровно тем, что собирает всё о покупателе в одной карточке: контактные данные, все заказы, каналы обращений, коммуникации. Но эта ценность появляется только при аккуратной синхронизации — если клиенты приезжают с сайта дублями или неправильно объединяются, единая история рассыпается.

Когда покупатель оформляет заказ, сайт передаёт в RetailCRM данные клиента вместе с заказом. CRM ищет, есть ли уже такой покупатель, и либо привязывает заказ к существующей карточке, либо создаёт новую. Правило поиска — самое чувствительное место: обычно клиента объединяют по телефону и/или e-mail, и от того, как настроено это правило, зависит, будет ли у человека одна карточка со всей историей или несколько «осколков».

Как избежать дублей клиентов

Отдельная тема — первичная выгрузка накопленной базы при запуске. Историю клиентов и заказов переносят разово, и здесь важно и правильно объединить контакты, и корректно перенести исторические заказы со статусами и суммами, чтобы RFM-сегменты и аналитика считались на полной картине. Как переносят заказы и контрагентов между системами, мы разбираем и в рубрике «Интеграции».

Заказ с сайта Звонок по телефону Заявка из мессенджера Единая карточка клиента в RetailCRM История покупок все заказы и суммы RFM-сегмент для маркетинга
Схема: заказы и обращения из сайта, телефона и мессенджеров объединяются по стабильному ключу в единую карточку клиента, на которой строятся история покупок и RFM-сегмент.

ICML-выгрузка каталога для RetailCRM

Чтобы менеджер в RetailCRM мог собирать заказ из позиций каталога, видеть цены и наличие, а система правильно считала суммы, у CRM должен быть свой справочник товаров. Заполняется он не по одной позиции через API, а целиком — файлом-фидом в формате ICML. Это отдельная и обязательная часть интеграции, без которой заказы будут приходить «безтоварными» строками.

ICML (Intaro Catalog Markup Language) — это XML-формат выгрузки каталога, который RetailCRM понимает «из коробки». Сайт формирует ICML-файл, а RetailCRM периодически его забирает по указанному адресу и обновляет свой справочник товаров. Официальный модуль умеет генерировать такой фид сам; при собственном обмене его формируют программно.

Что содержит ICML-файл

Как часто обновлять фид

ICML-каталог не обязан обновляться в реальном времени, но и устаревать не должен. Обычно фид перегенерируют по расписанию — например, ночью для полной структуры и чаще для цен и остатков, если они быстро меняются. RetailCRM забирает его периодически. Баланс тут такой: слишком редкое обновление — менеджер видит неактуальные цены и остатки; слишком частая перегенерация большого каталога — лишняя нагрузка на сайт. Разумный компромисс подбирают под конкретный магазин.

Каталог — фундамент интеграции. Пока в RetailCRM не загружен корректный ICML, любые заказы будут приходить с несопоставленными позициями, а суммы — считаться неверно. Поэтому настройку почти всегда начинают именно с ICML-выгрузки и убеждаются, что каталог в CRM совпадает с сайтом, и только потом включают обмен заказами.
Сайт каталог 1С-Битрикс ICML-файл • категории • товары · предложения • цены · остатки RetailCRM справочник товаров формирует забирает Из этого справочника менеджер выбирает позиции в карточке заказа
Схема: сайт формирует ICML-файл с категориями, товарами, ценами и остатками, RetailCRM периодически его забирает и обновляет справочник товаров, из которого собираются заказы.

Товары и торговые предложения в CRM

Каталог в RetailCRM устроен похоже на каталог сайта: есть товары и есть их торговые предложения (модификации). Если у вас магазин одежды или обуви, где один товар существует в нескольких размерах и цветах, важно, чтобы эта структура корректно доехала в CRM через ICML — иначе менеджер не сможет выбрать нужный вариант, а остатки и цены съедут.

Соответствие простое: товар сайта становится товаром в CRM, а каждое торговое предложение (SKU) — предложением товара в CRM. Ключ связи — стабильный идентификатор, который совпадает в ICML и в заказе, чтобы позиция заказа однозначно указывала на конкретное предложение. Как устроены торговые предложения на самой витрине Битрикса, мы подробно разбирали в отдельной статье — принцип «товар и его SKU» одинаков и для каталога, и для CRM.

Что важно про товары в CRM

Маппинг статусов заказа

Статусы — самое частое место конфликтов при интеграции с любой CRM. У сайта на Битриксе свой набор статусов заказа, у RetailCRM — свой, с группами статусов (новый, в работе, выполнен, отменён). Задача маппинга — однозначно связать эти наборы, чтобы состояние заказа в двух системах всегда соответствовало друг другу.

Если маппинг не согласован, возникают классические симптомы: заказ на сайте «оплачен», а в CRM всё ещё «новый»; менеджер закрыл заказ в CRM, а на сайте он висит в обработке; отмена в одной системе не доезжает до другой. Всё это подрывает доверие к интеграции и заставляет менеджеров дублировать работу руками.

Статус на сайте (пример)Статус в RetailCRM (пример)Группа
Принят, ожидает обработкиНовыйНовый
В обработкеСогласование / комплектованиеВ работе
ОплаченОплачен, готов к отгрузкеВ работе
ОтправленПередан в доставкуВ работе
ВыполненВыполненВыполнен
ОтменёнОтменён (с причиной)Отменён

Значения в таблице — иллюстративные: у каждого магазина своя воронка. Важен принцип — до включения обмена составить полную таблицу соответствия статусов в обе стороны и договориться, что происходит при отмене и возврате. Особое внимание — «терминальным» статусам (выполнен, отменён): именно на них чаще всего рассинхронизируются системы, если переход не описан.

Статусы согласуйте до первого обмена. Составьте таблицу «статус сайта ↔ статус RetailCRM» в обе стороны, включая отмену и возврат. Незакрытые «дыры» в маппинге — причина №1 странного поведения интеграции: заказы застревают в неверном состоянии, а менеджеры теряют к ней доверие.

Оплаты и способы оплаты

Кроме статуса заказа, синхронизируется и оплата. Здесь два аспекта: способ оплаты (как покупатель платит — картой онлайн, при получении, по счёту) и факт оплаты (оплачен заказ или нет). Оба нужно правильно сопоставить между сайтом и RetailCRM.

Особенно важно синхронизировать оплату при онлайн-платежах: покупатель заплатил на сайте, и статус оплаты должен доехать в CRM без ручного вмешательства. Иначе менеджер и покупатель будут по-разному понимать, оплачен заказ или нет. Как именно устроен приём онлайн-оплаты на самом сайте — отдельная тема, но для интеграции важно, чтобы факт успешной оплаты был событием, которое уходит в RetailCRM.

Доставки и службы доставки

Доставка — третий большой блок, который синхронизируется вместе с заказом. Сюда входят способ доставки, адрес, стоимость и, при подключении служб доставки, трек-номер и статус посылки. RetailCRM умеет интегрироваться со службами доставки, и тогда часть логистики автоматизируется прямо из CRM.

Как и со статусами, ключ к спокойной работе — согласованный маппинг способов доставки до запуска. Если на сайте пять способов, а в CRM три, часть заказов приедет с «пустой» или неверной доставкой, и менеджеру придётся доставлять данные руками.

Единая история и RFM-сегменты

Когда заказы и клиенты корректно синхронизированы, RetailCRM начинает делать то, ради чего её и ставят, — превращать разрозненные заказы в знание о покупателе. На единой карточке клиента собирается вся история покупок, а на её основе система считает сегменты и метрики для маркетинга.

Ключевой инструмент — RFM-сегментация. Она раскладывает клиентов по трём осям: Recency (как давно была последняя покупка), Frequency (как часто покупает) и Monetary (на какую сумму). По этим осям RetailCRM автоматически относит покупателей к сегментам: новички, лояльные, «спящие», уходящие, потерянные. Всё это считается на истории заказов — то есть напрямую зависит от качества интеграции.

Почему качество интеграции важно для сегментов

Отсюда практический вывод: аккуратная интеграция — это не только «удобно менеджеру», но и фундамент маркетинга. Сегменты, аналитика и триггеры настолько точны, насколько чисты данные, которые приходят с сайта. Именно поэтому дублям клиентов, полноте истории и маппингу статусов уделяют столько внимания.

История заказов из всех каналов RFM R — давность F — частота M — сумма Новички Лояльные Спящие Уходящие
Схема: полная история заказов из всех каналов позволяет RetailCRM считать RFM и раскладывать клиентов по сегментам. Точность сегментов напрямую зависит от чистоты данных, которые приходят с сайта.

Триггерные коммуникации и роботы

На собранной истории и сегментах RetailCRM строит автоматические коммуникации — триггеры. Это правила вида «если произошло событие — сделать действие»: покупатель бросил корзину, давно не заказывал, оформил первый заказ, перешёл в сегмент «уходящие». В ответ система отправляет письмо, сообщение в мессенджер, ставит задачу менеджеру или двигает заказ по воронке.

Для интеграции важно понимать: триггеры работают на данных, которые приходят с сайта. Чтобы отработать брошенную корзину, в CRM должна прийти информация о незавершённом заказе; чтобы поздравить с покупкой — заказ должен доехать с верным статусом; чтобы вернуть «спящего» — история должна быть полной. То есть триггеры — это надстройка над качественной синхронизацией, а не отдельная магия.

Настройка самих триггеров — это работа в RetailCRM, а не в коде сайта. Но их эффективность целиком опирается на интеграцию: мусорные или неполные данные превращают умные сценарии в спам и ошибки. Поэтому сначала налаживают чистый обмен, а уже потом запускают маркетинговую автоматизацию.

Связка RetailCRM + 1С + склад

В большинстве средних и крупных магазинов RetailCRM не единственная система: рядом есть 1С для учёта и склад. Здесь важно правильно выстроить треугольник «сайт — RetailCRM — 1С», чтобы каждая система делала свою работу и не мешала другим. Это тот самый вопрос границ, с которого мы начинали статью, только теперь в полной конфигурации.

Типовая схема ролей:

Потоки данных выстраивают так, чтобы не было двух источников одной правды. Заказ создаётся на сайте, обрабатывается в RetailCRM и передаётся в 1С для отгрузки и учёта; остатки и цены считаются в 1С (на данных склада) и идут обратным потоком на сайт и в CRM; каталог ведётся в одном месте и раздаётся остальным. RetailCRM при этом обычно интегрируется с 1С отдельным каналом — либо напрямую, либо через сайт как посредника.

Где граница CRM и 1С. Простое правило: всё, что про работу с заказом и клиентом (воронка, статусы, коммуникации, сегменты) — в RetailCRM; всё, что про товар, склад и деньги в учёте (номенклатура, остатки, отгрузки, документы) — в 1С. Заказ «путешествует» из сайта в CRM и дальше в 1С, но правит каждое поле та система, которой оно принадлежит.
Сайт 1С-Битрикс витрина · приём заказов RetailCRM заказы · клиенты · маркетинг 1С + склад учёт · остатки · документы заказы → заказ в учёт → ← остатки, цены Каждое поле правит та система, которой оно принадлежит
Схема: заказ идёт с сайта в RetailCRM и дальше в 1С для учёта и отгрузки, а остатки и цены из 1С возвращаются на сайт и в CRM. Границы ответственности систем разведены, чтобы не было двух источников одной правды.

Маппинг справочников и идентификаторы

Самая «невидимая», но критичная часть интеграции — соответствие сущностей и стабильность идентификаторов. Чтобы сайт и RetailCRM всегда узнавали одни и те же заказы, клиентов и товары, а не плодили дубли, у каждой сущности должен быть внешний код (externalId), одинаковый от обмена к обмену.

Если этот код «плывёт» — например, при перезаливке каталога у товаров поменялись идентификаторы, или клиентов объединяют по нестабильному признаку, — интеграция перестаёт узнавать объекты и создаёт копии. В CRM появляются дубли клиентов и товаров, история рассыпается, суммы съезжают. Поэтому стабильность идентификаторов — то, за чем следят в первую очередь.

Сущность на сайтеОбъект в RetailCRMКлюч связи
Заказ магазинаЗаказ (order)Внешний код заказа (externalId)
Пользователь / покупательКлиент (customer)externalId + телефон/e-mail
Товар каталогаТовар в справочникеИдентификатор из ICML
Торговое предложение (SKU)Предложение товараИдентификатор предложения из ICML
Статус заказаstatus / statusGroupТаблица соответствия статусов
Способ оплатыpaymentTypeСопоставление один к одному
Способ доставкиdeliveryTypeСопоставление один к одному

Что важно проверить до и во время обмена: у заказов, клиентов и товаров есть стабильные внешние коды, которые не меняются между сеансами; правило объединения клиентов приведено к единому формату телефона и e-mail; таблицы соответствия статусов, оплат и доставок заполнены полностью в обе стороны; на тестовом обмене повторная выгрузка обновляет объекты, а не создаёт дубли. Отдельно согласуйте, что делать с заказами и клиентами, у которых нет внешнего кода, — их либо матчат по правилам, либо создают заново.

Обработка ошибок и идемпотентность

Обмен по API — это сеть, а сеть иногда падает: обрыв связи, тайм-аут, ответ с ошибкой, превышение лимита запросов. Плохой обмен на любой такой ситуации «спотыкается» и оставляет данные наполовину обновлёнными: заказ ушёл, а клиент нет; статус сменился в одной системе, но не доехал в другую. Хороший обмен устроен так, чтобы сбой не приводил к дублям и потерям, а перезапуск был безопасным.

Идемпотентность: перезапуск без вреда

Ключевое свойство надёжного обмена — идемпотентность: повторный запуск той же операции не портит данные. Достигается это за счёт того, что обмен различает «создать» и «обновить» по внешнему коду. Если заказ или клиент с таким externalId уже есть — он обновляется, если нет — создаётся. Тогда прогнать пачку дважды не страшно: во второй раз она перезапишет то же самое, а не наделает копий.

Что должен уметь обмен при сбоях

Если обмен всё же сломался, общий порядок такой: посмотреть лог последнего сеанса и найти ошибку, проверить доступность API и права ключа, убедиться, что не упёрлись в лимиты, и перезапустить проблемную пачку. Благодаря идемпотентности повторный прогон безопасен и не задваивает заказы. Похожую механику надёжного обмена мы разбирали и в статье про интеграцию с МойСклад — принципы устойчивости к сбоям одинаковы для любого API-обмена.

Безопасность: ключи API и доступы

Через интеграцию в RetailCRM уходят заказы с персональными данными покупателей: имена, телефоны, адреса, состав заказов. Поэтому канал обмена защищают так же серьёзно, как и админку сайта. Базовые меры:

Это не «паранойя», а нормальная гигиена: ключ API — такой же ключ от системы, как пароль администратора, а через него ходят персональные данные клиентов. Юридические аспекты обработки персональных данных покупателей — отдельная тема; по ней лучше свериться с вашим юристом и требованиями законодательства, а не полагаться на «как у всех».

Пошаговая настройка интеграции

Когда способ выбран и границы систем определены, настройка сводится к понятной последовательности. Часть шагов делается на стороне RetailCRM, часть — на сайте. Порядок важен: сначала каталог, потом заказы.

На стороне RetailCRM

  1. Настройте справочники. Заведите статусы и их группы, способы оплаты и доставки, менеджеров и каналы продаж — то, с чем будут сопоставляться данные сайта.
  2. Создайте ключ API. Отдельный ключ для интеграции с нужными правами; сохраните его в защищённом месте.
  3. Подключите приём каталога. Укажите адрес ICML-фида, который будет забирать CRM, и задайте расписание его обновления.
  4. Настройте каналы и оплаты/доставки. Убедитесь, что все способы, которые есть на сайте, заведены и в CRM для корректного маппинга.

На стороне сайта (1С-Битрикс)

  1. Проверьте модуль «Интернет-магазин». Каталог реализован на инфоблоке с торговым каталогом и предложениями, статусы заказа настроены.
  2. Установите модуль RetailCRM или подключите свой обмен. Пропишите адрес аккаунта и ключ API.
  3. Настройте ICML-выгрузку. Проверьте, что фид формируется корректно: категории, товары, предложения, цены, остатки — и CRM его забирает.
  4. Заполните маппинг. Сопоставьте статусы, способы оплаты и доставки, типы заказов и каналы в обе стороны.
  5. Настройте выгрузку заказов и клиентов. Немедленную по событию плюс фоновую сверку; определите правило объединения клиентов.

Первый пробный обмен

Первый обмен делайте только на тестовой копии сайта или в тестовом окружении CRM. Сначала загрузите ICML и убедитесь, что каталог в RetailCRM совпадает с сайтом. Затем оформите тестовый заказ и проверьте: доехал ли он в CRM с верными позициями и суммой, правильно ли создался или нашёлся клиент, корректно ли сопоставились статус, оплата и доставка, возвращается ли смена статуса обратно на сайт. На этом этапе всплывают почти все проблемы маппинга — и их дешевле исправить здесь, а не на боевых заказах.

Правило тестовой копии: никогда не запускайте первый и любой экспериментальный обмен сразу на боевых заказах. Отладьте связку на копии и тестовых данных, и только убедившись в результате, включайте обмен на рабочем магазине. Это спасает от «потерянных» и задвоенных заказов в рабочее время.

Мини-кейс: магазин на RetailCRM

Чтобы всё вышесказанное не осталось теорией, коротко опишем типичный для нас сценарий (детали обобщены, без названий клиентов — по нашей редполитике мы не раскрываем проекты без согласия).

Ситуация. Магазин принимал заказы с сайта на 1С-Битрикс, из мессенджеров и по телефону, а обрабатывал их вручную по вкладкам и таблицам. Часть заявок терялась, менеджеры не видели историю покупателя, нормальной аналитики и маркетинга не было. Учёт при этом вёлся в 1С.

Задача. Собрать все заказы в едином окне RetailCRM, наладить двусторонний обмен заказами и статусами с сайтом, выгрузить каталог в CRM и связать всё с 1С — не ломая существующий учёт.

Решение. Сначала настроили ICML-выгрузку каталога и убедились, что товары и предложения в CRM совпадают с сайтом. Затем согласовали маппинг: статусы сайта ↔ статусы RetailCRM в обе стороны, способы оплаты и доставки, каналы. Настроили выгрузку заказов и клиентов в реальном времени с фоновой сверкой, задали правило объединения клиентов по нормализованному телефону, чтобы не плодить дубли. 1С оставили учётным ядром: заказы из CRM уходят в учёт, остатки и цены возвращаются обратным потоком. Поверх собранной истории включили RFM-сегменты и первые триггеры.

Результат. Заказы из всех каналов стали собираться в одном окне, перестали теряться и обрабатываться быстрее, у менеджеров появилась полная карточка клиента, а у маркетинга — сегменты и триггеры на реальных данных. Точные цифры по каждому проекту разные и зависят от исходного состояния данных, поэтому обещать «рост продаж на N процентов» было бы некорректно — но снятие ручной сборки заказов и появление единой истории клиенты отмечают сразу.

Частые ошибки при интеграции

Большинство проблем повторяются из проекта в проект. Зная их заранее, вы сэкономите дни отладки:

Чек-лист перед запуском обмена

Короткий список, по которому удобно свериться до того, как включить обмен на боевом магазине:

Когда интеграция нужна, а когда нет

Интеграция с RetailCRM — не самоцель. Полезно честно понимать, когда она окупается, а когда можно обойтись проще.

Когда связка точно нужна

Когда можно повременить

И обратная сторона ожиданий: интеграция переносит данные и убирает рутину, но не наводит порядок в процессах за вас. Если воронка не продумана, статусы хаотичны, а клиентская база — каша из дублей, ровно это и приедет в CRM. Границы систем, маппинг и правила работы с клиентом по-прежнему определяете вы; интеграция лишь связывает всё в единый контур. Если хочется сравнить подходы, у нас есть разборы и других связок — например, интеграция с Битрикс24 как альтернативная CRM для части сценариев.

Вывод

Интеграция интернет-магазина на 1С-Битрикс с RetailCRM — это не про «галочку в настройках», а про порядок в данных и продуманную схему обмена. Технически связка решается через официальный модуль из Маркетплейса или собственный обмен по REST API: заказы и клиенты уходят в CRM в реальном времени, каталог выгружается через ICML, а статусы, оплаты и доставки синхронизируются в обе стороны. Но качество результата определяется подготовкой: согласованным маппингом статусов, стабильными идентификаторами, правилом объединения клиентов и корректным ICML-каталогом.

Разведите роли систем — сайт как витрина, RetailCRM как операционный центр, 1С как учётное ядро, — отладьте первый обмен на копии, подстрахуйте немедленные события фоновой сверкой, и магазин перестанет собирать заказы вручную. Заявки из всех каналов окажутся в едином окне, у покупателя появится единая история, а у маркетинга — сегменты и триггеры на реальных данных. Это и есть та автоматизация, ради которой затевают интеграцию с RetailCRM.

Частые вопросы

Чем интеграция с RetailCRM отличается от обмена с 1С по CommerceML?

RetailCRM — это облачная CRM для e-commerce, и обмен с ней идёт по REST API в формате JSON плюс ICML-выгрузка каталога: сайт отправляет в CRM заказы и клиентов, а каталог отдаёт файлом-фидом. Обмен с 1С по CommerceML — файловый пакетный протокол на XML, встроенный в модуль «Интернет-магазин». У этих систем разные задачи: 1С ведёт товарный, складской и бухгалтерский учёт, а RetailCRM собирает заказы из всех каналов, хранит единую историю покупателя и запускает маркетинг. Поэтому чаще их не противопоставляют, а связывают вместе: сайт и 1С обмениваются по CommerceML, сайт и RetailCRM — по API.

Нужен ли официальный модуль RetailCRM или можно работать через REST API напрямую?

Для типового магазина на 1С-Битрикс проще начать с официального модуля интеграции из Маркетплейса Битрикс: он выгружает заказы и клиентов в RetailCRM, принимает изменения статусов обратно и формирует ICML-каталог «галочками», без разработки. Прямой обмен по REST API RetailCRM нужен, когда логика нестандартная: особый маппинг полей, свои правила создания клиентов, обмен, которого нет в модуле. На практике многие проекты живут на модуле, а нетиповые сценарии добавляют точечными доработками поверх него.

Что такое ICML и зачем он нужен RetailCRM?

ICML (Intaro Catalog Markup Language) — это XML-формат выгрузки каталога, который RetailCRM понимает «из коробки». Сайт формирует ICML-файл со списком товаров, торговых предложений, категорий, цен и остатков, а RetailCRM периодически его забирает и обновляет свой справочник товаров. Благодаря этому в карточке заказа менеджер выбирает позиции из актуального каталога, видит цены и наличие, а система корректно считает суммы. Без загруженного каталога заказы в CRM будут «безтоварными» строками, поэтому ICML — обязательная часть интеграции.

Как заказы попадают в RetailCRM — сразу или по расписанию?

Заказ, оформленный на сайте, выгружается в RetailCRM практически в реальном времени: сайт по API создаёт заказ в CRM сразу после оформления. Обратно так же быстро приходят изменения — сменил менеджер статус или добавил позицию в CRM, и это возвращается на сайт. Технически это сочетание немедленной выгрузки события и периодической сверки: фоновая синхронизация подстраховывает на случай, если разовое событие не доставилось. Такой гибрид даёт и скорость, и надёжность, чтобы заказы не терялись и не задваивались.

Что такое RFM-сегменты в RetailCRM и откуда они берутся?

RFM — это сегментация клиентов по трём осям: давность последней покупки (Recency), частота покупок (Frequency) и сумма (Monetary). RetailCRM считает эти показатели автоматически на основе истории заказов, которая собирается из всех каналов, и раскладывает покупателей по сегментам: новички, лояльные, «спящие», уходящие. Чтобы сегменты были корректными, в CRM должна приходить полная и правильно связанная история заказов и клиентов с сайта — то есть качество интеграции напрямую влияет на качество маркетинга. Сами сегменты потом используют для рассылок и триггеров.

Можно ли использовать RetailCRM и 1С одновременно?

Да, это типовая и рекомендуемая связка. RetailCRM обрабатывает заказы, ведёт клиентов и маркетинг, а 1С отвечает за товарный и складской учёт, документы и бухгалтерию. Между собой они тоже обмениваются: заказ из CRM уходит в 1С для отгрузки и учёта, а остатки и цены могут приходить из 1С. Главное — заранее договориться, какая система «хозяин» каждого типа данных: где создаётся заказ, где ведётся номенклатура, где считаются остатки. Если несколько систем правят одно поле без правил, начинается рассинхрон, поэтому границы ответственности проектируют до настройки.

Что чаще всего ломается при интеграции сайта с RetailCRM?

Три классические проблемы. Первая — несогласованный маппинг статусов: набор статусов на сайте и в RetailCRM не совпадает, и заказы «застревают» в неверном состоянии. Вторая — нестабильные идентификаторы товаров и клиентов, из-за чего в CRM плодятся дубли карточек и позиций. Третья — незагруженный или устаревший ICML-каталог: заказы приходят с несопоставленными товарами, суммы считаются неверно. Реже, но встречается неправильное объединение клиентов (по телефону или e-mail), из-за которого единая история покупателя рассыпается. Всё это лечится подготовкой справочников и согласованием статусов до первого обмена.

Обязательно ли выгружать в RetailCRM всех клиентов и всю историю заказов?

Для полноценной работы CRM — да, потому что именно на полной истории строятся единая карточка покупателя, RFM-сегменты и аналитика. При запуске обычно делают первичную выгрузку накопленной базы клиентов и заказов, а дальше данные идут потоком в реальном времени. Важно корректно перенести исторические заказы со статусами и суммами и правильно объединить клиентов, чтобы у одного человека не оказалось несколько карточек. Объём и правила первичной миграции согласуют отдельно: иногда переносят всё, иногда — только активных клиентов за разумный период, чтобы не тащить «мёртвые» контакты.

Поделиться:

Свяжем ваш магазин с RetailCRM без боли

Настроим обмен заказами и клиентами по API, ICML-выгрузку каталога, маппинг статусов, оплат и доставок, свяжем CRM с 1С и складом, проверим на копии и наладим сверку. Рассчитаем работу по вашему магазину и процессам.

Игорь Воскресенский

Основатель студии B2Bsite. С 2014 года команда связывает интернет-магазины на 1С-Битрикс с CRM и учётными системами — RetailCRM, Битрикс24, 1С и МойСклад, — настраивает обмен заказами и клиентами, единую историю покупателя и маркетинговую автоматизацию для среднего и крупного бизнеса.

← Все статьи блога