Когда компания уже ведёт учёт в 1С, а сайт решили делать на WordPress вместо Tilda или готовой коробки, первый вопрос от разработчика обычно такой: как тянуть туда номенклатуру, остатки и заказы. Исторически обмен CommerceML заточен под 1С-Битрикс, и многие считают, что интеграция 1С с сайтом на WordPress без него невозможна или требует переписывания половины движка. На практике это не так: за последние проекты я подключал 1С к WooCommerce-магазинам, к сайтам с личным кабинетом и к каталогам услуг без корзины через штатные механизмы обмена 1С, а не через костыли и самописные парсеры выгрузок.
По теме статьи
Готовое решение
AI-чатбот для сайта на Claude - отвечает как ваш менеджер, работает 24/7
Подключу к вашему сайту чат-бота на Claude API. Бот отвечает на вопросы клиентов голосом вашего бренда, знает каталог и условия доставки, забирает лиды в CRM или Telegram.
от25 000 ₽
Фронтенд + Бэкенд
Корпоративный сайт, каталог, блог
Разработка с нуля или доработка: кастомная тема, удобная админка, WooCommerce при необходимости. Чистый код, быстрая загрузка, SEO-friendly.
от60 000 ₽
Какие есть варианты интеграции 1С с сайтом на WordPress без Битрикса
Прежде чем выбирать инструмент, стоит определить, что именно синхронизировать: только каталог с ценами и остатками или ещё и заказы в обе стороны, со статусами оплаты и отгрузки. От этого зависит, какой из пяти рабочих вариантов подойдёт для конкретного проекта.
- Обмен CommerceML 2.x через плагин для WooCommerce - тот же протокол, что и в 1С-Битрикс, только на стороне сайта его принимает не движок Битрикса, а отдельный плагин.
- HTTP-сервис или OData в 1С:Предприятие 8.3-1С сама отдаёт данные по запросу, WordPress забирает их через REST-запрос.
- Выгрузка CSV или XML по расписанию и импорт через WP All Import либо собственный cron-скрипт.
- Сервис-прослойка на n8n или похожем инструменте - забирает данные из 1С и раскладывает их по WordPress и обратно, заодно может завести в цепочку CRM или телеграм-бота.
- Кастомный модуль под конкретную конфигурацию (Управление торговлей, Комплексная автоматизация, Бухгалтерия) - когда типовые решения не подходят по структуре справочников.
| Способ | Направление обмена | Когда выбираю |
|---|---|---|
| CommerceML и плагин | Каталог и заказы в обе стороны | Магазин на WooCommerce с частым обновлением остатков |
| OData или HTTP-сервис | Чтение в реальном времени, запись по необходимости | Нужны актуальные остатки без ночной выгрузки |
| CSV или XML по расписанию | Обычно только в сайт | Простой каталог без личного кабинета и заказов из 1С |
| Прослойка на n8n | Гибко в обе стороны | В цепочку нужно завести ещё CRM, бота или расчёт доставки |
| Кастомный модуль | Под задачу | Нетиповая конфигурация 1С или сложная логика статусов |
Обмен через CommerceML и готовые плагины для WooCommerce
CommerceML - открытый формат обмена, который 1С поддерживает из коробки в любой типовой конфигурации: Управление торговлей, Розница, Бухгалтерия. Для WordPress под него существуют готовые плагины - принимают на своей стороне те же XML-файлы, что раньше уходили только в Битрикс, и раскладывают их по таблицам WooCommerce: товары, категории, цены, остатки, а на обратном пути забирают заказы.
Настройка стандартная: в 1С заводится план обмена, указывается адрес обработчика на сайте, обычно что-то вроде /wp-content/plugins/имя-плагина/import1c.php, логин и пароль для базовой авторизации. 1С сама инициирует обмен по расписанию или по кнопке, заливает архив с товарами и остатками, а в ответ забирает файл с новыми заказами и текущими статусами.
Из практики: на каталогах от 5000-7000 позиций обмен часто падает по таймауту, если хостинг не даёт поднять max_execution_time и memory_limit. На одном проекте пришлось увеличивать лимит до 512 МБ и 300 секунд на выполнение скрипта - иначе выгрузка обрывалась на середине архива, и часть товаров задваивалась при повторной попытке. Второй частый затык - кодировка: 1С отдаёт файлы в UTF‑8 без BOM, а некоторые старые версии плагинов ждут Windows-1251, из-за чего названия и характеристики товаров превращаются в нечитаемые символы прямо на витрине.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
OData и HTTP-сервисы 1С:Предприятие 8.3 для сайта на WordPress
Если каталог нужно видеть на сайте почти в реальном времени, а не раз в час по расписанию, есть вариант завести на стороне 1С HTTP-сервис - пишется на встроенном языке, публикуется через веб-сервер 1С, или включить стандартный OData-интерфейс. WordPress обращается к нему через wp_remote_get в коде темы или плагина и получает JSON с остатками, ценами и статусом заказа.
Пример запроса к OData-интерфейсу 1С выглядит так:
curl -u user:password \
"http://1c-server/base/odata/standard.odata/Catalog_Номенклатура?$format=json&$top=50"
Такой способ требует публикации 1С на веб-сервере (IIS или Apache через модуль расширения 1С) и доступа к этому адресу снаружи, поэтому обычно ставлю его за VPN или ограничиваю по IP-адресам - открывать базу 1С в интернет без ограничений не стоит ни при каком раскладе, это прямой риск для всей учётной системы. Плюс подхода в скорости: остаток обновляется в момент запроса, а не после ночной выгрузки. Минус - дополнительная нагрузка на сервер 1С при каждом заходе на страницу товара, поэтому ответ на стороне сайта обычно кэширую на 5-10 минут.
Импорт по CSV и XML через WP All Import и cron
Для каталога без заказов из 1С - услуги, прайс-лист, справочник цен без корзины - полноценный обмен CommerceML избыточен. Проще настроить в 1С регламентное задание, которое раз в сутки или раз в час выгружает CSV или XML в папку на сервере или на FTP, а на стороне WordPress ставится WP All Import: бесплатная версия тянет CSV, а для XML и повторяющегося импорта по расписанию нужна платная Pro-лицензия у самого плагина. Как альтернатива - собственный скрипт на cron, который читает выгруженный файл и обновляет записи через WP_Query и update_post_meta.
Такой путь дешевле в реализации, но односторонний: заказ, оформленный на сайте, в 1С сам по себе не попадёт - его придётся заносить вручную или тянуть отдельным механизмом. Для чисто информационных сайтов с прайсом из 1С этого обычно достаточно, и я не усложняю схему обменом заказами, если бизнесу это не нужно.
Синхронизация заказов, остатков и доставки СДЭК между 1С и сайтом
Когда на сайте есть корзина и оплата, схему обмена приходится продумывать в обе стороны: заказ создаётся в WooCommerce, забирается в 1С обменом (CommerceML, OData или через прослойку на n8n), там получает номер и уходит на склад или в производство, а обратно на сайт прилетает статус - оплачен, собран, отгружен. Дальше этот статус можно проталкивать клиенту через email-уведомление или телеграм-бота, если он уже есть в проекте на базе aiogram.
Доставку через СДЭК обычно считаю прямо на сайте отдельным виджетом или через API СДЭК на этапе оформления заказа - это не связано напрямую с 1С, тариф и срок доставки приходят отдельным запросом к СДЭК. А вот саму заявку на забор груза чаще создают уже в 1С, после того как заказ туда попал и подтверждён оплатой через эквайринг.
Отдельно про персональные данные из заказов: ФИО, телефон, адрес доставки храню и обрабатываю на серверах в России, без выгрузки в иностранные таблицы или сторонние облачные сервисы - этого требует 152-ФЗ, и для интеграции 1С с сайтом это касается напрямую, потому что именно через обмен эти данные и передаются между системами.
Если нужна разработка модуля обмена под конкретную конфигурацию 1С - с доработанными справочниками или нетиповой логикой статусов, это уже отдельная разработка интеграции под задачу, а не настройка готового плагина, и оцениваю её только после того, как посмотрю структуру данных в самой 1С.
Сколько стоит и сколько времени занимает интеграция 1С с сайтом на WordPress
| Способ | Сложность внедрения | Средний срок |
|---|---|---|
| CommerceML и готовый плагин | Средняя | 3-5 дней |
| OData или HTTP-сервис | Средняя-высокая | 5-8 дней |
| CSV или XML по расписанию | Низкая | 1-3 дня |
| Прослойка на n8n | Средняя | 4-7 дней |
| Кастомный модуль под конфигурацию | Высокая | от 10 дней |
Если конфигурация 1С типовая и меняется только структура каталога, обычно укладываюсь в нижнюю границу указанных сроков. Если нужно ещё дорабатывать саму 1С - добавлять обработку в план обмена или новые поля в номенклатуру, срок растёт за счёт стороны 1С, а не сайта на WordPress.
По деньгам ориентируюсь на свой прайс: разовую консультацию по схеме обмена и аудит текущей конфигурации 1С беру от 3 000 ₽, настройку прослойки на n8n - от 25 000 ₽, а разработку сайта на WordPress с нуля под такую интеграцию - от 60 000 ₽. Сам кастомный модуль обмена, если типовые плагины не подходят по структуре справочников, оцениваю индивидуально и старт держу от 40 000 ₽ - итоговая цифра зависит от того, сколько сущностей (заказы, остатки, статусы, контрагенты) нужно тянуть в обе стороны и насколько сильно доработана сама конфигурация 1С.
Частые вопросы
Можно ли подключить 1С к WordPress без модуля 1С-Битрикс?
Да, Битрикс тут не обязателен вообще - CommerceML это открытый формат обмена, а не часть Битрикса, просто исторически он был реализован там первым и чаще всего на слуху именно в такой связке. Для WordPress есть отдельные плагины, понимающие тот же формат, плюс варианты через OData и HTTP-сервисы 1С, которые вообще не завязаны ни на какую конкретную CMS.
Какая версия 1С подходит для обмена с сайтом на WordPress?
Обмен CommerceML поддерживают все типовые конфигурации на платформе 1С:Предприятие 8.2 и 8.3 - Управление торговлей, Розница, Комплексная автоматизация, Бухгалтерия. OData и собственные HTTP-сервисы доступны начиная с 8.3, в более старых версиях их нет, и обмен приходится сводить к CommerceML или простой CSV-выгрузке по расписанию.
Что делать, если каталог в 1С больше 10 000 товаров?
Полный обмен большим архивом часто упирается в таймаут хостинга и лимит памяти PHP. Разбиваю выгрузку на части - 1С умеет делить архив по частям обмена, поднимаю max_execution_time и memory_limit на стороне хостинга WordPress, а обновление остатков переключаю на отдельный более частый и лёгкий обмен, тогда как карточки товаров с описаниями и картинками тяну реже, раз в сутки.
Как синхронизировать статусы заказов между 1С и WordPress?
Обычно завожу в WooCommerce дополнительные статусы заказа, например «передан в 1С», «собран», «отгружен», и сопоставляю их со статусами документа в 1С через тот же канал обмена: CommerceML передаёт не только сам заказ, но и его текущий статус при следующей синхронизации. Для более быстрой обратной связи, без ожидания следующего цикла обмена, использую HTTP-сервис в 1С, который отправляет запрос на сайт сразу при смене статуса документа.