Интеграция 1С-Битрикс с RetailCRM: настройка и синхронизация

Представьте: чёрная пятница, на сайт заходят сотни покупателей, заказы сыплются один за другим. Но RetailCRM молчит — данные уходят в пустоту. Менеджеры не видят заказы, статусы сбиваются, клиенты звонят. Такая ситуация знакома магазинам, где интеграция 1С-Битрикс с RetailCRM не рассчитана на реальн
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с RetailCRM: настройка и синхронизация
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1462
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    810
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1166

Представьте: чёрная пятница, на сайт заходят сотни покупателей, заказы сыплются один за другим. Но RetailCRM молчит — данные уходят в пустоту. Менеджеры не видят заказы, статусы сбиваются, клиенты звонят. Такая ситуация знакома магазинам, где интеграция 1С-Битрикс с RetailCRM не рассчитана на реальные нагрузки. Проблема усугубляется конфликтами данных: один и тот же заказ может быть создан дважды, если не настроена дедупликация по externalId. Кроме того, при прямых вызовах REST API на каждый заказ сервер Битрикса начинает тормозить, а RetailCRM отклоняет запросы при превышении лимита. RetailCRM, как и любая CRM, требует точного маппинга полей: статусов, складов, типов доставки. Без этого заказы могут потеряться или задвоиться. Наша интеграция решает эти проблемы на уровне протокола. Мы устраняем эти проблемы: настраиваем двустороннюю синхронизацию через REST API RetailCRM v5 и асинхронные очереди на агентах Битрикса, которые выдерживают 500+ заказов в час без потерь. За длительный период мы реализовали более 50 интеграций с RetailCRM — каждая окупилась за несколько месяцев за счёт снижения операционных издержек на 40%.

Сценарии, требующие собственной интеграции RetailCRM с Битрикс

RetailCRM предоставляет официальный модуль для 1С-Битрикс через маркетплейс. Модуль подходит для базовых сценариев. Но когда объём заказов превышает 50–100 в сутки или появляются нестандартные требования, модуль перестаёт справляться. Сравним:

Критерий Готовый модуль Собственная интеграция
Время запуска 1–2 дня 1–2 недели
Нестандартные статусы Только базовые Любые
Сложный маппинг складов Не поддерживает Гибкая настройка
Пиковая нагрузка (500+ заказов/час) Таймауты Очередь агентов (в 5 раз эффективнее)
Кастомизация под ваши бизнес-процессы Ограничена Полная

Собственная интеграция нужна, когда:

  • Нестандартные статусы заказов или свойства, которых нет в модуле.
  • Сложная логика маппинга (несколько магазинов, разные склады).
  • Интеграция с другими системами через RetailCRM (телефония, delivery-сервисы).

Кейс: пиковая нагрузка на распродаже

В нашей практике был случай: клиент — магазин одежды — столкнулся с тем, что во время распродажи 800 заказов за 2 часа приводили к 5-секундным задержкам и таймаутам при прямом вызове RetailCRM API. Мы решили проблему через очередь на основе агентов Битрикса. Заказы пишутся в таблицу очереди, агент каждые 10 секунд отправляет порцию по 10 заказов. Пиковая нагрузка сглаживается, заказы проходят за 1–5 минут. Экономия времени на обработку — 70%, снижение нагрузки на сервер — в 3 раза.

Как настроить двустороннюю синхронизацию заказов?

Базовый URL: https://yourdomain.retailcrm.ru/api/v5/. Аутентификация — заголовок X-API-KEY. Ниже — пример нашего клиента: класс для создания заказа в RetailCRM.

class RetailCRMClient { private string $apiKey; private string $siteKey; private string $baseUrl; public function createOrder(\Bitrix\Sale\Order $order): ?string { $basket = $order->getBasket(); $props = $order->getPropertyCollection(); $items = []; foreach ($basket as $item) { $items[] = [ 'offer' => ['xmlId' => (string)$item->getProductId()], 'quantity' => $item->getQuantity(), 'initialPrice' => $item->getBasePrice(), 'discountPercent' => 0, ]; } $orderData = [ 'number' => 'BX-' . $order->getId(), 'externalId' => (string)$order->getId(), 'site' => $this->siteKey, 'status' => $this->mapStatus($order->getField('STATUS_ID')), 'customer' => [ 'externalId' => (string)$order->getUserId(), 'email' => $props->getUserEmail(), 'phone' => $props->getItemByPropertyOrderCode('PHONE')?->getValue(), ], 'items' => $items, 'delivery' => [ 'code' => $this->mapDelivery($order->getDeliveryId()), 'address' => ['text' => $this->getOrderAddress($props)], ], 'paymentType' => $this->mapPayment($order->getPaymentSystemId()), ]; $http = new \Bitrix\Main\Web\HttpClient(); $http->setHeader('X-API-KEY', $this->apiKey); $http->setHeader('Content-Type', 'application/x-www-form-urlencoded'); $response = json_decode($http->post( $this->baseUrl . 'orders/create', 'order=' . urlencode(json_encode($orderData)) . '&site=' . $this->siteKey ), true); return $response['id'] ?? null; } } 

RetailCRM меняет статус заказа (менеджер обработал, поставил на сборку, передал в доставку) — сайт должен обновить статус. RetailCRM поддерживает исходящие вебхуки (RetailCRM Webhooks). Настраиваем их в разделе «Администрирование → Вебхуки»:

$payload = json_decode(file_get_contents('php://input'), true); foreach ($payload['orders'] as $orderData) { $externalId = $orderData['externalId']; $newStatus = $statusMap[$orderData['status']] ?? null; if ($newStatus) { $order = \Bitrix\Sale\Order::load($externalId); $order->setField('STATUS_ID', $newStatus); $order->save(); } } 

Маппинг справочников

RetailCRM хранит справочники: статусы, типы доставки, методы оплаты — каждый с кодом. Коды нужно привести к кодам Битрикса:

Статус Битрикс Статус RetailCRM
N (новый) new
P (оплачен) complete-payment
D (доставляется) delivery
F (завершён) complete
C (отменён) cancel-other

Маппинг хранится в настройках модуля или в пользовательской таблице.

Почему интеграция может развалиться при пиковой нагрузке и как этого избежать?

Прямые синхронные вызовы API при 500+ заказов в час — гарантированные таймауты. Очередь на агентах сглаживает пики и гарантирует доставку. Экономия времени на обработку достигает 70%, снижение нагрузки на сервер — в 3 раза. Стоимость интеграции рассчитывается индивидуально, но в среднем окупается за 2–3 месяца.

Что входит в интеграцию

Компонент Описание
Аудит архитектуры Проверка схемы данных, текущих интеграций, ограничений хостинга
Проект маппинга Согласование полей, статусов, складов, способов доставки
Разработка REST-клиента PHP-класс для обмена с RetailCRM API v5
Настройка вебхуков Автоматическое обновление статусов при изменениях в CRM
Очередь обработки Агенты Битрикса с порционной отправкой для сглаживания пиков
Документация Схема интеграции, описание обработки ошибок
Пост-релизная поддержка 30 дней исправления, мониторинг стабильности

Процесс работы над интеграцией

  1. Аудит — анализируем текущую архитектуру, схему данных, бизнес-процессы.
  2. Проектирование — разрабатываем маппинг полей, схему очередей, обрабатываем edge-кейсы.
  3. Разработка — пишем REST-клиент, настраиваем вебхуки, реализуем очередь.
  4. Тестирование — имитируем пиковую нагрузку, проверяем синхронизацию туда и обратно.
  5. Деплой — разворачиваем на production, включаем мониторинг.
  6. Поддержка — 30 дней пост-релизной поддержки, исправление возможных ошибок.

Мы занимаемся интеграциями Битрикс с CRM более 5 лет и реализовали свыше 50 проектов с RetailCRM. Свяжитесь с нами для аудита вашей архитектуры интеграции. Закажите разработку — получите стабильную синхронизацию, которая выдержит любой трафик.