XML — найпоширеніший формат обміну товарами між системами. Його різновид YML (Yandex Market Language) свого часу зробив популярним Yandex Market, і тепер у ньому віддають каталоги безліч магазинів, CMS і постачальників. Якщо у вас є файл .xml чи .yml зі списком товарів — або посилання на нього, — Elbuz завантажить його в базовий каталог.
Ця стаття — про завантаження такого файлу як вашого каталогу. Це один із способів, описаних у загальному огляді завантаження даних: коли формат файлу стандартний, для нього є готовий шаблон і колонки не треба розмічати руками. Саме тому з YML починають найчастіше — це найшвидший шлях залити готовий каталог, якщо файл у вас уже є.
Де це у програмі
У вікні імпорту ви створюєте шаблон і обираєте тип «XML / Yandex Market (YML)». Це файлове джерело: файл можна або завантажити з комп'ютера, або дати посилання, за яким програма забиратиме його сама. Посилання зручніше: постачальник оновлює файл за тією самою адресою, а Elbuz за розкладом підтягує свіжу версію.
Що варто зробити до першого завантаження
Перед тим як вантажити повний каталог, витратьте кілька хвилин на підготовку — це заощадить години на виправленнях потім. Відкрийте файл і перегляньте, які поля в ньому взагалі є: чи вказані картинки, чи є характеристики, у якій валюті ціни. Переконайтесь, що файл у кодуванні UTF-8, а посилання відкривається без пароля. Якщо товарів багато, візьміть для проби невелику частину або одну категорію: завантажте, перевірте кілька карток очима — назви, ціни, картинки, розділ — і лише переконавшись, що все стало правильно, запускайте повний файл. Так ви побачите проблеми на десятку товарів, а не на десяти тисячах.
Що таке YML-файл
Усередині YML — це звичайний XML із наперед відомою структурою. У корені лежить yml_catalog, у ньому — магазин, а в магазині два головні блоки: категорії й пропозиції (offers). Категорії задають дерево розділів, а кожна пропозиція — це товар із набором полів: назва, ціна й валюта, посилання на категорію, картинки, характеристики (param) і наявність.
Саме тому для YML не потрібна ручна розмітка колонок: назви полів у форматі стандартні, і Elbuz знає, де шукати ціну, де картинку, а де категорію. Якщо ж ваш XML нестандартний — з довільними назвами вузлів, — для нього краще підійде універсальний імпорт, де відповідність полів ви задаєте самі.
Які поля товару читає Elbuz
З кожної пропозиції YML програма бере стандартний набір полів: назву товару, ціну й валюту, посилання на категорію, одну чи кілька картинок, виробника та його код, характеристики (колір, розмір, матеріал тощо), а також наявність і залишок. Опис підтягується, якщо він є у файлі. Чим повніший YML у постачальника, тим більше готового контенту одразу опиниться в картках — менше доведеться дозаповнювати руками. Якщо якогось поля у файлі немає, відповідне місце в картці просто лишиться порожнім: програма не вигадує те, чого немає в джерелі.
Як завантажити крок за кроком
Порядок простий. Створюєте шаблон і обираєте тип «XML / Yandex Market (YML)». Вказуєте джерело — завантажуєте файл або вставляєте посилання на нього. Обираєте, що саме завантажувати: категорії, товари, виробників. Запускаєте — програма читає файл і наповнює каталог. Перший запуск створює товари, наступні оновлюють наявні.
Радимо перший раз запустити на невеликому або тестовому файлі й перевірити, що товари стали як треба: правильні назви, ціни, картинки й категорії. Переконались — далі можна вантажити повний файл.
Що потрапляє в каталог
Із YML у базовий каталог переносяться: дерево категорій (розділи з файлу стають розділами каталогу), товари з назвою, ціною, валютою, зображеннями, характеристиками й наявністю, а також виробники (бренди), якщо вони вказані в пропозиціях. Що саме брати, ви вмикаєте в шаблоні: наприклад, можна тягнути лише ціни й наявність, не чіпаючи опис, який ви вже вичистили.
Оновлення за розкладом
Головна користь від імпорту за посиланням — автоматичне оновлення. Коли шаблон налаштовано й перевірено, поставте його на розклад: Elbuz сам забиратиме свіжий файл за адресою й оновлюватиме ціни та наявність. Так каталог лишається актуальним без ручних завантажень. Розклад задають кнопкою налаштування завдання прямо у формі шаблону.
Частота залежить від того, як часто оновлюється джерело: якщо постачальник міняє ціни раз на добу, щогодинний імпорт сенсу не має. Кілька шаблонів можуть мати різний розклад — кожен під своє джерело. Кожен запуск лишає слід у журналі: скільки товарів оновлено, скільки додано, чи були помилки. Туди варто зазирати перші кілька разів, щоб переконатися, що все йде як слід.
Часті труднощі
Найчастіше проблеми з XML — це кодування й адреси. Файл має бути у кодуванні UTF-8, інакше кирилиця «поламається». Посилання має вести напряму на файл, а не на сторінку із захистом чи авторизацією — інакше програма отримає не той вміст. Якщо категорії з файлу не збіглися з вашими наявними, їх можна перерозподілити вже після завантаження, у налаштуваннях каталогу.
Ще одна часта дрібниця — валюта й формат ціни. Якщо ціни у файлі в іншій валюті, ніж у вашому каталозі, увімкніть перерахунок за курсом, інакше числа приїдуть «як є». А коли в частини товарів немає картинок або характеристик, це не помилка імпорту: програма перенесла рівно те, що було у файлі, і порожні поля просто лишились порожніми.
Коли YML не підходить
Готовий шаблон розрахований на стандартну структуру YML. Якщо ваш файл — це XML із довільними назвами вузлів (кожна система вигадує свої), Elbuz не знатиме, де ціна, а де картинка. Такий файл вантажать універсальним імпортом, де відповідність полів ви задаєте самі. Дуже великі файли на сотні тисяч товарів краще завантажувати за посиланням і за нічним розкладом, щоб не чекати обробку вручну й не навантажувати систему вдень.
Якщо постачальник дає YML за посиланням — використовуйте саме посилання, а не завантаження файлу вручну. Тоді достатньо один раз налаштувати шаблон і розклад, і каталог оновлюватиметься сам, без вашої участі.
Часті питання
Яка різниця між XML і YML?
YML — це XML із фіксованою структурою, яку задав Yandex Market. Для Elbuz це один тип шаблону: якщо файл відповідає структурі YML, колонки розмічати не треба. Довільний XML із власними назвами вузлів вантажать універсальним імпортом.
Що краще — файл чи посилання?
Посилання. Файл із комп'ютера — це разове завантаження, а посилання дозволяє поставити оновлення на розклад: програма сама забирає свіжу версію за тією самою адресою.
Кирилиця в товарах перетворилась на «кракозябри», що робити?
Майже завжди це кодування файлу. YML має бути у UTF-8. Попросіть постачальника віддавати файл у цьому кодуванні або перезбережіть його у UTF-8 перед завантаженням.
Категорії з файлу не збіглися з моїми — це проблема?
Ні. Категорії з YML створюються як окреме дерево; товари можна перерозподілити у ваші розділи вже після імпорту. Для великих каталогів це роблять правилами розподілу за категоріями.
Повторний імпорт задвоїть товари?
Ні, якщо в пропозиціях стабільні ідентифікатори. Elbuz упізнає товар за id чи артикулом і оновлює наявну картку, а не створює копію.
Чому в товарах немає опису чи характеристик?
Elbuz бере лише те, що є у файлі. Якщо постачальник не поклав у YML опис чи характеристики — їх нема звідки взяти. Дозаповнити картки можна окремо: зібрати фото, опис і характеристики зі сторонніх сайтів парсером.

