Интеграция 1С с интернет-магазином: товары, остатки и заказы
Практика3 минРедакция Innovialabs
Коротко
1С остаётся главной системой для товаров, цен и остатков, сайт отдаёт в неё заказы; обмен идёт по расписанию или событиям, а каждое его звено логируется и проверяется.
Как устроена интеграция в двух словах
Интеграция 1С с интернет-магазином — это регулярный обмен данными по чётким правилам. 1С — источник правды для каталога, цен и остатков. Сайт — источник заказов и данных покупателей. Данные идут в обе стороны, но каждое поле имеет одного «хозяина», который его меняет.
Главная ошибка — позволить редактировать одно и то же поле и в 1С, и в админке сайта. Тогда при следующем обмене чьи-то изменения обязательно потеряются.
Что и в каком направлении синхронизировать
| Данные | Направление | Комментарий |
|---|---|---|
| Номенклатура, артикулы, характеристики | 1С → сайт | Описания и фото часто ведут на сайте |
| Цены (розница, акции, типы цен) | 1С → сайт | Выберите, какой тип цен публикуется |
| Остатки по складам | 1С → сайт | Можно суммировать или показывать по складам |
| Заказы | сайт → 1С | С товарами, доставкой, оплатой |
| Статусы заказов | 1С → сайт | Чтобы покупатель видел актуальный статус |
| Клиенты | сайт → 1С | Только то, что нужно для учёта |
Отдельно решите, где живёт контент: SEO-тексты, фото, фильтры. Обычно удобнее вести их на сайте, а из 1С брать только учётные данные.
Способы обмена
- Стандартный протокол CommerceML — обмен XML-файлами, который поддерживают многие CMS и типовые конфигурации 1С. Быстрый старт, но ограниченная гибкость.
- HTTP-сервисы или OData в 1С — сайт или промежуточный сервис обращается к 1С по API. Гибче, подходит для частых обновлений.
- Промежуточный сервис (middleware) — отдельное приложение, которое забирает данные из 1С, преобразует их и отправляет на сайт и маркетплейсы. Полезно, когда каналов продаж несколько.
Частота обмена
- Каталог и описания — раз в сутки или по изменению достаточно.
- Цены — несколько раз в день или по событию, если акции меняются часто.
- Остатки — как можно чаще: каждые несколько минут или по событию. От этого зависит, продадите ли вы товар, которого нет.
- Заказы — сразу после оформления или с минимальной задержкой.
Полную выгрузку каталога делайте редко, а в течение дня передавайте только изменения (дельту). Это снижает нагрузку на 1С и ускоряет обмен.
Цены и варианты товаров
Варианты (размер, цвет) в 1С обычно хранятся как характеристики номенклатуры. На сайте это должно стать одним товаром с вариантами, а не десятком отдельных карточек.
Практические правила:
- Связывайте товары по стабильному идентификатору (GUID из 1С), а не по названию или артикулу, которые могут измениться.
- Цена и остаток привязываются к конкретному варианту.
- Договоритесь, что делать с товаром без цены или с нулевым остатком: скрывать, показывать «под заказ» или «нет в наличии».
Тестирование и мониторинг
Перед запуском проверьте сценарии на копии базы 1С:
- Новый товар появляется на сайте с правильной ценой и вариантами.
- Изменение цены и остатка доходит до сайта в ожидаемое время.
- Заказ с сайта создаётся в 1С с верными товарами, суммой и доставкой.
- Изменение статуса в 1С отражается на сайте.
- Обмен корректно переживает ошибку: товар без цены, удалённую позицию, обрыв связи.
После запуска нужен мониторинг: журнал каждого обмена, время последней успешной синхронизации, уведомление ответственному при сбое. Если остатки не обновлялись дольше заданного порога, об этом должен кто-то узнать раньше покупателей.
Частые ошибки
- Нет единого идентификатора — дубли товаров после каждой выгрузки.
- Полная выгрузка каталога каждые 15 минут — 1С и сайт тормозят.
- Заказы не доходят до 1С, и никто этого не видит без логов.
- Конфигурация 1С сильно доработана, а интеграцию делали «по типовой».