Быстрые ссылки

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

Когда товаров больше сотни, а цены и остатки меняются каждый день, ручное обновление сайта превращается в отдельную должность. Обмен с 1С снимает эту работу: товары, цены и остатки приходят на сайт автоматически, а заказы уходят обратно в учётную систему. Разберу, как это устроено, где обычно ломается и что нужно подготовить.

Что обычно передаётся

Из 1С на сайт

  • Каталог: группы, товары, артикулы, описания, характеристики, изображения.
  • Цены: один или несколько типов цен (розница, опт).
  • Остатки: по одному или нескольким складам.

С сайта в 1С

  • Заказы: состав, сумма, покупатель, способ оплаты и доставки.
  • Статусы: иногда в обратную сторону — из 1С на сайт, чтобы покупатель видел, что заказ отгружен.

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

Как технически устроен обмен

Стандартный механизм — протокол обмена с сайтом на основе формата CommerceML. Он есть в типовых конфигурациях 1С (Управление торговлей, Комплексная автоматизация, ERP и другие).

  1. 1С по расписанию обращается к адресу на сайте, например /bitrix/admin/1c_exchange.php для Битрикса или адресу модуля обмена в WordPress и OpenCart.
  2. Проходит авторизацию по логину и паролю.
  3. Передаёт XML-файлы: import.xml (каталог) и offers.xml (цены и остатки), иногда архивом.
  4. Сайт разбирает файлы пошагово и обновляет данные.
  5. 1С запрашивает новые заказы, сайт отдаёт их в XML.

Для Битрикса модуль обмена встроен. Для WordPress (WooCommerce) и OpenCart используют сторонние модули, которые реализуют тот же протокол.

Альтернативы CommerceML

  • Выгрузка в Excel или CSV по расписанию и импорт на сайте. Подходит для небольших каталогов и случаев, когда 1С нестандартная.
  • Обмен через API — для доработанных конфигураций и сложной логики, требует программиста 1С.
  • Промежуточные сервисы, которые забирают данные из 1С и отдают на сайт. Удобно, но это ещё одна подписка и точка отказа.

Подготовка: что сделать до настройки

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

Как часто обновлять

  • Цены и остатки — от раза в час до нескольких раз в день, в зависимости от оборота.
  • Полный каталог — раз в сутки ночью или вручную при изменении ассортимента.
  • Заказы — каждые 5–15 минут, если менеджеры работают в 1С.

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

Типичные проблемы

Дубли товаров

Товары завели на сайте вручную до настройки обмена, а 1С создаёт свои. Решение — один раз сопоставить товары по артикулу и записать сайту идентификаторы из 1С. После этого обмен обновляет существующие товары.

Обмен обрывается

Ограничение времени выполнения PHP или размера загружаемого файла. Помогают:

max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 512M

и пошаговый режим обмена в настройках модуля (размер шага в секундах или количество элементов).

Цены нулевые или не те

Выбран не тот тип цен в настройках модуля или тип цен не включён в выгрузку на стороне 1С.

Пропадают фото, загруженные на сайте

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

Заказы не появляются в 1С

Не настроена выгрузка заказов в узле обмена, не сопоставлены статусы, или защита сайта блокирует запросы 1С. Проверьте журнал модуля обмена и логи веб-сервера по времени обмена.

Пример схемы для небольшого магазина

Типичный вариант, с которого удобно начинать:

  1. Каталог (категории, описания, фото, характеристики) ведётся на сайте — так проще делать красивые карточки и SEO-тексты.
  2. Из 1С каждый час приходят только цены и остатки, сопоставление по артикулу.
  3. Заказы с сайта каждые 10 минут уходят в 1С, менеджер видит их в привычном списке документов.
  4. Если товар закончился в 1С, на сайте он автоматически получает статус «нет в наличии», но страница остаётся.

Такая схема покрывает главное — актуальные цены и наличие — и не требует идеального порядка в номенклатуре 1С.

Как контролировать, что обмен работает

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

  • журнал обмена в модуле с датой последней успешной выгрузки;
  • уведомление на почту или в Telegram, если обмена не было дольше заданного времени;
  • раз в неделю — выборочная сверка цены и остатка нескольких товаров на сайте и в 1С.

На техподдержке я проверяю журнал обмена регулярно, но уведомление об ошибке стоит настроить в любом случае.

Нагрузка на сервер

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

Обмен и SEO

Обмен может испортить SEO, если 1С перезаписывает названия и описания товаров при каждой выгрузке. Если вы пишете для карточек отдельные тексты и мета-теги на сайте, отключите обновление этих полей из 1С в настройках модуля. Также следите, чтобы при выгрузке не менялись адреса товаров: модуль должен формировать ЧПУ один раз при создании товара, а не пересоздавать его при каждом обмене. Иначе страницы будут менять адреса, а в поиске появятся ссылки на 404.

Сколько стоит

Интеграция с 1С у меня — от 700 BYN. Цена зависит от того, что именно передаётся, на какой CMS сайт, сколько товаров, нужны ли заказы в обратную сторону и в каком состоянии номенклатура. Работы на стороне 1С, если они нужны, выполняет ваш программист 1С, я согласовываю с ним формат и расписание.

Подробнее об услуге — на странице интеграции сайта с 1С.

С чего начать, если 1С ещё нет

Если учёт пока ведётся в таблицах, обмен с 1С можно отложить. Начните с импорта товаров на сайт из Excel и ручного обновления остатков раз в день. Когда появится 1С, настройте обмен цен и остатков, сопоставив товары по артикулу. Важно с самого начала заполнять артикулы одинаково на сайте и в таблицах — тогда переход на автоматический обмен пройдёт без дублей.

Чек-лист перед запуском обмена

  1. Номенклатура без дублей, у товаров заполнены артикулы.
  2. Определено, какие поля ведутся в 1С, а какие на сайте.
  3. Выбраны типы цен и склады.
  4. Обмен проверен на копии сайта.
  5. Лимиты PHP достаточны для выгрузки.
  6. Настроено расписание и уведомление об ошибках.
  7. Тестовый заказ пришёл в 1С с правильными данными.

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

На каких CMS можно настроить обмен с 1С?

На 1С-Битрикс — встроенным модулем, на WordPress с WooCommerce и OpenCart — через модули обмена по CommerceML. На других CMS — чаще через Excel или API.

Нужна ли доработка 1С?

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

Можно ли выгружать только остатки?

Да. Отдельная выгрузка цен и остатков быстрее полной и её можно запускать чаще.

Что будет, если 1С недоступна?

Сайт продолжит работать с последними выгруженными данными. После восстановления обмена всё обновится.

Нужна помощь?

Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю задачу и скажу, что нужно сделать, сколько это займёт и сколько будет стоить.

Интеграция сайта с 1СНаписать в TelegramНаписать в Viber

Leave a comment