Інтеграція 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С. Зв'яжіться з нами — і ми безкоштовно оцінимо складність вашого проекту та запропонуємо оптимальне рішення.







