Интеграция WordPress и WooCommerce с 1С: четыре способа обмена и как выбрать
Товары, цены и остатки из 1С на сайт, заказы с сайта в 1С. Разбираем четыре способа связать WordPress и WooCommerce с 1С, чем они отличаются и на чём чаще всего спотыкается обмен.
Из статьи вы узнаете
- какие данные обычно передают между 1С и сайтом
- как работает стандартный обмен 1С с сайтом и когда его хватает
- когда нужны OData или свои HTTP-сервисы в 1С
- что проверить до запуска, чтобы обмен не сломал каталог и адреса товаров
Что обычно передают между 1С и сайтом
- Из 1С на сайт: номенклатуру и группы, характеристики, картинки, цены нужных видов, остатки по складам.
- С сайта в 1С: заказы и данные покупателей.
- Обратно на сайт: статусы заказов и оплат, если покупатель видит их в личном кабинете.
Прежде чем выбирать способ, стоит договориться, какая система главная для каждого поля. Обычно цены и остатки главные в 1С, а тексты, SEO-заголовки и фото для витрины главные на сайте. Если это не записать, следующая выгрузка из 1С затрёт то, что маркетолог правил на сайте.
Способ 1. Стандартный обмен 1С с сайтом (CommerceML)
В типовых торговых конфигурациях 1С есть встроенный обмен с сайтом. Данные передаются в формате CommerceML, это XML-файлы с каталогом (import.xml) и предложениями, то есть ценами и остатками (offers.xml). Обмен начинает 1С: она обращается к адресу обмена на сайте, проходит авторизацию, передаёт файлы и просит сайт их загрузить. Заказы 1С забирает тем же обменом.
Стандартный обмен 1С с сайтом
Обмен запускает 1С: она сама обращается к сайту по HTTP, поэтому базе не нужен внешний адрес.
- 1Свыгружает товары, цены, остатки
- Протокол обменаавторизация, файлы XML, загрузка
- Сайтплагин обмена создаёт и обновляет товары
- Заказы1С забирает их тем же обменом
У WordPress своей поддержки этого протокола нет, его добавляет плагин для WooCommerce. Плагины бывают бесплатные и платные, и качество у них разное: на большом каталоге важно, как плагин переносит картинки, характеристики и вариации и сколько времени занимает одна выгрузка.
- Плюсы: обычно не нужно дорабатывать 1С; базе не нужен внешний адрес, потому что соединение открывает она сама.
- Минусы: передаётся только то, что предусматривает формат; нестандартные поля и сценарии требуют доработки плагина или обмена.
Способ 2. OData: стандартный REST-интерфейс 1С
Платформа 1С:Предприятие 8.3 умеет отдавать данные по протоколу OData. Для этого базу публикуют на веб-сервере (Apache или IIS) и включают нужные справочники, документы и регистры в состав стандартного интерфейса OData. После этого сайт или промежуточный сервис читает данные запросами по HTTP.
Здесь направление обратное: обращается сайт, значит, опубликованная база должна быть доступна ему по сети. Это вопрос безопасности: отдельный пользователь с минимальными правами, HTTPS, доступ только с нужных адресов.
Способ 3. Свои HTTP-сервисы в 1С
Когда стандартных форматов не хватает, в 1С делают свои HTTP-сервисы: адреса, которые принимают и отдают данные в нужном виде, например JSON для сайта. Это самый гибкий способ: сайт получает ровно те поля и в той логике, которые нужны, а 1С может проверять и записывать входящие заказы по своим правилам. Обратное направление тоже возможно: 1С сама отправляет изменения на сайт HTTP-запросом, тогда цены и остатки обновляются сразу, без ожидания расписания.
Цена гибкости в том, что нужна разработка в 1С и поддержка при обновлениях. Часто сервисы выносят в расширение конфигурации, чтобы меньше вмешиваться в типовую конфигурацию. И обязательно проверяют код на той же версии конфигурации, что в рабочей базе.
Способ 4. Файлы по расписанию
Самый простой вариант: 1С по расписанию выгружает цены и остатки в файл (CSV, XLSX или XML), а сайт его забирает и загружает. Подходит, когда нужно обновлять цены и наличие в одну сторону и не нужны заказы в 1С. Минусы: данные обновляются с задержкой, а при ошибке в файле нужен журнал, иначе сбой заметят только покупатели.
Сравнение способов
| Способ | Кто начинает обмен | Доработка 1С | Когда выбирать |
|---|---|---|---|
| Стандартный обмен (CommerceML) | 1С | Обычно не нужна | Типовая торговая конфигурация и обычный каталог |
| OData | Сайт или сервис | Публикация и настройка состава | Нужно читать данные, которых нет в обмене, без программирования в 1С |
| HTTP-сервисы и запросы из 1С | Сайт (опрос) или 1С (сразу при изменении) | Да, разработка | Нестандартные поля, своя логика заказов, интеграции с CRM |
| Файлы по расписанию | 1С | Минимальная | Только цены и остатки в одну сторону |
Что проверить до запуска любого обмена
- Ключ сопоставления. Товар на сайте и в 1С связывается по идентификатору из 1С или по артикулу. Без устойчивого ключа повторная выгрузка создаёт дубли.
- Характеристики и вариации. Характеристики номенклатуры в 1С должны лечь в вариации WooCommerce, иначе размеры и цвета превратятся в отдельные товары.
- Виды цен и склады. Какая цена розничная, какая оптовая; остаток показывать суммой или по складам.
- Адреса товаров. Повторная выгрузка не должна менять слаги товаров и разделов: смена адреса для поисковика означает новую страницу. Об этом подробно в статье о переезде сайта без потери позиций.
- Что главнее. Поля, которые правят на сайте (тексты, SEO-заголовки), обмен не должен затирать.
- Картинки и объём. Сколько весит выгрузка с фото и сколько она идёт на полном каталоге.
- Журнал и уведомления. Каждый обмен пишет журнал, а об ошибке сразу приходит уведомление.
- Копия базы. Настройку и первые выгрузки делаем на копии 1С и тестовом стенде сайта, а не в рабочих системах.
Интеграция оплачивается почасово: 2 500 ₽ в час, от 10 часов 2 250 ₽ в час, объём часов оцениваем заранее. Подробнее на странице интеграции сайта с 1С, а доработки и обновления самой 1С относятся к обслуживанию 1С.
Обмен с сайтом стоит проверять после каждого обновления 1С. Как обновлять базу, читайте в статье об обновлении 1С 8.3, а что ещё входит в поддержку, в статье о сопровождении 1С.