Интеграция 1С через CommerceML с сайтом
Каждое утро вы обновляете цены на сайте вручную? Потом выясняете, что забыли про акцию, и клиенты уходят к конкурентам. Интеграция 1С через CommerceML решает это раз и навсегда. Мы берем на себя настройку двустороннего обмена между вашей бухгалтерией и сайтом: товары, цены, остатки, заказы — всё синхронизируется автоматически. Никакой рутины, никаких ошибок. За 2–4 недели мы развернем работающее решение на вашем хостинге. Стандарт CommerceML разработан компанией 1С. Свяжитесь с нами — и оценим ваш проект бесплатно. Наши инженеры имеют 10+ лет опыта в интеграции 1С.
Какие проблемы решает CommerceML
Ручная выгрузка каталога: каждая новая позиция требует времени, а человеческий фактор ведёт к ошибкам. При ручной синхронизации вероятность пропустить изменение цены или остатка возрастает с каждым обновлением. CommerceML обрабатывает каталог в 10 раз быстрее, исключая ошибки. Цена изменилась в 1С — на сайте она должна обновиться мгновенно, иначе клиент увидит неверную сумму. CommerceML позволяет настроить обмен с периодичностью от нескольких минут. Новый заказ на сайте должен попасть в 1С для формирования накладной. Если этого не происходит — штрафы и потеря доверия. CommerceML обеспечивает автоматический экспорт заказов. Товар закончился на складе 1С, но на сайте он ещё продаётся. CommerceML выгружает остатки и скрывает недоступные позиции, предотвращая overselling. Экономия на ручном труде может достигать 60 000 рублей в месяц.
| Параметр | Ручная синхронизация | CommerceML-интеграция |
|---|---|---|
| Время обновления каталога | Часы/дни | Минуты |
| Частота ошибок | Высокая | Минимальная |
| Экономия на зарплате | — | до 60 000 ₽ в месяц |
| Масштабирование | Ограничено | Безлимитное |
Как работает CommerceML на практике?
CommerceML — стандарт обмена коммерческими данными между 1С и торговыми системами. Разработан компанией 1С, широко поддерживается российскими CMS (1C-Bitrix, OpenCart, WordPress + WooCommerce). Для самописных сайтов нужна реализация парсера CommerceML.
Формат CommerceML
CommerceML — это XML-формат с несколькими типами файлов:
-
import.xml— каталог товаров (номенклатура, группы, свойства) -
offers.xml— предложения (цены, остатки, характеристики) -
orders.xml— заказы (экспорт из CMS в 1С) -
import.xmlв ответ от 1С — обновление статусов заказов
Пример структуры import.xml
<?xml version="1.0" encoding="UTF-8"?> <КоммерческаяИнформация ВерсияСхемы="2.05"> <Каталог СодержитТолькоИзменения="false"> <Товары> <Товар> <Ид>550e8400-e29b-41d4-a716-446655440001</Ид> <Наименование>Футболка мужская синяя</Наименование> <Группы><Ид>category-001</Ид></Группы> <СтавкаНалога>НДС20</СтавкаНалога> <Картинка>images/tshirt.jpg</Картинка> <ЗначенияСвойств> <ЗначенияСвойства> <Ид>prop-color</Ид> <Значение>Синий</Значение> </ЗначенияСвойства> </ЗначенийСвойств> </Товар> </Товары> </Каталог> </КоммерческаяИнформация> Структура offers.xml
<ПакетПредложений> <Предложения> <Предложение> <Ид>550e8400-e29b-41d4-a716-446655440001#size-XL</Ид> <Наименование>Футболка мужская синяя XL</Наименование> <Цены> <Цена> <ИдТипаЦены>retail</ИдТипаЦены> <ЦенаЗаЕдиницу>1500.00</ЦенаЗаЕдиницу> <Валюта>RUB</Валюта> </Цена> </Цены> <Количество>25</Количество> </Предложение> </Предложения> </ПакетПредложений> Почему инкрементальные обновления критичны для производительности?
После первоначальной полной синхронизации последующие обмены могут быть инкрементальными: СодержитТолькоИзменения="true". Это значительно ускоряет синхронизацию, так как загружаются только измененные товары. Инкрементальные обновления сокращают время синхронизации с часов до минут. Без них полная перезапись каталога из 10 000 товаров заняла бы 2-3 часа, что недопустимо при частом обмене.
Как CommerceML обрабатывает вариации товаров?
Товары с вариациями товаров (размер, цвет) в CommerceML представлены как одна номенклатура с несколькими предложениями. Каждое предложение имеет уникальный Ид вида {товар-guid}#{характеристика-guid}. Нужно корректно маппить это на вариации товара в БД сайта. Мы используем паттерн Repository для гибкого маппинга. Вариации — частая причина ошибок в интеграциях без CommerceML; стандарт решает это без дополнительных доработок.
Протокол обмена
1С инициирует сессию обмена через HTTP-запросы к CMS по определённому протоколу:
GET /exchange.php?type=catalog&mode=checkauth → Авторизация GET /exchange.php?type=catalog&mode=init → Инициализация (размер буфера, zip-поддержка) POST /exchange.php?type=catalog&mode=file&filename=import.xml → Загрузка файла (может быть по частям для больших файлов) GET /exchange.php?type=catalog&mode=import&filename=import.xml → Запуск обработки Реализация обработчика на PHP
class CommerceML { public function handle(Request $request): Response { $mode = $request->query('mode'); $type = $request->query('type'); return match($mode) { 'checkauth' => $this->checkAuth(), 'init' => $this->init(), 'file' => $this->saveFile($request), 'import' => $this->processImport($request->query('filename')), 'query' => $this->exportOrders(), // экспорт заказов в 1С 'success' => $this->markOrdersExported(), default => response('failure', 400) }; } protected function processImport(string $filename): Response { $xml = simplexml_load_file(storage_path("cms-exchange/{$filename}")); // Парсинг и сохранение товаров в БД dispatch(new ProcessCommerceMLImport($xml)); return response('success'); } } Этапы нашей работы
- Аналитика — изучаем структуру 1С (документы, справочники) и текущую архитектуру сайта. Выявляем необходимые маппинги.
- Проектирование — разрабатываем схему обмена: какие данные передавать, с какой периодичностью, как обрабатывать ошибки.
- Разработка — пишем парсер CommerceML с поддержкой инкрементальных обновлений, вариаций и двустороннего обмена заказами.
- Тестирование — проверяем все сценарии: полная загрузка, частичные обновления, конкурентный доступ, обработка битых XML.
- Деплой — настраиваем cron или планировщик 1С, мониторинг, логирование.
| Этап | Длительность |
|---|---|
| Аналитика | 2–3 дня |
| Проектирование | 1–2 дня |
| Разработка | 5–10 дней |
| Тестирование | 2–3 дня |
| Деплой | 1 день |
Что вы получаете в результате
- Рабочий обмен товарами, ценами, остатками и заказами в обе стороны.
- Документация по API и протоколу (для будущих доработок).
- Инструкция для бухгалтера: как запускать обмен в 1С.
- Гарантия на настройку 6 месяцев.
- Поддержка в течение первого месяца бесплатно.
Срок разработки: 2–4 недели для реализации парсера CommerceML и двустороннего обмена.
Получите консультацию инженера с 10-летним опытом интеграций 1С. Свяжитесь с нами — мы бесплатно оценим сложность вашего проекта и предложим оптимальное решение.







