↑↓ вибірEnter відкритиEsc закрити

    1. Elbuz
    2. Керівництво користувача Elbuz
    3. Постачальники та прайс-листи
    4. Завантаження прайсу
    5. Розмітка колонок прайсу

    Як розмітити XML, YML, BMEcat, DATANORM, JSON і CSV-прайс

    12 хв читанняОновлено

      Розмітка однакова для всіх форматів, різниться адреса: у таблиці це літера чи номер стовпця, в XML — імʼя тега, у JSON — номер колонки розгорнутої таблиці. Elbuz сам знаходить рядок заголовків Excel, роздільник CSV і теги YML-фіду.

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

      • Постачальник дає YML-фід — адреси підбираються автоматично, імена тегів вписувати не треба.
      • XML із власними тегами — вписуєте їх руками, AI підказує структуру.
      • У CSV замість заголовків незрозумілі символи — справа в кодуванні файлу, а не в розмітці.
      • Прайс у BMEcat чи DATANORM — файл розмічається сам.
      • Прайс у JSON — файл розгортається в таблицю, адреси задаються номерами колонок.

      З чого почати: оберіть свій формат.

      Який у вас формат

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

      • Книга ExcelАдреса — літера або номер стовпця; програма сама шукає рядок заголовків
      • CSV, TXT або TSVАдреса — номер стовпця; окремо важать роздільник і кодування файлу
      • XML або YMLАдреса — імʼя тега, атрибути в квадратних дужках; плюс чотири гілки структури фіду
      • BMEcatРозмічати не треба: програма сама впізнає каталог і розкладає поля
      • DATANORMРозмічати не треба; важливо, як надіслано файл цін і чи ввімкнено округлення
      • JSONАвтопідбору немає зовсім: файл розгортається в таблицю, адреси задаються руками

      Які розширення й архіви приймає програма і як вона впізнає фід із чужим розширенням — Які файли підходять.

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

      Меню
      Довідники → Обробка прайс-листів → Список прайс-листів
      Адреси колонок
      картка джерела → секція «Колонки»
      Структура XML
      картка XML-джерела → секція «Структура XML»
      Роздільник CSV
      картка джерела → секція «Товари» → «Які дані завантажувати» → «Розділювач колонок»
      Право доступу
      вікно «Список прайс-листів» у «Правах груп»

      Що писати в адресу для книги Excel

      Адреса — літера стовпця або його номер. Колонки й приклади значень програма бере з превʼю аркуша, тому в майстрі ви бачите те саме, що й у файлі.

      Рядок заголовків шукається як рядок із найбільшою кількістю збігів зі збереженими іменами колонок; якщо не знайшовся — беруть рядок перед першим рядком даних. Службовий рядок нумерації, який малює сам Excel, пропускається. Буває, що імʼя аркуша потрапляє в розмітку як «колонка», — такі рядки програма відкидає, звіряючи їх із назвами аркушів.

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

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

      Як розмітити CSV, TXT і TSV

      Адреса — номер або літера стовпця; нумерація йде з одиниці по першому рядку файлу. Дві речі, які вирішують долю такого прайсу, лежать поза розміткою.

      Перше — роздільник. Він береться з налаштувань джерела, а якщо не заданий, програма визначає його сама по перших пʼятнадцяти рядках. Табуляцію можна написати як \t. Друге — : якщо в прайсі не позначено, що файл у , вміст перекодовується з windows-1251. Коли в майстрі замість заголовків видно «Ð¦ÐµÐ½Ð°», річ саме в кодуванні, а не в розмітці.

      Як розмітити XML і YML-фід

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

      Тут адреса — імʼя тега, а не літера. Атрибут вузла пишеться у квадратних дужках: [id], [available]. Автопідбір звіряє імена тегів зі словником точно, слово в слово. Вписувати таку адресу можна і в клітинці сітки полів картки, і в панелі «Налаштувати колонку» майстра — для XML-джерела перевірка формату там не застосовується.

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

      Склеюються теги так само, як колонки таблиці: впритул, а роздільник задається текстом у фігурних дужках. А от діапазон 7-9 і перелік через вертикальну риску 11|12 у фіді не працюють: адреса там — імʼя тега, дефіс трапляється в самих іменах (offer-name), а вертикальна риска в XPath уже означає обʼєднання вибірок.

      Кілька відомих фідів розмічаються однаково, бо теги в них стандартні. Для (той самий формат, у якому віддають каталоги більшість майданчиків і ) адреси підбираються автоматично — вписувати імена тегів руками не потрібно.

      Для Google Merchant теги свої, але теж фіксовані: g:id, title, g:price, g:availability, g:brand, g:mpn, link, g:image_link — їх вписують у поля-приймачі як звичайні адреси.

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

      Прикладів значень для XML у майстрі немає — замість них у рядках стоїть «—». Це не збій розбору: превʼю для фіда просто не будується, і орієнтуватися доводиться на самі імена тегів.

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

      Секція «Структура XML» картки джерела прайс-листа
      1Поле «тег товару»
      2Кнопка «Зіставити автоматично»
      3Перемикач «Брати курс валют із файлу»
      1. Поле «тег товару» задає назву XML-тегу, що відповідає товару у фіді постачальника.
      2. «Зіставити автоматично» пропонує AI зіставити теги фіду з полями системи.
      3. Перемикач «Брати курс валют із файлу» вмикає перерахунок цін за курсами з блоку currencies фіду.

      Для XML у картці є ще й розбір структури фіда з AI: кнопка «Зіставити автоматично» в цій самій секції, під нею — «Знайдені теги» чипами, таблиця «Поле системи ← Тег» з кнопкою «Додати рядок», кнопка «Застосувати зіставлення» і фолд «Зразок вузла товару». Для цього блока немає.

      Там-таки живе прапорець «Брати курс валют із файлу (тег currencies)». Підказка пояснює його дослівно: «Якщо ввімкнено, ціни перераховуються за курсами з блоку currencies файлу. Якщо вимкнено — використовуються курси, задані в колонках прайсу або в довіднику валют.»

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

      Як завантажити каталог BMEcat

      завантажується як звичайний прайс: файлом, за посиланням, поштою чи з FTP, також в архіві. Програма впізнає каталог за вмістом, а не за назвою, тож розширення може бути будь-яким із дозволених, наприклад .xml чи .txt. Елементи читаються однаково для всіх версій; перевірено на каталогах 1.01, 1.2 і 2005.

      Новий прайс розмічається сам: тег товару й адреси колонок проставляються після першого завантаження за полями, які є в перших 50 товарах файла. Майстер підключення й нове джерело додатково проганяють файл через автоматичне зіставлення з AI, тому перевірте результат у секції «Колонки».

      Повторне завантаження потрапляє в уже збережену розмітку, ваші правки не перезаписуються.

      Секція «Колонки» прайсу BMEcat після завантаження: адреси колонок проставлені самі, поруч превʼю файла
      1Адреси проставлені самі
      2Превʼю файла
      1. Адреси колонок програма проставила сама, руками нічого не вписано.
      2. Превʼю показує каталог уже в простому вигляді: у ньому ціна за одиницю, а не сирі елементи BMEcat.
      Поле ElbuzЗвідки береться
      Артикул постачальникаартикул каталогу (SUPPLIER_AID або SUPPLIER_PID)
      Артикул виробникаMANUFACTURER_AID або MANUFACTURER_PID
      EANEAN або INTERNATIONAL_PID типу ean чи gtin; 14 цифр із нулем попереду стають EAN-13
      Назва й опискороткий і довгий описи основною мовою каталогу
      Виробник, одиницяMANUFACTURER_NAME, одиниця замовлення ORDER_UNIT
      Категоріяперша група каталогу, до якої прив'язаний товар
      Фотозображення з повною адресою; відносні шляхи — якщо в каталозі вказано адресу сайту (MIME_ROOT); мініатюри пропускаються

      Як рахується ціна

      Ціна в прайсі — за одиницю замовлення: сума × множник ÷ кількість, за яку ця сума вказана. Наприклад, 81,04 з множником 0,8 дасть 64,832, а 500 за 100 штук дасть 5. Десяткова кома теж читається. Якщо ступенів кілька, береться ступінь із найменшою кількістю.

      Якщо в товару кілька типів цін, береться перша наявна в такому порядку: договірна (net_customer), договірна експортна (net_customer_exp), прейскурантна без ПДВ (net_list), прейскурантна з ПДВ (gros_list), рекомендована (nrp). Рекомендована ціна прайсу — це nrp, а якщо її немає, gros_list, за умови що цей тип не пішов на основну ціну.

      Перевірте валюту після першого завантаження. Її задає колонка «Валюта» в рядках «Ціна» й «Ціна РРЦ» секції «Колонки». Якщо там порожньо, числа читаються у валюті за замовчуванням: каталог в євро дасть ті самі числа в гривні. Майстер запускає імпорт сам, тож після виправлення валюти запустіть його ще раз, а вже потім застосовуйте ціни. Автоматичне зіставлення може скинути вже вибрану валюту, тому дивіться на неї після нього.

      Запис із позначкою видалення (mode="delete") у прайс не потрапляє. Товар без суми, зокрема «ціна за запитом», завантажиться без ціни.

      Каталог оновлення цін (T_UPDATE_PRICES) зазвичай дає лише артикул і ціну; у ньому немає кількості, за яку вказано суму, тому ціна «500 за 100 штук» прочитається як 500. Характеристики (FEATURE) не переносяться.

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

      Як завантажити прайс DATANORM

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

      Секція «Колонки» прайсу DATANORM після завантаження архіву: адреси проставлені самі, поруч превʼю файла
      1Адреси проставлені самі
      2Ціна за одиницю
      1. Адреси колонок програма проставила сама, руками нічого не вписано.
      2. Превʼю показує вже перераховану ціну: 84,70 за 100 штук стало 0,847 за штуку.
      Що надіслав постачальникЩо зробити
      Файл DATANORM.001 із цінами в рядках артикулівзавантажити файл
      Архів ZIP із DATANORM.nnn, DATPREIS.nnn, .WRG, .RABзавантажити архів: комплект збереться сам за одне завантаження, версії 4 і 5. Імена файлів мають бути стандартні: файл із іншим іменем у комплект не потрапить
      Окремі DATANORM.001 і DATPREIS.001, версія 5упакувати в один ZIP або підключити файл цін зв'язаним джерелом
      Окремі DATANORM.001 і DATPREIS.001, версія 4упакувати в один ZIP: окремо такий файл цін не приймається, бо в ньому немає одиниці ціни

      Ціни окремим файлом: зв'язане джерело для версії 5

      1. Завантажте DATANORM.001 в основне джерело й запустіть імпорт.
      2. Кнопка «Додати» → «Прайс залишків до «…»», підтвердьте.
      3. Завантажте DATPREIS.001 у нове джерело й запустіть його імпорт.

      Розмітка й галочки «Копіювати значення в основний прайс-лист» для ціни, РРЦ і статусу наявності ставляться самі, під час імпорту другого джерела пари шукаються за артикулом постачальника. Артикули, яких немає у файлі цін, стануть «немає в наявності». Валюту задайте і в другому джерелі. У його рядках назва дорівнює артикулу, це нормально. Під час кожного оновлення порядок той самий: спершу основне джерело, потім друге. Як працює такий прайс — прайс залишків. Якщо файли можна упакувати в ZIP, це простіше: одне завантаження замість трьох кроків.

      Як рахується ціна

      Береться перша наявна сума: нетто з файла цін, прейскурант із файла цін, ціна в рядку артикула, нижня цінова ступінь. Сума ділиться на одиницю ціни файла, зазвичай 1, 10, 100 або 1000 штук. Якщо є і нетто, і прейскурант, прейскурант іде в РРЦ. Валюту перевірте так само, як для BMEcat.

      «Округляти вгору» псує дрібні ціни. Це налаштування діє й на DATANORM, а тут ціну часто вказують за 100 або 1000 штук: 84,70 за 100 штук дасть 0,847, а в ціні стане 1. Точна сума зберігається в колонці «Ціна з прайс-листа», але показується з двома знаками: 0,85. Налаштування діє на всі ціни програми, для окремого товару його не вимкнути. Якщо дрібний товар важливіший, вимкніть «Округляти вгору» й «Округляти вниз»: ціни округлюватимуться до двох знаків.

      Що програма не враховує

      • Версія 3 не завантажується: «DATANORM версії 3 не підтримується, прайс не завантажено. Попросіть у постачальника версію 4 або 5.»
      • Знижка постачальника (Rabatt). Ціна завантажується без знижки, журнал імпорту скаже, у скількох артикулів вона є. Закупівельну ціну перевірте самі.
      • Надбавка за мідь до ціни не додається, про це теж є рядок у журналі. У кабелю ціна без неї помітно нижча за підсумкову.
      • Цінові ступені. Нижня ступінь береться, лише якщо інших сум немає; ціни за більші партії не переносяться.
      • Назви й тексти обмежені форматом: два поля по 40 знаків, тому в постачальника назва може обриватися.

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

      Пошкоджений або захищений паролем архів, а також архів понад 2 ГБ не завантажується: «Архів пошкоджений, захищений паролем або завеликий, файл не завантажено.» Якщо в прайсі немає мітки кінця, перевірити повноту неможливо: файл завантажиться, у журналі буде попередження з кількістю артикулів, звірте її з постачальником.

      Як розмітити JSON

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

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

      Якщо колонок багато, простіше попросити постачальника про XML або .

      Сценарії

      Постачальник дає YML-фід

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

      Постачальник дає фід Google Merchant

      Впишіть у поля-приймачі фіксовані теги Merchant — їх список у розділі про XML. Що вийде: фід читається так само, як YML, і розмітка не зміниться з наступним файлом.

      Постачальник надсилає каталог BMEcat

      Створіть джерело й завантажте файл. У секції «Колонки» перевірте адреси й виберіть валюту в рядках цін, потім запустіть імпорт. Що вийде: у прайсі буде ціна за одиницю замовлення; лишається звірити її на кількох товарах і перевірити кількість завантажених рядків.

      Постачальник надсилає DATANORM.001 і DATPREIS.001

      Упакуйте файли в один ZIP і завантажте як прайс. Що вийде: артикули й ціни стануть одним прайсом за одне завантаження, ціна за 100 штук перерахується на штуку. Перевірте журнал імпорту й налаштування округлення, якщо є товар дешевший за одиницю валюти.

      XML із власними назвами вузлів

      Відкрийте фолд «Зразок вузла товару», знайдіть тег товару й теги полів. Натисніть «Зіставити автоматично» в секції «Структура XML», а що AI не зіставив — допишіть у таблицю «Поле системи ← Тег». Що вийде: після «Застосувати зіставлення» фід розбереться за вашими тегами.

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

      Розбір частих проблем
      Що ви бачитеЧому такЩо зробити
      «Не знайдено вузол товару (‹тег›) у XML» У фіді немає вузла з таким імʼям: задана неправильно або порожня Впишіть «тег товару» вручну в секції «Структура XML» — подивіться його у фолді «Зразок вузла товару» (про XML)
      «Структуру визначено. AI не зіставив поля — задайте теги вручну нижче.» Структуру фіда розібрано, але пар «поле — тег» AI не запропонував Заповніть таблицю «Поле системи ← Тег» руками й натисніть «Застосувати зіставлення» (про XML)

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

      У XML замість прикладів значень стоїть «—». Це помилка?

      Ні. Для фіда превʼю значень не будується, і в рядках майстра стоїть прочерк. Орієнтуйтеся на імена тегів, а фрагмент фіда подивіться у фолді «Зразок вузла товару» в секції «Структура XML».

      Для JSON автопідбір не працює. Що робити?

      Розмічати руками. Програма розгортає JSON у таблицю: бере масив товарів (за замовчуванням products), перший запис дає назви колонок. Адреса — номер колонки в цій таблиці.

      XML-фід імпортувався без помилки, а товарів немає. Чому?

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

      У майстрі замість заголовків «Ð¦ÐµÐ½Ð°». Що не так?

      Кодування: якщо в прайсі не позначено, що файл у UTF-8, вміст перекодовується з windows-1251. Детальніше: CSV, TXT, TSV.

      Чи переносяться характеристики з BMEcat?

      Ні, елементи FEATURE в прайс не потрапляють. Артикули, назва, опис, ціна, виробник, категорія й фото переносяться (каталог BMEcat).

      Прайс DATANORM: чому ціна 1, а в постачальника 0,85?

      Увімкнено «Округляти вгору» і ціну вказано за 100 або 1000 штук. Точна сума зберігається в колонці «Ціна з прайс-листа». Вимкніть округлення, тоді всі ціни матимуть два знаки (як рахується ціна).

      XML описує мій власний асортимент, а не постачальника. Що обрати?

      Не прайс-лист, а імпорт каталогу з XML/YML: фід ляже в картки напряму, без зіставлень і націнок.

      Суміжні теми

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

      Зміст статті

      Спробувати безкоштовно