CommerceML — формат обміну, яким 1С розмовляє із зовнішніми системами. Вивантаження у CommerceML потрібне, коли облік ведеться в 1С, а каталог, характеристики й ціни живуть у Elbuz: програма збирає XML-файл, який 1С приймає штатною обробкою обміну, без дописування коду з обох боків.
Зворотний напрямок — коли дані йдуть з 1С у Elbuz — описаний окремо, у статті про імпорт каталогу з CommerceML. Формат той самий, налаштування різні.
Де це у програмі
Вивантаження в CommerceML — це звичайний шаблон вивантаження, тільки свого типу. Загальний порядок роботи із шаблонами (відбір товарів, розклад, доставка файлу) описаний у статті про вивантаження товарів — тут лише те, що стосується CommerceML.
- Меню
- Довідники → Вивантаження даних
- Створити
- кнопка додавання шаблону → тип CommerceML
- Налаштувати
- картка шаблону, секція «Налаштування вивантаження даних»
1
Вивантажувати «Каталог» товарів2
Вивантажувати «Пакет пропозицій»3
Вивантажувати «Пакет пропозицій» окремим файлом4
Посилання на фото товару- Що за товар — назва, артикул, характеристики, цін тут немає.
- Ціни та кількість, окремий документ стандарту.
- Потрібен тим обробкам 1С, які чекають два файли.
- У документ їде адреса картинки, а не сама картинка, і початок адреси задається тут.
Форма у цього типу коротка: селекторів і шаблонів тексту тут немає, структуру документа задає сам стандарт. Ваша справа — вирішити, які частини вивантажувати й звідки брати посилання на фото.
Два документи: «Каталог» і «Пакет пропозицій»
CommerceML описує товар двома різними документами, і плутанина між ними — головна причина, чому файл «приймається, але нічого не оновлює».
- Каталог — що це за товар: назва, опис, артикул, штрихкод, категорія, характеристики, фото. Цін тут немає взагалі.
- Пакет пропозицій — почому й скільки: ціни за типами й кількість. Це, по суті, прайс-лист, який посилається на товари з каталогу за їхніми ідентифікаторами.
У формі це два окремі прапорці — «Вивантажувати "Каталог" товарів» і «Вивантажувати "Пакет пропозицій"». Їх можна вмикати незалежно: перше завантаження зазвичай робиться з обома, а далі, коли номенклатура в 1С уже є, лишають тільки пропозиції й оновлюють самі ціни.
Обидва документи за замовчуванням лягають в один файл, один за одним усередині кореневого вузла. Прапорець «Вивантажувати "Пакет пропозицій" окремим файлом» розносить їх на два: до імені файлу з цінами додається _offers. Наприклад, з export_1c_commerceml2.xml вийде ще й export_1c_commerceml2_offers.xml. Окремі файли потрібні тим обробкам 1С, які чекають саме два документи.
Документ будується за версією схеми 2.07 у кодуванні UTF-8, з датою формування в корені. Каталог позначається як повний, а не як такий, що містить лише зміни, — тобто 1С щоразу отримує повну картину, а не різницю.
Що потрапляє в товар
У кожному товарі каталогу їдуть: ідентифікатор, артикул, штрихкод, назва, опис і група, до якої товар належить. Далі — два різні набори додаткових даних, і різниця між ними в стандарті жорстка.
Реквізити — це службові поля товару. Сюди програма складає виробника, контрагента, категорію, артикул контрагента й габарити: вагу, висоту, ширину, глибину. Порожні габарити не вивантажуються — якщо вага не заповнена, реквізит приїде порожнім, а не нулем.
Властивості — це характеристики товару, ті самі, що ви бачите в картці на вкладці атрибутів. Вони вивантажуються, тільки якщо ввімкнений прапорець «Вивантажувати атрибути товарів». Спершу у файл потрапляє довідник властивостей із їхніми назвами, і вже потім кожен товар посилається на потрібні.
Прапорець «Вивантажувати додаткові поля» додає до реквізитів ваші власні поля каталогу — ті, що заведені понад стандартний набір. Поля, які мають тип «ціна», в реквізити не йдуть: вони стають окремими типами цін у пакеті пропозицій.
Ціни: три типи плюс ваші
Пакет пропозицій починається з довідника типів цін, і лише потім ідуть самі пропозиції. Програма завжди оголошує три типи:
| Тип ціни | Звідки береться |
|---|---|
| Роздрібна | основна ціна товару |
| Роздрібна РРЦ | рекомендована ціна |
| Ціна собівартість (із прайс-листа) | закупівельна ціна від постачальника |
До них додається по типу на кожне ваше додаткове поле з типом «ціна». Кожен тип оголошується з валютою й податком; валюта береться одна — основна валюта вашого магазину, окремо по товарах вона не задається.
У самій пропозиції поруч із цінами їде кількість. Ціна пишеться за одиницю, одиниця виміру — штука, коефіцієнт — одиниця; ці три значення фіксовані, у формі їх не змінюють.
Ціна, яка дорівнює нулю, у файл усе одно потрапляє — як нуль. Якщо в 1С не повинні приїжджати товари без ціни, відсікайте їх відбором товарів у шаблоні, а не сподівайтеся, що вивантаження пропустить порожнє значення само. Як відбирати — у статті про шаблони вивантаження.
Фото: у файл їдуть посилання, а не картинки
Прапорець «Вивантажувати фото товарів» додає до товару вузли з картинками. Важливо розуміти, що саме туди пишеться: текстовий шлях, а не сам файл. CommerceML в обміні з сайтом зазвичай возить картинки теками поруч із XML; у нас же в документ підставляється адреса, за якою фото лежить.
Складається вона з двох частин. Постійний початок ви задаєте в полі «Посилання на фото товару» — туди вписують адресу вашого сховища, наприклад https://site.com/images/. Друга частина — шлях самого файлу, який програма додає сама. У початок можна підставляти макроси у фігурних дужках, так само як у решті шаблонів вивантаження.
Прапорець «Відображати піддиректорії у посиланні на фото товару» вирішує, чи зберігати в адресі структуру тек сховища. Знімайте його, якщо приймальна сторона чекає плаский список імен файлів.
Ім'я файлу, доставка й розклад
Без свого імені файл називається export_1c_commerceml2.xml. Своє задають у картці шаблону, і в ньому працюють підстановки дати: {DATE} — день, {DATETIME} — день і час, {TIME} — тільки час. Це зручно, коли треба зберігати історію вивантажень, а не перезаписувати один файл.
Дві дрібниці, які програма робить мовчки. Скісна риска в імені замінюється на крапку — підтеками файли не розкладаються. Розширення .php та його різновиди примусово міняються на .xml, щоб на чужому сервері файл не спробували виконати.
Куди їде готовий файл — на FTP, поштою, посиланням — і як поставити розклад, описано в загальній статті про вивантаження товарів: у CommerceML тут нічого свого немає. Там же кнопка пробного прогону, якою варто скористатися перед першим справжнім вивантаженням: вона зробить той самий файл із позначкою test_ в імені, і його можна відкрити й подивитися очима.
Прапорець «Вивантажувати лише змінені» звужує вивантаження до товарів, які змінилися з минулого разу. На великому каталозі це помітно швидше, але пам'ятайте, що документ усе одно позначається як повний, — приймальна сторона вважатиме, що отримала каталог цілком.
Чого це вивантаження не робить
- Не возить файли картинок. У документі лише адреси; фото має бути доступне за посиланням.
- Не передає залишки по складах окремо. Кількість одна на товар, розрізу за складами в документі немає.
- Не вивантажує різницю. Навіть із увімкненим «лише змінені» каталог позначається як повний.
- Не приймає замовлення назад. Це односторонній документ: каталог і ціни з Elbuz назовні.
Розбір частих проблем
| Що ви бачите | Чому так | Що зробити |
|---|---|---|
| 1С прийняла файл, але цін немає | вимкнений прапорець «Вивантажувати "Пакет пропозицій"» — у файлі лише каталог | увімкніть його в налаштуваннях шаблону |
| Обробка 1С просить два файли, а приїхав один | документи складені в один файл | увімкніть «Вивантажувати "Пакет пропозицій" окремим файлом» |
| Немає характеристик | вимкнений прапорець «Вивантажувати атрибути товарів» | увімкніть його |
| Фото не відкриваються на приймальній стороні | у полі «Посилання на фото товару» не заданий початок адреси або він веде не туди | відкрийте будь-яке посилання з файлу у браузері й перевірте, чи віддається картинка |
| Товари приїхали з нульовою ціною | ціна в каталозі не заповнена, а вивантаження пише нуль як є | відсікайте такі товари відбором у шаблоні |
| Ціни приїхали не в тій валюті | валюта береться одна — основна валюта магазину | перевірте, яка валюта в магазині основна |
Файл вивантажився з іменем, що починається на test_ | це був пробний прогін | так і має бути; для справжнього файлу запустіть звичайне вивантаження |
Часті питання
Яку версію CommerceML формує програма?
Схему версії 2.07, у кодуванні UTF-8. Це та сама редакція стандарту, з якою працюють штатні обробки обміну в 1С, тож окремо нічого доналаштовувати не потрібно.
Один файл чи два — як правильно?
Залежить від того, що чекає приймальна сторона. За замовчуванням каталог і пропозиції складаються в один файл, і більшість обробок це влаштовує. Якщо обробка просить окремо номенклатуру й окремо ціни — увімкніть прапорець про окремий файл, і поруч з'явиться другий файл із суфіксом _offers.
Чи можна оновлювати тільки ціни, не чіпаючи номенклатуру?
Так. Зніміть прапорець «Вивантажувати "Каталог" товарів» і лишіть тільки пакет пропозицій. У файлі будуть самі ціни й кількість, а товари в них упізнаються за ідентифікаторами, які вже приїхали разом з каталогом раніше.
Чому фото не вклалися у файл?
Так і має бути: у документ пишеться посилання на картинку, а не сама картинка. Ваша справа — задати початок адреси в полі «Посилання на фото товару» й переконатися, що за цією адресою фото справді віддається.
Звідки береться кількість у пропозиції?
З залишку товару в каталозі. Це одне число на товар — розрізу за складами стандарт у цьому місці не передбачає.
А як вивантажити дані з самої 1С, щоб завантажити їх у Elbuz?
Це зворотна задача, і робиться вона засобами 1С: штатними обробками «Вивантаження даних у форматі CommerceML» або «Обмін з WEB-сайтом», які входять до стандартних конфігурацій. Що робити з отриманими файлами далі — у статті про імпорт каталогу з CommerceML.
Суміжні теми
- Вивантаження товарів на маркетплейс, сайт і у файл — відбір товарів, доставка файлу, розклад, пробний прогін.
- Імпорт каталогу з CommerceML — той самий формат у зворотному напрямку.
- Прайс-лист для клієнтів у XLSX і CSV — коли приймальній стороні потрібен не XML, а таблиця.

