CommerceML 2 — стандартний формат вивантаження, у якому 1С віддає товари й ціни. Якщо ви ведете облік у 1С, каталог можна завантажити в Elbuz напряму з файлів обміну, без ручного перенесення. Ця стаття — докладний розбір: з яких файлів складається обмін, які елементи в які поля картки потрапляють, як зіставляються товари за Ид (GUID) і як приходять ціни та залишки.
Це один зі способів завантаження з огляду завантаження даних. Формат стандартний, тож колонки розмічати не треба — Elbuz упізнає вузли за їхніми назвами.
Два файли: товари й ціни окремо
Головна особливість CommerceML — обмін іде двома файлами, і 1С формує їх окремо:
- import.xml — сам каталог: товари (назви, артикули, групи, виробник, характеристики, картинки) та класифікатор груп.
- offers.xml — пакет пропозицій: ціни й залишки по тих самих товарах.
У формі шаблону відповідно два поля для файлів: перше — для товарів (import.xml), друге — для пропозицій (offers.xml). Товари й ціни розведено навмисно: каталог у 1С міняється рідко, а ціни й залишки — часто, тож offers.xml вивантажують окремо й частіше. Обидва файли пов'язані спільним ідентифікатором товару.
1
Поле вибору файлу «Каталог» (import.xml)2
Поле вибору файлу «ПакетПропозицій» (offers.xml)- Поле «Каталог» приймає файл import.xml зі списком товарів.
- Поле «ПакетПропозицій» приймає файл offers.xml із цінами та залишками.
Ідентифікатор і зіставлення
Кожен товар у 1С має Ид — глобальний ідентифікатор (GUID). Elbuz зберігає його у системне поле товару «UUID» й зіставляє за ним і товари з import.xml, і ціни з offers.xml, і повторні завантаження. GUID у 1С стабільний, тому дублів не виникає: повторний обмін оновлює наявні картки. Це надійніше за артикул, який у 1С можуть змінити.
Окремий випадок — торгові пропозиції (варіанти товару): у них Ид має вигляд GUID_товару#GUID_варіанту. Elbuz розпізнає цей запис і зв'язує варіант з основним товаром, а не заводить окрему непов'язану картку.
Куди потрапляють значення
З import.xml (вузол «Товар») у картку переносяться:
| Вузол CommerceML | Поле картки в Elbuz |
|---|---|
| Ид | UUID (ключ зіставлення) |
| Артикул | артикул товару |
| Наименование (або реквізит «Полное наименование») | назва товару |
| Группы → Ид | категорія (за класифікатором груп) |
| Изготовитель → Наименование | виробник |
| Описание / реквізит «ОписаниеВФорматеHTML» | опис товару |
| реквізит «Вес» | вага |
| БазоваяЕдиница | одиниця виміру |
| ЗначенияСвойств, ХарактеристикиТовара | характеристики / опції товару |
| Картинка (кілька) | фото |
З offers.xml (вузол «Предложение») підтягуються ціна й залишок — вони знаходять свій товар за тим самим Ид:
| Вузол CommerceML | Поле картки в Elbuz |
|---|---|
| Цены → Цена → ЦенаЗаЕдиницу | ціна товару |
| Цены → Цена → ИдТипаЦены | тип ціни (див. нижче) |
| Цены → Цена → Валюта | валюта ціни |
| Количество | залишок |
Якщо якогось вузла у файлі немає, відповідне поле картки лишиться порожнім — програма не вигадує того, чого немає в обміні.
1
Рядок шаблону «CommerceML2 (1C)»- Рядок шаблону «CommerceML2 (1C)» у списку завантаження.
Ціни й типи цін
Особливість 1С — товар може мати кілька цін різних типів (роздрібна, оптова, закупівельна тощо), і кожна позначена своїм ИдТипаЦены — GUID типу ціни з 1С. У блоці Цены пропозиції може бути кілька Цена. Elbuz бере ціну за одиницю (ЦенаЗаЕдиницу); якщо у вашому 1С кілька типів цін, орієнтуйтесь на потрібний тип за його ідентифікатором. Валюта береться з елемента Валюта.
Характеристики й опції
CommerceML розрізняє два набори: ЗначенияСвойств — властивості з класифікатора (загальні характеристики), і ХарактеристикиТовара — характеристики конкретного товару, на яких у 1С будуються варіанти. Elbuz переносить обидва в атрибути товару; характеристики, за якими розрізняються торгові пропозиції, стають основою варіантів. Характеристики завантажуються разом з рештою даних обміну автоматично — окремо вмикати їх не треба.
Категорії (класифікатор груп)
Дерево категорій Elbuz будує з класифікатора import.xml (вузол «Группы»): кожна група має свій Ид і назву, а вкладеність задається вкладеними групами. Товар прив'язується до групи за її Ид. Так структура розділів з 1С відтворюється у вашому каталозі.
Чому товар іноді не оновлюється
Якщо після повторного обміну товар лишився без змін, причина зазвичай в ознаках самого товару. Позиції з ознакою «лише читання» імпорт навмисно не чіпає. А якщо стоїть «зафіксована ціна», оновляться всі поля, крім ціни: обмін не перезапише те, що ви зафіксували свідомо. Це захист вручну вивіреної картки від затирання автоматичним завантаженням.
Навіщо зводити каталог 1С в Elbuz
1С добре веде облік, але не заточена під продаж на сайті й маркетплейсах: у ній немає зручного контенту карток, SEO-полів, вивантаження на зовнішні майданчики. Elbuz забирає товари й ціни з 1С до себе й стає «вітринним» шаром: тут ви наповнюєте картки описами й фото, рахуєте ціни продажу за правилами націнок, керуєте наявністю й вивантажуєте асортимент на сайт і маркетплейси. 1С лишається джерелом обліку, а Elbuz — повноцінною системою керування продажем.
Оскільки зіставлення тримається на Ид, зв'язок «1С → Elbuz» стабільний: змінили ціну чи залишок у 1С — після чергового обміну вони оновилися в Elbuz саме в тих товарах, без ручного звіряння. А ваша робота над контентом карток при цьому не затирається: обмін оновлює ціни й наявність, але не чіпає поля, які ви ведете вручну (якщо не ввімкнено їх перезапис).
Оновлення каталогу з 1С
Порядок простий: вивантажуєте з 1С import.xml і offers.xml, завантажуєте їх у шаблон CommerceML і запускаєте. Перший обмін створює товари, наступні оновлюють наявні за Ид. Каталог (import.xml) зазвичай оновлюють рідше, а ціни й залишки (offers.xml) — частіше, окремим завантаженням. Кожен обмін лишає слід у журналі: скільки товарів створено, скільки оновлено, чи були помилки; перші кілька разів варто туди зазирати.
Часті труднощі
Найчастіша ситуація — завантажили лише один файл. Якщо дати тільки import.xml, приїде каталог без цін і залишків (вони в offers.xml); якщо тільки offers.xml — ціни не буде до чого прив'язати. Для повного обміну потрібні обидва файли. Друга дрібниця — кодування: файли 1С мають бути у коректному кодуванні (зазвичай UTF-8 або Windows-1251, як їх віддає ваша конфігурація). І третє — типи цін: якщо в 1С кілька типів цін, переконайтесь, що у файл вивантажено саме потрібний, інакше в каталог приїде не та ціна.
Тримайте стабільними Ид (GUID) товарів у 1С — саме на них тримається зіставлення. Якщо перевантажити каталог зі зміненими Ид, Elbuz прийме товари за нові й наробить дублів. Перший обмін зробіть на невеликій вибірці й перевірте кілька карток очима.
Часті питання
Навіщо два файли — import.xml і offers.xml?
Так влаштований обмін CommerceML: import.xml несе каталог (товари, групи, характеристики), а offers.xml — ціни й залишки. Це дозволяє оновлювати ціни й наявність часто, не перевантажуючи щоразу весь каталог. Для повного завантаження потрібні обидва.
За чим Elbuz зіставляє товари?
За Ид (GUID) товару з 1С — він зберігається у поле UUID картки. За тим самим Ид ціни з offers.xml знаходять свій товар, а повторний обмін оновлює наявні картки без дублів.
У товара кілька цін — яка потрапить у каталог?
У 1С ціни різних типів позначені своїм ИдТипаЦены. Elbuz бере ціну за одиницю з блоку цін; якщо типів кілька, орієнтуйтесь на потрібний за його ідентифікатором і переконайтесь, що саме він у файлі.
Як переносяться варіанти (торгові пропозиції)?
У 1С варіант має Ид виду «GUID товару#GUID варіанту». Elbuz розпізнає цей запис і зв'язує варіант з основним товаром, а характеристики торгових пропозицій стають основою опцій.
Приїхав каталог, а цін немає — чому?
Найімовірніше завантажено лише import.xml без offers.xml. Ціни й залишки живуть у offers.xml; додайте його другим файлом у шаблон.
Чому не завантажились характеристики?
Характеристики завантажуються автоматично разом з рештою даних обміну — окремо їх вмикати не треба. Вони беруться з вузлів ЗначенияСвойств і ХарактеристикиТовара; якщо їх немає у файлі 1С, переносити нічого.

