Elbuz читає товарний фід XML / YML — файлом або за посиланням — і сам розкладає кожну пропозицію по полях картки: назву, ціну, наявність, фото, характеристики й категорію. Розмічати колонки не треба.
Коли це знадобиться:
- Каталог є у вигляді YML-фіда (Prom, Rozetka, Hotline, CMS) — товари лягають у каталог разом із категоріями.
- Фід лежить за посиланням — шаблон за розкладом оновлює ціни й залишки.
- Ціни у фіді в іншій валюті — програма перераховує їх у базову за курсом із фіда.
- Кольори й розміри — окремі пропозиції — з однаковим group_id вони складаються в один товар із варіантами.
З чого почати: шаблон типу «XML» з посиланням на фід у вікні «Завантаження».
Що вміє імпорт XML / YML
- Розкладає пропозиції по картках — назва, ціни, артикул, виробник, фото, опис, штрихкод і характеристики без ручної розмітки.
- Оновлює, а не дублює — товар упізнається за
idпропозиції, а варіанти — заgroup_id. - Читає наявність і валюту — статус ставиться за вашим довідником, ціна перераховується в базову валюту.
- Відтворює дерево категорій з блоку
categoriesфіда. - Оновлює каталог за розкладом, коли фід доступний за посиланням.
- Тримає каталог дзеркалом фіда — за окремою галочкою видаляє те, чого у фіді вже немає.
Де це і хто має доступ
- Меню
- Довідники → Операції → Завантаження даних → шаблон типу «XML»
- Право доступу
- вікно «Завантаження» у «Правах груп»
- Підготувати
- файл
.xml/.ymlабо пряме посилання на фід
Джерело в шаблоні — «Локальний файл» або «Зовнішнє посилання». За розкладом працює тільки посилання.
1
Перемикач «Локальний файл / Зовнішнє посилання»2
Поле джерела (файл або посилання)- Перемикач дозволяє обрати, звідки брати файл — локальний комп'ютер чи зовнішнє посилання.
- Поле джерела показує обраний файл або адресу посилання, з якої буде завантажено дані.
Який фід Elbuz прочитає без розмітки
YML — це XML із наперед відомою структурою. У корені лежить yml_catalog, у ньому — магазин із трьома блоками: валюти (currencies), категорії (categories) і пропозиції (offers). Кожна пропозиція offer — один товар. Назви елементів стандартні, тому Elbuz сам знає, де ціна, де картинка, а де категорія.
XML із довільними назвами вузлів цей шаблон не прочитає — такий файл вантажать універсальним імпортом, де відповідність полів задаєте ви.
YML — специфікація Yandex Market, яку підтримують багато майданчиків. Опис формату для конкретного майданчика — у його довідці, наприклад у Prom: Імпорт через YML — формат файлу. Elbuz читає стандартні елементи YML незалежно від джерела.
1
Рядок шаблону «Yandex Market (формат YML)»- Рядок шаблону «Yandex Market (формат YML)» типу XML у списку завантажень.
Як Elbuz упізнає товар із фіда
Ключ зіставлення — атрибут id пропозиції (offer id="…"). Elbuz записує його в поле товару «ID товару (рядок UUID)» і на кожному прогоні шукає картку саме за ним. Стабільний id — повторний імпорт оновлює наявну картку. Id, що змінюється від вивантаження до вивантаження, щоразу дає дублі. Детальніше: повторний імпорт без дублів.
Атрибут group_id зв'язує варіанти одного товару: пропозиції з однаковим group_id складаються в один товар із варіантами, перша в групі стає основною.
Id береться так, як записаний у файлі. Два фіди з простою нумерацією (1, 2, 3…) дають однакові ключі, і другий шаблон перепише картки першого. Розводить їх галочка «Перевірити унікальність записів з урахуванням цього джерела завантаження». Детальніше: два шаблони на той самий товар.
Дублі від нестабільного id видно в сітці товарів: назва однакова, «ID товару (рядок UUID)» різний, «Дата додавання» — день прогону. Спершу полагодьте джерело, потім приберіть зайве. Детальніше: якщо завантажили не те.
Куди потрапляють значення пропозиції
| Елемент YML | Поле картки в Elbuz |
|---|---|
атрибут id | UUID (ключ зіставлення) |
name (або vendor + model для type="vendor.model") | назва товару |
price (+ priceuah/pricerub/priceusd/pricekzt) та currencyId | ціна (перераховується у вашу базову валюту за курсом) |
oldprice | стара ціна |
атрибут available (true/false), presence, stock | статус наявності |
quantity | залишок |
vendorCode (або code) | артикул (MPN) |
vendor (або publisher) | виробник |
categoryId / category / блок categories | категорія товару |
picture / image (кілька) | фото (перше — головне) |
description | опис |
barcode / ISBN | штрихкод (EAN) / ISBN |
param name="…" | характеристики (атрибути); param name="sku" → артикул SKU |
url, keywords | посилання на товар, ключові слова (теги) |
manufacturer_warranty | гарантія |
Для пропозиції типу vendor.model назва збирається з бренду й моделі, інколи з префіксом типу (typePrefix). Елемент param стає атрибутом товару: name — назва атрибута, вміст — значення. Елемента у фіді немає — поле нової картки лишається порожнім.
Що перезапише повторний прогін
- Порожнє у фіді ваше не стирає: артикул, модель, штрихкод, ISBN, гарантія, теги, посилання на товар, виробник і категорія оновлюються, лише коли у фіді для них щось є.
- Ціна, стара ціна, кількість, назва й опис записуються як є: немає
quantity— у картці стане нуль, немаєname— назва спорожніє. - Фото доливаються: до наявної картки додаються знімки, яких там ще не було.
Картку з прапорцем «Не оновлювати» прогін не чіпає разом із назвою й описом, з «Фіксованою ціною» — оновлює все, крім ціни й старої ціни. Після запису прогін ще виконує формули полів, позначені для завантаження, — їхній результат лишається в картці. Детальніше: як закріпити своє значення, що відбувається після прогону.
- Початок або кінець
- Дія або результат
- Розвилка: далі шлях залежить від відповіді
Як читаються наявність і ціна
Статус наявності береться з першого, що знайдеться у пропозиції:
| У фіді | Статус у картці |
|---|---|
текст у presence чи stock («в наявності», «під замовлення») | за вашими правилами визначення статусу |
атрибут available="true" | «у наявності» |
атрибут available="false" | «немає» |
| нічого | перший статус довідника з класифікацією «Є» і його «Кількість за замовчуванням» |
Фід без ознаки наявності зробить товари такими, що є на складі. Якщо це не те, перевірте статуси й кількість у довіднику до першого прогону.
presence важить більше за атрибут available. Правила визначення статусу й статус за замовчуванням ставлять ще й кількість — з довідника, а не з фіда.- Початок або кінець
- Дія або результат
- Розвилка: далі шлях залежить від відповіді
Валюта й ціна
Ціна береться з першого заповненого елемента: price, priceuah, pricerub, priceusd, pricekzt. Валюту задає currencyId, курс — блок currencies самого фіда:
- Валюта товару є в
currencies— ціна перераховується в базову за курсом із фіда. - Курс валюти товару у фіді дорівнює 1, вона не ваша базова, а курсу базової у фіді немає — курс береться з вашого довідника валют.
- Валюти товару в
currenciesнемає — ціна завантажується без перерахунку, «як є».
Як із фіда будуються категорії
Дерево категорій Elbuz будує з блоку categories: кожен category з атрибутами id і parentId задає розділ і його батька. Товар прив'язується до розділу за своїм categoryId.
Без розділу нова картка не створюється. Нова пропозиція потрапляє в каталог, лише коли її categoryId збігся з розділом — створеним із блоку categories цього файлу або заведеним раніше. Немає блоку й таких розділів — жоден новий товар не заведеться, хоча журнал покаже повне «Всього товарів завантажено»: це прочитані пропозиції, а не створені картки.
Вже наявні картки такий фід оновить нормально, свій розділ вони збережуть.
Розділи з фіда прогін повертає до стану файлу. Перейменували розділ у Elbuz — наступне завантаження поверне назву з фіда. Перенесли товар в інший розділ — прогін поверне й це, якщо у фіді для товару розділ вказано. Свою структуру будуйте для товарів, яких фід не веде, або змінюйте її в самому джерелі.
Видалення розділу видаляє товари, для яких він основний, — з описами, фото й атрибутами. Наступний прогін заведе їх наново вже іншими картками. Детальніше: службові категорії та видалення категорії з товарами.
Як оновлювати каталог за посиланням
Коли шаблон із посиланням перевірено, поставте його на розклад кнопкою «Налаштування розкладу» в картці шаблону. Elbuz сам забиратиме свіжий фід і оновлюватиме ціни, наявність і залишки. Частоту обирайте за джерелом: фіду, що змінюється раз на добу, щогодинний імпорт не потрібен.
За розкладом працює тільки посилання. Планувальник бере адресу, записану в шаблоні; файл із комп'ютера — разова ручна операція. Шаблон, у якому заповнене лише поле файлу, за розкладом нічого не робитиме.
- Початок або кінець
- Дія або результат
- Розвилка: далі шлях залежить від відповіді
1
Стан шаблону2
Історія запусків3
Завантажити- Пілюля стану показує, чи шаблон «Активний» або «Вимкнений».
- Значок «Історія запусків» відкриває журнал попередніх завантажень.
- Кнопка «Завантажити» запускає завантаження за цим шаблоном.
Пауза, тривалість і обрив прогону
- Пауза. Пілюля «Вимкнений» у шапці шаблону зупиняє розклад, товари й налаштування лишаються. Детальніше: вимкнути шаблон чи видалити.
- Тривалість. Стелі за кількістю пропозицій немає, файл читається потоково. Тривалість останнього прогону стоїть у колонці «Останнє завантаження», історію показує «Історія запусків». Детальніше: межі прогону, як перевірити завантаження.
- Лічильник у журналі оновлюється кожну тисячу пропозицій, тож на невеликому фіді рядка «З файлу отримано товарів» може не бути — підсумок покаже «Всього товарів завантажено».
- Обрив. Записане до зупинки лишається, повторний запуск безпечний, якщо
idу фіді не змінюються. Два завантаження одночасно не запускайте. Детальніше: якщо прогін обірвався.
Що буде з товаром, якого не стало у фіді
За замовчуванням — нічого: зникла пропозиція лишається в каталозі з тією самою ціною, наявністю й залишком. Дзеркальний режим вмикає галочка «Видаляти записи в базовому каталозі, яких немає в завантаженому файлі» — вона видаляє картки остаточно, а коли у файлі є блок categories, то й розділи, яких у ньому немає.
Без галочки «Перевірити унікальність записів з урахуванням цього джерела завантаження» під видалення потрапляє весь каталог, а не лише товари цього шаблону. Якщо з файлу не прочиталося жодного товару, видалення не виконується. Детальніше: товар зник із джерела.
1
Видалення записів, яких немає у файлі2
Унікальність з урахуванням джерела3
Налаштування розкладу- Видаляти записи в базовому каталозі, яких немає в завантаженому файлі — прибирає з каталогу товари, відсутні в новому файлі.
- Перевірити унікальність записів з урахуванням цього джерела завантаження — порівнює записи лише в межах цього джерела.
- Налаштування розкладу — кнопка відкриває розклад автоматичного завантаження.
- Початок або кінець
- Дія або результат
- Розвилка: далі шлях залежить від відповіді
Сценарії
Постачальник віддає фід за посиланням, ціни й залишки мають оновлюватися самі
Що ввімкнути. У шаблоні — «Зовнішнє посилання» й адресу фіда в полі «Посилання на файл із товарами (Каталог)». Далі «Налаштування розкладу» в блоці «Повʼязані налаштування»; пілюля в шапці шаблону — «Активний».
Що вийде. У призначений час планувальник забирає файл і проводить той самий прогін, що й кнопка «Завантажити». Товари, яких у свіжому фіді вже немає, лишаться з попередньою ціною й залишком. Якщо в цю мить іде інше завантаження за розкладом, запуск скасується з рядком про конфлікт обробки даних.
Каталог має в точності повторювати фід
Що ввімкнути. У блоці «Що завантажувати» — «Видаляти записи в базовому каталозі, яких немає в завантаженому файлі» і разом із ним «Перевірити унікальність записів з урахуванням цього джерела завантаження».
Що вийде. На кожному прогоні картки, яких немає у файлі, видаляються з описом, фото й атрибутами. Друга галочка береже товари інших шаблонів завантаження; заведені вручну, з прайс-листа чи парсером під видалення потрапляють. Видалене не відновлюється. Галочка видалення неактивна — у вашої групи немає на неї права.
Два постачальники нумерують товари однаково
Що ввімкнути. «Перевірити унікальність записів з урахуванням цього джерела завантаження» в шаблонах обох фідів.
Що вийде. Кожен шаблон шукає збіг id серед своїх карток і заведених вручну, з прайс-листа чи парсером. Пропозиція з тим самим id з другого фіда заведеться окремою карткою, якщо її categoryId знайшов розділ. Картки, що злиплися до ввімкнення галочки, не розділяться: вони лишаються за шаблоном, який їх створив.
Ціну ставите самі, а залишок і наявність беруться з фіда
Що ввімкнути. У картці товару — прапорець «Фіксована ціна».
Що вийде. Прогін оновлює залишок, статус наявності, артикул та інші поля, а ціну й стару ціну не чіпає. Назву й опис фід перезапише. Щоб уберегти від фіда всю картку, ставте «Не оновлювати».
Що робити, коли фід завантажився не так
| Що ви бачите | Чому так | Що зробити |
|---|---|---|
| «Файл не вдалося передати на сервер. Можливо, він завеликий або зв'язок обірвався» | Файл із комп'ютера не доїхав до сервера: обмеження розміру сервера або обрив зв'язку | Завантажте фід за посиланням — там цього обмеження немає (оновлення за посиланням) |
| «Всього товарів завантажено: 0» | За посиланням приїхав не фід — сторінка помилки чи форма входу — або файл не YML | Відкрийте посилання в браузері й переконайтеся, що віддається XML. Каталог не постраждав (зник із фіда) |
| Пропозицій у файлі сотні, а нових карток не додалося | Для нових позицій не знайшовся розділ: немає блоку categories або categoryId не збігається |
Перевірте блок розділів у фіді (категорії) |
| Кирилиця в назвах «поламана» | Файл не в кодуванні UTF-8 | Попросіть джерело віддавати фід в UTF-8 |
| Ціна завантажилася в чужій валюті, без перерахунку | Валюти товару немає в блоці currencies фіда |
Додайте валюту з курсом у фід (валюта й ціна) |
| XML завантажився, а ціни, фото чи назви порожні | Назви вузлів у файлі не стандартні для YML | Вантажте файл універсальним імпортом з власною розміткою |
| «Скасовано завантаження за розкладом, причина - завантажується інший шаблон (конфлікт обробки даних)» | У цю мить уже йшло інше завантаження | Рознесіть розклади шаблонів у часі (обрив прогону) |
| «Операція перервана користувачем!» | Спрацювала кнопка зупинки — ваша чи іншого співробітника | Запустіть завантаження знову: повтор безпечний (обрив прогону) |
Часті запитання
Яка різниця між XML і YML?
YML — це XML із фіксованою структурою Yandex Market. Файл зі структурою YML (yml_catalog, offers, categories) вантажиться шаблоном «XML» без розмітки. Довільний XML вантажать універсальним імпортом.
XML надіслав постачальник — вантажити його в каталог чи в прайс-лист?
Файл описує ваш асортимент — вантажте шаблоном «XML» у каталог. Файл описує асортимент постачальника, ціни якого треба порівнювати й націнювати, — заводьте прайс-лист (розмітка колонок прайс-листа).
Чому в товарах немає опису чи характеристик?
Elbuz бере лише те, що є у фіді. Немає у пропозиції description чи param — поля лишаться порожніми. Дозаповнити картки можна парсером зі сторонніх сайтів.
Як зупинити автоматичне оновлення, нічого не видаляючи?
Перемкніть пілюлю в шапці шаблону на «Вимкнений». Планувальник шаблон пропускає, товари, розклад і налаштування лишаються, а кнопка «Завантажити» працює й далі (пауза).
Після кожного завантаження з'являються копії товарів. Чому?
Джерело віддає нові id пропозицій на кожне вивантаження. Попросіть джерело зробити id сталими, а копії приберіть (дублі).
Чи можна віддати свій каталог у форматі YML?
Так, це окремий шаблон вивантаження — вивантаження у форматі YML (XML).
Суміжні теми
- Якщо треба обрати спосіб завантаження або зрозуміти, що перезапише повторний прогін — Завантаження даних у базовий каталог.
- Якщо XML нестандартний або це Excel чи CSV — Універсальний імпорт.
- Якщо каталог треба віддати на майданчик фідом — Вивантаження у форматі YML.
- Якщо XML — це прайс постачальника — Розмітка колонок прайс-листа.

