Интеграция 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С. Свяжитесь с нами — мы бесплатно оценим сложность вашего проекта и предложим оптимальное решение.







