Короткий ответ: надёжная интеграция сайта с 1С начинается с владельца каждого типа данных и правил разрешения конфликтов. После этого проектируются формат обмена, защита от повторов, журналы и уведомления о сбоях.
Самая частая ошибка интеграции — сразу обсуждать API, не договорившись, где находится правильная версия товара, цены, остатка и заказа. Технический обмен может работать без ошибок, но данные всё равно будут расходиться, если обе системы считают себя главными.
Сначала определите владельцев данных
- Номенклатура и базовые характеристики: чаще всего принадлежат 1С.
- Маркетинговое описание и медиаконтент: могут редактироваться на сайте или в PIM.
- Остатки и доступность: обычно рассчитываются в учётном контуре, но сайт может резервировать товар.
- Цена: зависит от типа клиента, акции, договора и канала продаж.
- Заказ: создаётся на сайте, а дальнейшие статусы могут приходить из 1С, CRM, склада и доставки.
- Платёж: подтверждается платёжным провайдером, после чего результат передаётся в остальные системы.
Для каждого объекта нужен единый идентификатор. Название товара, телефон клиента или номер документа не подходят для надёжной связи: они могут изменяться и повторяться.
Выберите подходящий способ обмена
Регламентный обмен
Данные передаются пакетами по расписанию. Подходит для большого каталога и информации, которая не должна обновляться мгновенно. Важно уметь продолжить обмен после ошибки и не отправлять полный массив без необходимости.
API в реальном времени
Сайт запрашивает или передаёт данные в момент действия пользователя. Такой подход нужен для актуального статуса, персональной цены или создания заказа, но требует контролировать время ответа и иметь запасной сценарий при недоступности 1С.
Очередь сообщений
Операция фиксируется и обрабатывается асинхронно. Очередь помогает переживать временную недоступность одной из систем, повторять безопасные операции и не заставлять пользователя ждать завершения длинного обмена.
Как не создавать дубли
Каждая команда обмена должна быть идемпотентной: повтор одного и того же сообщения не создаёт второй заказ или оплату. Для этого используются внешний идентификатор операции, контроль версии и сохранение результата предыдущего выполнения.
- не связывайте записи только по названию или телефону;
- храните идентификаторы обеих систем;
- разделяйте создание и обновление;
- фиксируйте время и версию изменения;
- определите, какая система побеждает при конфликте;
- проверяйте повторную доставку сообщений на тестовом контуре.
Мониторинг — часть интеграции
Фраза «обмен работает» недостаточна. Команде нужны показатели: сколько сообщений обработано, сколько находится в очереди, когда был последний успешный обмен и какие ошибки требуют участия человека. Критический сбой должен создавать уведомление до того, как его заметит покупатель.
Безопасный план запуска
- Зафиксировать карту данных и владельцев.
- Собрать реальные примеры товаров, заказов, скидок и возвратов.
- Развернуть отдельный тестовый контур.
- Проверить полный обмен и сценарии ошибок.
- Запустить ограниченную группу товаров или заказов.
- Сверить результаты автоматически и вручную.
- Только после этого масштабировать поток.
Подробнее о составе проекта: интеграция сайта, CRM и приложений с 1С. Пример продукта с обменом каталога, складов и заказов — Хас Маркет.