Разработка модуля интеграции с CRM 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка модуля интеграции с CRM 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка модуля интеграции с CRM 1С-Битрикс

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

Какие CRM интегрируются

  • Битрикс24 — через REST API и вебхуки (наиболее распространённый сценарий).
  • amoCRM — через oAuth 2.0 и REST API.
  • RetailCRM — специализированная CRM для e-commerce, богатое API.
  • Salesforce, HubSpot — реже, для западных рынков.

Принципы одинаковые, различается только API. Рассмотрим архитектуру на примере Битрикс24 и RetailCRM.

Что передаётся в CRM

При оформлении заказа:

  • Создаётся сделка или лид с данными покупателя, составом заказа, суммой, UTM-метками.
  • Создаётся или обновляется контакт/компания по номеру телефона или email.
  • К сделке прикрепляется товарный позиционный список.

При изменении статуса заказа:

  • Статус сделки в CRM обновляется соответственно.
  • При оплате заказ помечается как оплаченный.

Обратная синхронизация:

  • Менеджер меняет статус сделки в CRM → статус заказа на сайте обновляется через вебхук.

Архитектура модуля

local/modules/vendor.crmintegration/
├── lib/
│   ├── Adapter/
│   │   ├── Bitrix24Adapter.php
│   │   └── RetailCrmAdapter.php
│   ├── Mapper/
│   │   ├── OrderMapper.php    # Заказ → сделка
│   │   └── UserMapper.php     # Пользователь → контакт
│   ├── SyncService.php
│   └── WebhookHandler.php     # Обработка входящих вебхуков
└── install/db/install.sql

Таблица b_crm_sync_log — лог синхронизаций:

Поле Тип Назначение
ID int auto_increment
ENTITY_TYPE varchar(50) order, user, product
ENTITY_ID int ID сущности на сайте
CRM_TYPE varchar(50) lead, deal, contact
CRM_ID varchar(100) ID в CRM
DIRECTION enum OUTBOUND, INBOUND
STATUS enum SUCCESS, ERROR, PENDING
ERROR_MESSAGE text Текст ошибки
CREATED_AT datetime

Интеграция с Битрикс24

Для Битрикс24 используется REST API. Создание сделки при новом заказе:

$dealData = [
    'TITLE'        => 'Заказ #' . $orderId . ' с сайта',
    'OPPORTUNITY'  => $order->getPrice(),
    'CURRENCY_ID'  => $order->getCurrency(),
    'SOURCE_ID'    => 'WEB',
    'UF_ORDER_ID'  => $orderId,  // пользовательское поле в Б24
];

$response = $this->callBitrix24(
    'crm.deal.add',
    ['fields' => $dealData]
);

$dealId = $response['result'];

// Добавляем товары к сделке
foreach ($basket as $item) {
    $this->callBitrix24('crm.deal.productrows.set', [
        'id' => $dealId,
        'rows' => [[
            'PRODUCT_NAME' => $item->getField('NAME'),
            'PRICE'        => $item->getPrice(),
            'QUANTITY'     => $item->getQuantity(),
            'PRODUCT_ID'   => $item->getProductId(),
        ]],
    ]);
}

Метод callBitrix24 выполняет запрос к https://portal.bitrix24.ru/rest/{token}/. Токен хранится в настройках модуля (b_option).

Дедупликация контактов

Перед созданием нового контакта ищем существующий по телефону:

$existing = $this->callBitrix24('crm.contact.list', [
    'filter' => ['PHONE' => $normalizedPhone],
    'select' => ['ID', 'NAME'],
]);

if (!empty($existing['result'])) {
    $contactId = $existing['result'][0]['ID'];
    // Обновляем существующий, не создаём дубль
} else {
    $contactId = $this->callBitrix24('crm.contact.add', [...]);
}

Нормализация телефона перед поиском обязательна: +7 (999) 123-45-67 и 89991234567 — один и тот же номер.

Интеграция с RetailCRM

RetailCRM имеет нативную поддержку интернет-магазинов. Заказ передаётся методом POST /api/v5/orders/create. RetailCRM поддерживает концепцию «магазинов» — один портал может принимать заказы с нескольких сайтов.

Ключевое отличие от Битрикс24: RetailCRM понимает структуру e-commerce — корзина, доставка, оплата, статусы заказа — без маппинга в абстрактные сделки.

Обработка входящих вебхуков

Когда менеджер меняет статус в CRM, CRM отправляет POST-запрос на URL вебхука. Битрикс получает уведомление и обновляет заказ:

// local/api/crm/webhook/index.php
$payload = json_decode(file_get_contents('php://input'), true);

\Vendor\CrmIntegration\WebhookHandler::handle($payload);

Обработчик по CRM_ID из b_crm_sync_log находит ORDER_ID, обновляет статус через $order->setField('STATUS_ID', $mappedStatus) и сохраняет.

Очередь для надёжной доставки

Все исходящие запросы к CRM помещаются в очередь в таблице b_crm_queue. Cron обрабатывает очередь каждую минуту, повторяет неудачные попытки. Это важно: при недоступности API CRM заказы не теряются.

Сроки разработки

Масштаб Состав Срок
Базовый Одна CRM, передача заказа/контакта, исходящая синхронизация 5–8 дней
Стандартный + Вебхуки, двусторонняя синхронизация, дедупликация, очередь 10–15 дней
Расширенный + Две CRM, маппинг статусов, аналитика синхронизаций, Admin UI 18–25 дней