Як передати каталог і ціни з Elbuz у 1С через CommerceML

18 хв

Elbuz збирає з каталогу XML-файл у форматі CommerceML, який 1С приймає штатною обробкою обміну, — картки товарів, характеристики, ціни й кількість. Дописувати код ні в Elbuz, ні в 1С не потрібно.

Коли це знадобиться:

  • Облік у 1С, а каталог і ціни ведете в Elbuz — номенклатура й ціни їдуть в 1С одним файлом або двома.
  • Номенклатура в 1С уже є — шаблон щодня віддає тільки ціни й кількість.
  • 1С має забирати файл сама — Elbuz кладе його на FTP або за постійним посиланням за розкладом.
  • Щось поїхало не так — наступний файл перепише значення без дублів.

З чого почати: створіть шаблон типу CommerceML і проставте кількість за статусами наявності.

Що вміє вивантаження в CommerceML

Де це і хто має доступ

Меню
Довідники → Операції → Вивантаження даних
Налаштувати
картка шаблону, секція «Налаштування вивантаження даних»
Право доступу
вікно «Вивантаження даних»; картка — «Детальне налаштування шаблону вивантаження»
Підготувати
обробку обміну CommerceML у 1С; FTP, якщо 1С забиратиме файл звідти
Секція «Що вивантажувати» та «Каталог і фото» у картці шаблону CommerceML
1Вивантажувати "Каталог" товарів
2Вивантажувати "Пакет пропозицій"
3Вивантажувати "Пакет пропозицій" окремим файлом
4Посилання на фото товару
  1. Що за товар — назва, артикул, характеристики; цін тут немає.
  2. Ціни та кількість, окремий документ стандарту.
  3. Потрібно тим обробкам 1С, які очікують два файли.
  4. У документ їде адреса картинки, а не сама картинка; початок адреси задається тут.

Як створити шаблон і вибрати документи

У вікні «Вивантаження даних» натисніть кнопку додавання шаблону й оберіть тип «CommerceML2 (1C)». Форма в цього типу коротка: селекторів і шаблонів тексту немає, структуру документа задає стандарт. Ваша справа — вирішити, які частини вивантажувати й звідки брати посилання на фото. Відбір товарів, розклад і доставка — як у будь-якого шаблону: де задається відбір товарів.

Два документи: «Каталог» і «Пакет пропозицій»

CommerceML описує товар двома документами, і плутанина між ними — головна причина, чому файл «приймається, але нічого не оновлює».

  • Каталог — що це за товар: назва, опис, артикул, штрихкод, категорія, характеристики, фото. Цін тут немає взагалі.
  • Пакет пропозицій — почому й скільки: ціни за типами й кількість. По суті, прайс-лист, який посилається на товари каталогу за ідентифікаторами.

У формі це два прапорці — «Вивантажувати "Каталог" товарів» і «Вивантажувати "Пакет пропозицій"», вони вмикаються незалежно. Перше завантаження роблять з обома, а коли номенклатура в 1С уже є, лишають тільки пропозиції.

Прапорець «Вивантажувати "Пакет пропозицій" окремим файлом» розносить документи на два файли: до імені файлу з цінами додається _offers — з export_1c_commerceml2.xml вийде ще й export_1c_commerceml2_offers.xml. У нового шаблону цей прапорець уже стоїть. Ваша обробка чекає один файл — зніміть його: каталог і пропозиції ляжуть один за одним у спільному кореневому вузлі.

Документ будується за версією схеми 2.07 у кодуванні UTF-8, з датою формування в корені. Каталог позначається як повний, а не як набір змін: 1С щоразу отримує повну картину.

Що потрапляє у файл

ЩоЩо в ньомуКоли їде
ІдентифікаторПостійний внутрішній код товару в Elbuz: за ним 1С упізнає ту саму номенклатуру в наступних файлах, тож повтор не створює дублів. У варіанта — два коди через #: головного товару і свійзавжди
Основні поляАртикул, штрихкод, назва, опис і групи. Товар у кількох категоріях потрапляє у файл один раз, у блоці груп — усі його категоріїзавжди
РеквізитиВиробник, контрагент, категорія, артикул контрагента, габарити: вага, висота, ширина, глибина. Незаповнений габарит приїде порожнім, а не нулемзавжди
ВластивостіХарактеристики з вкладки атрибутів картки. Спершу у файл іде довідник властивостей із назвами, потім товари посилаються на потрібніпрапорець «Вивантажувати атрибути товарів»
Додаткові поляВаші власні поля каталогу — до реквізитів. Поля з типом «ціна» стають окремими типами цін у пакеті пропозиційпрапорець «Вивантажувати додаткові поля»
Дерево групВаші активні категорії — незалежно від того, чи лишилися в них товари після відбору. Порожня група в 1С — норма, а не збійзавжди

Товари без категорії у CommerceML не вивантажуються взагалі: товар описується разом із групою. Решта умов відбору однакові для всіх форматів — чому товар не поїхав у файл.

Ціни: три типи плюс ваші

Пакет пропозицій починається з довідника типів цін. Програма завжди оголошує три:

Тип ціниЗвідки береться
Роздрібнаосновна ціна товару
Роздрібна РРЦрекомендована ціна
Ціна собівартість (із прайс-листа)закупівельна ціна від постачальника

З прапорцем «Вивантажувати додаткові поля» до них додається по типу на кожне ваше додаткове поле з типом «ціна»; у нового шаблону прапорець вимкнений. Кожен тип оголошується з валютою й податком. Валюта одна — основна валюта магазину, по товарах вона не задається.

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

Нульові «Роздрібна» й «Ціна собівартість» потрапляють у файл як нуль. Нульова РРЦ у пропозицію не пишеться зовсім. Якщо в 1С не повинні приїжджати товари без ціни, відсікайте їх відбором товарів у шаблоні.

Кількість береться не із залишку

Число, яке приїде в 1С як кількість, задається у вікні «Налаштування оновлення за наявністю товару» — кнопка в секції «Пов'язані налаштування» картки шаблону. Кожному статусу наявності там відповідає значення в колонці «Кількість», і саме воно потрапляє у файл.

  • Рядки програма заповнює сама: «в наявності» — 1000, «під замовлення» — 500, решта — 0. Перед першим обміном проставте свої числа.
  • Справжній залишок товару поїде, коли статусу товару в списку немає або рядок статусу вимкнено прапорцем «Активність налаштування».
  • Кількість одна на товар: розрізу за складами в документі немає.
  • Колонки «Активність товару на сайті» й «Назва на сайті (у файлі)» на цей файл не впливають — вони для інших типів вивантаження.

Фото: у файл їдуть посилання, а не картинки

Прапорець «Вивантажувати фото товарів» додає до товару текстовий шлях до картинки, а не сам файл. Адреса складається з двох частин:

  • постійний початок — поле «Посилання на фото товару», наприклад https://site.com/images/. Макроси у фігурних дужках тут не підставляються;
  • шлях самого файлу — його програма додає сама.

Прапорець «Відображати піддиректорії у посиланні на фото товару» зберігає в адресі структуру тек сховища. Знімайте його, якщо приймальна сторона чекає плаский список імен файлів.

Як файл потрапляє в 1С

Сам до 1С файл не заходить: Elbuz кладе його на ваш FTP або тримає за посиланням, а завантажує його обробка обміну на боці 1С. Ланцюжок повний, коли зроблено обидва кроки:

  1. у Elbuz відпрацював прогін — кнопка «Вивантажити», «Вивантажити всі шаблони» або розклад;
  2. у 1С запущено завантаження файлу.

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

Коли пропозиції складені окремим файлом, на FTP обидва файли їдуть одним прогоном: у журналі «Вивантажено файли за FTP: 1 із 2», далі «2 із 2». Якщо сервер не прийняв, у тому самому рядку буде код його відповіді — розшифровка в розділі куди лягає файл.

Якщо в «Налаштуваннях FTP» не заповнені адреса сервера або ім'я користувача, доставка мовчки не виконується: у журналі ні помилки, ні рядка про FTP, прогін закінчується «Вивантаження даних завершено», файл лежить за посиланням. Це найчастіший випадок «усе зелене, а в 1С нічого немає». Заповніть сервер і користувача й натисніть «Перевірити підключення».

Як перевірити файл і результат прогону

Пробний прогін перед першим обміном

Кнопка з колбою в шапці картки — «Пробне вивантаження одного товару» — відкриває вікно «Перевірка шаблону вивантаження». Поле «ID товару» можна лишити порожнім: візьметься перший товар, що підходить під умови. Вікно показує:

  • рядок «Перевірено на товарі: #‹код› ‹назва›»;
  • сам XML — перші 200 КБ: у CommerceML навіть проба на одному товарі тягне повний класифікатор категорій;
  • підсумок — «Помилок не знайдено: вивантаження сформовано коректно, усі макроси підставлено» або перелік помилок із номером рядка й позицією.

Файл нікуди не їде: ні на FTP, ні в хмару, ні на посилання в картці.

Що показує журнал прогону

Жовті ромби — місця, де прогін може піти іншим шляхом. Обидві гілки «Зупинити» ведуть до «перервано користувачем», і файл тоді нікуди не їде. Невдале заливання в хмару веде до «НЕ завершено» — посилання в шаблоні лишається старим. Гілка без FTP закінчується тим самим «завершено», що й з FTP.
такнітакнінатиснуто «Зупинити»такнінатиснуто «Зупинити»такні — мовчкитакні — помилка в журналі«Вивантажити» або розкладСпрацювало стоп-правило з дією«Зупинити вивантаження»?Вивантаження зупиненостоп-правиломУвімкнено «Вивантажувати„Каталог“ товарів»?Каталог збирається пачками по5000 товарівУвімкнено «Вивантажувати „Пакетпропозицій“»?Пропозиції пачками по 5000 — утой самий файл або в окремий_offersВивантаження перерванокористувачем! — посилання йдата лишаються від минулогопрогонуВивантаження даних НЕзавершено — посилання й даталишаються від минулого прогонуУ «Налаштуваннях FTP»заповнені сервер і користувач?Файли їдуть на FTPХмарний режим: файл залився вхмарне сховище?Посилання, розмір і датаоновлюютьсяВивантаження даних завершено
  • Початок або кінець
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Журнал у Центрі операцій веде два лічильники, по одному на документ: «Вивантаження товарів ‹N› із ‹M›» — картки «Каталогу», потім «Вивантаження цін товарів ‹N› із ‹M›» — пропозиції. ‹N› росте пачками по 5000 товарів, ‹M› — скільки товарів підійшло під умови шаблону. З обома документами каталог читається двічі, тож шаблон лише з цінами працює вдвічі швидше.

Наприкінці журнал дає посилання на готовий файл: два — на каталог і на ціни, якщо пропозиції окремим файлом, або одне. Останній рядок — «Вивантаження даних завершено» і «Витрачено часу: ‹чч:хх:сс›». Решта рядків журналу така сама, як в інших форматів: журнал прогону.

У списку «Вивантаження даних» після прогону оновлюються колонки «Файл», «Останнє вивантаження» і «В наявності». Порожній або раптово схудлий файл видно тут, до того як його побачить 1С.

Рядок шаблону «CommerceML для 1С» у списку вивантажень із колонками «Файл», «Останнє вивантаження» та «В наявності»
1Файл
2Останнє вивантаження
3В наявності
  1. Файл — ім'я та розмір файлу останнього прогону.
  2. Останнє вивантаження — коли був прогон і скільки він тривав; після невдалого прогону дата не змінюється.
  3. В наявності — скільки вивантажених товарів було в наявності та наскільки це більше чи менше, ніж минулого разу; порожній або «схудлий» файл видно саме тут.

Підтвердження з боку 1С у Elbuz не приходить: «Вивантаження даних завершено» означає, що файл сформовано й покладено туди, куди налаштовано. Чи прийняла його обробка, видно тільки в 1С.

Розклад, ім'я файлу й посилання

Запуск руками й за розкладом, зупинка, стоп-правила й конфлікт розкладів працюють, як у всіх шаблонів: запуск руками і за розкладом, стоп-правила. Нижче — те, що у CommerceML інакше.

Без свого імені файл називається export_1c_commerceml2.xml. В імені працюють {DATE}, {DATETIME} і {TIME}; скісна риска стає крапкою, .php міняється на .xml.

Хмара архіву не веде: після вдалого прогону посилання веде тільки на новий файл. У тимчасовій теці акаунта лишаються три останні файли, старіші видаляються на початку прогону. Архів «як було минулого тижня» виходить, лише коли в імені стоїть {DATE} і файл їде на ваш FTP (сценарій).

«Вивантажувати лише нові дані» звужує вибірку до товарів, ще не позначених як вивантажені, але каталог усе одно позначається як повний. Позначка одна на всі шаблони — тримайте прапорець не більш ніж в одному (чому товар не поїхав у файл).

Якщо прогін обірвався або його зупинили

Доставка на FTP і в хмару йде останнім кроком, тож після «Зупинити» чи обриву:

  • недописаний файл лишається в тимчасовій теці й нікуди не їде;
  • посилання й дата останнього вивантаження не оновлюються — половинчастий каталог у 1С не приїде;
  • позначки «вивантажено» не ставляться, наступний прогін візьме той самий набір;
  • повтор безпечний: файл створюється заново, товари в 1С упізнаються за ідентифікаторами.

Якщо пропозиції окремим файлом і хмара не прийняла тільки файл цін, а ім'я без дати, каталог за старим посиланням уже новий. Запустіть прогін ще раз, щоб обидва файли були з одного прогону. На FTP новий файл на цей момент уже поїхав: доставка на FTP іде раніше за хмару.

Вимкнути шаблон чи видалити

Перемикач «Активний» / «Вимкнений» у шапці картки керує тільки автоматичними запусками: вимкнений шаблон пропускає розклад і «Вивантажити всі шаблони», а руками запускається. Налаштування, розклад, останній файл і посилання лишаються, 1С може забирати старий файл і далі. Видалення стирає налаштування CommerceML, FTP, кількість за статусами, вибрані категорії й розклад.

Ідентифікатор каталогу створюється один раз, разом із шаблоном, і йде в кожен файл: у класифікатор, каталог і пакет пропозицій. Новий шаблон замість видаленого отримає інший ідентифікатор, і для 1С це буде інший каталог. Канал, який уже працює з обліком, вимикають, а не видаляють і заводять наново.

Якщо у 1С поїхало не те

У самому Elbuz вивантаження нічого не змінює: ціни, назви, залишки й статуси після прогону ті самі. Прогін записує лише посилання на файл, розмір, дату й тривалість, а з «лише новими даними» — позначки «вивантажено».

Скасувати виконане завантаження на боці 1С засобами Elbuz неможливо: у файлі немає команд скасування. Виправляють наступним файлом:

  1. Полагодьте причину в Elbuz — ціну, тип ціни, кількість для статусу наявності, умови відбору шаблону.
  2. Натисніть колбу «Перевірити» й подивіться на одному товарі, що тепер збирається у файл.
  3. Запустіть вивантаження ще раз і завантажте новий файл у 1С. Товари впізнаються за тими самими ідентифікаторами, нові значення ляжуть поверх помилкових.

Позиції, яких у 1С не повинно було з'явитися, новим файлом не зникнуть: видаліть їх у самій 1С, а в Elbuz приберіть з відбору шаблону.

Товар зник із файлу: що отримає 1С

Ознаки «цього товару більше немає» Elbuz не надсилає — ні для видалених товарів, ні для тих, що не пройшли відбір. Їхніх вузлів у файлі просто немає: ні ціни, ні кількості, ні нуля. Що зробить із такою номенклатурою обробка обміну, вирішує 1С.

Щоб у 1С приїхав нуль, товар має лишитися у вивантаженні. Не прибирайте його відбором — задайте нуль як кількість для його статусу наявності у вікні «Налаштування оновлення за наявністю товару».

Сценарії

Перше підключення обліку в 1С

Задача: у 1С ще немає номенклатури, і туди треба передати й картки товарів, і ціни.

Що ввімкнути: у нового шаблону CommerceML прапорці «Вивантажувати "Каталог" товарів», «Вивантажувати "Пакет пропозицій"» і «Вивантажувати "Пакет пропозицій" окремим файлом» уже стоять — лишіть їх, якщо обробка обміну чекає два файли. Відкрийте «Налаштування оновлення за наявністю товару» і замініть 1000 та 500 у колонці «Кількість» своїми числами. Потім кнопка з колбою — «Перевірити» на одному товарі.

Що вийде: прогін дасть два файли — без свого імені це export_1c_commerceml2.xml з каталогом і export_1c_commerceml2_offers.xml з цінами. У 1С нічого не з'явиться, поки там не запустять завантаження файлу.

Щодня оновлювати тільки ціни й кількість

Задача: номенклатура в 1С уже є, і з Elbuz мають приїжджати лише свіжі ціни та кількість.

Що ввімкнути: зніміть «Вивантажувати "Каталог" товарів», лишіть «Вивантажувати "Пакет пропозицій"» і задайте шаблону розклад.

Що вийде: у файл іде дерево груп і пакет пропозицій — типи цін, ціни й кількість. Описів, фото й характеристик там немає, тож товар, заведений у Elbuz після останнього прогону з каталогом, приїде без них. Щоб нові позиції потрапили в 1С повністю, запустіть прогін з увімкненим каталогом.

Передати справжній залишок, а не 1000 чи 500

Задача: у 1С має приїхати кількість із картки товару, а не умовне число за статусом наявності.

Що ввімкнути: у вікні «Налаштування оновлення за наявністю товару» зніміть прапорець «Активність налаштування» у рядках тих статусів, для яких потрібен справжній залишок.

Що вийде: товари з цими статусами поїдуть із кількістю з картки, решта статусів і далі даватиме число з колонки «Кількість». Кількість одна на товар, без розрізу за складами.

Зберігати копію кожного відправленого файлу

Задача: мати змогу відкрити файл, який поїхав у 1С кілька днів тому, і розібратися, що в ньому було.

Що ввімкнути: в імені файлу шаблону поставте {DATE}, а якщо прогонів кілька на день — {DATETIME}; у «Налаштуваннях FTP» заповніть сервер і користувача.

Що вийде: кожен прогін кладе на FTP файл із власним ім'ям. З {DATE} два прогони одного дня дають однакове ім'я. У самому Elbuz історії не буде — у теці акаунта лишаються три найсвіжіші файли, спільно для всіх шаблонів CommerceML.

Що робити, коли в 1С не те, що чекали

Порожня вибірка, стоп-правила, конфлікт розкладу й коди FTP — у загальній таблиці розбору.

Розбір частих проблем CommerceML
Що ви бачитеЧому такЩо зробити
1С прийняла файл, але цін немає Вимкнений прапорець «Вивантажувати "Пакет пропозицій"» — у файлі лише каталог Увімкніть його в налаштуваннях шаблону
Обробка 1С просить два файли, а приїхав один Документи складені в один файл Увімкніть «Вивантажувати "Пакет пропозицій" окремим файлом»
Немає характеристик Вимкнений прапорець «Вивантажувати атрибути товарів» Увімкніть його
Фото не відкриваються на приймальній стороні У полі «Посилання на фото товару» не заданий початок адреси або він веде не туди Відкрийте посилання з файлу в браузері й перевірте, чи віддається картинка (про фото)
Товари приїхали з нульовою ціною Ціна в каталозі не заповнена, а вивантаження пише нуль як є Відсікайте такі товари відбором у шаблоні
Ціни приїхали не в тій валюті Валюта одна — основна валюта магазину Перевірте, яка валюта в магазині основна
«Вивантаження даних НЕ завершено: файл не сформовано» або «Файл не завантажився в хмарне сховище…» Файл не зібрався або хмарне сховище його не прийняло За посиланням лишився попередній цілий файл; запустіть вивантаження ще раз (повтор нічого не задвоює)
Журнал зелений, а на FTP файлу немає У «Налаштуваннях FTP» не заповнені адреса сервера або ім'я користувача — доставка пропускається мовчки Заповніть поля й натисніть «Перевірити підключення»
У 1С в усіх товарів кількість 1000 або 500 Кількість береться за статусом наявності, а там значення за замовчуванням Проставте свої числа в «Налаштування оновлення за наявністю товару» (докладніше)
Після нового шаблону 1С створила другий каталог Новий шаблон має інший ідентифікатор каталогу Не видаляйте робочий шаблон — вимикайте його (вимкнути чи видалити)

Часті запитання

Яку версію CommerceML формує програма?

Схему версії 2.07 у кодуванні UTF-8 — ту редакцію, з якою працюють штатні обробки обміну в 1С.

Один файл чи два — як правильно?

Як чекає обробка 1С. З коробки шаблон дає два файли: каталог і пропозиції із суфіксом _offers. Для одного файлу зніміть «Вивантажувати "Пакет пропозицій" окремим файлом».

Чому фото не вклалися у файл?

Так і має бути: у документ пишеться посилання на картинку. Задайте початок адреси в полі «Посилання на фото товару» й перевірте, що фото за нею віддається.

Чи можна передати залишки окремо по складах?

Ні. Кількість одна на товар: число за статусом наявності або залишок із картки (звідки кількість).

Чи дізнається Elbuz, що 1С прийняла файл?

Ні, канал односторонній. Чи завантажено файл і які рядки обробка прийняла, видно тільки в 1С.

Що станеться, якщо вимкнути шаблон?

Він випаде з розкладу й «Вивантажити всі шаблони», а руками запускатиметься. Налаштування, останній файл і посилання лишаються. Видалення ж міняє ідентифікатор каталогу для 1С.

А як вивантажити дані з 1С у Elbuz або забрати звідти замовлення?

Це зворотний напрямок. Вивантажте файли штатними обробками 1С «Вивантаження даних у форматі CommerceML» або «Обмін з WEB-сайтом» і завантажте їх імпортом CommerceML. Це вивантаження замовлень назад не приймає.

Суміжні теми

Чи була стаття корисною?