Як тримати каталог на Prom.ua свіжим XML-фідом

22 хв

Elbuz публікує ваш каталог XML-фідом (YML) за постійним посиланням, а Prom.ua забирає його за розкладом — ціни й наявність на майданчику оновлюються без ручного завантаження файлів.

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

  • Ціни й наявність змінюються щодня — кожен прогін збирає фід заново, Prom бере його за тим самим посиланням.
  • Додали нові товари — вони йдуть у фід зі своїм ідентифікатором, і Prom додає їх як нові.
  • Товари мають розміри й кольори — різновиди складаються на Prom в одну картку.
  • Каталог зламався вночі — стоп-правило не перезапише фід, у якому зникла наявність.

З чого почати: створіть шаблон «prom.ua (XML)» і вставте посилання на файл у кабінет Prom.

Що вміє XML-фід для Prom

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

Меню
Довідники → Операції → Вивантаження даних
Стоп-правила
бургер-меню списку → «Стоп-правила вивантаження»
Право доступу
вікно «Вивантаження даних»; для картки — «Детальне налаштування шаблону вивантаження»
Підготувати
доступ до кабінету Prom, щоб вставити посилання на фід

Як налаштувати фід

Prom XML — стандартний YML-фід: у корені yml_catalog, усередині — блок категорій і блок пропозицій (offers). Фід живе за адресою: оновили каталог у Elbuz — за тим самим посиланням лежать свіжі дані.

  1. Створіть шаблон вивантаження й оберіть формат «prom.ua (XML)».
  2. Визначте, які товари вивантажувати: весь каталог, окремі категорії чи за правилами відбору.
  3. За потреби відкоригуйте склад offer у розділі «Шаблон XML».
  4. Натисніть «Перевірити» — побачите один товар таким, яким він піде у фід.
  5. Запустіть вивантаження й скопіюйте посилання з колонки «Файл» у кабінет Prom (або віддавайте файл на FTP).
  6. Задайте розклад у «Налаштуваннях розкладу», а в кабінеті Prom — як часто майданчик забирає фід.

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

Офіційний опис формату фіда — у довідці Prom: Імпорт через YML — формат файлу. Загальний розділ обміну — Імпорт та експорт.

Що потрапляє у фід

Кожен товар — один offer. Набір елементів можна змінювати в шаблоні; за замовчуванням він такий:

Елемент XMLЩо містить
offer id="…" available="…" group_id="…"id — ідентифікатор товару (ваш UUID); available — поточна наявність; group_id — прив'язка різновиду до основного товару
urlпосилання на товар
price / currencyIdціна та валюта
categoryIdідентифікатор категорії товару
picture (до 10 шт.)зображення; для Prom кількість фото обмежена десятьма
nameназва товару
vendor / vendorCodeвиробник та артикул (MPN)
descriptionопис товару
param name="…" unit="…"характеристики (атрибути): назва, одиниця виміру і значення

Категорії за замовчуванням несуть ваші ідентифікатори: у категорії id="{uuid}" з прив'язкою до батьківської, у товарі — той самий ключ у categoryId. Щоб віддавати номер категорії самого Prom, є підстановки {category_id_prom} і {category_name_prom}: вони беруть значення, заповнені при зіставленні з довідником майданчика.

Ідентифікатор — той самий UUID, що і в XLSX

id пропозиції — наш UUID товару, той самий ключ, що йде в колонку «Ідентифікатор_товару» файлу XLSX. Prom упізнає товар за id і оновлює наявну позицію; новий товар зі своїм UUID додає як новий. Формати між собою не «сваряться». Чому це рятує від дублів — Як Elbuz оновлює товари на Prom без дублів.

Не чіпайте в шаблоні атрибут id="{uuid}": це ключ синхронізації, і ручна зміна призведе до задвоєння позицій на Prom.

Якщо id пропозиції все-таки змінили

  1. Поверніть у шаблоні атрибут у вигляд id="{uuid}" — так він стоїть у шаблоні за замовчуванням.
  2. Натисніть «Перевірити»: у id має стояти той самий довгий ідентифікатор, що й у колонці «Ідентифікатор_товару» вивантаження XLSX.
  3. Запустіть вивантаження. Наступний фід знову посилатиметься на ті самі картки, що й до помилки.

Картки, які встигли створитися на Prom з іншим id, прибирають у кабінеті Prom: команд на видалення у фіді немає.

Звідки береться опис

За замовчуванням у фід іде поле «Опис повний» з картки: <description>{description_full}</description>. HTML-розмітка при цьому екранується, і теги потрапляють у файл як текст.

  • Віддати HTML як є — загорніть підстановку в CDATA: <description><![CDATA[{description_full}]]></description>.
  • Віддати інший текст — замініть підстановку в розділі «Шаблон XML» на інше поле, наприклад {description_short} («Опис короткий»), або на власний текст.

Характеристики й різновиди

Характеристики виходять елементами param з атрибутами name і unit. Українські назви й значення виводять власним шаблоном рядка атрибута з макросами {Атрибут: Название_ua} та {Атрибут: Значение_ua}.

Різновиди зв'язуються через group_id: Prom складає їх в одну картку з вибором варіанта. Для Prom у фід ідуть самі різновиди (з галочкою «Опції» в шаблоні), а основний товар, у якого є різновиди, пропускається.

Що перезаписує кожен прогін

Фід не дописується — щоразу він збирається з нуля. У кожному файлі стоїть поточне значення з Elbuz для кожного елемента шаблону: ціна, наявність, назва, опис, характеристики, фото. Elbuz не питає в Prom, що там правили руками.

Щоб лишити поле за собою, приберіть його елемент із «Шаблон XML»: чого немає в шаблоні, того немає й у файлі. Окремої галочки «не чіпати це поле» немає. Як Prom чинить із полями, яких у фіді немає, задає майданчик.

Галочка «Вивантажувати лише нові дані»

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

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

Коли товар зникає з фіда

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

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

Нуль на складі товар із фіда не прибирає. За замовчуванням available="true" отримує тільки статус «В наявності», решта статусів — available="false", а товар лишається у файлі. Що віддавати за кожним статусом, задають у вікні «Налаштування оновлення за наявністю товару» з картки шаблону.

Масове зникнення ловлять стоп-правила: за замовчуванням вони попереджають, якщо наявність упала більш ніж на 30%, загальна кількість — більш ніж на 50% або вивантажувати нічого. У режимі «Зупинити вивантаження» файл не перезапишеться. Детальніше — Стоп-правила.

Вікно «Стоп-правила вивантаження» для шаблону prom.ua (XML)
1Поріг
2Режим
3Показувати зведення перед запуском
  1. Поріг — значення, при перевищенні якого правило спрацьовує.
  2. Режим — що робити при спрацюванні: вимкнено, попереджати або зупинити вивантаження.
  3. Перемикач показує зведення змін перед запуском вивантаження.

Що робить із позиціями, яких не стало у фіді, сам Prom, — правило майданчика.

Розклад, журнал і посилання на фід

Запуск, зведення перед запуском, розклад і журнал однакові для всіх шаблонів — Запуск руками і за розкладом, Журнал прогону. Нижче — що варто знати саме про фід Prom.

Як іде прогін

  1. Передпольотне зведення і стоп-правила: у режимі «Зупинити вивантаження» файл не чіпається зовсім.
  2. Категорії («Вивантаження категорій товарів»), якщо їх увімкнено в шаблоні.
  3. Товари: кожні 500 товарів у журналі рядок «Вивантаження товарів 500 із 12 340».
  4. Файл іде спершу на FTP (якщо заповнено «Налаштування FTP»), потім у сховище; старі файли шаблону прибираються лише після заливання нового.
  5. У шаблон записуються посилання, розмір і дата; останній рядок — «Вивантаження даних завершено».
Бічні гілки — коли прогін закінчується без нового файлу, і за посиланням лишається попередній. Файл у сховищі змінюється лише на нижньому, прямому шляху
ТакНіТакНіНіТакЗапуск: кнопка «Вивантажити»,розклад або «Вивантажити всішаблони»Передпольотне зведенняі перевірка стоп-правилСпрацювало правило в режимі«Зупинити вивантаження»?«Вивантаження зупиненостоп-правилом».За посиланням лишаєтьсяпопередній файлФайл збирається з нуля:категорії, потім товари порціямипо 500Жоден товар не пройшов відбір,формула шаблону зламала запитабо натиснули «Стоп»?«Вивантаження даних НЕзавершено:файл не сформовано».За посиланням лишаєтьсяпопередній файлФайл іде на FTP,якщо заповнено «НалаштуванняFTP»Новий файл заливається усховищеФайл залився?«Файл не завантажився в хмарнесховище».«Вивантаження даних НЕзавершено».За посиланням лишаєтьсяпопередній файлЗі сховища прибираютьсяпопередні файли шаблонуУ шаблон записуютьсяпосилання, розмір і датаТоварам, що потрапили у файл,ставиться «Вивантажено»,якщо увімкнено «Вивантажуватилише нові дані»«Вивантаження данихзавершено»
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Якщо прогін обірвався

Напівзібраного фіда Prom не отримає: публікація — остання дія прогону. Ознаки обриву — дата в «Останнє вивантаження» не зрушила, а в журналі «Вивантаження даних НЕ завершено: файл не сформовано» або «Вивантаження перервано користувачем!». Кнопка «Стоп» обриває фід Prom на найближчому товарі.

  • Жоден товар не підійшов — файл не перезаписується, за посиланням попередній.
  • Файл не залився у сховище — у журналі «Файл не завантажився в хмарне сховище…». На FTP новий файл уже лежить: туди він іде раніше.

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

Два способи, якими завдання за розкладом закінчується без прогону: зайнято іншим вивантаженням — з рядком у журналі, шаблон вимкнений — мовчки. Пунктир — сторож, що знімає позначку з померлого прогону
ТакНіНіТакПрогін помер, позначкалишиласяНастав час завдання зарозкладомІнше вивантаження за розкладомще виконується?Завдання скасовано:«Скасовано вивантаження зарозкладом…»Завдання позначаєтьсяяк таке, що виконуєтьсяШаблон завдання «Активний»?Шаблон пропускається.У журналі нічогоЗвичайний прогін шаблонузі стоп-правиламиСторож знімає позначку: минулагодинавід старту і пів години тиші вжурналі
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Як побачити, що відпрацювало

У списку шаблонів результат видно без відкриття картки: «Останнє вивантаження», «В наявності» з різницею щодо минулого прогону і «Файл» із кнопкою «Копіювати посилання» та розміром. Майже порожній фід помітний уже за розміром.

Рядок шаблону «prom.ua (XML)» у списку вивантажень
1Останнє вивантаження
2В наявності
3Файл
  1. Останнє вивантаження — дата й тривалість останнього прогону шаблону.
  2. В наявності — скільки товарів потрапило у файл і як це змінилося щодо минулого прогону.
  3. Файл — ім'я файлу, кнопка «Копіювати посилання» та розмір.

Кнопка «Перевірити» показує готовий offer одного товару і помилки: невалідний XML, помилку у формулі, нерозпізнані макроси. У бойовому прогоні нерозпізнаний макрос вирізається мовчки, і вузол виходить порожнім. Чи влаштують Prom назви, категорії й характеристики, вирішує сам Prom при імпорті.

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

  • Вимкнений шаблон не запускається за розкладом і в масовому прогоні, без рядка в журналі. За посиланням лишається останній фід, уже не свіжий. Кнопкою «Вивантажити» його можна запустити вручну.
  • Видалення прибирає текст XML-шаблону, відбір, статуси наявності, FTP і розклад. Повернути — лише новим шаблоном із новим посиланням.

Межі та числа

  • Стелі за кількістю товарів немає. На демо-акаунті — 100 товарів, про це є рядок у журналі.
  • Фото — до десяти на товар. Менше задають у полі «Максимальна кількість фотографій» картки шаблону.
  • Розклад — від години. Варіанта «щохвилини» в конструкторі розкладу немає.
  • Масовий прогін — по черзі. «Вивантажити всі шаблони» бере активні шаблони один за одним.
  • У кожного шаблону своє посилання, навіть за однакового імені файла.

Не ставте в імені файла підстановки {DATE}, {DATETIME} чи {TIME}. Ім'я тоді змінюється з кожним прогоном, а попередня копія стирається — посилання в кабінеті Prom перестане працювати наступного ж дня.

XML чи XLSX — коли що

Для щоденного автоматичного оновлення цін і наявності зручніший XML-фід: Prom забирає його сам. Для повного обміну з усіма колонками Prom — файл XLSX. Ключ товару в них однаковий, тож можна залити каталог файлом, а далі тримати свіжим фідом. Порівняння й що буває, коли ті самі товари йдуть обома шляхами, — XLSX чи XML/YML.

Фід — рух в один бік: із Prom у Elbuz він нічого не забирає. Для цього є імпорт XLSX (Prom/EVO).

Сценарії

Тримати ціни й наявність на Prom свіжими щодня

Що ввімкнути. Шаблон формату «prom.ua (XML)», розклад у «Налаштуваннях розкладу», а посилання з колонки «Файл» — у кабінет Prom. Галочку «Вивантажувати лише нові дані» лиште знятою.

Що вийде. Кожен прогін збирає файл з нуля з поточними цінами й статусами, і за тим самим посиланням лягає новий файл. Товар без залишку лишається у файлі з available="false".

Чого не буде. Позиції на Prom фід не видаляє: команди «прибрати» у файлі немає.

Продавати на Prom лише частину асортименту

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

Що вийде. У файл іде тільки те, що пройшло відбір. Передпольотне зведення рахує товари за тим самим фільтром.

Чого не буде. Товари, що випали з відбору, з Prom не прибираються — фід просто перестає їх містити.

Товари з розмірами й кольорами

Що ввімкнути. Галочку «Опції» в шаблоні.

Що вийде. Кожен різновид іде окремим offer з group_id основного товару. Сам основний товар у фід для Prom не йде.

Чого не буде. Без галочки «Опції» різновиди у файл не потрапляють, а основний товар однаково пропускається — такий товар зникає з фіда повністю.

Не віддати Prom порожній фід через збій у каталозі

Що ввімкнути. Виділіть шаблон у списку, у меню «Додаткові операції» відкрийте «Стоп-правила вивантаження», для потрібного правила поставте «Зупинити вивантаження» і натисніть «Зберегти для цього шаблону».

Що вийде. Якщо наявність чи кількість товарів упала більше за поріг щодо минулого успішного прогону, прогін зупиняється ще до збирання файлу — і вручну, і за розкладом. За посиланням лишається минулий фід.

Чого не буде. Зупинений або незавершений прогін не стає новою точкою порівняння: нею буває лише успішне вивантаження.

Назви й описи правлю в кабінеті Prom, від Elbuz потрібні лише ціна й наявність

Що ввімкнути. Приберіть із «Шаблон XML» елементи, які не хочете віддавати, — наприклад, опис. Атрибут id="{uuid}" не чіпайте.

Що вийде. Прибраного елемента у файлі немає.

Чого не буде. Elbuz не знає, що ви правили на Prom. Як майданчик поводиться з полями, яких немає у фіді, — правило самого Prom.

Що робити, коли фід не оновився

Що робити, коли фід повівся не так, як очікували
Що ви бачитеЧому такЩо зробити
«Вивантаження даних НЕ завершено: файл не сформовано» Під умови шаблону не підійшов жоден товар, формула в шаблоні зламала запит або файл не залився у сховище — тоді вище в журналі є «Файл не завантажився в хмарне сховище…» Якщо файл не залився у сховище — запустіть вивантаження ще раз. Інакше натисніть «Перевірити»: вона назве помилку формули чи підстановки. Далі перевірте відбір (коли товар зникає з фіда)
«Вивантаження зупинено стоп-правилом: …» Товарів або наявності стало помітно менше, ніж у минулому успішному прогоні Перевірте статуси наявності в базовому каталозі; якщо цифри правильні — підніміть поріг у вікні «Стоп-правила вивантаження» (коли товар зникає з фіда)
«Скасовано вивантаження за розкладом, причина - вивантажується інший шаблон (конфлікт обробки даних)» Два вивантаження за розкладом одночасно не запускаються Рознесіть шаблони за часом у «Налаштуваннях розкладу» (якщо прогін обірвався)
У фіді порожні вузли: <name></name> Підстановку написано з помилкою — такі вирізаються з файлу без попередження «Перевірити»: у зауваженнях буде «Макроси не розпізнано, і вони будуть вирізані з файлу» (як побачити, що відпрацювало)
У файл пішла лише частина асортименту Увімкнено «Вивантажувати лише нові дані», а решту товарів уже позначено як вивантажені Зніміть галочку в розділі «Що вивантажувати» і запустіть прогін ще раз (лише нові дані)
Посилання, внесене в кабінеті Prom, перестало відкриватися В імені файла стоїть {DATE} або {DATETIME}: щопрогону створюється новий файл, а старий стирається Приберіть підстановку з імені файла, вивантажте ще раз і внесіть у кабінет нове посилання (межі та числа)

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

Який ідентифікатор товару у XML-фіді?

Атрибут id пропозиції — UUID товару в Elbuz, той самий ключ, що й «Ідентифікатор_товару» у XLSX. Тому Prom оновлює позиції без дублів.

Як Prom підхопить нові товари з фіда?

Новий товар іде у фід зі своїм UUID у id. Prom бачить невідомий ідентифікатор і додає товар як новий, а наявні позиції оновлює.

Чому у фіді не всі фото товару?

Для Prom кількість зображень у фіді обмежена десятьма на товар — це вимога майданчика. Перше фото вважається головним.

Чи треба щоразу вивантажувати фід вручну?

Ні. Задайте розклад шаблону, а Prom забирає фід за посиланням зі своєю періодичністю. Далі каталог на Prom оновлюється сам.

Як передаються різновиди (варіанти) товару?

Через атрибут group_id: Prom складає їх в одну картку з вибором варіанта. У фід ідуть самі різновиди з галочкою «Опції», а основний товар пропускається.

Що буде, якщо вивантаження обірветься посередині?

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

Що дає вимкнення шаблону?

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

Яке поле товару йде в опис (description) фіда Prom і як підставити своє?

За замовчуванням — «Опис повний» ({description_full}), HTML-теги екрануються. Для HTML як є загорніть підстановку в CDATA, для іншого тексту замініть її в «Шаблон XML» (звідки береться опис).

Суміжні теми

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