Интеграция 1С через CommerceML с сайтом

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Интеграция 1С через CommerceML с сайтом
Сложная
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Интеграция 1С через 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</Количество>
        </Предложение>
    </Предложения>
</ПакетПредложений>

Протокол обмена

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');
    }
}

Инкрементальные обновления

После первоначальной полной синхронизации последующие обмены могут быть инкрементальными: СодержитТолькоИзменения="true". Это значительно ускоряет синхронизацию.

Характеристики и вариации

Товары с вариациями (размер, цвет) в CommerceML представлены как одна номенклатура с несколькими предложениями. Каждое предложение имеет уникальный Ид вида {товар-guid}#{характеристика-guid}. Нужно корректно маппить это на вариации товара в БД сайта.

Срок разработки: 2–4 недели для реализации парсера CommerceML и двустороннего обмена.