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

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція 1С через CommerceML з сайтом
Складна
~3-5 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Інтеграція 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 і двостороннього обміну.