Инструкция по интеграции интернет-магазина 1С-Битрикс с TotalCRM
Интеграция интернет-магазина на 1С-Битрикс с TotalCRM позволяет автоматизировать обмен данными: синхронизировать каталог товаров, передавать заказы в единую CRM-систему и управлять статусами. В этой инструкции — полная настройка обмена через CommerceML.
Интеграция карточек товара
- Интеграция осуществляется через внешний код
- Из TotalCRM передается доступный остаток товара
- TotalCRM управляет ценами товара
- Доступна интеграция с системами учета (1С, МойСклад)
Интеграция заказов
- Заказы с сайта попадают в единое окно заказов TotalCRM
- Полная синхронизация статусов заказа
- Интеграция с курьерскими службами. Заказ отгружается через TotalCRM
- Финансовая аналитика в едином окне
1. Введение
1.1. Назначение документа
Настоящий документ представляет собой подробное техническое руководство по настройке обмена данными между интернет-магазином, работающим на платформе "1С-Битрикс: Управление сайтом", и системой управления взаимоотношениями с клиентами (CRM) - TotalCRM.
Инструкция предназначена для широкого круга специалистов:
- Руководители проектов - для понимания целей, задач и архитектуры интеграции.
- ИТ-специалисты и системные администраторы - для настройки серверного окружения, планирования задач и мониторинга.
- Разработчики - для понимания структуры данных, форматов обмена и алгоритмов работы скриптов.
Документ не привязан к конкретному клиенту и описывает стандартные сценарии, подходящие для большинства проектов по внедрению TotalCRM в связке с 1С-Битрикс.
1.2. Цели интеграции
Основная цель интеграции - обеспечить единое информационное пространство для управления продажами, товарами и заказами. Внедрение обмена данными позволяет решить следующие задачи:
- Централизованное управление каталогом: Все изменения товаров (названия, цены, остатки) вносятся в TotalCRM и автоматически транслируются на сайт. Это исключает рассинхронизацию данных и ручной ввод.
- Автоматизация обработки заказов: Заказы, оформленные на сайте, автоматически попадают в TotalCRM. Это позволяет операторам работать с единой лентой заказов, отслеживать их статусы и передавать в учетную систему (1С) без ручного переноса данных.
- Консолидация данных по всем каналам продаж: Заказы из интернет-магазина, маркетплейсов и офлайн-точек собираются в одном месте, что дает целостную картину бизнеса и упрощает управленческий учет.
- Повышение прозрачности процессов: Статусная модель заказа (от "Нового" до "Доставленного") становится единой для всех каналов, что упрощает контроль за исполнением заказов как менеджерами, так и клиентами.
1.3. Используемый протокол обмена
Для обмена данными между системами используется открытый стандарт CommerceML (Commerce Markup Language) версии 2.x.
CommerceML является отраслевым стандартом для обмена торговой информацией между различными системами учета и интернет-платформами в экосистеме 1С. Он разработан специально для передачи:
- Каталогов товаров (структура, характеристики, фото).
- Предложений (цены, остатки, склады).
- Заказов и их статусов.
- Информации о контрагентах (клиентах, поставщиках).
Использование стандартизированного формата обеспечивает высокую совместимость, гибкость и возможность масштабирования интеграции без необходимости переписывания кода при добавлении новых торговых точек или складских систем.
2. Общая архитектура интеграции
Интеграция строится на двустороннем синхронно-асинхронном обмене данными между тремя основными компонентами информационной системы:
- Веб-сайт (1С-Битрикс) - источник заказов и получатель данных о товарах.
- TotalCRM - система-оркестратор, центральный узел управления продажами, заказами и клиентами.
- Учетная система клиента (1С:УТ / 1С:Бухгалтерия / КА) - получатель заказов и источник данных о товарах (цены, остатки) и статусах отгрузок.
Все взаимодействия осуществляются по протоколу HTTP/HTTPS, что позволяет организовать обмен как через локальные сети, так и через Интернет. В качестве формата данных используется XML (eXtensible Markup Language) в структуре CommerceML.
2.1. Схема потоков данных
- Поток A: Учетная система → TotalCRM
- Назначение: Поддержка актуального справочника "Товары" в TotalCRM.
- Содержимое: Номенклатура, цены, остатки.
- Инициатор: 1С (выгружает данные по расписанию или в реальном времени).
- Поток B: TotalCRM → Сайт (1С-Битрикс)
- Назначение: Обновление витрины интернет-магазина.
- Содержимое: Каталог товаров (импорт), остатки и цены (офферы).
- Инициатор: TotalCRM (периодически запрашивает и отправляет данные, либо использует механизм "загрузки файлов" на сайт).
- Поток C: Сайт (1С-Битрикс) → TotalCRM
- Назначение: Передача оформленных заказов в CRM для дальнейшей обработки.
- Содержимое: Заказы, данные клиентов, адреса доставки.
- Инициатор: TotalCRM (периодически запрашивает заказы у сайта).
- Поток D: TotalCRM → Учетная система (1С)
- Назначение: Передача заказов для дальнейшего бухгалтерского и управленческого учета.
- Содержимое: Заказы со всеми товарными позициями, клиентами и суммами.
- Инициатор: TotalCRM (периодически выгружает заказы в 1С).
Важно: Потоки B и C опосредуют обмен данными между сайтом и учетной системой, минуя прямую интеграцию "Сайт ↔ 1С". Это дает преимущество в единообразии данных: например, статус заказа, обновленный в 1С, синхронизируется сначала с TotalCRM (Поток A), а затем уже может быть передан на сайт (Поток B), если это необходимо.
3. Описание компонентов и ролей в TotalCRM
Для реализации обменов в TotalCRM используются модули и консольные команды. Их работа основана на объектно-ориентированном подходе (Symfony Framework), что позволяет легко настраивать и расширять функциональность.
3.1. Разделы, участвующие в интеграции
Понимание этих сущностей критично для ИТ-специалистов при мониторинге или расширении интеграции.
3.2. Консольные команды для работы с сайтом (Bitrix)
Ниже приведено описание команд, которые обеспечивают обмен с интернет-магазином. Все они являются частью пакета интеграции 1C-Битрикс.
Запуск команд осуществляется в автоматическом режиме, или в настройках канала сбыта (карточке маркетплейса)
ts:integrations:bitrix:export-productsts:integrations:bitrix:import-orders
4. Настройка и обмен данными с сайтом (Bitrix)
В этом разделе мы подробно рассмотрим, как настроить каждый из потоков данных между TotalCRM и сайтом, а также разберем структуру передаваемых XML-файлов.
Настройка включает в себя заведение кабинета сайта в разделе маркетплейсов (каналов сбыта):
1. Название кабинета - отображаемое название во всех интерфейсах программы
2. Юридическое лицо - связанное с сайтом юридическое лицо
3. Интеграция УС - указание с какой интеграцией будет осуществляться обмен. Логин и пароль для подключения к сайте указывается в настройках интеграции
4. Активность - признак, что интернет-магазин активен
5. Импорт заказов FBS/DBS - признак, что будет осуществляться обмен заказами по указанной интеграции
На вкладке [Прайс-листы] настраиваются выгружаемые прайс-листы (тип цен).
Возможно указания максимум 3-х прайс-листов, по которым будут выгружаться цены по каждой номенклатуре
Название типов цен - цена продажи, старая цена, минимальная цена - не важно, маппинг типов цен осуществляется на стороне 1C-Битрикс, TotalCRM передает все указанные цены у указанием внешнего кода, который указывается в настройках прайс-листа.
На вкладке [Склады FBS] настраивается маппинг передаваемых остатков по складам хранения.
Можно указывать несколько складов FBS.
Настройки маппинга склада со складами хранения и параметрами обработки заказов осуществляется в открывающемся окне настроек склада
Помимо настроек обработки заказов, для обмена с 1С-Битрикс указывается внешний код - он будет использоваться в обмене остатками
Настройка интеграции - указывается тип интеграции, логин, пароль, адрес сайта и внешний код, который должен быть равен коду каталога товаров в 1С-Битрикс.
Внешний код интеграции вляет на сопоставление передаваемых товаров из TotalCRM c каталогом товаров в 1С-Битрикс, которых там может быть несколько.
Для запуска обменов в ручном режиме необходимо воспользоваться пунктами меню в карточке маркетплейса:
1. Действия / Обмен данными / Экспорт / Остатки FBS - выгрузка номенклатурного справочника с цена и остатками
2. Действия / Обмен данными / Импорт / Заказы FBS - импорт заказов с сайта, помеченных на выгрузку (новых или измененных)
Остальные пункты меню - не импользуются.
4.1. Поток: TotalCRM → Сайт (Экспорт товаров)
4.1.1. Подготовка сайта (1С-Битрикс)
Для того чтобы TotalCRM мог отправлять данные на сайт, на стороне Bitrix должен быть доступен стандартный скрипт обмена, расположенный по адресу:/bitrix/admin/1c_exchange.php
Этот скрипт входит в состав модуля "Информационные блоки" и "Интернет-магазин". Для его активации и настройки необходимо:
- Включить обработку обмена в настройках модуля (Администрирование → Настройки → Настройки модулей → Интернет-магазин → Обмен с 1С).
- Установить галочку "Разрешить обмен с 1С".
- Задать логин и пароль для доступа к скрипту. Важно: Эти учетные данные будут использоваться в настройках интеграции TotalCRM.
4.1.2. Настройка в TotalCRM
Для создания новой интеграции необходимо заполнить следующие поля:
- Название интеграции: Например, "Экспорт товаров на сайт".
- Тип интеграции: Выбираем
Bitrix Products(илиBitrix Products and Orders, если планируем использовать один набор настроек для обоих обменов). - Сайт (URL): Адрес вашего сайта, но без пути к скрипту. Например:
https://мой-магазин.ru. - Логин / Пароль: Учетные данные, установленные на сайте для доступа к
/bitrix/admin/1c_exchange.php. - Канал продаж (Marketplaces): Выбираем созданный ранее канал продаж "Интернет-магазин".
- Настройки экспорта товаров (
settingsImportProducts): fieldArticul: Поле, используемое в качестве артикула (externalId- внешний код из 1С илиarticul- артикул из карточки товара). РекомендуетсяexternalIdдля максимальной совместимости с 1С.isUpdateNameMc: Разрешить обновление названия товара на сайте.isUpdateArticul: Разрешить обновление артикула.
4.1.3. Структура файлов обмена
Для экспорта товаров TotalCRM формирует два основных файла:
Файл 1: import.xml (Каталог товаров)
Этот файл содержит структуру каталога и описание товаров. Он отправляется первым для создания или обновления инфоблоков на сайте.
Ключевые элементы:
Пример фрагмента import.xml:
<КоммерческаяИнформация ВерсияСхемы="2.08" ДатаФормирования="2026-08-11T12:00:00">
<Классификатор>
<Ид>MY_STORE_CATALOG</Ид>
<Наименование>Номенклатура</Наименование>
<Группы>
<Группа>
<Ид>1c_group_kitchen</Ид>
<Наименование>Кухонная техника</Наименование>
<Группы>
<Группа>
<Ид>1c_group_mixers</Ид>
<Наименование>Миксеры</Наименование>
</Группа>
</Группы>
</Группа>
</Группы>
</Классификатор>
<Каталог>
<Ид>MY_STORE_CATALOG</Ид>
<ИдКлассификатора>MY_STORE_CATALOG</ИдКлассификатора>
<Товары>
<Товар>
<Ид>1c_product_001</Ид>
<Наименование>Миксер Braun MQ 100</Наименование>
<Артикул>MX-100</Артикул>
<БазоваяЕдиница Код="796">шт</БазоваяЕдиница>
<Группы>
<Ид>1c_group_mixers</Ид>
</Группы>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>Мощность</Наименование>
<Значение>500 Вт</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>
</Товары>
</Каталог>
</КоммерческаяИнформация>
Файл 2: offers.xml (Предложения - Цены и Остатки)
Этот файл содержит коммерческие предложения: цены для разных типов покупателей и остатки на складах. Отправляется после import.xml.
Ключевые элементы:
Пример фрагмента offers.xml:
<КоммерческаяИнформация ВерсияСхемы="2.08" ДатаФормирования="2026-08-11T12:00:00">
<ПакетПредложений>
<Ид>MY_STORE_CATALOG#</Ид>
<ИдКаталога>MY_STORE_CATALOG</ИдКаталога>
<ТипыЦен>
<ТипЦены>
<Ид>price_retail</Ид>
<Наименование>Розничная</Наименование>
<Валюта>RUB</Валюта>
</ТипЦены>
</ТипыЦен>
<Склады>
<Склад>
<Ид>storage_msk</Ид>
<Наименование>Основной склад (Москва)</Наименование>
</Склад>
</Склады>
<Предложения>
<Предложение>
<Ид>1c_product_001</Ид>
<Наименование>Миксер Braun MQ 100</Наименование>
<Цены>
<Цена>
<ИдТипаЦены>price_retail</ИдТипаЦены>
<ЦенаЗаЕдиницу>2500.00</ЦенаЗаЕдиницу>
<Валюта>RUB</Валюта>
</Цена>
</Цены>
<Склад ИдСклада="storage_msk" КоличествоНаСкладе="15" />
<Количество>15</Количество>
</Предложение>
</Предложения>
</ПакетПредложений>
</КоммерческаяИнформация>
4.1.4. Алгоритм работы команды export-products
- Анализ данных: Команда собирает данные из разных таблиц. Она проверяет, какие товары (и их цены/остатки) связаны с конкретным "Магазином" (Marketplace) через сущность
MarketplacesMc. - Генерация GUID: Для корректного обновления данных на сайте, команда использует существующий GUID (внешний код) товара, который изначально был создан в 1С. Если товар новый, он также получает свой уникальный GUID.
- Сборка XML: Формируются два больших XML-документа. Команда старается оптимизировать размер файлов, используя метод "дельта" (передавая только изменения), если это предусмотрено настройками.
- Отправка на сайт:
- Обработка ответа: Команда анализирует ответы от скрипта Bitrix. Если в ответе приходит
success- обмен завершен успешно.
4.2. Поток: Сайт → TotalCRM (Импорт заказов)
4.2.1. Настройка в TotalCRM
Для настройки импорта заказов создается или используется та же самая запись в Integrations, что и для экспорта товаров, но с типом Bitrix Orders (или расширенным Bitrix Products and Orders).
Поля настройки аналогичны экспорту:
- URL, логин, пароль для доступа к
/bitrix/admin/1c_exchange.php. - Выбор канала продаж (Marketplace), в который будут попадать заказы.
4.2.2. Структура файла заказов
Заказы, передаваемые с сайта, формируются в виде файла в том же формате CommerceML.
Файл: orders.xml (Заказы)
Ключевые элементы:
Пример фрагмента orders.xml:
<КоммерческаяИнформация ВерсияСхемы="2.08" ДатаФормирования="2026-08-11T14:00:00">
<Документ>
<Ид>B-ORD-2026-001</Ид>
<Номер>2026-001</Номер>
<Дата>11.08.2026</Дата>
<Время>13:45:00</Время>
<Сумма>5900.00</Сумма>
<Комментарий>
Способ доставки: Курьер
Адрес доставки: г. Москва, ул. Пушкина, д. 10
Получатель: Петров Петр Петрович
</Комментарий>
<Статус>Подтвержден</Статус>
<Контрагенты>
<Контрагент>
<Ид>user_12345</Ид>
<Наименование>Петров Петр Петрович</Наименование>
<Контакты>
<Контакт>
<Тип>Телефон</Тип>
<Значение>+7 (999) 123-45-67</Значение>
</Контакт>
<Контакт>
<Тип>Почта</Тип>
<Значение>petrov@example.com</Значение>
</Контакт>
</Контакты>
<Адрес>
<Представление>г. Москва, ул. Пушкина, д. 10</Представление>
</Адрес>
</Контрагент>
</Контрагенты>
<Товары>
<Товар>
<Ид>1c_product_002</Ид>
<Артикул>BL-100</Артикул>
<Наименование>Блендер Braun BL 100</Наименование>
<ЦенаЗаЕдиницу>4500.00</ЦенаЗаЕдиницу>
<Количество>1</Количество>
<Сумма>4500.00</Сумма>
</Товар>
<Товар>
<Ид>1c_product_001</Ид>
<Артикул>MX-100</Артикул>
<Наименование>Миксер Braun MQ 100</Наименование>
<ЦенаЗаЕдиницу>1400.00</ЦенаЗаЕдиницу>
<Количество>1</Количество>
<Сумма>1400.00</Сумма>
</Товар>
</Товары>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>Метод оплаты</Наименование>
<Значение>Банковская карта</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Заказ оплачен</Наименование>
<Значение>true</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Документ>
</КоммерческаяИнформация>
4.2.3. Алгоритм работы команды import-orders
- Авторизация и запрос: Команда авторизуется на сайте и делает запрос на получение XML-файла с заказами (по сути, имитирует работу 1С в режиме "загрузки заказов").
- Получение XML: Сайт генерирует XML-файл, содержащий все новые заказы (которые еще не были выгружены).
- Парсинг:
- Создание заказа: Новый заказ создается в TotalCRM с необходимыми полями (клиент, товары, суммы) и присваивается выбранному каналу продаж ("Интернет-магазин").
- Обновление статусов: Заказ получает начальный статус, принятый в компании (например, "Новый").
- Подтверждение успеха: После обработки всех заказов команда отправляет на сайт подтверждение
mode=success. Это позволяет сайту пометить заказы как выгруженные, чтобы избежать дублирования при следующем запросе.
5. Интеграция с учетной системой (1С)
5.1. Общая схема интеграции
Взаимодействие с учетной системой (например, 1С:Управление торговлей) осуществляется по тем же принципам, но здесь TotalCRM выступает в роли посредника и единого источника данных для сайта.
- Выгрузка каталога из 1С: 1С выгружает в TotalCRM файлы с товарами и остатками. Это может происходить как по расписанию, так и по факту изменений.
- Обработка в TotalCRM: Команда
ts:1c:import-productsобрабатывает эти файлы, обновляя справочник товаров (Katmc), цены и остатки. - Синхронизация с сайтом: После того, как в TotalCRM обновились цены и остатки, команда
ts:integrations:bitrix:export-productsотправляет эти обновления на сайт. - Передача заказов в 1С: Заказы, созданные в TotalCRM (в том числе с сайта), попадают в очередь на отправку. Команда
ts:1c:export-orders(или аналогичная) формирует файл с заказами и предоставляет его 1С для загрузки. - Получение статусов из 1С: 1С отправляет в TotalCRM файлы с обновленными статусами заказов и данными об отгрузках (номера накладных). Команда
ts:1c:update-ordersобрабатывает эти файлы и обновляет заказы в TotalCRM.
5.2. Поток: 1С → TotalCRM (Каталог и Остатки)
5.2.1. Настройка в TotalCRM
Для приема данных от 1С создается интеграция типа 1C Products (или 1C Products and Orders). В настройках указывается только логин/пароль для базовой авторизации (используется в Exchange1CController), а также настройки маппинга полей.
Ключевые настройки (settingsImportProducts):
fieldArticul:externalIdилиarticul- определяет, по какому полю будет происходить сопоставление товаров.isCheckIntegration: Если включено, товары из 1С будут привязываться к конкретной интеграции.isUpdateNameMc/isUpdateArticul: Разрешить обновление названий и артикулов из 1С.isCreateOnSearchMP/isCreateOnStock/isCreateAll: Стратегии создания новых товаров в TotalCRM, если их нет в базе (например, по артикулу или по штрихкоду).
5.2.2. Структура файлов
Структура файлов import.xml и offers.xml от 1С полностью аналогична описанной в разделе 4.1.3. TotalCRM умеет "понимать" этот стандарт и корректно обрабатывать данные.
5.2.3. Алгоритм работы команды ts:1c:import-products
- Сканирование каталога: Команда проверяет наличие новых файлов в каталоге
/documents/exchange1C/products/. - Парсинг:
- Обновление данных: Все изменения сохраняются в базе данных TotalCRM.
- История изменений: Для отслеживания изменений в ценах и остатках ведется история (
McStockHistory,PriceHistory), что позволяет анализировать динамику.
5.3. Поток: TotalCRM → 1С (Заказы)
5.3.1. Структура файла заказов для 1С
Для передачи заказов в 1С используется аналогичный формат orders.xml. Структура идентична той, что описана в разделе 4.2.2, так как и сайт, и 1С используют единый стандарт CommerceML.
Особенности формирования:
- В заказе обязательно указываются все реквизиты клиента (телефон, email) и адрес доставки.
- Каждая позиция заказа должна содержать точный идентификатор товара (
Ид), который существует в справочнике 1С. - Статус заказа должен соответствовать состоянию в TotalCRM.
5.3.2. Алгоритм работы команды
- Формирование выборки: Команда выбирает из базы заказы, которые еще не были переданы в 1С (или изменены после передачи).
- Генерация XML: Для каждого заказа формируется XML-блок, аналогичный описанному выше.
- Отправка в 1С: Готовый XML-файл сохраняется в каталог, доступный 1С для загрузки. Либо может быть отправлен напрямую через API.
- Получение подтверждения: После того как 1С загрузит и обработает заказ, она может вернуть подтверждение, и TotalCRM обновит статус заказа (например,
Отправлен в 1С).
5.4. Поток: 1С → TotalCRM (Обновление статусов)
5.4.1. Команда ts:1c:update-orders
Эта команда отвечает за обработку файлов с заказами, которые 1С возвращает в TotalCRM после своей обработки.
Структура ответа от 1С:
1С формирует такой же XML-файл orders.xml, но заполняет в нем дополнительные реквизиты:
Номер по 1С- внутренний номер заказа в 1С.Дата по 1С- дата проведения заказа в 1С.Проведен- признак того, что заказ проведен в учетной системе.Номер отгрузки по 1С- номер реализованного товара/накладной.Дата отгрузки по 1С- дата отгрузки.
Алгоритм обработки:
- Чтение файла: Команда находит XML-файлы в каталоге
/documents/exchange1C/orders/. - Парсинг заказов: Из каждого документа извлекается ключевая информация: номер заказа (
Номер), GUID, новые реквизиты из 1С. - Поиск заказа в TotalCRM: По номеру заказа (
Номер) находится соответствующая запись в таблицеOrders. - Обновление данных: Найденный заказ обновляется:
- Подтверждение успеха: После обработки файла он перемещается в папку
processed/.
6. Жизненный цикл заказа в интегрированной системе
Этот раздел демонстрирует, как один заказ проходит через все этапы интеграции от создания на сайте до отгрузки в учетной системе. Это поможет понять взаимосвязь всех описанных выше потоков данных.
Этап 1: Клиент оформляет заказ на сайте
- Действие: Клиент на сайте добавляет товары в корзину, заполняет контактные данные и нажимает кнопку "Оформить заказ".
- Результат: В базе данных 1С-Битрикс создается новый заказ со статусом, например, "[N] Принят, ожидается оплата".
- Следующий шаг: Заказ ожидает выгрузки в TotalCRM.
Этап 2: Импорт заказа в TotalCRM
- Действие: По расписанию (каждые 5 минут) запускается команда
ts:integrations:bitrix:import-orders. - Процесс: Команда отправляет запрос на сайт (
mode=query). Сайт отдает файлorders.xml, содержащий этот заказ. - Обработка в TotalCRM:
- Команда находит или создает клиента (по телефону/email).
- Находит или создает товары (по GUID/артикулу).
- Создает заказ в TotalCRM. Заказ получает статус "Новый" и присваивается каналу продаж "Интернет-магазин".
- Результат: Заказ появился в единой ленте заказов TotalCRM, готовый к обработке оператором.
Этап 3: Обработка заказа оператором в TotalCRM
- Действие: Менеджер видит новый заказ в CRM. Он проверяет наличие товаров, при необходимости связывается с клиентом для подтверждения.
- Действие в CRM: Менеджер меняет статус заказа на "В работе" или "Готов к сборке".
- Результат: Заказ теперь имеет внутренний статус TotalCRM, который может отличаться от исходного статуса на сайте (например, в CRM он "Подтвержден", а на сайте еще висит "Новый").
Этап 4: Передача заказа в 1С для учета
- Действие: По расписанию (например, каждые 30 минут) запускается команда выгрузки заказов в 1С (
ts:1c:export-orders). - Процесс: Команда выбирает из TotalCRM заказы, которые еще не отправлены в 1С (статус
exportstatus = 0). Формирует файлorders.xmlи делает его доступным для 1С. - Обработка в 1С: 1С загружает этот файл. В учетной системе создается документ "Заказ клиента". В нем фиксируются клиент, товары, суммы.
- Результат: Заказ теперь существует и в управленческой учетной системе.
Этап 5: Отгрузка заказа в 1С и обновление статуса
- Действие: Сотрудник на складе собирает заказ, и менеджер в 1С оформляет реализацию (накладную). В 1С заказ получает статус "Проведен" и появляется "Номер отгрузки".
- Процесс: 1С формирует ответный файл
orders.xml, где для этого заказа указываются новые реквизиты (Проведен=true,Номер отгрузки по 1С). Этот файл отправляется в TotalCRM. - Обновление в TotalCRM: Команда
ts:1c:update-ordersобрабатывает этот файл. Она находит заказ в TotalCRM и обновляет его: - Устанавливает внешний номер (
extNdoc) и флаг проведения (extIsConducted = 1). - Видя, что появился
Номер отгрузки по 1С, команда автоматически меняет статус заказа в TotalCRM на "Отгружен". - Одновременно может быть активирован процесс резервирования (снятие товаров с резерва) и создание отправления в логистической системе.
Этап 6: Итог
- Результат: Заказ в TotalCRM имеет статус "Отгружен", есть номер накладной из 1С, и информация может быть (опционально) передана обратно на сайт для оповещения клиента.
- Клиент: Если настроена интеграция "CRM → Сайт" для статусов, клиент на сайте увидит, что его заказ отгружен и может отслеживать его.
7. Мониторинг, логирование и устранение неполадок
7.1. Мониторинг
Для стабильной работы интеграции важен постоянный мониторинг.
Что проверять:
- Статус команд: Все команды должны выполняться по расписанию. В случае сбоя (например,
exit code != 0), необходимо проанализировать логи. - Каталог файлов: Следите, чтобы файлы в папках
products/иorders/не накапливались. Если они не обрабатываются, это указывает на ошибку в командах. - Актуальность данных: Периодически проверяйте на сайте и в TotalCRM, совпадают ли цены и остатки для тестовых товаров.
- Заказы:
7.2. Логирование
Все операции логируются. Основные места для просмотра:
- Лог-файлы Symfony: Обычно находятся в папке
var/log/вашего проекта TotalCRM. - Логи в базе данных: Некоторые важные события могут сохраняться в таблицах БД (например, истории изменений цен и остатков).
- Интеграция с Telegram: В критических случаях (ошибка авторизации, падение скрипта) система может отправлять уведомления в заданный Telegram-канал. Это позволяет быстро реагировать на проблемы.
7.3. Частые проблемы и их решение
Проблема: Заказы с сайта не попадают в TotalCRM.
- Проверка: Убедитесь, что команда
ts:integrations:bitrix:import-ordersвыполняется успешно. Проверьте логи на наличие ошибок. Убедитесь, что логин/пароль для доступа к/bitrix/admin/1c_exchange.phpверны. Проверьте, не заблокирован ли IP-адрес сервера TotalCRM на уровне сайта.
Проблема: На сайте не обновляются цены или остатки.
- Проверка: Убедитесь, что команда
ts:integrations:bitrix:export-productsвыполняется успешно. Проверьте логи. Проверьте, есть ли в системе актуальные остатки (командаts:1c:import-products). Убедитесь, что в настройках интеграции правильно указаны склады и типы цен для экспорта.
Проблема: Товары в заказе отображаются как "несопоставленные".
- Причина: В XML-файле заказа указан GUID товара, которого нет в справочнике TotalCRM (и не удалось создать автоматически).
- Решение: Проверьте в 1С и TotalCRM, совпадают ли GUID товаров. При необходимости вручную сопоставьте товар через интерфейс TotalCRM или добавьте недостающий товар в каталог.
Проблема: Заказ не уходит в 1С.
- Проверка: Убедитесь, что команда
ts:1c:export-ordersили ее аналог выполняется. Проверьте, что файл с заказами создается и доступен для 1С. В логах 1С посмотрите, загружается ли файл.
8. Технические требования и рекомендации
8.1. Серверное окружение
- PHP: Версия 7.4 или выше (рекомендуется 8.0+).
- Расширения PHP:
dom,simplexml,xmlwriter,zip,curl(для HTTP-запросов). - База данных: MySQL 5.7+ или PostgreSQL.
- Доступ к интернету: Сервер TotalCRM должен иметь доступ к вашему сайту (для обмена по HTTP/HTTPS).
8.2. Настройка сайта (1С-Битрикс)
- Включенный обмен с 1С: В настройках модуля Интернет-магазин должна быть включена опция "Разрешить обмен с 1С".
- Доступность скрипта:
/bitrix/admin/1c_exchange.phpдолжен быть доступен по сети. - Настройка прав: Убедитесь, что у пользователя, от имени которого происходит обмен, есть права на чтение и запись данных в инфоблоки и заказы.
- Кодировка: Убедитесь, что ваш сайт работает с кодировкой UTF-8 для корректного отображения кириллицы.
8.3. Рекомендации по планированию задач (Cron)
Настройте выполнение консольных команд по расписанию. Примерный график:
ts:integrations:bitrix:import-orders- каждые 5 минут (для быстрой обработки заказов).ts:integrations:bitrix:export-products- каждые 15-30 минут дляoffers.xml(цены и остатки) и, например, раз в сутки дляimport.xml(каталог).ts:1c:import-products- каждые 15-30 минут (зависит от частоты выгрузки из 1С).ts:1c:update-orders- каждые 10-15 минут.
Совет: Используйте параметр --fast для длительных команд, если они уже выполняются и вы не хотите запускать их повторно. Это предотвратит конфликты.
Данная инструкция охватывает ключевые аспекты настройки и поддержки интеграции между интернет-магазином на 1С-Битрикс и CRM-системой TotalCRM. Благодаря использованию стандарта CommerceML и четкой архитектуре, вы получаете надежный и прозрачный механизм синхронизации данных.
Внедрение такого обмена позволяет:
- Исключить ручной труд и ошибки при переносе данных.
- Повысить скорость обработки заказов.
- Обеспечить актуальность информации на сайте и в учетной системе.
- Получить единую картину продаж по всем каналам.
Если у вас возникнут вопросы или потребуется дополнительная настройка, обращайтесь к службе технической поддержки TotalCRM.
Все детали настройки можно адаптировать под уникальные бизнес-процессы вашей компании.
FAQ по интеграции 1С-Битрикс с TotalCRM
- Каталог товаров — названия, артикулы, штрихкоды, единицы измерения, характеристики товаров.
- Цены — передаются до 3 типов цен (цена продажи, старая цена, минимальная цена) с привязкой к внешним кодам прайс-листов.
- Остатки — передаются остатки по складам FBS, настроенным в канале сбыта. Для каждого склада указывается внешний код для сопоставления с сайтом.
- Заказы — заказы, оформленные на сайте, автоматически импортируются в TotalCRM. В ответ передаются статусы заказов и информация об отгрузках.
- Клиенты — при импорте заказа клиент автоматически создается или обновляется в TotalCRM по номеру телефона или email.
1. В административной панели сайта перейти в Настройки → Настройки модулей → Интернет-магазин → Обмен с 1С.
2. Включить опцию "Разрешить обмен с 1С".
3. Задать логин и пароль для доступа к скрипту обмена.
Эти учетные данные используются в настройках интеграции в TotalCRM.
- Название интеграции — произвольное название (например, "Экспорт товаров на сайт").
- Сайт (URL) — адрес вашего сайта (например, https://мой-магазин.ru).
- Логин и пароль — учетные данные для доступа к /bitrix/admin/1c_exchange.php.
- Канал продаж — выберите созданный канал "Интернет-магазин".
- Настройки экспорта — укажите поле для артикула (рекомендуется externalId), разрешите или запретите обновление названий и артикулов на сайте.
import.xml — содержит структуру каталога (группы товаров) и описание товаров (названия, артикулы, штрихкоды, единицы измерения, характеристики). Отправляется первым для создания или обновления инфоблоков.
offers.xml — содержит коммерческие предложения: цены по типам цен и остатки по складам. Отправляется после import.xml для обновления цен и остатков на сайте.
1. Команда авторизуется на сайте и запрашивает новые заказы.
2. Сайт формирует XML-файл orders.xml с заказами, помеченными на выгрузку.
3. TotalCRM парсит файл и обрабатывает каждый заказ:
- Проверяет уникальность заказа по внешнему ID.
- Находит или создает клиента (по телефону или email).
- Находит или создает товары (по GUID или артикулу).
- Создает заказ в TotalCRM со статусом "Новый".
4. После успешной обработки отправляется подтверждение на сайт, и заказы помечаются как выгруженные.
1. Проверьте, что GUID товара в 1С и в TotalCRM совпадают.
2. Вручную сопоставьте товар через интерфейс TotalCRM.
3. Добавьте недостающий товар в каталог TotalCRM и выполните повторный экспорт каталога на сайт.
4. При повторном импорте заказа товар будет автоматически сопоставлен.
ts:integrations:bitrix:import-orders Каждые 5 минут Импорт новых заказов с сайта
ts:integrations:bitrix:export-products Каждые 15-30 минут (offers.xml) Обновление цен и остатков
ts:integrations:bitrix:export-products Раз в сутки (import.xml) Обновление каталога товаров
ts:1c:import-products Каждые 15-30 минут Импорт каталога из 1С
ts:1c:update-orders Каждые 10-15 минут Обновление статусов из 1С
- Цена продажи — основная цена, по которой товар продается.
- Старая цена — цена для отображения зачеркнутой (акционная цена).
- Минимальная цена — цена для специальных предложений или оптовых продаж.
Маппинг типов цен осуществляется на стороне 1С-Битрикс.
В TotalCRM для каждого типа цены указывается внешний код, который сопоставляется с соответствующим типом цены на сайте.
1. В карточке канала сбыта перейти на вкладку "Склады FBS".
2. Добавить склад и указать:
- Название — отображаемое название склада.
- Внешний код — код для сопоставления со складом на сайте.
- Склад хранения — физический склад в TotalCRM, с которого берутся остатки.
- Параметры обработки заказов — настройки, влияющие на обработку заказов с этого склада.
Можно указать несколько складов FBS для одного канала продаж.
1. Убедитесь, что команда ts:integrations:bitrix:import-orders выполняется по расписанию и завершается без ошибок.
2. Проверьте логи на наличие ошибок авторизации или парсинга XML.
3. Проверьте, что логин и пароль для доступа к /bitrix/admin/1c_exchange.php введены корректно.
3. Убедитесь, что IP-адрес сервера TotalCRM не заблокирован на уровне сайта.
4. Проверьте, что в настройках сайта включена опция "Разрешить обмен с 1С".
5. Проверьте, что в карточке канала сбыта включен "Импорт заказов FBS/DBS".
1. С 1С (полный контур) — TotalCRM получает каталог, цены и остатки из 1С, синхронизирует их с сайтом, а заказы с сайта передает обратно в 1С для учета.
2. Без 1С (автономный режим) — TotalCRM является источником данных о товарах, ценах и остатках. Все изменения вносятся непосредственно в TotalCRM и синхронизируются с сайтом. Заказы с сайта импортируются в TotalCRM для обработки, но в 1С не передаются.
1. В 1С изменяется цена товара.
2. 1С формирует файл offers.xml и отправляет его в TotalCRM.
3. Команда ts:1c:import-products обрабатывает файл и обновляет цены в справочнике TotalCRM.
4. Команда ts:integrations:bitrix:export-products формирует offers.xml с новыми ценами и отправляет на сайт.
5. Сайт обрабатывает файл и обновляет цены на витрине.
6. Весь процесс занимает от 5 до 30 минут в зависимости от настроек расписания команд.
1. Команда ts:integrations:bitrix:export-products выполняется успешно.
2. В настройках канала сбыта правильно указаны склады хранения и их внешние коды.
3. В 1С есть актуальные остатки, и команда ts:1c:import-products успешно их импортировала.
4. В карточке товара есть остатки для выбранного склада.
5. Остатки не обнулены настройками резервирования заказов.
1. Лог-файлы — в папке var/log/ проекта TotalCRM:
- exchange_bitrix.log — логи обмена с сайтом.
- exchange_1c.log — логи обмена с 1С.
2. Интерфейс TotalCRM — в карточке интеграции и в разделе "Журнал обменов" отображается статус последних операций.
3. Telegram-уведомления — система может отправлять уведомления в заданный Telegram-канал при критических ошибках (авторизация, падение скрипта).
4. История изменений — таблицы McStockHistory и PriceHistory хранят историю изменений остатков и цен, что позволяет отслеживать динамику.
- Анализ настроек — 2-3 часа.
- Настройка обмена каталогом — 3-4 часа.
- Настройка импорта заказов — 2-3 часа.
- Тестирование и отладка — 2-3 часа.
В сложных случаях (нестандартная структура каталога, множество складов, специфические статусные модели) время может увеличиться до 20 часов
1. Заказ создается со статусом "Ожидает поступление" — оператор видит, что товар отсутствует, и может связаться с клиентом.
2. Автоматическая проверка остатков — перед подтверждением заказа система проверяет остатки.
3. Если товара нет, заказ может быть автоматически отклонен или отправлен на ручную проверку. Частичная отгрузка — если часть товаров есть в наличии, заказ может быть разделен на несколько отгрузок.
Поведение настраивается в параметрах обработки заказов для конкретного склада FBS.
1. В 1С статус заказа меняется (например, "Отгружен").
2. 1С формирует файл orders.xml с обновленными статусами и отправляет его в TotalCRM.
3. Команда ts:1c:update-orders обрабатывает файл и обновляет статус заказа в TotalCRM.
4. Если настроена обратная синхронизация, статус может быть передан на сайт через команду ts:integrations:bitrix:export-products или отдельный механизм обновления статусов.
На практике чаще всего статусы обновляются только в TotalCRM, а клиент отслеживает заказ через личный кабинет сайта, где статус обновляется отдельно (например, через интеграцию с 1С напрямую).
1. Выполняется ли команда ts:1c:import-products для файлов в products/.
2. Выполняется ли команда ts:1c:update-orders для файлов в orders/.
3. Есть ли ошибки в логах при обработке файлов.
4. Достаточно ли прав на запись в папки processed/ и error/.
Если файлы обрабатываются, но не удаляются, проверьте настройки очистки (обычно старые файлы удаляются автоматически раз в сутки).





