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С, які чекають саме два документи. У нового шаблону цей прапорець уже стоїть — щойно створений шаблон CommerceML з коробки віддає два файли. Зніміть його, якщо ваша обробка чекає один: тоді каталог і пропозиції ляжуть один за одним усередині спільного кореневого вузла.
Документ будується за версією схеми 2.07 у кодуванні UTF-8, з датою формування в корені. Каталог позначається як повний, а не як такий, що містить лише зміни, — тобто 1С щоразу отримує повну картину, а не різницю.
Що потрапляє в товар
У кожному товарі каталогу їдуть: ідентифікатор, артикул, штрихкод, назва, опис і група, до якої товар належить. Далі — два різні набори додаткових даних, і різниця між ними в стандарті жорстка.
Ідентифікатор — це постійний внутрішній код товару в Elbuz, і саме за ним 1С упізнає ту саму номенклатуру в наступних файлах. Він не змінюється від прогону до прогону, тому повторне вивантаження не створює дублів. Якщо товар привʼязаний до головного (варіант у родині), ідентифікатор складається з двох частин через знак #: спершу код головного товару, потім код самого варіанта. Товар, що лежить у кількох категоріях, потрапляє у файл один раз, а в блоці груп перелічені всі його категорії.
Реквізити — це службові поля товару. Сюди програма складає виробника, контрагента, категорію, артикул контрагента й габарити: вагу, висоту, ширину, глибину. Порожні габарити не вивантажуються — якщо вага не заповнена, реквізит приїде порожнім, а не нулем.
Властивості — це характеристики товару, ті самі, що ви бачите в картці на вкладці атрибутів. Вони вивантажуються, тільки якщо ввімкнений прапорець «Вивантажувати атрибути товарів». Спершу у файл потрапляє довідник властивостей із їхніми назвами, і вже потім кожен товар посилається на потрібні.
Прапорець «Вивантажувати додаткові поля» додає до реквізитів ваші власні поля каталогу — ті, що заведені понад стандартний набір. Поля, які мають тип «ціна», в реквізити не йдуть: вони стають окремими типами цін у пакеті пропозицій.
Ціни: три типи плюс ваші
Пакет пропозицій починається з довідника типів цін, і лише потім ідуть самі пропозиції. Програма завжди оголошує три типи:
| Тип ціни | Звідки береться |
|---|---|
| Роздрібна | основна ціна товару |
| Роздрібна РРЦ | рекомендована ціна |
| Ціна собівартість (із прайс-листа) | закупівельна ціна від постачальника |
Якщо в шаблоні ввімкнено «Вивантажувати додаткові поля», до них додається по типу на кожне ваше додаткове поле з типом «ціна». У нового шаблону цей прапорець вимкнений, тож без нього оголошуються лише три типи. Кожен тип оголошується з валютою й податком; валюта береться одна — основна валюта вашого магазину, окремо по товарах вона не задається.
У самій пропозиції поруч із цінами їде кількість. Ціна пишеться за одиницю, одиниця виміру — штука, коефіцієнт — одиниця; ці три значення фіксовані, у формі їх не змінюють.
Кількість береться не із залишку
Число, яке приїде в 1С як кількість, задається не в картці товару, а у вікні «Налаштування оновлення за наявністю товару» — кнопка в секції «Повʼязані налаштування» картки шаблону. Там кожному статусу наявності відповідає своє значення в колонці «Кількість», і саме воно потрапляє у файл. Коли ці рядки створюються вперше, програма заповнює їх сама: статусам «в наявності» — 1000, «під замовлення» — 500, решті — 0. Справжній залишок товару поїде тільки тоді, коли статусу цього товару в списку немає або рядок статусу вимкнено прапорцем «Активність налаштування».
Тому перше, що варто зробити перед першим обміном, — відкрити це вікно й проставити свої числа. З усіх його колонок CommerceML використовує одну — «Кількість»; «Активність товару на сайті» й «Назва на сайті (у файлі)» призначені для інших типів вивантаження і на цей файл не впливають.
Ціни «Роздрібна» й «Ціна собівартість», які дорівнюють нулю, у файл усе одно потрапляють — як нуль. Роздрібна РРЦ поводиться інакше: нульова РРЦ у пропозицію не пишеться зовсім. Якщо в 1С не повинні приїжджати товари без ціни, відсікайте їх відбором товарів у шаблоні, а не сподівайтеся, що вивантаження пропустить порожнє значення само. Як відбирати — у статті про шаблони вивантаження.
Фото: у файл їдуть посилання, а не картинки
Прапорець «Вивантажувати фото товарів» додає до товару вузли з картинками. Важливо розуміти, що саме туди пишеться: текстовий шлях, а не сам файл. CommerceML в обміні з сайтом зазвичай возить картинки теками поруч із XML; у нас же в документ підставляється адреса, за якою фото лежить.
Складається вона з двох частин. Постійний початок ви задаєте в полі «Посилання на фото товару» — туди вписують адресу вашого сховища, наприклад https://site.com/images/. Друга частина — шлях самого файлу, який програма додає сама. Макроси у фігурних дужках тут не підставляються: що вписано в поле, те й потрапить у файл перед шляхом фото.
Прапорець «Відображати піддиректорії у посиланні на фото товару» вирішує, чи зберігати в адресі структуру тек сховища. Знімайте його, якщо приймальна сторона чекає плаский список імен файлів.
Ім'я файлу, доставка й розклад
Без свого імені файл називається export_1c_commerceml2.xml. Своє задають у картці шаблону, і в ньому працюють підстановки дати: {DATE} — день, {DATETIME} — день і час, {TIME} — тільки час.
Дата в імені сама по собі архіву не робить. Хмарне сховище архіву не веде: після вдалого прогону посилання в шаблоні веде тільки на новий файл, а посилань на попередні програма ніде не зберігає. У тимчасовій теці акаунта програма тримає не більше трьох останніх файлів, старіші видаляються на початку кожного прогону. Архів «як було минулого тижня» виходить тільки в одному випадку — коли в імені стоїть {DATE} і файл їде на ваш FTP: там нові файли лягають поруч, а не поверх.
Дві дрібниці, які програма робить мовчки. Скісна риска в імені замінюється на крапку — підтеками файли не розкладаються. Розширення .php та його різновиди примусово міняються на .xml, щоб на чужому сервері файл не спробували виконати.
Загальні правила доставки й розкладу описані в статті про вивантаження товарів — тут лише те, що стосується обміну з 1С.
Хто і коли забирає файл
Сам до 1С файл не заходить: Elbuz або кладе його на ваш FTP, або тримає за посиланням, а завантажує його обробка обміну на боці 1С. Тому ланцюжок повний тоді, коли зроблено обидва кроки: у Elbuz відпрацював прогін (кнопка «Вивантажити», пункт «Вивантажити всі шаблони» або розклад), а в 1С запущено завантаження файла. Поки другий крок не зроблено, нові ціни в обліку не зʼявляться, скільки б разів ви не натиснули «Вивантажити».
Коли пропозиції складені окремим файлом, на FTP їдуть обидва файли одним прогоном: у журналі це рядок «Вивантажено файли за FTP: 1 із 2», а далі «2 із 2». Якщо сервер не прийняв, у тому самому рядку буде код його відповіді.
Якщо в «Налаштуваннях FTP» не заповнені адреса сервера або імʼя користувача, доставка просто не виконується — мовчки. У журналі не буде ні помилки, ні жодного рядка про FTP, а прогін завершиться звичним «Вивантаження даних завершено», і файл лишиться лежати за посиланням. Це найчастіший випадок «усе зелене, а в 1С нічого немає»: відкрийте налаштування FTP, заповніть сервер і користувача й натисніть там «Перевірити підключення».
Змінилися ціни чи назви в каталозі — у файлі вони зʼявляться тільки з наступним прогоном: документ збирається із каталогу в момент запуску, нічого не кешуючи. Якщо ціни щойно приїхали з прайсу постачальника, спершу має відпрацювати оновлення базового каталогу, і лише потім вивантаження.
Пробний прогін перед першим обміном
У шапці картки шаблону є кнопка з колбою — «Пробне вивантаження одного товару». Вона відкриває вікно «Перевірка шаблону вивантаження»: поле «ID товару» (лишіть порожнім — візьметься перший товар, що підходить під умови шаблону) і кнопка «Перевірити». У відповідь вікно показує рядок «Перевірено на товарі: #‹код› ‹назва›», сам XML і підсумок — або «Помилок не знайдено: вивантаження сформовано коректно, усі макроси підставлено», або перелік того, що не так, із номером рядка й позицією в розмітці. Файл при цьому нікуди не їде: ні на FTP, ні в хмару, ні на посилання в картці — це справді проба, а не маленьке вивантаження. Якщо файл великий, у вікні показуються перші 200 КБ.
Прапорець «Вивантажувати лише нові дані» звужує вибірку до товарів, які позначені як ще не вивантажені. Документ при цьому все одно позначається як повний — приймальна сторона вважатиме, що отримала каталог цілком.
Позначку «вивантажено» цей режим ставить тим товарам, що пішли у файл, але позначка ця одна на всі шаблони вивантаження. Наслідок: якщо той самий прапорець стоїть у другого шаблону, товари, які вже забрав перший, другий вважатиме вивантаженими й не візьме — а коли вибірки збігаються, віддасть порожній файл. Тримайте «лише нові дані» увімкненим не більш ніж в одному шаблоні, а коли треба віддати каталог цілком — зніміть прапорець і запустіть прогін ще раз.
Як переконатися, що прогін відпрацював
Журнал прогону в Центрі операцій веде два лічильники — по одному на кожен документ. Спершу йде «Вивантаження товарів ‹N› із ‹M›» — це картки, що пішли в «Каталог». Потім, коли ввімкнені пропозиції, — «Вивантаження цін товарів ‹N› із ‹M›». Число ‹N› зростає не по одному товару, а стрибками: програма дописує у файл цілими пачками. ‹M› — це скільки товарів підійшло під умови шаблону.
Наприкінці журнал дає посилання на готовий файл. Коли пропозиції складені окремим файлом, посилань буде два й підписані вони по-різному — на каталог і на ціни; коли все в одному файлі — посилання одне. Останній рядок — «Вивантаження даних завершено» і «Витрачено часу: ‹чч:хх:сс›».
Якщо файл зібрати не вдалося, останній рядок інший: «Вивантаження даних НЕ завершено: файл не сформовано», і він позначений як помилка. У цьому випадку дата останнього вивантаження в списку шаблонів не оновлюється — саме щоб не створювати враження, ніби свіжий файл є. За посиланням при цьому лежатиме файл попереднього, вдалого прогону.
Буває, що файл зібрано, але хмарне сховище його не прийняло. Тоді перед підсумком у журналі стоїть помилка «Файл не завантажився в хмарне сховище. Попередній файл і посилання на нього залишено без змін», а підсумок той самий — «Вивантаження даних НЕ завершено: файл не сформовано». Посилання, розмір і дата останнього вивантаження в шаблоні лишаються від попереднього прогону, старі файли з хмари не прибираються. Одне уточнення для пропозицій окремим файлом: програма заливає спершу каталог, потім ціни, і якщо сховище не прийняло тільки файл цін, а імʼя файла без дати, каталог за старим посиланням уже новий — запустіть прогін ще раз, щоб обидва файли знову були з одного прогону. Якщо налаштовано FTP, на FTP новий файл на цей момент уже поїхав: доставка на FTP іде раніше за хмару.
У списку «Вивантаження даних» після прогону оновлюються три колонки: «Файл» — імʼя й розмір, «Останнє вивантаження» — коли прогін був і скільки тривав, «В наявності» — скільки з вивантажених товарів було в наявності й на скільки це більше або менше за минулий раз, а другим рядком — скільки товарів пішло у файл усього. Порожній або раптово схудлий файл видно саме тут, до того як його побачить 1С.
1
Файл2
Останнє вивантаження3
В наявності- Файл — ім'я та розмір файлу останнього прогону.
- Останнє вивантаження — коли був прогон і скільки він тривав; після невдалого прогону дата не змінюється.
- В наявності — скільки вивантажених товарів було в наявності та наскільки це більше чи менше, ніж минулого разу; порожній або «схудлий» файл видно саме тут.
Підтвердження з боку 1С у Elbuz не приходить — зворотного каналу в цього вивантаження немає. «Вивантаження даних завершено» означає рівно одне: файл сформовано й покладено туди, куди налаштовано. Чи прийняла його обробка й що саме вона оновила, видно тільки в самій 1С.
Якщо прогін обірвався або його зупинили
Кнопка «Зупинити» в рядку операції не вбиває прогін миттєво: програма перевіряє прапорець зупинки між пачками товарів, тому робота уривається на найближчій межі пачки. У журналі зʼявиться «Вивантаження перервано користувачем!», і тим самим рядком закінчиться прогін — як попередження, а не як помилка. Дата останнього вивантаження в шаблоні при цьому не оновлюється.
Що лишається після обриву:
- Недописаний файл лишається в тимчасовій теці акаунта. Він обірваний на півслові, без закриваючого тега, і 1С його не прочитала б — але нікуди далі він і не їде.
- На FTP і в хмару він не потрапляє. Доставка йде останнім кроком, уже після того як файл зібрано цілком, — перерваний прогін до неї не доходить.
- Посилання й дата останнього вивантаження не оновлюються. У картці шаблону лишається попередній, цілий файл — тобто половинчастий каталог у 1С не приїде.
- Позначки «вивантажено» не проставляються. Їх ставить найостанніший крок вдалого прогону, тож шаблон із «лише новими даними» наступного разу візьме той самий набір товарів, нічого не пропустивши.
Повторний запуск безпечний і нічого не задвоює: кожен прогін створює файл заново, однойменний старий видаляється перед записом, а товари в 1С упізнаються за постійними ідентифікаторами. Для розкладу є ще й свій захист — поки йде одне вивантаження за розкладом, друге не стартує й пише в журнал «Скасовано вивантаження за розкладом, причина - вивантажується інший шаблон (конфлікт обробки даних).» Якщо прогін помер зовсім (перезапуск сервера, обрив звʼязку з базою), замок знімається сам: коли запуск старший за годину і при цьому тридцять хвилин нічого не писав у журнал.
Якщо у 1С поїхало не те
Перше, що варто знати: у самому Elbuz вивантаження нічого не змінює. Ціни, назви, залишки й статуси після прогону лишаються такими самими, як були — відкочувати в каталозі нічого. Прогін записує в базу тільки службове: посилання на файл, його розмір, дату й тривалість прогону. Єдиний виняток — прапорець «Вивантажувати лише нові дані»: він проставляє каталогу позначки «вивантажено».
Скасувати вже виконане завантаження на боці 1С засобами Elbuz неможливо: у файлі немає команд скасування, а зворотного каналу з 1С у цього типу вивантаження немає. Виправляють наступним файлом:
- Полагодьте причину в Elbuz — ціну, тип ціни, кількість для статусу наявності, умови відбору шаблону.
- Натисніть колбу «Перевірити» й подивіться на одному товарі, що тепер збирається у файл.
- Запустіть вивантаження ще раз і завантажте новий файл у 1С. Товари впізнаються за тими самими ідентифікаторами, тож нові значення ляжуть поверх помилкових.
Позиції, яких у 1С узагалі не повинно було зʼявитися, новим файлом не зникнуть: видаляти їх доведеться в самій 1С. У Elbuz лишається прибрати їх з відбору шаблону, щоб вони не приїхали знову.
Подивитися, що саме поїхало минулого разу, найчастіше вже ніде: хмара архіву не веде, а в теці акаунта — не більше трьох останніх. Тому для каналу, з якого живе облік, варто одразу поставити {DATE} в імені файла й доставку на FTP: тоді кожен прогін лишає по собі окремий файл, і при розборі є що відкрити.
Товар зник із файла: що це означає
Каталог у файлі завжди позначений як повний, а не як набір змін. Але явної ознаки «цього товару більше немає» Elbuz не надсилає — ні для видалених товарів, ні для тих, що не пройшли відбір. Їхніх вузлів у файлі просто немає: ні ціни, ні кількості, ні нуля. Що зробить із такою номенклатурою ваша обробка обміну — вирішує 1С, і Elbuz на це не впливає.
Звідси практичне правило: щоб у 1С приїхав нуль, товар має лишитися у вивантаженні. Не прибирайте його відбором — натомість задайте нуль як кількість для його статусу наявності у вікні «Налаштування оновлення за наявністю товару».
Товар не потрапляє у файл, якщо справджується хоча б одне:
- у картці товару знято прапорець «Вивантажувати у файл (на сайт)»;
- товар не лежить у жодній категорії — у CommerceML товар описується разом із групою, тому позакатегорійні картки не вивантажуються взагалі;
- усі його категорії вимкнені або не позначені для вивантаження;
- товар не проходить умови відбору шаблону, обраний магазин чи обраний склад;
- увімкнено «Вивантажувати лише нові дані», а товар уже вивантажувався минулим прогоном.
Дерево груп у файл їде окремо від товарів: у ньому — ваші активні категорії, незалежно від того, чи лишилися в них товари після відбору. Тобто порожня група в 1С — нормальна ситуація, а не ознака збою.
Вимкнути шаблон чи видалити
Перемикач стану в шапці картки — «Активний» / «Вимкнений» — керує тільки автоматичними запусками. Вимкнений шаблон пропускає розклад і не бере участі в пункті «Вивантажити всі шаблони», а кнопка «Вивантажити» руками працює й на ньому: так перевіряють канал, який ще налаштовується.
Вимкнення нічого не стирає. Розклад лишається налаштованим і спрацює сам, щойно ви ввімкнете шаблон назад. Останній файл, посилання на нього, розмір і дата прогону лишаються в картці — тобто 1С може забирати старий файл і далі, поки ви не зробите новий прогін.
Видалення — операція зовсім іншого масштабу: разом із шаблоном зникають його налаштування CommerceML, налаштування FTP, налаштування кількості за статусами наявності, вибрані категорії й участь у розкладі.
Ідентифікатор каталогу створюється один раз — у момент, коли ви створюєте шаблон, — і далі йде в кожен файл: і в класифікатор, і в каталог, і в пакет пропозицій. Новий шаблон замість видаленого отримає інший ідентифікатор, і для 1С це буде інший каталог, а не продовження старого. Тому канал, який уже працює з обліком, вимикають, а не видаляють і заводять наново.
Скільки це триває і де межі
Стелі за кількістю товарів немає. Вибірка йде пачками по 5000 товарів: пачка збирається в памʼяті, одразу дописується у файл і звільняє памʼять, далі береться наступна. Тому обсяг каталогу впирається не в програму, а в час і місце.
З обома ввімкненими прапорцями каталог читається двічі — спершу пачками збирається «Каталог», потім так само пачками «Пакет пропозицій». Це рівно та ціна, яку ви платите за два документи в одному прогоні; шаблон, що оновлює самі ціни, робить удвічі менше роботи.
Скільки триває саме ваше вивантаження, програма міряє сама, і вигадувати нормативи не треба: «Витрачено часу» в кінці журналу, колонка «Останнє вивантаження» у списку і кнопка «Історія запусків» у шапці картки — там за останні 30 днів видно кількість запусків, середню тривалість, найдовший і скільки з них були з помилками.
Решта меж, які варто знати наперед:
- Список шаблонів під час прогону не блокується: журнал пишеться в базу й видно його в Центрі операцій з будь-якого вікна програми. Пункт «Вивантажити всі шаблони» взагалі йде окремим фоновим процесом на сервері й від вікна не залежить.
- На доставку кожного файла по FTP дається дві хвилини (і десять секунд на зʼєднання). Не встиг — у журналі буде рядок із кодом помилки, а файл лишиться доступним за посиланням.
- Вікно «Перевірка шаблону вивантаження» показує перші 200 КБ файла: у CommerceML навіть проба на одному товарі тягне за собою повний класифікатор категорій.
Сценарії
Перше підключення обліку в 1С
Задача: у 1С ще немає номенклатури, і туди треба передати й картки товарів, і ціни.
Що ввімкнути: у нового шаблону CommerceML прапорці «Вивантажувати "Каталог" товарів», «Вивантажувати "Пакет пропозицій"» і «Вивантажувати "Пакет пропозицій" окремим файлом» уже стоять — лишіть їх, якщо обробка обміну чекає два файли. Відкрийте «Налаштування оновлення за наявністю товару» і замініть 1000 та 500 у колонці «Кількість» своїми числами. Потім кнопка з колбою — «Перевірити» на одному товарі.
Що вийде: прогін дасть два файли — без свого імені це export_1c_commerceml2.xml з каталогом і export_1c_commerceml2_offers.xml з цінами. Чого не буде: у 1С нічого не зʼявиться, поки там не запустять завантаження файла, а в самому Elbuz ціни, назви й залишки після прогону лишаються такими, як були.
Щодня оновлювати тільки ціни й кількість
Задача: номенклатура в 1С уже є, і з Elbuz мають приїжджати лише свіжі ціни та кількість.
Що ввімкнути: зніміть «Вивантажувати "Каталог" товарів», лишіть «Вивантажувати "Пакет пропозицій"» і задайте шаблону розклад.
Що вийде: у файл іде дерево груп і пакет пропозицій — типи цін, ціни й кількість, а каталог товарів прогін не збирає зовсім. Чого не буде: описів, фото й характеристик у файлі немає — у пропозиції лише назва, артикул, штрихкод, групи й реквізити на кшталт виробника та ваги, тож товар, заведений у Elbuz після останнього прогону з каталогом, приїде без опису й характеристик. Щоб нові позиції потрапили в 1С повністю, запустіть прогін з увімкненим каталогом.
Передати справжній залишок, а не 1000 чи 500
Задача: у 1С має приїхати кількість із картки товару, а не умовне число за статусом наявності.
Що ввімкнути: у вікні «Налаштування оновлення за наявністю товару» зніміть прапорець «Активність налаштування» у рядках тих статусів, для яких потрібен справжній залишок.
Що вийде: товари з цими статусами поїдуть у файл із кількістю з картки товару, а статуси з увімкненим рядком і далі даватимуть число з колонки «Кількість». Чого не буде: розрізу за складами — кількість одна на товар.
Зберігати копію кожного відправленого файла
Задача: мати змогу відкрити файл, який поїхав у 1С кілька днів тому, і розібратися, що в ньому було.
Що ввімкнути: в імені файла шаблону поставте {DATE}, а якщо прогонів кілька на день — {DATETIME}; у «Налаштуваннях FTP» заповніть сервер і користувача.
Що вийде: кожен прогін кладе на FTP файл із власним імʼям. Чого не буде: історії в самому Elbuz — хмара архіву не веде, а в теці акаунта перед кожним прогоном лишаються три найсвіжіші файли, спільно для всіх шаблонів CommerceML. З {DATE} два прогони одного дня дають однакове імʼя.
Чого це вивантаження не робить
- Не возить файли картинок. У документі лише адреси; фото має бути доступне за посиланням.
- Не передає залишки по складах окремо. Кількість одна на товар, розрізу за складами в документі немає.
- Не вивантажує різницю. Навіть із увімкненим «лише нові дані» каталог позначається як повний.
- Не повідомляє про видалені товари. Ознаки видалення у файлі немає — зниклої позиції там просто немає, і що з нею робити, вирішує 1С.
- Не отримує відповіді від 1С. Канал односторонній: Elbuz не дізнається ні що файл завантажено, ні які рядки обробка прийняла.
- Не приймає замовлення назад. Це односторонній документ: каталог і ціни з Elbuz назовні.
Розбір частих проблем
| Що ви бачите | Чому так | Що зробити |
|---|---|---|
| 1С прийняла файл, але цін немає | вимкнений прапорець «Вивантажувати "Пакет пропозицій"» — у файлі лише каталог | увімкніть його в налаштуваннях шаблону |
| Обробка 1С просить два файли, а приїхав один | документи складені в один файл | увімкніть «Вивантажувати "Пакет пропозицій" окремим файлом» |
| Немає характеристик | вимкнений прапорець «Вивантажувати атрибути товарів» | увімкніть його |
| Фото не відкриваються на приймальній стороні | у полі «Посилання на фото товару» не заданий початок адреси або він веде не туди | відкрийте будь-яке посилання з файлу у браузері й перевірте, чи віддається картинка |
| Товари приїхали з нульовою ціною | ціна в каталозі не заповнена, а вивантаження пише нуль як є | відсікайте такі товари відбором у шаблоні |
| Ціни приїхали не в тій валюті | валюта береться одна — основна валюта магазину | перевірте, яка валюта в магазині основна |
| «Вивантаження даних НЕ завершено: файл не сформовано» | файл не зібрався або хмарне сховище його не прийняло | за посиланням лишився попередній цілий файл; запустіть вивантаження ще раз — повтор нічого не задвоює |
| «Файл не завантажився в хмарне сховище. Попередній файл і посилання на нього залишено без змін» | файл зібрано, але хмарне сховище його не прийняло | за посиланням лишився попередній файл; запустіть вивантаження ще раз |
| Журнал зелений, а на FTP файла немає | у «Налаштуваннях FTP» не заповнені адреса сервера або імʼя користувача — доставка пропускається мовчки | заповніть поля й натисніть там «Перевірити підключення» |
| У 1С в усіх товарів кількість 1000 або 500 | кількість береться з налаштування за статусом наявності, а там лишилися значення за замовчуванням | відкрийте «Налаштування оновлення за наявністю товару» і проставте свої числа (докладніше) |
| Другий шаблон вивантаження раптом віддає порожній файл | прапорець «Вивантажувати лише нові дані» стоїть у двох шаблонах: перший прогін позначає вивантаженими свої товари, і другий їх уже не бере | лишіть цей прапорець не більш ніж в одному шаблоні |
| Товар є в каталозі, а у файлі його немає | товар не прив'язаний до категорії, його категорія вимкнена або знято прапорець «Вивантажувати у файл (на сайт)» | перевірте за переліком у розділі «Товар зник із файла» |
Часті питання
Яку версію CommerceML формує програма?
Схему версії 2.07, у кодуванні UTF-8. Це та сама редакція стандарту, з якою працюють штатні обробки обміну в 1С, тож окремо нічого доналаштовувати не потрібно.
Один файл чи два — як правильно?
Залежить від того, що чекає приймальна сторона. У нового шаблону прапорець «Вивантажувати "Пакет пропозицій" окремим файлом» уже стоїть, тож з коробки виходить два файли: каталог і другий, із суфіксом _offers. Якщо ваша обробка чекає один файл — зніміть цей прапорець, і каталог із пропозиціями ляжуть в один документ.
Чи можна оновлювати тільки ціни, не чіпаючи номенклатуру?
Так. Зніміть прапорець «Вивантажувати "Каталог" товарів» і лишіть тільки пакет пропозицій. У файлі будуть самі ціни й кількість, а товари в них упізнаються за ідентифікаторами, які вже приїхали разом з каталогом раніше.
Чому фото не вклалися у файл?
Так і має бути: у документ пишеться посилання на картинку, а не сама картинка. Ваша справа — задати початок адреси в полі «Посилання на фото товару» й переконатися, що за цією адресою фото справді віддається.
Звідки береться кількість у пропозиції?
З налаштування «Налаштування оновлення за наявністю товару»: кожному статусу наявності там відповідає своє число, і в файл їде саме воно. Поки ви не змінили ці рядки, статуси «в наявності» дають 1000, «під замовлення» — 500, решта — 0. Справжній залишок товару поїде тільки тоді, коли статусу товару в цьому списку немає. Це одне число на товар — розрізу за складами стандарт у цьому місці не передбачає.
Що буде з товарами, яких більше немає у файлі?
Elbuz не надсилає ознаки видалення: вузлів таких товарів у файлі просто немає. Рішення про їхню долю ухвалює обробка обміну на боці 1С. Якщо потрібно, щоб у 1С приїхав саме нуль, лишіть товар у вивантаженні й задайте нуль як кількість для його статусу наявності.
Що станеться, якщо вимкнути шаблон?
Він випаде з розкладу й з пункту «Вивантажити всі шаблони», але кнопкою «Вивантажити» його й далі можна запустити руками. Налаштування, розклад, останній файл і посилання на нього лишаються на місці, тож увімкнення повертає все як було. А от видалення шаблону забирає і налаштування, і розклад, і — головне для 1С — ідентифікатор каталогу: новий шаблон отримає інший, і для 1С це буде вже інший каталог.
А як вивантажити дані з самої 1С, щоб завантажити їх у Elbuz?
Це зворотна задача, і робиться вона засобами 1С: штатними обробками «Вивантаження даних у форматі CommerceML» або «Обмін з WEB-сайтом», які входять до стандартних конфігурацій. Що робити з отриманими файлами далі — у статті про імпорт каталогу з CommerceML.
Суміжні теми
- Вивантаження товарів на маркетплейс, сайт і у файл — відбір товарів, доставка файлу, розклад, пробний прогін.
- Імпорт каталогу з CommerceML — той самий формат у зворотному напрямку.
- Прайс-лист для клієнтів у XLSX і CSV — коли приймальній стороні потрібен не XML, а таблиця.

