Интеграция 1С с сайтом нужна, чтобы остатки, цены и заказы не переносили руками. Менеджер не выгружает прайс в Excel каждое утро, клиент не заказывает то, чего нет на складе, а заказ с сайта сам появляется в 1С и возвращает покупателю статус.
Общие принципы обмена с 1С — источник истины, способы, проверка — мы разобрали в статье интеграция с 1С. Здесь то, что специфично именно для сайта: что передавать, какую схему выбрать, как часто обмениваться и на чем чаще всего спотыкаются.
Что передается между 1С и сайтом
Каталог
Номенклатура, группы, характеристики, единицы. Источник — 1С. Описания, фото и тексты для поиска часто живут на сайте, и это нужно решить до старта.
Остатки
Количество по складам или суммарно по доступным. Важно не само количество, а доступность — с учетом резервов под уже оформленные заказы.
Цены
Розничная, оптовые, персональные для B2B-клиентов. Сайт получает нужные типы цен, а не весь прайс-лист.
Заказы
С сайта в 1С — покупатель, позиции, доставка, оплата. Для нового покупателя в 1С создается контрагент или находится существующий.
Статусы
Из 1С на сайт — подтвержден, собран, отгружен, оплачен. Клиент видит их в кабинете или получает уведомлением, не звоня менеджеру.
Личный кабинет
Для B2B — счета, отгрузочные документы, взаиморасчеты, история заказов. Самая ценная и самая сложная часть обмена.
Три схемы интеграции 1С с сайтом
Типовой обмен по CommerceML. Стандарт, который разработали 1С и 1С-Битрикс. Инициатор обмена — 1С. По расписанию она отправляет на сайт пакет с номенклатурой, ценами и остатками, забирает новые заказы и передает изменения их статусов. Обмен есть в типовых конфигурациях вроде «Управления торговлей» и «Управления нашей фирмой», а на стороне сайта его поддерживают 1С-Битрикс и многие другие платформы интернет-магазинов.
Этого достаточно для типового магазина, где задержка в несколько минут или час не критична. Ограничения — пакетный характер обмена и хрупкость доработок. Персональные цены, сложные характеристики и нестандартные статусы в типовой формат ложатся плохо, и каждая такая доработка потом проверяется при обновлениях.
Прямые запросы к 1С через OData или HTTP-сервисы. Сайт обращается к 1С в момент, когда данные нужны, — например, за актуальным остатком при оформлении заказа или за взаиморасчетами клиента в кабинете. Данные всегда свежие. Но каждый посетитель становится нагрузкой на учетную базу, а пока 1С на обновлении или закрытии месяца, эта часть сайта не работает. Годится для точечных запросов, а не для каталога, который листают сотни людей.
Промежуточный сервис. Между 1С и сайтом ставится отдельный слой. Он держит копию нужных данных, принимает изменения из 1С по событиям, отдает сайту быстрый API и копит заказы в очереди, если 1С недоступна. Это дороже в разработке, зато сайт перестает зависеть от состояния учетной базы, а к тому же слою потом подключаются мобильное приложение, маркетплейсы и личный кабинет. Нужен, когда потребителей данных больше одного или когда B2B-логика цен и доступности не ложится в типовой обмен.
Как часто обмениваться
Частоту выбирают по цене ошибки, а не по принципу «чем чаще, тем лучше». Частый полный обмен нагружает и 1С, и сайт.
- Каталог и описания. Раз в сутки или по изменению. Меняются редко, выгружаются тяжело.
- Цены. Несколько раз в день или по изменению. Если цены зависят от курса или акций — чаще.
- Остатки. Чем быстрее оборачивается товар, тем чаще. Для ходовых позиций в рознице — минуты, для оптового склада с резервами надежнее проверка в момент заказа.
- Заказы. Сразу. Заказ, который попал в 1С через час, — это час, за который товар могли продать в офлайн-магазине.
- Статусы. По событию. Клиенту важно узнать об отгрузке в момент отгрузки.
Обмен только изменениями вместо полной выгрузки снимает большую часть нагрузки. Типовой протокол это умеет, но настройку стоит проверить — нередко по умолчанию стоит полная выгрузка.
Грабли, специфичные для сайта
- Пересоздание товаров. Если при обмене товары удаляются и создаются заново, у них меняются адреса страниц. Поисковики теряют страницы, накопленные позиции в выдаче обнуляются. Сопоставлять товары нужно по постоянному идентификатору из 1С, а не по названию.
- Характеристики и варианты. Размер, цвет, комплектация в 1С и на сайте устроены по-разному. Если это не разобрать до старта, на сайте появятся сотни отдельных товаров вместо одного с выбором размера.
- Продали то, чего нет. Остаток на сайте не учитывает резервы и заказы, которые еще не дошли до 1С. Нужен резерв на стороне сайта до подтверждения или проверка остатка в момент оформления.
- Дубли покупателей. Каждый заказ с сайта создает нового контрагента, и через год в 1С пять Ивановых с одним телефоном. Ключ сопоставления — телефон или почта для частных лиц, ИНН для организаций.
- Скидки и промокоды. Сайт дал скидку, 1С о ней не знает и пересчитывает заказ по своей цене. Решается правилом, чья цена в заказе окончательная.
- Контент в двух местах. Описания правят и в 1С, и на сайте, а обмен затирает одно другим. Нужно решить, где живет контент, и запретить обмену его перезаписывать.
Личный кабинет на данных 1С
Для оптовых клиентов главная ценность сайта часто не в каталоге, а в кабинете. Персональные цены, остатки по доступным складам, счета и отгрузочные документы, акт сверки, повтор прошлого заказа в два клика.
Все это данные 1С, но отдавать их напрямую из учетной базы на каждый заход клиента не стоит. Рабочая схема — кабинет читает копию из промежуточного слоя, а документы и сверка обновляются в фоне. Что класть в кабинет, чтобы он снимал звонки менеджерам, разобрано в статье про личный кабинет клиента, а как мы их делаем — на странице личные кабинеты.
Где здесь ИИ
Одна задача, специфичная для сайта. Наименования в 1С пишутся для склада, а не для покупателя, — «Кран шар. ВР/НР 1/2 Ру40». Для фильтров на сайте нужны отдельные характеристики — тип, резьба, диаметр, давление. Модель раскладывает наименования на характеристики и готовит черновики описаний, а человек проверяет спорные. На каталоге в тысячи позиций это снимает основную часть ручной работы, хотя проверку не отменяет.
Про сопоставление справочников при первом запуске обмена — в основной статье об интеграции с 1С.
Частые вопросы
Какой сайт можно связать с 1С
Любой, вопрос в объеме работ. Для 1С-Битрикс и многих платформ интернет-магазинов есть типовой обмен, и основная работа уходит на настройку и порядок в данных. Самописный сайт подключают либо реализацией протокола обмена на его стороне, либо через промежуточный сервис.
Сколько занимает интеграция
Односторонний обмен по одной сущности — от недели. Двусторонний обмен каталогом и заказами с сопоставлением и сверкой — две-пять недель. Дольше всего, когда в 1С дубли и неразобранная номенклатура: чистка данных иногда занимает больше времени, чем сам обмен.
Нужен ли программист 1С
Для типового обмена по CommerceML обычно нет — хватает настройки в конфигурации. Если нужны свои HTTP-сервисы, персональные цены или нестандартные статусы, понадобится несколько дней его времени.
Свяжем сайт с 1С без ручного переноса
Расскажите, какая у вас конфигурация 1С, на чем сделан сайт и что сейчас переносят руками. В ответ — схема обмена по каждому объекту, частота, выбранный способ и оценка работ.
Если хватит настройки типового обмена, скажем об этом и не будем предлагать разработку.