Интеграция сайта с 1С: остатки, цены и заказы — как устроен обмен
Когда товаров больше сотни, а цены и остатки меняются каждый день, ручное обновление сайта превращается в отдельную должность. Обмен с 1С снимает эту работу: товары, цены и остатки приходят на сайт автоматически, а заказы уходят обратно в учётную систему. Разберу, как это устроено, где обычно ломается и что нужно подготовить.
Что обычно передаётся
Из 1С на сайт
- Каталог: группы, товары, артикулы, описания, характеристики, изображения.
- Цены: один или несколько типов цен (розница, опт).
- Остатки: по одному или нескольким складам.
С сайта в 1С
- Заказы: состав, сумма, покупатель, способ оплаты и доставки.
- Статусы: иногда в обратную сторону — из 1С на сайт, чтобы покупатель видел, что заказ отгружен.
Не обязательно передавать всё. Часто каталог ведут на сайте вручную, а из 1С приходят только цены и остатки — это проще и надёжнее.
Как технически устроен обмен
Стандартный механизм — протокол обмена с сайтом на основе формата CommerceML. Он есть в типовых конфигурациях 1С (Управление торговлей, Комплексная автоматизация, ERP и другие).
- 1С по расписанию обращается к адресу на сайте, например /bitrix/admin/1c_exchange.php для Битрикса или адресу модуля обмена в WordPress и OpenCart.
- Проходит авторизацию по логину и паролю.
- Передаёт XML-файлы: import.xml (каталог) и offers.xml (цены и остатки), иногда архивом.
- Сайт разбирает файлы пошагово и обновляет данные.
- 1С запрашивает новые заказы, сайт отдаёт их в XML.
Для Битрикса модуль обмена встроен. Для WordPress (WooCommerce) и OpenCart используют сторонние модули, которые реализуют тот же протокол.
Альтернативы CommerceML
- Выгрузка в Excel или CSV по расписанию и импорт на сайте. Подходит для небольших каталогов и случаев, когда 1С нестандартная.
- Обмен через API — для доработанных конфигураций и сложной логики, требует программиста 1С.
- Промежуточные сервисы, которые забирают данные из 1С и отдают на сайт. Удобно, но это ещё одна подписка и точка отказа.
Подготовка: что сделать до настройки
- Навести порядок в номенклатуре. Дубли, пустые артикулы, товары без групп — всё это переедет на сайт.
- Решить, где источник правды для каждого поля. Описание и фото — в 1С или на сайте? Если и там, и там — 1С будет перезаписывать правки на сайте.
- Определить типы цен и склады, которые нужны сайту.
- Договориться с программистом 1С — настройка узла обмена на стороне 1С обычно за ним или за компанией, которая обслуживает вашу 1С.
- Сделать копию сайта для первых тестовых выгрузок.
Как часто обновлять
- Цены и остатки — от раза в час до нескольких раз в день, в зависимости от оборота.
- Полный каталог — раз в сутки ночью или вручную при изменении ассортимента.
- Заказы — каждые 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С. Проверьте журнал модуля обмена и логи веб-сервера по времени обмена.
Пример схемы для небольшого магазина
Типичный вариант, с которого удобно начинать:
- Каталог (категории, описания, фото, характеристики) ведётся на сайте — так проще делать красивые карточки и SEO-тексты.
- Из 1С каждый час приходят только цены и остатки, сопоставление по артикулу.
- Заказы с сайта каждые 10 минут уходят в 1С, менеджер видит их в привычном списке документов.
- Если товар закончился в 1С, на сайте он автоматически получает статус «нет в наличии», но страница остаётся.
Такая схема покрывает главное — актуальные цены и наличие — и не требует идеального порядка в номенклатуре 1С.
Как контролировать, что обмен работает
Обмен ломается тихо: сайт продолжает работать со старыми ценами, и это замечают, когда покупатель заказывает товар, которого нет. Поэтому нужен контроль:
- журнал обмена в модуле с датой последней успешной выгрузки;
- уведомление на почту или в Telegram, если обмена не было дольше заданного времени;
- раз в неделю — выборочная сверка цены и остатка нескольких товаров на сайте и в 1С.
На техподдержке я проверяю журнал обмена регулярно, но уведомление об ошибке стоит настроить в любом случае.
Нагрузка на сервер
Полная выгрузка каталога на несколько тысяч товаров с картинками может занимать десятки минут и нагружать сервер. Выгрузку каталога лучше ставить на ночь, а днём передавать только цены и остатки. На виртуальном хостинге с жёсткими лимитами процессов обмен иногда приходится разбивать на части или переносить сайт на более мощный тариф.
Обмен и SEO
Обмен может испортить SEO, если 1С перезаписывает названия и описания товаров при каждой выгрузке. Если вы пишете для карточек отдельные тексты и мета-теги на сайте, отключите обновление этих полей из 1С в настройках модуля. Также следите, чтобы при выгрузке не менялись адреса товаров: модуль должен формировать ЧПУ один раз при создании товара, а не пересоздавать его при каждом обмене. Иначе страницы будут менять адреса, а в поиске появятся ссылки на 404.
Сколько стоит
Интеграция с 1С у меня — от 700 BYN. Цена зависит от того, что именно передаётся, на какой CMS сайт, сколько товаров, нужны ли заказы в обратную сторону и в каком состоянии номенклатура. Работы на стороне 1С, если они нужны, выполняет ваш программист 1С, я согласовываю с ним формат и расписание.
Подробнее об услуге — на странице интеграции сайта с 1С.
С чего начать, если 1С ещё нет
Если учёт пока ведётся в таблицах, обмен с 1С можно отложить. Начните с импорта товаров на сайт из Excel и ручного обновления остатков раз в день. Когда появится 1С, настройте обмен цен и остатков, сопоставив товары по артикулу. Важно с самого начала заполнять артикулы одинаково на сайте и в таблицах — тогда переход на автоматический обмен пройдёт без дублей.
Чек-лист перед запуском обмена
- Номенклатура без дублей, у товаров заполнены артикулы.
- Определено, какие поля ведутся в 1С, а какие на сайте.
- Выбраны типы цен и склады.
- Обмен проверен на копии сайта.
- Лимиты PHP достаточны для выгрузки.
- Настроено расписание и уведомление об ошибках.
- Тестовый заказ пришёл в 1С с правильными данными.
Частые вопросы
На каких CMS можно настроить обмен с 1С?
На 1С-Битрикс — встроенным модулем, на WordPress с WooCommerce и OpenCart — через модули обмена по CommerceML. На других CMS — чаще через Excel или API.
Нужна ли доработка 1С?
Для типовых конфигураций обычно хватает штатного узла обмена с сайтом. Для доработанных конфигураций может понадобиться программист 1С.
Можно ли выгружать только остатки?
Да. Отдельная выгрузка цен и остатков быстрее полной и её можно запускать чаще.
Что будет, если 1С недоступна?
Сайт продолжит работать с последними выгруженными данными. После восстановления обмена всё обновится.
Нужна помощь?
Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю задачу и скажу, что нужно сделать, сколько это займёт и сколько будет стоить.
