← Блог

Интеграция 1С с сайтом — остатки, цены и заказы без ручного переноса

CommerceML, прямые запросы или промежуточный сервис: что выбрать, как часто обмениваться и на чем спотыкаются чаще всего

Интеграция 1С с сайтом нужна, чтобы остатки, цены и заказы не переносили руками. Менеджер не выгружает прайс в Excel каждое утро, клиент не заказывает то, чего нет на складе, а заказ с сайта сам появляется в 1С и возвращает покупателю статус.

Общие принципы обмена с 1С — источник истины, способы, проверка — мы разобрали в статье интеграция с 1С. Здесь то, что специфично именно для сайта: что передавать, какую схему выбрать, как часто обмениваться и на чем чаще всего спотыкаются.

Что передается между 1С и сайтом

Каталог

Номенклатура, группы, характеристики, единицы. Источник — 1С. Описания, фото и тексты для поиска часто живут на сайте, и это нужно решить до старта.

Остатки

Количество по складам или суммарно по доступным. Важно не само количество, а доступность — с учетом резервов под уже оформленные заказы.

Цены

Розничная, оптовые, персональные для B2B-клиентов. Сайт получает нужные типы цен, а не весь прайс-лист.

Заказы

С сайта в 1С — покупатель, позиции, доставка, оплата. Для нового покупателя в 1С создается контрагент или находится существующий.

Статусы

Из 1С на сайт — подтвержден, собран, отгружен, оплачен. Клиент видит их в кабинете или получает уведомлением, не звоня менеджеру.

Личный кабинет

Для B2B — счета, отгрузочные документы, взаиморасчеты, история заказов. Самая ценная и самая сложная часть обмена.

Три схемы интеграции 1С с сайтом

Три схемы интеграции 1С с сайтом: пакетный обмен, прямые запросы и промежуточный сервис Первая строка — CommerceML: 1С отправляет на сайт пакет с каталогом, ценами и остатками, забирает заказы. Вторая — прямые запросы OData или HTTP: сайт обращается к 1С в момент показа, каждый посетитель создает нагрузку на учет. Третья — свой промежуточный сервис между 1С и сайтом с копией данных и очередью. CommerceMLтиповой обмен 1С сайт OData, HTTPпрямой запрос 1С сайт свой слойпромежуточный сервис 1С сайт каталог, цены, остатки — пакетомзаказы и статусы — по расписанию запрос в момент, когда нужны данныекаждый посетитель — нагрузка на 1С событиябыстрый API свой сервис копия и очередь
Пакетный обмен прост и надежен, прямые запросы дают свежие данные ценой нагрузки на учет, свой слой развязывает сайт и 1С. В реальных проектах схемы часто комбинируют.

Типовой обмен по CommerceML. Стандарт, который разработали 1С и 1С-Битрикс. Инициатор обмена — 1С. По расписанию она отправляет на сайт пакет с номенклатурой, ценами и остатками, забирает новые заказы и передает изменения их статусов. Обмен есть в типовых конфигурациях вроде «Управления торговлей» и «Управления нашей фирмой», а на стороне сайта его поддерживают 1С-Битрикс и многие другие платформы интернет-магазинов.

Этого достаточно для типового магазина, где задержка в несколько минут или час не критична. Ограничения — пакетный характер обмена и хрупкость доработок. Персональные цены, сложные характеристики и нестандартные статусы в типовой формат ложатся плохо, и каждая такая доработка потом проверяется при обновлениях.

Прямые запросы к 1С через OData или HTTP-сервисы. Сайт обращается к 1С в момент, когда данные нужны, — например, за актуальным остатком при оформлении заказа или за взаиморасчетами клиента в кабинете. Данные всегда свежие. Но каждый посетитель становится нагрузкой на учетную базу, а пока 1С на обновлении или закрытии месяца, эта часть сайта не работает. Годится для точечных запросов, а не для каталога, который листают сотни людей.

Промежуточный сервис. Между 1С и сайтом ставится отдельный слой. Он держит копию нужных данных, принимает изменения из 1С по событиям, отдает сайту быстрый API и копит заказы в очереди, если 1С недоступна. Это дороже в разработке, зато сайт перестает зависеть от состояния учетной базы, а к тому же слою потом подключаются мобильное приложение, маркетплейсы и личный кабинет. Нужен, когда потребителей данных больше одного или когда B2B-логика цен и доступности не ложится в типовой обмен.

Как часто обмениваться

Частоту выбирают по цене ошибки, а не по принципу «чем чаще, тем лучше». Частый полный обмен нагружает и 1С, и сайт.

  • Каталог и описания. Раз в сутки или по изменению. Меняются редко, выгружаются тяжело.
  • Цены. Несколько раз в день или по изменению. Если цены зависят от курса или акций — чаще.
  • Остатки. Чем быстрее оборачивается товар, тем чаще. Для ходовых позиций в рознице — минуты, для оптового склада с резервами надежнее проверка в момент заказа.
  • Заказы. Сразу. Заказ, который попал в 1С через час, — это час, за который товар могли продать в офлайн-магазине.
  • Статусы. По событию. Клиенту важно узнать об отгрузке в момент отгрузки.

Обмен только изменениями вместо полной выгрузки снимает большую часть нагрузки. Типовой протокол это умеет, но настройку стоит проверить — нередко по умолчанию стоит полная выгрузка.

Грабли, специфичные для сайта

  1. Пересоздание товаров. Если при обмене товары удаляются и создаются заново, у них меняются адреса страниц. Поисковики теряют страницы, накопленные позиции в выдаче обнуляются. Сопоставлять товары нужно по постоянному идентификатору из 1С, а не по названию.
  2. Характеристики и варианты. Размер, цвет, комплектация в 1С и на сайте устроены по-разному. Если это не разобрать до старта, на сайте появятся сотни отдельных товаров вместо одного с выбором размера.
  3. Продали то, чего нет. Остаток на сайте не учитывает резервы и заказы, которые еще не дошли до 1С. Нужен резерв на стороне сайта до подтверждения или проверка остатка в момент оформления.
  4. Дубли покупателей. Каждый заказ с сайта создает нового контрагента, и через год в 1С пять Ивановых с одним телефоном. Ключ сопоставления — телефон или почта для частных лиц, ИНН для организаций.
  5. Скидки и промокоды. Сайт дал скидку, 1С о ней не знает и пересчитывает заказ по своей цене. Решается правилом, чья цена в заказе окончательная.
  6. Контент в двух местах. Описания правят и в 1С, и на сайте, а обмен затирает одно другим. Нужно решить, где живет контент, и запретить обмену его перезаписывать.

Личный кабинет на данных 1С

Для оптовых клиентов главная ценность сайта часто не в каталоге, а в кабинете. Персональные цены, остатки по доступным складам, счета и отгрузочные документы, акт сверки, повтор прошлого заказа в два клика.

Все это данные 1С, но отдавать их напрямую из учетной базы на каждый заход клиента не стоит. Рабочая схема — кабинет читает копию из промежуточного слоя, а документы и сверка обновляются в фоне. Что класть в кабинет, чтобы он снимал звонки менеджерам, разобрано в статье про личный кабинет клиента, а как мы их делаем — на странице личные кабинеты.

Где здесь ИИ

Одна задача, специфичная для сайта. Наименования в 1С пишутся для склада, а не для покупателя, — «Кран шар. ВР/НР 1/2 Ру40». Для фильтров на сайте нужны отдельные характеристики — тип, резьба, диаметр, давление. Модель раскладывает наименования на характеристики и готовит черновики описаний, а человек проверяет спорные. На каталоге в тысячи позиций это снимает основную часть ручной работы, хотя проверку не отменяет.

Про сопоставление справочников при первом запуске обмена — в основной статье об интеграции с 1С.

Частые вопросы

Какой сайт можно связать с 1С

Любой, вопрос в объеме работ. Для 1С-Битрикс и многих платформ интернет-магазинов есть типовой обмен, и основная работа уходит на настройку и порядок в данных. Самописный сайт подключают либо реализацией протокола обмена на его стороне, либо через промежуточный сервис.

Сколько занимает интеграция

Односторонний обмен по одной сущности — от недели. Двусторонний обмен каталогом и заказами с сопоставлением и сверкой — две-пять недель. Дольше всего, когда в 1С дубли и неразобранная номенклатура: чистка данных иногда занимает больше времени, чем сам обмен.

Нужен ли программист 1С

Для типового обмена по CommerceML обычно нет — хватает настройки в конфигурации. Если нужны свои HTTP-сервисы, персональные цены или нестандартные статусы, понадобится несколько дней его времени.

Свяжем сайт с 1С без ручного переноса

Расскажите, какая у вас конфигурация 1С, на чем сделан сайт и что сейчас переносят руками. В ответ — схема обмена по каждому объекту, частота, выбранный способ и оценка работ.

Обсудить интеграцию

Если хватит настройки типового обмена, скажем об этом и не будем предлагать разработку.

Дальше по теме