Елементи в Mergado#

1. Що таке елементи#

Визначення#

Елемент — це базовий будівельний блок фіду, який несе дані. Кожен елемент являє собою конкретну інформацію — наприклад, назву товару, ціну, код або зображення. В XML і CSV елемент слугує позначенням місця, де розташоване певне значення.

Простіше кажучи:

  • елемент = «назва інформації»,
  • значення = «зміст цієї інформації».

Приклад:

<g:title>Bid long and prosper – чашка</g:title>
<g:price>364.21 CZK</g:price>
<g:id>47</g:id>

У цьому прикладі:

  • <g:title> — елемент,
  • «Bid long and prosper – чашка» — його значення.

Елементи в різних форматах#

Елемент в XML-фіді#

В XML-файлах елементом є все, що розташоване між початковим і кінцевим тегом. Елемент може містити текст, атрибути або інші елементи (так зване вкладення). XML — ієрархічний формат, тому він може описати й складніші зв’язки між даними.

Приклад:

<PRICE_VAT>1499</PRICE_VAT>

Елемент PRICE_VAT містить одне значення — ціну з ПДВ.

Елемент у CSV-фіді#

У CSV-файлах елемент відповідає одному стовпцю таблиці. Назва стовпця — це елемент, а клітинки в стовпці — його значення.

Приклад:

PRODUCTNAME PRICE_VAT EAN
Чашка Mergado 1499 8592384021932

CSV не вміє працювати з вкладенням (батьківський і дочірній елемент), тому Mergado цю структуру імітує записом типу батьківський | дочірній.

Елемент у Mergado Editor#

У Mergado Editor кожен елемент відповідає одному рядку на сторінці Elements. Редактор відображає структуру фіду як дерево — тобто в ієрархії, де вкладені елементи показано з відступом.

Кожен елемент у Mergado може бути:

  • простим, якщо має лише одне значення,
  • багатозначним, якщо повторюється кілька разів (наприклад, кілька зображень, кілька параметрів),
  • вкладеним, якщо є частиною іншого елемента,
  • або атрибутним, якщо доповнює основне значення додатковою інформацією (наприклад, @id або @description).

Для чого слугують елементи#

Елементи — основа для передавання, обробки та редагування даних у Mergado. Вони допомагають упорядкувати дані так, щоб їх можна було:

  • читати, змінювати й експортувати,
  • перетворювати з одного формату на інший (наприклад, Heureka → Google Merchant),
  • сортувати, фільтрувати й оцінювати.

На практиці ви працюєте з ними під час:

Підсумок#

Елемент — базова одиниця даних у фіді. Mergado працює з ним однаково незалежно від формату — чи походить він з XML, CSV, чи з іншого джерела. Розуміння того, як елементи працюють і як вони пов’язані між собою, — ключ до ефективної роботи з правилами, вибірками й експортами.

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

Що таке елемент?#

Елемент — це базовий будівельний блок фіду, який несе конкретну інформацію — наприклад, назву, ціну або код товару. У форматах XML і CSV він позначає місце, де розташоване певне значення.

Яка різниця між елементом і значенням?#

Елемент — це назва інформації (наприклад, PRICE_VAT), а значення — її зміст (наприклад, 1499). Разом вони утворюють пару — назву та її дані.

Який вигляд має елемент в XML-фіді?#

В XML елемент визначають початковий і кінцевий теги. Приклад:

  • <PRICE_VAT>1499</PRICE_VAT>

Тут PRICE_VAT — елемент, а 1499 — його значення.

Як працює елемент у CSV-фіді?#

У CSV-файлі елемент відповідає назві стовпця. Кожна клітинка в цьому стовпці — це значення елемента. Приклад:

  • PRICE_VAT → стовпець зі значеннями 1499, 1599, 1799 тощо.

Як записати вкладення в CSV, якщо CSV не підтримує ієрархію?#

Mergado імітує вкладення в CSV за допомогою запису батьківський | дочірній. Наприклад, шлях PARAM | VAL позначає значення елемента VAL, вкладеного в елемент PARAM.

Як елементи відображає Mergado Editor?#

У Mergado Editor кожен елемент відображається як окремий рядок на сторінці Elements. Вкладені елементи візуально зсунуті й утворюють деревоподібну структуру, яка відповідає структурі XML-фіду. Те саме стосується сторінки Products у поданні типу Elements.

Які типи елементів розрізняє Mergado?#

Mergado працює з чотирма основними типами:

  • Прості елементи — мають одне значення.
  • Багатозначні елементи — можуть мати кілька значень.
  • Вкладені елементи — є частиною іншого елемента.
  • Атрибутні елементи — доповнюють елемент додатковою інформацією (наприклад, @id).

Для чого слугують елементи в Mergado?#

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

Чи однакові елементи в усіх форматах?#

Так. Mergado працює з ними однаково — незалежно від того, чи походять вони з XML, CSV, чи з іншого формату.

Чому важливо розуміти елементи?#

Тому що майже вся робота в Mergado (вибірки, правила, обчислення, експорти) спирається на елементи. Розуміти елементи означає вміти точно керувати редагуванням і обробкою даних.


2. Основи роботи з елементами#

Типи елементів#

Mergado розрізняє чотири основні типи елементів. Кожен із них має специфічну поведінку й можливості використання.

1. Прості елементи#

  • Мають одне значення.
  • Їхня позиція (@@POSITION) завжди дорівнює 1.
  • Під час роботи з ними позицію вказувати не потрібно.

Приклад:

<ITEM_ID>47</ITEM_ID>

Шлях ITEM_ID націлюється на те саме значення, що й ITEM_ID { @@POSITION = 1 }.

2. Багатозначні елементи#

  • Містять кілька значень одного типу.
  • Кожне значення має власну позицію (1, 2, 3 …).
  • Щоб націлитися на конкретне значення, використовують умови або атрибути @@POSITION і @@VALUE.

Приклад:

<IMAGE>url1.jpg</IMAGE>
<IMAGE>url2.jpg</IMAGE>

Елемент IMAGE має два значення — на позиції 1 і 2.

Багатозначність часто трапляється, наприклад, у зображень, способів доставки, параметрів або категорій.

3. Вкладені елементи#

  • Розташовані всередині іншого елемента (так званого батьківського).
  • Утворюють ієрархічну структуру даних.
  • У Mergado вкладення показано відступом, а в шляху до елемента — вертикальною рискою |.

Приклад:

<PARAM>
<PARAM_NAME>Колір</PARAM_NAME>
<VAL>Чорний</VAL>
</PARAM>

Шлях до значення:

  • PARAM | VAL

Цей запис визначає, що значення VAL розташоване всередині елемента PARAM.

4. Атрибутні елементи#

  • Атрибут — це додаткова інформація, яка доповнює зміст елемента.
  • В XML його вказують у відкривальному тегу й позначають символом @.
  • У Mergado атрибути використовують часто й записують за допомогою шляху з @.

Приклад:

<IMAGE description=“Зимова куртка”>obrazek.jpg</IMAGE>

Шлях до атрибута:

  • IMAGE | @description

Як відобразити елементи в Mergado Editor#

Сторінка Elements #

На сторінці Elements ви знайдете повний огляд усіх елементів у проєкті. Тут елементи можна:

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

Клацнувши назву елемента, ви відкриєте детальний огляд усіх його значень.

Сторінка Products #

На сторінці Products елементи можна відобразити двома способами:

  • Подання «Elements» — показує всі елементи та їхні значення в конкретного товару.
  • Подання «Table» — дає змогу вибрати конкретні елементи й показати їх у зручній таблиці.

Інструмент Element Path (Element-Path) #

На сторінці Elements і в правилах можна скористатися інструментом Element Path, який допомагає створити правильний шлях і перевірити його коректність. Він покаже, куди саме веде шлях, і полегшить роботу з правилами або вибірками.

Підсумок#

Елементи — базова одиниця, з якою працює Mergado. Їх розрізняють за функцією (прості, багатозначні, вкладені, атрибутні), а їхнє розуміння — ключ до ефективної роботи з правилами, вибірками та структурою фіду.

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

Які типи елементів існують у Mergado?#

Існують чотири основні типи:

  • Прості — мають одне значення.
  • Багатозначні — містять кілька значень.
  • Вкладені — розташовані всередині іншого елемента.
  • Атрибутні — доповнюють значення додатковою інформацією.

Що означає позиція елемента?#

Кожне значення елемента має свою позицію (наприклад, перше, друге, третє значення). У простих елементів позиція завжди 1, у багатозначних може бути більшою.

Як працювати з багатозначними елементами?#

Багатозначні елементи (наприклад, IMAGE) можуть мати кілька значень.
Для роботи з ними використовують умови або спеціальні атрибути @@POSITION (націлювання за порядком) і @@VALUE (націлювання за змістом).

Як розпізнати вкладений елемент?#

Вкладений елемент розташований усередині іншого елемента (так званого батьківського).
У шляху до елемента його позначають вертикальною рискою |, наприклад PARAM | VAL.

Як записуються атрибути елементів?#

Атрибути записують за допомогою символу @. Приклад:

  • <IMAGE description=“Зимова куртка”>obrazek.jpg</IMAGE>

У Mergado шлях до цього атрибута — IMAGE | @description.

У деяких форматів фіду (наприклад, Ceneo) атрибути вказано й в обгорткового елемента.

  • <o id=”123” price=”100” avail=”1”>
    <name>Назва товару</name>
    …
    </o>

У такому разі шлях до цих атрибутів у Mergado — @id, @price, @avail.
А якщо в Mergado потрібно створити новий атрибут в обгортковому елементі, додайте його на сторінці Elements у новий рядок, тобто не за допомогою знака плюс біля наявного елемента.

Де в Mergado знайти елементи?#

На сторінці Elements у лівому меню проєкту. Тут елементи можна показувати, приховувати, додавати або сортувати за структурою.

Як переглянути значення конкретного елемента?#

Клацніть його назву на сторінці Elements — відкриється огляд усіх його значень, вхідних і вихідних.

Як елементи відображаються на сторінці Products? #

На сторінці Products можна вибрати:

  • подання Elements — усі елементи та їхні значення в конкретного товару,
  • подання Table — зручний перелік вибраних елементів у таблиці.

Що таке інструмент Element Path (Element-Path)? #

Element-Path, або Element Path, — це мова, розроблена компанією Mergado, яка слугує для запису шляхів до елементів та їхніх значень. За допомогою Element-Path ви визначаєте, на які значення у фіді хочете націлитися — чи будете їх читати, чи в них записувати.

Mergado Editor працює з елементами так само, як XML-фід, — у деревоподібній структурі. Щоб у цій структурі точно визначити, з якими даними ви хочете працювати, потрібно знати їхній шлях. Саме це й уможливлює мова Element-Path.

Яка різниця між простим і багатозначним елементом?#

Простий елемент у кожного товару має одне значення (наприклад, ITEM_ID). Багатозначний елемент має кілька значень (наприклад, кілька тегів IMAGE) в одного товару — і з цими значеннями можна працювати окремо завдяки Element-Path.


3. Вкладеність елементів#

Що таке вкладеність#

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

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

Приклад:

<PARAM>
<PARAM_NAME>Колір</PARAM_NAME>
<VAL>Чорний</VAL>
</PARAM>

У цьому випадку:

  • PARAM_NAME — назва параметра,
  • VAL — його значення,
  • PARAM — батьківський елемент, який їх об’єднує.

Завдяки такій структурі Mergado розпізнає, що значення «Чорний» належить саме до параметра «Колір».

Батьківські, дочірні та сестринські елементи#

Вкладені елементи утворюють між собою зв’язки, які відповідають деревоподібній структурі XML:

Тип зв’язку Опис
Батьківський (Parent) Елемент, у який вкладено інший елемент.
Дочірній (Child) Елемент, розташований усередині іншого елемента.
Сестринські (Siblings) Елементи, які мають спільний батьківський елемент.

Приклад зв’язків:

PARAM | PARAM_NAME
PARAM | VAL

  • PARAM — батьківський елемент.
  • PARAM_NAME і VAL — його дочірні елементи.
  • PARAM_NAME і VAL — сестринські елементи.

У Mergado Editor цей зв’язок візуально проявляється відступом: дочірні елементи на сторінках Elements і Products завжди зсунуті праворуч відносно батьківського.

Як Mergado працює з вкладеною структурою#

Mergado Editor працює з елементами так, що переймає та відображає структуру XML-фіду в її природному деревоподібному вигляді. Кожен елемент зберігає інформацію про свій батьківський і дочірні елементи, що дає змогу:

  • точно розрізняти, які значення пов’язані між собою,
  • правильно націлитися на конкретне значення (наприклад, PARAM | VAL),
  • створювати нові вкладені елементи й керувати ними безпосередньо в інтерфейсі редактора.

На сторінці Elements нові вкладені елементи можна додати, клацнувши значок «+» біля батьківського елемента. Створений так елемент порожній і заповнюється лише за допомогою правила (наприклад, Переписати).

Для кращої орієнтації структуру можна уявити як папки й файли:

  • батьківський елемент — це папка,
  • дочірній елемент — це файл або вкладена папка всередині неї.

Наприклад, шлях PARAM | VAL означає, що значення VAL розташоване всередині елемента PARAM.

CSV і вкладеність#

Вкладеність — природна властивість таких форматів, як XML або JSON, але формат CSV не вміє виразити її нативно. Тому Mergado вкладення в CSV імітує за допомогою запису батьківський | дочірній, щоб із даними можна було працювати так само, як в XML.

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

PARAM | PARAM_NAME
PARAM | VAL

Цей запис означає, що елемент VAL вкладено в елемент PARAM. Так Mergado може зберегти логічні зв’язки між даними навіть у форматах, які самі по собі вкладеність не підтримують.

На практиці: робота з вкладеністю в Mergado Editor#

1. Запис шляху до вкладеного елемента#

Коли в правилі або вибірці потрібно працювати з вкладеним елементом, його шлях записують за допомогою вертикальної риски |.

Приклад:

  • PARAM | VAL

Цей запис означає: «Знайдіть елемент PARAM і в ньому дочірній елемент VAL». Пробіли перед вертикальною рискою й після неї обов’язкові.

  • Правильно: PARAM | VAL
  • Неправильно: PARAM|VAL

2. Точне націлювання за допомогою умови#

Якщо елемент PARAM має кілька значень (наприклад, кілька параметрів), для точнішого націлювання варто додати умову. Умови записують у фігурних дужках { }, і вони фільтрують значення за заданим критерієм.

Приклад:

  • PARAM { PARAM_NAME = “Тип дисплея” } | VAL

Цей запис означає: «Знайдіть елемент PARAM, який має дочірній елемент PARAM_NAME зі значенням Тип дисплея, і змініть його значення VAL». Так ви націлюєтеся саме на потрібний параметр незалежно від його позиції у фіді.

Різниця між XML і CSV в обробці вкладеності#

Властивість XML-фід CSV-фід Відображення в Mergado
Обробка вкладеності Так, нативно. Ні, Mergado її імітує. Так, за допомогою деревоподібної структури.
Відображення зв’язків За допомогою тегів і відступів. За допомогою назв стовпців. За допомогою відступів на сторінках Elements і Products.
Запис шляху За допомогою тегів. `Батьківський Дочірній`.

XML виражає вкладення за допомогою розмітки та вкладених тегів, а CSV використовує запис шляху з роздільником |. Mergado обидві структури уніфікує й дає змогу працювати з ними однаково.

Підсумок#

Вкладеність — основний принцип роботи з даними в Mergado Editor. Вона дає змогу розпізнати, як пов’язані між собою значення окремих елементів, і завдяки цьому точно націлювати правила й вибірки.

Правильне розуміння вкладеності — ключ до ефективної роботи з параметрами, перевізниками, варіантами та іншими багатозначними структурами. Незалежно від того, чи працюєте ви з XML- чи CSV-фідом, Mergado вміє вкладення відобразити, зберегти й використати в усіх типах змін.

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

Що таке вкладеність елемента?#

Вкладеність — це властивість елемента, яка означає, що він розташований усередині іншого елемента. Такий зв’язок створює ієрархію даних: наприклад, елемент PARAM (батьківський) може містити назви й значення параметрів (PARAM_NAME і VAL), які є його дочірніми елементами. Терміни вкладений і вбудований означають одне й те саме.

Для чого слугує вкладеність?#

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

Які зв’язки використовують у вкладеній структурі?#

Вкладені елементи утворюють між собою три типи зв’язків:

  • Батьківський (Parent) — елемент, який містить інші елементи.
  • Дочірній (Child) — елемент, розташований усередині іншого елемента.
  • Сестринські (Siblings) — елементи, які мають спільний батьківський елемент.

Приклад: у шляху PARAM | VAL елемент PARAM — батьківський, а VAL — його дочірній елемент.

Який вигляд має вкладений елемент в XML?#

В XML вкладення виражають вкладеними тегами. Приклад:

<PARAM>
<PARAM_NAME>Колір</PARAM_NAME>
<VAL>Чорний</VAL>
</PARAM>

Елемент PARAM — батьківський, PARAM_NAME і VAL — його дочірні елементи.

Як Mergado відображає вкладені елементи?#

Mergado Editor відображає елементи в деревоподібній ієрархії, яка відповідає структурі XML-фіду. Вкладені елементи мають відступ зліва відносно свого батьківського елемента. Вкладення можна побачити, наприклад, на сторінках Products і Elements. Новий вкладений елемент можна створити, клацнувши значок «+» біля батьківського елемента.

Як записати вкладення в Element-Path?#

Вкладення записують за допомогою вертикальної риски | між назвами елементів. Приклад:

PARAM | VAL

Цей запис означає, що VAL — дочірній елемент елемента PARAM. Пробіли перед вертикальною рискою й після неї потрібно зберегти.

  • Правильно: PARAM | VAL
  • Неправильно: PARAM|VAL.

Як вкладення виражають у форматі CSV?#

Формат CSV не вміє виразити ієрархію нативно, тому Mergado вкладення імітує за допомогою запису батьківський | дочірній. Наприклад, PARAM | PARAM_NAME і PARAM | VAL виражають той самий зв’язок, що й у структурі XML.

Які типи файлів уміють працювати з вкладеністю?#

З вкладеністю природно працюють формати XML і JSON. Формат CSV вкладення нативно не підтримує, але Mergado Editor компенсує це саме записом батьківський | дочірній.

Яка максимальна кількість рівнів вкладення?#

Теоретичного обмеження глибини вкладення немає. На практиці Mergado стикалося з фідами, що мають до дев’яти рівнів вкладення, наприклад у форматі Upgates.

Як точно націлитися на значення вкладеного елемента?#

Для точного націлювання використовують умову в шляху. Приклад:

PARAM { PARAM_NAME = "Тип дисплея" } | VAL

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

Як націлитися, коли елемент водночас багатозначний і вкладений?#

Якщо елемент багатозначний (наприклад, PARAM повторюється кілька разів), потрібно використати умову. Шлях PARAM | VAL без умови націлюється на всі значення, а точне націлювання забезпечить запис:
PARAM { PARAM_NAME = "Колір" } | VAL

Чому націлювання через дочірній елемент надійніше, ніж за допомогою @@POSITION?#

Націлювання через дочірній елемент (наприклад, PARAM_NAME = "Колір") надійніше, бо вибирає правильне значення незалежно від його позиції в списку. Атрибут @@POSITION посилається лише на порядок, тому якщо порядок параметрів у різних товарів відрізняється, це може призвести до хибного результату.

Чому робота з вкладеністю важлива?#

Більшість складних даних, як-от параметри, доставка чи варіанти, вкладені. Правильне розуміння вкладеності дає змогу працювати з даними точно, створювати надійні правила та підтримувати фід логічно структурованим і наочним.


4. Багатозначність елементів#

Що означає багатозначний елемент#

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

Багатозначність дає змогу об’єднати кілька споріднених значень під однією назвою елемента, тож не потрібно створювати нові елементи для кожного значення окремо.

З багатозначними елементами ви найчастіше зустрінетеся в:

  • URL-адресах зображень (наприклад, IMGURL_ALTERNATIVE),
  • параметрах товарів (PARAM),
  • доставці (DELIVERY),
  • категоріях,
  • варіантах товарів.

Приклад у структурі XML:

<IMGURL_ALTERNATIVE>url1.jpg</IMGURL_ALTERNATIVE>
<IMGURL_ALTERNATIVE>url2.jpg</IMGURL_ALTERNATIVE>

У цьому випадку елемент IMGURL_ALTERNATIVE багатозначний, бо має кілька значень.

Різниця між простим і багатозначним елементом#

Властивість Простий елемент Багатозначний елемент
Кількість значень Лише одне значення. Кілька значень з однаковою назвою.
Позиція значення Завжди дорівнює 1. Кожне значення має власну позицію (2, 3 …).
Запис шляху Позицію вказувати не потрібно. Щоб націлитися на конкретне значення, потрібно використати умову або атрибут @@POSITION.
Приклади ITEM_ID, DESCRIPTION, PRICE_VAT IMAGE, PARAM, DELIVERY, IMGURL_ALTERNATIVE

У вкладених структурах (наприклад, PARAM) багатозначність стосується батьківського елемента. Дочірні елементи (зазвичай PARAM_NAME і VAL) залишаються простими, бо в межах одного батьківського елемента завжди мають лише одне значення.

Як Mergado працює з позиціями#

Кожне значення елемента має свій порядковий номер, тобто позицію (1, 2, 3 …). Позицію можна використати для точного націлювання на конкретне значення в межах елемента.

Для роботи з позиціями в Mergado використовують спеціальний атрибут @@POSITION. Він є частиною мови Element-Path і дає змогу визначити, на яку позицію в елементі ви хочете націлитися.

Приклад:

<IMAGE>url1.jpg</IMAGE> @@POSITION = 1
<IMAGE>url2.jpg</IMAGE> @@POSITION = 2
<IMAGE>url3.jpg</IMAGE> @@POSITION = 3

Якщо потрібно працювати з третім зображенням, використайте шлях:

  • IMAGES | IMAGE { @@POSITION = 3 }

Цей запис означає: «Працюю з елементом IMAGE на третій позиції».

Обмеження атрибута @@POSITION#

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

Приклад:

  • Перший товар має параметри 1. Матеріал, 2. Об’єм.
  • Другий товар має 1. Матеріал, 2. Декор.

Шлях PARAM { @@POSITION = 2 } | VAL тоді в другого товару посилатиметься на Декор, а не на Об’єм.

Тому безпечніше націлюватися за назвою:

  • PARAM { PARAM_NAME = “Об’єм” } | VAL

Як працювати з багатозначністю в Mergado Editor#

Визначення та використання позиції#

  1. На сторінці Elements відкрийте потрібний елемент, і ви побачите всі його значення з їхніми позиціями.
  2. У правилах або вибірках можна націлюватися:
    • за позицією, наприклад IMGURL_ALTERNATIVE { @@POSITION > 1 },
    • або за діапазоном позицій, наприклад IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }.
  3. Якщо потрібно працювати зі значенням замість позиції, використайте атрибут @@VALUE, наприклад:
    • CATEGORY { @@VALUE != "Іграшки" }
  4. Цей запис вибирає всі значення елемента CATEGORY, які не дорівнюють «Іграшки».

Коли позицію вказувати не потрібно#

Позицію в шляху не потрібно записувати в таких випадках:

  1. Прості елементи
    1. Завжди мають лише одне значення, тож позиція = 1. Шлях ITEM_ID еквівалентний запису ITEM_ID { @@POSITION = 1 }.
  2. Читання з багатозначного елемента без уточнення
    1. Якщо в правилі ви читаєте з багатозначного елемента без умови, Mergado автоматично використає перше значення.
    2. Наприклад: у разі використання %PARAM | VAL% Mergado візьме перше значення.
  3. Націлювання на всі значення
    1. Якщо потрібно обробити всі входження елемента, використайте лише назву елемента без умови.
    2. Наприклад, IMAGES | IMAGE працює з усіма зображеннями.
    3. Під час запису пам’ятайте, що зміна застосується до всіх значень, які відповідають цьому шляху.

Підсумок#

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

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

Що таке багатозначний елемент?#

Багатозначний елемент — це елемент, який має кілька значень з однаковою назвою. На практиці це означає, що в межах одного товару він трапляється кілька разів — наприклад, у зображень, параметрів, доставки або категорій.
Типові багатозначні елементи — IMAGE, PARAM, DELIVERY або CATEGORY.

Яка різниця між простим і багатозначним елементом?#

  • Простий елемент містить одне значення, і його позиція завжди дорівнює 1.
  • Багатозначний елемент може мати кілька значень, кожне з яких має власну позицію (2, 3, 4 …).

Приклад:
<IMAGE>url1.jpg</IMAGE>
<IMAGE>url2.jpg</IMAGE>

Елемент IMAGE багатозначний, бо трапляється кілька разів і містить кілька значень.

Для чого слугує багатозначність?#

Багатозначність дає змогу об’єднати кілька споріднених значень під однією назвою елемента. Тож не потрібно створювати нові елементи для кожного значення окремо. Наприклад, усі альтернативні зображення товару можна записати як повторювані елементи IMGURL_ALTERNATIVE.

Які елементи зазвичай багатозначні?#

Багатозначність найчастіше трапляється в елементах, які описують повторювані властивості товарів, наприклад:

  • URL-адреси зображень (IMGURL_ALTERNATIVE),
  • параметри товарів (PARAM),
  • доставка (DELIVERY),
  • категорії,
  • варіанти товарів.

Як Mergado працює з позиціями значень?#

Кожне значення елемента має свою позицію, тобто порядковий номер (1, 2, 3 …). Позицію можна використати для точного націлювання на конкретне значення в межах елемента. Для цього слугує спеціальний атрибут @@POSITION. Приклад:
IMAGES | IMAGE { @@POSITION = 3 }

Цей запис означає: «Працюю з елементом IMAGE на третій позиції».

Що означає атрибут @@POSITION і як його використовувати?#

@@POSITION визначає порядок значення всередині багатозначного елемента. Його використовують в умовах для націлювання на конкретну позицію або діапазон позицій. Приклад:
IMGURL_ALTERNATIVE { @@POSITION > 1 }

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

Що таке атрибут @@VALUE і коли його використовувати?#

@@VALUE являє собою зміст значення елемента й дає змогу націлюватися за значенням замість позиції. Його використовують насамперед в елементах без дочірніх елементів, наприклад CATEGORY або IMGURL_ALTERNATIVE. Приклад:
CATEGORY { @@VALUE != "Іграшки" }

Цей запис вибирає всі категорії, крім «Іграшки».

Як націлитися на значення багатозначних елементів в Element-Path?#

Націлювання виконують за допомогою умов у фігурних дужках { }. У них можна використовувати атрибути @@POSITION, @@VALUE або вирази мови MQL.
Націлювання на всі значення:
IMAGES | IMAGE

  • Обробить усі значення (url1, url2, url3 …).

Націлювання на конкретні значення або діапазон позицій:
IMAGES | IMAGE { @@POSITION IN (3;4) }

  • Націлюється на третє й четверте зображення.

Як визначити позиції значень у Mergado Editor?#

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

Коли позицію в шляху вказувати не потрібно?#

Позицію не потрібно вказувати в таких випадках:

  • Прості елементи — завжди мають одне значення (позиція = 1). ITEM_ID еквівалентний ITEM_ID { @@POSITION = 1 }.
  • Читання з багатозначного елемента без умови — Mergado автоматично використає перше значення. Наприклад, %PARAM | VAL% візьме перше значення.
  • Націлювання на всі значення — досить указати назву елемента без умови, наприклад IMAGES | IMAGE.

Яка різниця між націлюванням за позицією і за значенням?#

  • @@POSITION працює з порядком значення.
  • @@VALUE працює зі змістом значення.

Якщо порядок значень у різних товарів відрізняється, безпечніше використати @@VALUE, бо він націлюється безпосередньо на зміст.

У чому проблема націлювання за допомогою @@POSITION?#

@@POSITION посилається лише на порядок. Якщо товари мають параметри в іншому порядку, шлях може націлитися на неправильне значення. Безпечніше використати націлювання за назвою дочірнього елемента, наприклад:
PARAM { PARAM_NAME = "Об’єм" } | VAL

Як працювати з багатозначними елементами в правилах і вибірках?#

Робота з багатозначними елементами залежить від того, чи правило з елемента читає, чи в нього записує.
Читання:

  • Якщо шлях веде до кількох значень, Mergado використає перше з них.
  • Щоб прочитати інше значення, шлях потрібно уточнити умовою.

Запис:

  • Якщо правило записує в багатозначний елемент, зміна застосується до всіх значень, які відповідають заданому шляху.
  • Щоб записувати лише в конкретне значення, шлях потрібно обмежити за допомогою умови.
  • Якщо умова містить оператор = або сполучник AND, Mergado створить відсутню структуру автоматично.

Чому важливо розрізняти багатозначність?#

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


5. Робота з багатозначними елементами в правилах Mergado#

Багатозначні елементи поводяться в Mergado Editor інакше, ніж прості. Кожен товар може містити кілька значень одного елемента, тому потрібно знати, як із ними працюють правила: як вони значення читають, записують і як правильно на них націлюватися.

Як правила читають і записують багатозначні значення#

Багатозначний елемент — це такий елемент, який має більше ніж одне значення в одного товару. Правила в Mergado (наприклад, Переписати, Масове копіювання значень, Обчислення) мають у такому разі визначену типову поведінку.

Читання з елементів і змінних#

Якщо правило читає значення з багатозначного елемента, шлях якого веде до кількох значень, Mergado автоматично використає лише перше значення.

Така поведінка діє, якщо читання відбувається за допомогою запису зі знаком відсотка % (наприклад, %PARAM | VAL%).

Приклад:

<VAL>Чорний</VAL>
<VAL>XL</VAL>

Якщо правило читає зі шляху PARAM | VAL, Mergado візьме лише перше значення «Чорний». У простих елементів (наприклад, ITEM_ID) ця логіка ніяк не проявляється, бо значення завжди лише одне.

Запис в елементи#

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

Приклад:

  • Якщо в правилі Переписати ви використаєте шлях IMGURL_ALTERNATIVE і введете нове значення novy_obrazek.jpg,

Mergado перепише всі наявні значення цього елемента.

Щоб записувати лише в конкретне значення, шлях потрібно уточнити за допомогою умов.
Наприклад, шлях

  • PARAM { PARAM_NAME = “Колір” } | VAL

запише значення лише в параметри «Колір». Якщо в одному товарі параметр «Колір» трапляється кілька разів, зміна застосується до всіх цих входжень.

Коли використовувати умову, а коли спеціальний атрибут#

Для точного націлювання на конкретне значення багатозначного елемента потрібно додати умову. Умови працюють як фільтр: вони визначають, до яких значень або позицій застосовується правило. Їх записують у фігурних дужках { }, і вони можуть містити або вкладений елемент, або спеціальний атрибут.

1. Використання вкладеного елемента в умові#

Цей спосіб найнадійніший, бо націлюється на значення за його змістом, а не за порядком.

Приклад:
Потрібно переписати значення елемента VAL, яке належить до параметра «Колір»:

  • PARAM { PARAM_NAME = “Колір” } | VAL

Цей запис означає: «Знайдіть усі елементи PARAM, які мають дочірній елемент PARAM_NAME зі значенням Колір, і змініть у них значення елемента VAL».

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

2. Використання спеціального атрибута @@POSITION#

Атрибут @@POSITION слугує для націлювання на значення за його порядком.
Кожне значення елемента має свою позицію: перше = 1, друге = 2 тощо.

Приклад:

IMGURL_ALTERNATIVE { @@POSITION > 1 }

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

Доречне використання:
В елементах, де порядок значень відповідає їхньому змісту (наприклад, альтернативні зображення).

Слабке місце:
Націлювання за допомогою @@POSITION посилається лише на позицію, а не на зміст. Якщо порядок значень у різних товарів змінюється, результат може бути непослідовним.

3. Використання спеціального атрибута @@VALUE#

Атрибут @@VALUE посилається на фактичне значення елемента, а не на його порядок. Він доречний там, де порядок змінюється або не має значення.

Приклад:

  • CATEGORY { @@VALUE != “Іграшки” }

Цей запис націлюється на всі значення елемента CATEGORY, крім «Іграшки».

@@VALUE використовують насамперед в елементах, які не мають дочірніх елементів (наприклад, CATEGORY, IMGURL_ALTERNATIVE). У батьківських елементах, які самі по собі значення не несуть (наприклад, PARAM), його використання не має сенсу.

Практичні приклади шляхів#

Правила в Mergado під час роботи з елементами (читання / запис) використовують мову Element-Path, яка дає змогу точно націлитися на значення, з яких потрібно читати або в які потрібно записувати.

Націлювання на значення конкретного параметра#

  • PARAM { PARAM_NAME = “Колір” } | VAL

Цей запис читає або записує значення VAL у параметра, назва якого Колір.

Mergado інтерпретує це так:
«Знайдіть елемент PARAM, який має дочірній елемент PARAM_NAME зі значенням Колір, і змініть значення його дочірнього елемента VAL».

Націлювання на значення у варіантах#

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

  • VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = “Розмір” } | VALUE

Цей запис означає: «Знайдіть другий варіант товару, у якому параметр Розмір має певне значення, і працюйте з цим значенням».

Додавання нових значень за допомогою правил#

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

Це означає, що все, що вказано в умові (наприклад, PARAM_NAME = "Колір") і в шляху з оператором =, буде створено автоматично.

Приклад додавання нового структурованого значення — так званого «прапорця»:

Елемент: FLAGS | FLAG { CODE = “action” } | ACTIVE

Нове значення: 0

Якщо прапорця з кодом action не існує, Mergado створить новий FLAG (нову позицію) з елементом CODE = "action" і додасть до нього елемент ACTIVE зі значенням 0.

Цей механізм використовують під час додавання нових варіантів, перевізників, параметрів чи інших структурованих даних.

Огляд правил, яких стосується багатозначність#

Описана поведінка читання й запису багатозначних значень стосується таких правил:

Правило Уміє читати Записує
Переписати галочка — так галочка — так
Знайти й замінити галочка — так галочка — так
Масове переписування за вибірками галочка — так галочка — так
Масове переписування за значеннями галочка — так галочка — так
Масове копіювання значень галочка — так (джерельний елемент) галочка — так
Налаштувати параметри товарів галочка — так хрестик — ні
Налаштування вартості доставки галочка — так хрестик — ні
Налаштувати UTM-параметри галочка — так хрестик — ні
Обчислення галочка — так галочка — так
Імпорт файлу даних хрестик — ні галочка — так

Підсумок#

Під час роботи з багатозначними елементами в правилах Mergado Editor найважливіше — знати, з яким значенням ви працюєте. Без уточнення правило завжди читає перше значення й записує в усі відповідні значення. За допомогою умов, спеціальних атрибутів @@POSITION і @@VALUE або поєднання кількох рівнів вкладеності можна точно визначити, що саме правило змінює.

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

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

Який основний принцип роботи правил з багатозначними елементами?#

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

Як Mergado читає значення з багатозначних елементів?#

Якщо шлях веде до кількох значень, Mergado автоматично використає лише перше значення. Така поведінка діє в усіх правилах, які читають значення елемента за допомогою запису зі знаком %, — наприклад, %PARAM | VAL%. Приклад:
<VAL>Чорний</VAL>
<VAL>XL</VAL>

Шлях PARAM | VAL поверне значення «Чорний», бо це перше входження.

Як Mergado записує в багатозначні елементи?#

Якщо правило записує в багатозначний елемент без додаткового уточнення, Mergado запише нове значення в усі його входження (позиції). Щоб націлитися лише на конкретне значення, шлях потрібно уточнити за допомогою умови. Приклад: PARAM { PARAM_NAME = "Колір" } | VAL

Цей запис змінить значення елемента VAL лише в параметрах «Колір». Якщо товар має кілька параметрів «Колір», зміна застосується до всіх цих входжень.

Навіщо використовувати умови в багатозначних елементах?#

Умови працюють як фільтр, який визначає, до яких значень застосовується правило. Без умови правило зачепило б усі значення елемента. Умови записують у фігурних дужках { }, і вони можуть містити або вкладений елемент, або спеціальний атрибут.

Як використовувати вкладений елемент в умові?#

Націлювання за допомогою вкладеного елемента найнадійніше, бо спирається на зміст, а не на порядок.
Приклад: PARAM { PARAM_NAME = "Колір" } | VAL

Цей запис означає:
«Знайдіть елемент PARAM, який має дочірній елемент PARAM_NAME зі значенням Колір, і змініть значення його дочірнього елемента VAL». Цей спосіб працює незалежно від порядку елементів, і його рекомендують на практиці.

Коли використовувати атрибут @@POSITION?#

Атрибут @@POSITION слугує для націлювання за порядком значення в межах елемента. Кожне значення має свою позицію: перше = 1, друге = 2 тощо. Приклад: IMGURL_ALTERNATIVE { @@POSITION > 1 }

Націлюється на всі зображення, крім першого. Використовуйте його там, де порядок значень відповідає їхньому змісту (наприклад, альтернативні зображення). Слабке місце: @@POSITION посилається лише на порядок, а не на зміст. Якщо порядок значень у різних товарів відрізняється, результати можуть бути непослідовними.

Коли використовувати атрибут @@VALUE?#

Атрибут @@VALUE посилається на фактичне значення елемента й дає змогу націлюватися за змістом замість порядку. Його використовують переважно в елементах, які не мають дочірніх елементів (наприклад, CATEGORY, IMGURL_ALTERNATIVE). Приклад: CATEGORY { @@VALUE != "Іграшки" }

Цей запис вибирає всі значення елемента CATEGORY, крім «Іграшки». @@VALUE доречний там, де порядок значень може змінюватися або не має значення.

Як поєднувати умови й спеціальні атрибути?#

В одному шляху можна поєднати кілька умов і атрибутів. Умови можуть містити логічні оператори (AND, OR) або запити мовою MQL. Приклад:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Розмір" } | VALUE

Означає: «Знайдіть другий варіант товару, який містить параметр Розмір, і працюйте з його значенням VALUE».

Як Mergado створює нові значення під час запису?#

Якщо елемента, на який ви націлюєтеся, не існує, Mergado під час запису його автоматично створить. Це стосується всіх умов, які містять оператор = або сполучник AND.
Приклад:
FLAGS | FLAG { CODE = "action" } | ACTIVE

Якщо прапорця «action» не існує, Mergado створить новий елемент FLAG з дочірнім елементом CODE = "action" і додасть до нього ACTIVE зі значенням 0.
Цей механізм дає змогу автоматично додавати нові параметри, варіанти або структуровані дані.

Як уникнути помилок під час роботи з багатозначними значеннями?#

  • Перевірте, чи елемент, з яким ви працюєте, справді містить кілька значень.
  • Використовуйте умови { } для точного націлювання.
  • Не покладайтеся на @@POSITION, якщо порядок значень у різних товарів відрізняється.
  • Перед записом перевірте, чи шлях не зачепить більше значень, ніж потрібно.
  • Використовуйте інструмент Element Path, щоб перевірити, куди націлюється правило.

6. Атрибути в елементах#

Що таке атрибути#

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

Як атрибути записують в XML#

В XML атрибут завжди вказують у відкривальному тегу елемента, і він має свою назву та значення. Значення атрибута має бути взяте в лапки або апострофи.

Приклад запису XML:

<person gender=“female”>
<firstname>Павліна</firstname>
<lastname>Новакова</lastname>
</person>

У цьому прикладі

  • person — елемент,
  • gender — атрибут,
  • female — значення атрибута.

Атрибут gender, отже, уточнює інформацію про особу — що це жінка.

Ту саму інформацію теоретично можна виразити й інакше — за допомогою окремого вкладеного елемента:

<person>
<gender>female</gender>
<firstname>Павліна</firstname>
<lastname>Новакова</lastname>
</person>

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

Для чого слугують атрибути#

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

Приклади використання атрибутів у різних системах#

  • Ceneo
    • Використовує атрибути для опису виробника або інших властивостей, наприклад:
      • <attrs>
        <a name=“Producent”>Nike</a>
        </attrs>
  • Heureka (фід наявності)
    • Вимагає атрибути для доповнення часових даних:
      • <delivery_time orderDeadline=“2023-04-17 12:00”>2023-04-26 12:00</delivery_time>
  • Shoptet
    • Використовує атрибути, наприклад, у зображень:
      • <IMAGE description=“Columbia Squish N’ Stuff (Колір Зелений, Розмір L)”>https://cdn.myshoptet.com/obrazek.jpg</IMAGE>
  • Google Shopping
    • Не розрізняє елементи й атрибути, а всі їх у своїй системі позначає як атрибути.

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

Як працювати з атрибутами в Mergado Editor#

Mergado Editor створено так, щоб він умів повноцінно працювати з атрибутами. Атрибути — один з основних типів елементів, і з ними можна працювати в усьому середовищі редактора: у правилах, вибірках, змінних і запитах MQL.

Розпізнавання атрибутів#

Атрибути в Mergado можна розпізнати за символом @ на початку назви.

  • @id — атрибут ідентифікатора товару,
  • @description — атрибут, що описує зображення,
  • @availability — атрибут, що описує стан або наявність.

Крім звичайних атрибутів, існують і спеціальні атрибути, які починаються двома символами @@. Їх використовують у мові Element-Path, і вони слугують для точного націлювання — зазвичай це @@POSITION (позиція значення) і @@VALUE (значення елемента).

Порада! Спеціальні атрибути слугують лише для націлювання на значення елементів і звичайних атрибутів у межах Element-Path і ніколи не експортуються в сам фід, на відміну від звичайних атрибутів, які у фіді є.

Націлювання на атрибути за допомогою Element-Path#

Для роботи з атрибутами використовують мову Element-Path. Шлях до атрибута записують за допомогою символу @ перед назвою атрибута.

Приклад націлювання за атрибутом:

1. У правилі націлюємося на елемент CODE одного конкретного варіанта, який в атрибуті id елемента VARIANT містить значення idvariant3:

<VARIANTS>
<VARIANT id=“idvariant3”>
<CODE>EEQ21</CODE>
<UNIT>unit</UNIT>
<FREE_SHIPPING>1</FREE_SHIPPING>
<FREE_BILLING>1</FREE_BILLING>
</VARIANT>
<VARIANT id=“idvariant4”>
<CODE>EEQ22</CODE>
<UNIT>unit2</UNIT>
<FREE_SHIPPING>0</FREE_SHIPPING>
<FREE_BILLING>0</FREE_BILLING>
</VARIANT>
</VARIANTS>

Шлях до цього елемента CODE матиме такий вигляд: VARIANTS | VARIANT { @id ~ “idvariant3” } | CODE.

2. На сторінці Products шукаємо товар з категорією за замовчуванням з атрибутом @id = 123:

<CATEGORIES>
<DEFAULT_CATEGORY id=“123”>Побутова техніка</DEFAULT_CATEGORY>
<CATEGORY id=“456”>Електроніка</CATEGORY>
</CATEGORIES>

Умова для вибірки матиме такий вигляд: CATEGORIES | DEFAULT_CATEGORY | @id = “123”.

На практиці: створення, переписування та видалення атрибута#

Створення атрибута#

Атрибут можна створити безпосередньо на сторінці Elements.

  1. Відкрийте сторінку Elements і виберіть опцію New element.
  2. Введіть назву й виберіть тип attribute.
  3. Якщо до назви додати символ @, редактор автоматично розпізнає, що ви хочете створити атрибут.
  4. Щоб створити вкладений атрибут, скористайтеся значком «+» біля батьківського елемента й виберіть тип attribute.

Після створення атрибут порожній (не має значень). Заповнити його можна, наприклад, за допомогою правила Переписати.

Переписування значення атрибута#

Атрибути можна редагувати так само, як звичайні елементи, — наприклад, правилом Переписати.

Націлювання:
У полі Element укажіть шлях до атрибута, наприклад:

IMAGE | @description
SHOPITEM | @id
PARAM { @@VALUE = “Колір” } | @lang

Порядок дій:
На сторінці Rules створіть нове правило типу Переписати, виберіть вибірку товарів, введіть шлях до атрибута й у полі New content укажіть нове значення.

Видалення атрибута#

Атрибути можна видалити двома способами:

  1. Вручну — на сторінці Elements створені вручну атрибути можна видалити за допомогою значка кошика. Так видаляться і значення, і сам атрибут
  2. За допомогою правил — в атрибутів, які походять із вхідного або вихідного формату, можна видалити лише значення, причому правилом (наприклад, Переписати з порожнім значенням).

Атрибути, визначені цільовим форматом (так звані системні), не можна перейменувати чи видалити, бо вони є частиною специфікації вихідного фіду.

Підсумок#

Атрибути доповнюють зміст елементів і дають змогу детальніше описати дані у фіді. У Mergado Editor з ними можна працювати так само, як зі звичайними елементами: створювати їх, змінювати їхні значення й націлюватися на них у правилах.

Правильна робота з атрибутами важлива насамперед для фідів, призначених для порталів з точно визначеною структурою, як-от Google, Heureka, Ceneo або Shoptet.

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

Що таке атрибут у контексті XML і товарних фідів?#

Атрибут — це частина елемента, яка уточнює його зміст або властивість. Елемент несе самі дані, а атрибут надає додаткову інформацію про ці дані — наприклад, одиницю, стан або тип значення. В XML атрибут завжди вказують у відкривальному тегу елемента, і він має свою назву й значення, яке має бути взяте в лапки або апострофи. Приклад:
<person gender="female">
<firstname>Павліна</firstname>
<lastname>Новакова</lastname>
</person>

Тут person — елемент, gender — атрибут, а його значення — "female".

Для чого слугують атрибути в товарних фідах?#

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

  • Ceneo: використовує атрибути для визначення виробника (<a name="Producent">Nike</a>).
  • Heureka (фід наявності): атрибути доповнюють часові дані (<delivery_time orderDeadline="2023-04-17 12:00">…</delivery_time>).
  • Shoptet: атрибут description описує зображення (<IMAGE description="Columbia Squish N’ Stuff…">…</IMAGE>).

Використання атрибутів у Mergado забезпечить, щоб фід відповідав вимогам цільової системи й був прийнятий без помилок.

Як атрибути записують в XML?#

Атрибут — частина відкривального тегу елемента: <element атрибут="значення">вміст елемента</element>

Значення атрибута має бути взяте в лапки або апострофи. Приклад: <product available="true">Зимова куртка</product>

Тут атрибут available доповнює інформацію про наявність товару.

Як Mergado Editor розпізнає атрибути?#

Атрибути в Mergado Editor можна розпізнати за символом @ на початку назви.

  • @id — ідентифікатор значення елемента,
  • @description — опис значення елемента,
  • @lang — мова значення елемента.

Крім цих звичайних атрибутів, існують також спеціальні атрибути, які починаються двома символами @@ (наприклад, @@POSITION, @@VALUE). Їх використовують виключно в мові Element-Path, і вони ніколи не експортуються у вихідний фід.

Як націлитися на атрибути за допомогою мови Element-Path?#

Для роботи з атрибутами (читання, редагування, фільтрування) використовують мову Element-Path. Шлях до атрибута записують за допомогою символу @ перед його назвою. Приклади націлювання:

Під час фільтрування товарів:
Знайдіть товари, у яких id основної категорії дорівнює 123:

  • CATEGORIES | DEFAULT_CATEGORY | @id = "123"

У правилі під час націлювання на конкретний елемент:
Знайдіть CODE варіанта, атрибут @id якого містить текст idvariant3:

  • VARIANTS | VARIANT { @id ~ "idvariant3" } | CODE

Атрибути можна використовувати й в умовах (у дужках { }), де вони фільтрують конкретні значення.

Яка різниця між звичайними та спеціальними атрибутами?#

У Mergado розрізняють два типи атрибутів:

Тип атрибута Запис Використання
Стандартні атрибути (XML) @id, @description, @availability Є частиною структури XML і визначають зміст елемента.
Спеціальні атрибути (Element-Path) @@POSITION, @@VALUE Слугують для націлювання в умовах під час роботи з багатозначними елементами. Не є частиною вихідного фіду.

Для чого слугують спеціальні атрибути @@POSITION і @@VALUE?#

@@POSITION — відповідає порядку значення елемента, до якого він прив’язаний. Його використовують переважно в багатозначних елементах (наприклад, зображення, варіанти). Приклад:

IMGURL_ALTERNATIVE { @@POSITION > 1 }

  • Цей запис націлюється на всі альтернативні зображення, крім першого.

@@VALUE — являє собою зміст значення елемента. Його використовують в елементах, де порядок значень змінюється або не важливий. Приклад:

CATEGORY { @@VALUE != "Іграшки" }

  • Цей запис вибирає всі категорії, крім «Іграшки».

Як створити новий атрибут у Mergado?#

Новий атрибут можна створити на сторінці Elements.

  1. Клацніть New element.
  2. Введіть назву атрибута, яка починається символом @.
  3. Mergado автоматично розпізнає, що ви створюєте атрибут.
  4. Щоб створити вкладений атрибут, скористайтеся значком «+» біля батьківського елемента.

Щойно створений атрибут порожній, і заповнити його можна за допомогою правила Rewrite.

Як змінити або переписати значення атрибута?#

Атрибути можна переписувати так само, як звичайні елементи. У правилі Rewrite досить указати в полі Element шлях до атрибута. Приклади:

  • IMAGE | @description
  • SHOPITEM | @id
  • PARAM { @@VALUE = “Колір” } | @value

Потім у поле New value введіть потрібне нове значення.

Як видалити атрибут?#

Атрибути можна видалити двома способами:

  • Вручну: у створених вручну атрибутів на сторінці Elements — клацнувши значок кошика біля атрибута.
  • За допомогою правила: наприклад, правилом Переписати з порожнім значенням.

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

Який зв’язок між атрибутами й елементами в Mergado?#

У Mergado атрибути вважаються спеціальним типом елементів. Їх можна використовувати в правилах, вибірках, змінних і автоматизаціях так само, як звичайні елементи. Різниця полягає лише у способі запису (зі знаком @) і в їхньому розташуванні в структурі фіду.

Чому важливо правильно працювати з атрибутами?#

Правильна робота з атрибутами ключова для фідів, призначених для порталів, що вимагають точної структури даних, — як-от Google, Heureka, Ceneo або Shoptet. Неправильно вказані або відсутні атрибути можуть спричинити відхилення фіду або неповне відображення товарів. Завдяки інструментам Mergado Editor атрибути можна додавати, змінювати й перевіряти з високою точністю.


7. Мова Element-Path#

Що таке Element-Path#

Element-Path — це мова, розроблена компанією Mergado, яка слугує для запису шляхів до елементів та їхніх значень. За допомогою Element-Path ви визначаєте, на які значення у фіді хочете націлитися — чи будете їх читати, чи в них записувати.

Mergado Editor працює з елементами так само, як XML-фід, — у деревоподібній структурі. Щоб у цій структурі точно визначити, з якими даними ви хочете працювати, потрібно знати їхній шлях. Саме це й уможливлює мова Element-Path.

Що означає «шлях до елемента»#

Шлях до елемента — це запис, який виражає, де в структурі даних розташоване значення (або кілька значень), з яким ви хочете працювати. За допомогою цього шляху ви повідомляєте Mergado, що хочете або:

  1. прочитати значення — тобто використати його як вхідні дані (наприклад, у правилі або вибірці), або
  2. змінити значення — тобто записати в нього нові дані.

Приклад:

  • Щоб націлитися на значення елемента NAME, шлях буде просто: NAME

Mergado Editor прочитає цей шлях і використає значення, вказане в елементі NAME.

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

Вкладені шляхи#

Вкладеність у мові Element-Path записують за допомогою вертикальної риски |, яка виражає зв’язок батьківського й дочірнього елемента.

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

Приклад:
Шлях

PARAM | VAL

  • означає: «Знайдіть елемент PARAM і вкладений під ним елемент VAL».
  • Важливе правило: пробіл перед вертикальною рискою й після неї обов’язково потрібно зберегти — запис PARAM | VAL правильний, PARAM|VAL — ні.

Словник і синтаксис Element-Path#

Element-Path має власний «словник» і правила синтаксису.
Основні складники мови:

  1. Назви елементів — усі назви, які трапляються в проєкті.
  2. Вертикальна риска (|) — позначає вкладення (батьківський → дочірній елемент).
  3. Умови ({ }) — фільтрують значення за заданими критеріями.
  4. Спеціальні атрибути (@@…) — дають змогу націлюватися, наприклад, за позицією (@@POSITION), значенням (@@VALUE) або на останнє значення (@@MAX_POSITION).
  5. MQL (Mergado Query Language) — її можна використовувати в умовах для розширеного фільтрування (наприклад, з операторами AND, OR тощо).

Підказки під час написання шляхів#

У Mergado Editor роботу з Element-Path полегшують кілька функцій:

  • Підказки: редактор пропонує доступні елементи, оператори й значення.
  • Валідація: якщо написаного елемента в проєкті немає, він підсвічується червоним; коректний шлях підсвічується зеленим.
  • Підказки перевізників і параметрів: для деяких типів фідів редактор пропонує конкретні назви (наприклад, перевізників, параметрів) і автоматично доповнює весь шлях.

Де використовують Element-Path#

Шляхи до елементів використовують майже в усіх частинах Mergado Editor — скрізь, де потрібно визначити, з якими даними працювати.

  • У правилах — наприклад, Переписати, Знайти й замінити, Масове копіювання значень, Обчислення. Шлях до елемента визначає, з якими значеннями має працювати правило.
  • У вибірках — під час створення вибірок на сторінці Products або під час написання власного запиту MQL.
  • У змінних — для читання значень із конкретних елементів і запису значень в елементи.
  • В імпортах — в елементах файлів імпорту, які обробляються правилом Імпорт файлу даних.
  • На сторінці Products — для сортування, фільтрування й огляду значень елементів.
  • В автоматизації — під час налаштування правил і умов для автоматичних дій.

На практиці: робота із записом і умовами#

Element-Path особливо важливий для вкладених і багатозначних елементів. Правильний запис шляху визначає, які значення Mergado читає або змінює.

1. Базовий шлях без умови#

Якщо використати вкладений шлях без умови, Mergado націлиться на всі значення в цій структурі.

Приклад:

  • PARAM | VAL

Цей шлях позначає всі значення VAL в усіх входженнях елемента PARAM. Якщо товар має параметри Колір, Розмір і Матеріал, шлях PARAM | PARAM_NAME веде до трьох значень. Під час читання Mergado використає перше з них; під час запису зміна застосується до всіх відповідних значень.

2. Точне націлювання за допомогою умов#

Умови записують у фігурних дужках { }, і вони завжди прив’язуються до елемента, що стоїть ліворуч. Вони слугують для обмеження націлювання конкретними значеннями.

Націлювання на конкретне значення вкладеного елемента

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

PARAM { PARAM_NAME = “Колір” } | VAL

Цей запис означає: «Знайдіть елемент PARAM, який має дочірній елемент PARAM_NAME зі значенням Колір, і в ньому змініть значення елемента VAL».

Цей спосіб найбезпечніший, бо працює незалежно від порядку параметрів у фіді.

Націлювання на позицію багатозначного елемента

За допомогою спеціального атрибута @@POSITION можна націлюватися на значення за його позицією. Кожне значення має власний порядковий номер (1, 2, 3 …).

Приклад:

  • IMAGES | IMAGE { @@POSITION = 3 }

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

Націлювання на значення багатозначного елемента

Атрибут @@VALUE посилається на значення елемента.
Його використовують в елементах, які не мають дочірніх елементів, і він дає змогу націлюватися за конкретним значенням незалежно від його позиції.

Приклад:

CATEGORIES | CATEGORY { @@VALUE != “Іграшки” }

Цей запис вибирає всі CATEGORY, значення яких не дорівнює «Іграшки».
Умови можна поєднувати й з операторами MQL (AND, OR, NOT тощо), що дає змогу дуже точно фільтрувати.

Підсумок#

Element-Path — основна мова для роботи з даними в Mergado Editor.
Завдяки їй можна точно визначити, звідки походять значення, куди їх потрібно записувати і в якому контексті вони розташовані.

Правильне розуміння структури та синтаксису Element-Path дає змогу створювати безпечні правила, ефективні вибірки й автоматизації, які надійно працюють навіть зі складними XML- і CSV-фідами.

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

Що таке мова Element-Path і для чого вона слугує?#

Element-Path — це мова, розроблена компанією Mergado. Вона слугує для запису шляхів до елементів та їхніх значень — тобто для визначення, з якими даними у фіді ви хочете працювати. За допомогою Element-Path можна:

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

Що означає «шлях до елемента»?#

Шлях до елемента визначає, де в структурі даних фіду розташоване конкретне значення. За допомогою шляху ви повідомляєте Mergado, на який складник має націлюватися правило або вибірка.
Приклад: NAME

  • Цей запис означає, що ми хочемо працювати зі значенням елемента NAME.

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

Як вкладення записують в Element-Path?#

Вкладення виражає зв’язок батьківського й дочірнього елемента і записується за допомогою вертикальної риски |.
Синтаксис: БАТЬКІВСЬКИЙ | ДОЧІРНІЙ

  • Читання: «Знайдіть елемент БАТЬКІВСЬКИЙ і вкладений під ним елемент ДОЧІРНІЙ».
  • Важливо: пробіл перед вертикальною рискою й після неї обов’язковий.
    • Правильно: PARAM | VAL
    • Неправильно: PARAM|VAL

Приклад:
<PARAM>
<PARAM_NAME>Колір</PARAM_NAME>
<VAL>Чорний</VAL>
</PARAM>

Шлях до значення VAL — PARAM | VAL.

Який словник і синтаксис Element-Path?#

Element-Path має власну «граматику». Вона охоплює такі основні складники:

Складник Опис Приклад
Назва елемента Позначає конкретний складник фіду. ITEM_ID
**Вертикальна риска ( )** Виражає вкладення (батьківський → дочірній елемент).
Умови ( { } ) Слугують фільтром для точного націлювання. `PARAM { PARAM_NAME = “Колір” }
Спеціальні атрибути ( @@ ) Націлюються за позицією (@@POSITION) або значенням (@@VALUE). IMGURL_ALTERNATIVE { @@POSITION = 2 }
Синтаксис MQL Дає змогу виконувати логічні операції (AND, OR, NOT…) в умовах. PARAM { PARAM_NAME = "Колір" AND VAL = "Чорний" }

Які інструменти допомагають писати шляхи в Mergado?#

Mergado Editor пропонує розширені функції для роботи з Element-Path:

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

Де саме використовують Element-Path?#

Шляхи до елементів використовують у всьому Mergado Editor — скрізь, де потрібно точно визначити, з якими даними ви працюєте.

  • У правилах: наприклад, Переписати, Знайти й замінити, Обчислення, Масове копіювання значень.
  • У вибірках: в Oneliner і в запитах MQL.
  • У змінних: під час читання або запису значень.
  • В імпортах: у заголовках файлів імпорту.
  • На сторінці Products: для відображення, сортування й фільтрування значень.
  • В автоматизації: під час налаштування правил і умов автоматичних дій.

Що таке умови і як вони працюють?#

Умови слугують фільтром, який обмежує, на які значення має вести шлях. Їх записують у фігурних дужках { }, і вони завжди прив’язуються до елемента ліворуч від них. Приклад:
PARAM { PARAM_NAME = "Колір" } | VAL

Цей запис вибирає лише значення VAL у параметрах, де PARAM_NAME дорівнює «Колір». Умови необхідні в багатозначних елементах, де однакові назви можуть повторюватися (наприклад, різні параметри в одного товару).

Як можна використовувати в умовах логічні оператори MQL?#

Element-Path підтримує весь словник мови MQL (Mergado Query Language). В умовах можна використовувати логічні оператори, як-от AND, OR, NOT, IN, CONTAINS тощо.
Приклад складної умови:
VARIANTS | VARIANT { PARAMETERS | PARAMETER { NAME = "Розмір" } | VALUE = "M" AND PARAMETERS | PARAMETER { NAME = "Матеріал" } | VALUE = "Бавовна" } | STOCK | WAREHOUSES | WAREHOUSE | NAME

Цей запис вибирає назву складу (NAME) у варіантів, які мають розмір «M» і матеріал «Бавовна».

Які спеціальні атрибути використовує Element-Path?#

Спеціальні атрибути завжди починаються двома символами @@, і їх використовують в умовах. Вони полегшують націлювання в багатозначних елементах.

Атрибут Опис Приклад використання
@@POSITION Націлюється за порядком значення (1, 2, 3…). `VARIANTS
@@VALUE Націлюється за змістом значення. CATEGORY { @@VALUE != "Іграшки" }

@@POSITION використовують там, де порядок значень відповідає їхньому змісту (наприклад, зображення).
@@VALUE надійніший там, де порядок може змінюватися.

Як використовувати умови з кількома рівнями вкладення?#

Умови можна поєднувати й між різними рівнями елементів. Приклад багаторівневого вкладення:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Розмір" } | VALUE

Цей запис націлюється на значення параметра «Розмір» у другому варіанті товару.

Які найпоширеніші помилки під час написання шляхів?#

  • Пропущені пробіли навколо вертикальної риски (|).
  • Неправильне розташування фігурних дужок { }.
  • Неправильні назви елементів (яких немає в проєкті).
  • Використання @@POSITION в елементах, де порядок у різних товарів відрізняється.
  • Шлях, що закінчується батьківським елементом замість дочірнього (наприклад, PARAM замість PARAM | VAL).

Mergado Editor автоматично виявляє помилки в полі для введення шляху — некоректний шлях відображається червоним.

Як Element-Path допомагає з точністю й безпекою правил?#

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

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

8. Умови в шляху до елемента#

Що таке умови#

Умови в шляху до елемента працюють як фільтр, який дає змогу націлюватися лише на вибрані значення й так уточнити роботу з даними. Вони — невід’ємна частина мови Element-Path, і їх використовують насамперед під час роботи з багатозначними й вкладеними елементами.

Умови завжди прив’язуються до елемента, що стоїть ліворуч від них, і можуть фільтрувати лише значення його вкладених дочірніх елементів.

Як записують умови#

Умови записують у фігурних дужках { }, які прив’язуються до відповідного елемента.

Базовий шаблон запису:

Елемент { Дочірній Оператор Значення } | Наступний_дочірній

Приклад:

  • PARAM { PARAM_NAME = “Колір” } | VAL

Цей шлях означає: «Знайдіть елемент PARAM, який має дочірній елемент PARAM_NAME зі значенням Колір, і в ньому націльтеся на вкладений елемент VAL».

Правила запису#

  • Пробіли важливі — їх не можна пропускати. Це стосується як простору всередині умови, так і місця перед нею й після неї (наприклад, PARAM { PARAM_NAME = "Колір" } | VAL — правильно, PARAM{PARAM_NAME="Колір"}|VAL — неправильно).
  • Дужки { } на чеській клавіатурі вводять за допомогою сполучення клавіш Alt + B (option + 9) (ліва) і Alt + N (option + 0) (права).
  • Умови можуть містити як завгодно складні вирази, зокрема оператори AND, OR, NOT або навіть кілька рівнів вкладення.

Використання MQL в умовах#

Умови в Element-Path підтримують повний синтаксис Mergado Query Language (MQL). Це означає, що в них можна писати ті самі вирази, що й у формі для власних запитів.

Наприклад:

  • PARAM { PARAM_NAME = “Розмір” AND VAL = “M” }

або складніший варіант із кількома рівнями:

  • VARIANT { PARAMETERS | PARAM { PARAM_NAME = “Матеріал” AND VAL = “Бавовна” } }

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

Для чого слугують умови#

Умови уточнюють шлях до елемента й дають змогу націлюватися на конкретні підгрупи значень. Їх використовують насамперед для:

  1. Націлювання на конкретні значення багатозначних елементів.
    1. Наприклад, під час роботи з параметрами, перевізниками або зображеннями, де шлях без умови вів би до кількох значень. Умова забезпечить, щоб правило застосувалося лише до правильного значення.
  2. Структурне додавання значень
    1. Під час запису у фід діє правило: усе, що вказано в умові з оператором = або AND, Mergado створить, якщо цього ще не існує.
    2. Завдяки цьому умовами можна створювати й нові вкладені структури (наприклад, новий параметр або прапорець).
  3. Використання спеціальних атрибутів
    1. Умови слугують також для роботи зі спеціальними атрибутами, як-от @@POSITION (порядок значення) і @@VALUE (значення елемента).

Коли вони мають і не мають сенсу#

Коли мають сенс#

Умови мають сенс у багатозначних елементах, де один тип інформації може повторюватися кілька разів.

Найчастіше їх використовують під час роботи з:

  • параметрами (PARAM),
  • доставкою (DELIVERY),
  • варіантами (VARIANT),
  • зображеннями (IMAGE),
  • категоріями (CATEGORY).

Приклад:

  • PARAM { PARAM_NAME = “Колір” } | VAL

Цей запис забезпечить, щоб зміна застосувалася лише до параметра «Колір» незалежно від його позиції у фіді. У цьому разі це безпечніше, ніж використання атрибута @@POSITION, який у різних товарів може відрізнятися.

Коли не мають сенсу#

  1. Прості елементи
    1. Прості елементи (наприклад, ITEM_ID, PRICE_VAT) завжди мають лише одне значення, тож умова зайва.
  2. Націлювання на всі значення
    1. Якщо потрібно працювати з усіма значеннями елемента, умову не використовуйте. Наприклад: IMAGES | IMAGE
    2. Цей шлях націлюється на всі зображення цього товару.

На практиці: фільтрування значень за допомогою умови#

Приклад шляху#

  • PARAM { PARAM_NAME = “Колір” } | VAL

Як Mergado оцінює цей шлях#

  1. PARAM — позначає батьківський багатозначний елемент.
  2. { PARAM_NAME = "Колір" } — це умова, яка означає:
    «Нас цікавлять лише ті елементи PARAM, дочірній елемент PARAM_NAME яких має значення Колір».
  3. | VAL — визначає, що ми працюємо з дочірнім елементом VAL, тобто з конкретним значенням параметра.

У результаті Mergado вибере лише ті значення VAL, які належать до параметра з назвою «Колір».

Порівняння з націлюванням за позицією#

Умова

  • PARAM { PARAM_NAME = “Колір” } | VAL

надійніша, ніж запис

  • PARAM { @@POSITION = 2 } | VAL

Адже націлювання за назвою параметра працює незалежно від його порядку в межах товару. Так у параметрів з різним порядком можна уникнути неправильного призначення значень.

Підсумок#

Умови в мові Element-Path — ключовий інструмент для точного й безпечного націлювання на конкретні значення. Вони дають змогу фільтрувати дані, створювати нові структури й працювати з багатозначними та вкладеними елементами без ризику хибного переписування. Правильне використання умов допоможе вам уникнути помилок, підтримувати порядок у правилах і забезпечити, щоб Mergado завжди змінювало лише ті дані, які ви справді хочете змінити.

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

Що таке умови в мові Element-Path і навіщо їх використовують?#

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

  • точно націлитися на вибране значення (наприклад, конкретний параметр),
  • запобігти помилковому переписуванню непов’язаних даних,
  • створювати нові структури безпосередньо в правилах.

Як записують умови (синтаксис)?#

Умови записують у фігурних дужках { }, які прив’язуються до елемента, що стоїть ліворуч від них. Базова форма запису:

  • ЕЛЕМЕНТ { ДОЧІРНІЙ = "Значення" } | НАСТУПНИЙ_ДОЧІРНІЙ

Приклад:

  • PARAM { PARAM_NAME = "Колір" } | VAL

Цей запис означає: «Знайдіть елемент PARAM, вкладений елемент PARAM_NAME якого має значення Колір, і в ньому націльтеся на VAL».

Важливі принципи запису:

  • Пробіли обов’язкові — їх не можна пропустити ні всередині умови, ні перед нею й після неї.
  • Дужки { } на чеській клавіатурі вводять сполученням Alt + B (ліва) і Alt + N (права).
  • Умови можуть містити кілька критеріїв, поєднаних логічними операторами AND, OR, NOT.

Як працює прив’язка умов у шляху?#

Умова завжди стосується елемента ліворуч від неї. Фільтрувати можна лише через дочірні (вкладені) елементи цього елемента.
Приклад:
VARIANT { PARAMETERS | PARAMETER { NAME = "Розмір" } | VALUE = "M" } | STOCK

Цей запис означає: «Знайдіть варіант, який має параметр з назвою Розмір і значенням M, і в ньому працюйте з елементом STOCK».

Як умови використовують під час роботи з багатозначними елементами?#

Умови ключові під час роботи з елементами, які в межах одного товару повторюються (наприклад, PARAM, DELIVERY, CATEGORY, IMAGE, VARIANT).
Без умови:

  • PARAM | VAL - націлюється на всі значення VAL в усіх параметрах. Під час читання Mergado використає перше значення, під час запису змінить усі.

З умовою:

  • PARAM { PARAM_NAME = "Колір" } | VAL - націлюється лише на значення VAL, яке належить до параметра «Колір». Цей запис безпечний і однозначний — порядок елементів не має значення.

Які оператори можна використовувати в умовах?#

Умови підтримують усі поширені оператори мови MQL (Mergado Query Language).
Завдяки цьому можна створювати й дуже точні та складні фільтри.

Тип оператора Приклад Значення
= PARAM_NAME = "Колір" Рівність значення
!= @@VALUE != "Іграшки" Нерівність
> / < @@POSITION > 1 Порівняння числових значень
~ @id ~ "variant" Містить
AND PARAM_NAME = "Колір" AND VAL = "Чорний" І водночас
OR @@VALUE = "XL" OR @@VALUE = "L" Або
NOT NOT (VAL = "M") Заперечення

Як в умовах використовують синтаксис MQL?#

В умовах можна писати цілі запити MQL — мова Mergado Query Language повністю інтегрована в Element-Path. Так можна поєднувати кілька фільтрів, різні рівні вкладення й складну логіку.
Приклад складної умови:
VARIANTS | VARIANT { PARAMETERS | PARAMETER { NAME = "Матеріал" AND VAL = "Бавовна" } AND PARAMETERS | PARAMETER { NAME = "Розмір" AND VAL = "M" } } | PRICE

Цей запис вибирає ціну (PRICE) у варіанта, який має параметри Матеріал = Бавовна і Розмір = M.

Що робити, якщо елемент не має вкладених дочірніх елементів?#

В елементах, які не мають жодних вкладених елементів, в умовах використовують спеціальні атрибути:

  • @@POSITION — націлюється за порядком значення,
  • @@VALUE — націлюється за змістом значення.

Приклади:

  • IMAGES | IMAGE { @@POSITION = 3 } — третє зображення,
  • CATEGORY { @@VALUE != "Іграшки" } — усі категорії, крім «Іграшки».

Яка різниця між умовою й націлюванням за позицією?#

Націлювання за позицією (@@POSITION) посилається лише на порядок значення. Натомість націлювання за допомогою умови враховує зміст.
Порівняння:

  • PARAM { @@POSITION = 2 } | VAL — націлюється на другий за порядком параметр.
  • PARAM { PARAM_NAME = "Колір" } | VAL — націлюється на параметр з назвою «Колір» незалежно від його позиції.

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

Як умови допомагають під час запису нових даних?#

Під час запису даних у фід діє правило: якщо умова в елементі містить лише оператори = і AND з піделементами, значень яких не існує, Mergado ці значення автоматично створить.
Цей принцип уможливлює так зване структурне додавання значень — наприклад, додавання нового параметра, варіанта або прапорця.
Приклад:
FLAGS | FLAG { CODE = "action" } | ACTIVE

Якщо прапорця з кодом action не існує, Mergado автоматично його створить і надасть ACTIVE значення 0.

Коли має сенс використовувати умови?#

Умови мають сенс насамперед у багатозначних або вкладених елементах, як-от:

  • PARAM або g:attribute_detail (параметри товару),
  • DELIVERY (доставка),
  • VARIANT (варіанти),
  • IMAGE (зображення),
  • CATEGORY (категорії).

Наприклад, шлях:
PARAM { PARAM_NAME = "Колір" } | VAL

Забезпечить, щоб зміна стосувалася лише значення параметра «Колір», а не інших параметрів.

Коли умови не мають сенсу?#

Умови не мають сенсу в таких випадках:

  • Прості елементи — мають лише одне значення (ITEM_ID, PRICE_VAT).
  • Націлювання на всі значення — якщо потрібно працювати з усіма входженнями елемента (наприклад, IMAGES | IMAGE), умову додавати не потрібно.

Як перевірити правильність шляху з умовою?#

У Mergado Editor доступний інструмент Element Path, який дає змогу:

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

Крім того, поле для запису шляху пропонує:

  • автопідказки (елементів, атрибутів, операторів, значень),
  • кольорове підсвічування синтаксису,
  • попередження про некоректний або неповний шлях.

Які найпоширеніші помилки під час написання умов?#

  • Відсутні пробіли навколо фігурних дужок { }.
  • Використання умови в елементі, який не має жодних дочірніх елементів.
  • Сплутана назва елемента (наприклад, PARAM_NAME і NAME).
  • Пропущені фігурні дужки або неправильне розташування умови в шляху.
  • Використання @@POSITION замість назви елемента там, де порядок відрізняється.

Mergado автоматично попереджає про ці помилки, підсвічуючи неправильний запис.


9. Спеціальні атрибути в Element-Path#

Що таке спеціальні атрибути#

Спеціальні атрибути — це розширений інструмент у Mergado Editor і мові Element-Path. Вони слугують для точного націлювання в багатозначних елементах і дають змогу розрізняти окремі значення цього елемента.

Кожен спеціальний атрибут:

  • починається двома символами @@,
  • прив’язується до конкретного елемента,
  • використовується всередині умов у шляхах до елементів (у фігурних дужках { }),
  • розширює можливості націлювання й фільтрування в Element-Path.

У Mergado зараз доступні такі спеціальні атрибути:

  1. @@POSITION — позиція значення,
  2. @@VALUE — зміст значення.
  3. @@MAX_POSITION — число, яке визначає найвищу позицію значень цього елемента в конкретного товару.

@@POSITION — націлювання за позицією#

Атрибут @@POSITION відповідає порядку значення елемента, до якого він прив’язаний. Він дає змогу націлюватися на конкретну позицію або діапазон позицій усередині багатозначного елемента.

  • Кожне значення має свою позицію, виражену натуральним числом (1, 2, 3 …).
  • У простих елементів значення завжди має позицію 1.
  • Лише в багатозначних елементів (IMAGE, PARAM, DELIVERY тощо) позиція може бути більшою за 1.

Приклад:

  • IMAGES | IMAGE { @@POSITION = 3 }

Читаємо як: «Знайдіть елемент IMAGES і націльтеся на його дочірній елемент IMAGE зі значенням на третій позиції».

Слабке місце:
@@POSITION працює лише з порядком і не враховує зміст значення. Якщо порядок значень у різних товарів відрізняється, націлювання може влучити в інше значення, ніж ви очікуєте.

@@VALUE — націлювання за змістом значення#

Атрибут @@VALUE являє собою значення елемента, до якого він прив’язаний, і дає змогу націлюватися за його змістом. Його використовують в умовах в елементах, які не мають дочірніх елементів (або там, де не потрібно націлюватися на вкладену структуру).

Коли використовувати @@VALUE

  1. В елементах без дочірніх елементів — наприклад, IMGURL_ALTERNATIVE, CATEGORY.
  2. У багатозначних елементах — дає змогу націлюватися на значення незалежно від його позиції.
  3. Коли порядок значень змінюється — замінює менш надійне націлювання за допомогою @@POSITION.

Приклад:

  • CATEGORIES | CATEGORY { @@VALUE != “Іграшки” }

Цей запис вибирає всі категорії, крім «Іграшки». Націлювання за допомогою @@VALUE доречне там, де порядок значень у різних товарів може відрізнятися.

@@MAX_POSITION — допоміжний спеціальний атрибут#

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

Приклад:

<IMAGE>www.image1.jpg</IMAGE> …@@POSITION = 1
<IMAGE>www.image2.jpg</IMAGE> …@@POSITION = 2
<IMAGE>www.image3.jpg</IMAGE> …@@POSITION = 3

У цьому випадку @@MAX_POSITION = 3, бо найвища наявна позиція елемента IMAGE — саме 3. У різних товарів той самий елемент може мати різне значення @@MAX_POSITION, бо кількість значень може відрізнятися.

Коли використовувати @@MAX_POSITION

1. Додавання нових багатозначних значень

Щоб додати нове значення в кінець наявних значень так, щоб жодне не переписалося, використайте конструкцію: ELEMENT {@@POSITION = @@MAX_POSITION + 1}

Приклад:

Потрібно записати нову URL-адресу зображення www.image4.jpg в елемент IMAGE на наступну вільну позицію.

  • Використайте правило Переписати
  • У поле Element вставте: IMAGE {@@POSITION = @@MAX_POSITION + 1}
  • У поле New value впишіть нову URL-адресу: www.image4.jpg

Результат:

<IMAGE>www.image1.jpg</IMAGE>
<IMAGE>www.image2.jpg</IMAGE>
<IMAGE>www.image3.jpg</IMAGE>
<IMAGE>www.image4.jpg</IMAGE>

2. Копіювання значень у кінець наявного списку

Під час копіювання значень між багатозначними елементами @@MAX_POSITION можна використати для копіювання «аж у кінець» без переписування початкових значень.

Приклад:

У фіді є два такі багатозначні елементи:

<IMAGE>www.image1.jpg</IMAGE> …@@POSITION = 1
<IMAGE>www.image2.jpg</IMAGE> …@@POSITION = 2
<IMAGE>www.image3.jpg</IMAGE> …@@POSITION = 3

<CONTEXT_IMAGE>www.context_image1.jpg</CONTEXT_IMAGE> …@@POSITION = 1
<CONTEXT_IMAGE>www.context_image2.jpg</CONTEXT_IMAGE> …@@POSITION = 2

Потрібно скопіювати всі CONTEXT_IMAGE в IMAGE так, щоб початкові зображення не переписалися.

Результат:

<IMAGE>www.image1.jpg</IMAGE>
<IMAGE>www.image2.jpg</IMAGE>
<IMAGE>www.image3.jpg</IMAGE>
<IMAGE>www.context_image1.jpg</IMAGE>
<IMAGE>www.context_image2.jpg</IMAGE>

Коли який атрибут використовувати#

Мета націлювання @@POSITION (за позицією) @@VALUE (за значенням) Рекомендований підхід
Зображення або категорії (без дочірніх елементів) Доречно, якщо порядок сталий (наприклад, 2-ге зображення). Доречно, якщо порядок змінюється. Будь-який залежно від ситуації
Параметри (з вкладенням) Менш безпечно — націлювання за порядком. Недоречно, бо батьківський елемент PARAM значення не несе. Найбезпечніше націлюватися через дочірній елемент (PARAM_NAME = "Колір")

Правила вибору:

  1. У простих елементів позицію вказувати не потрібно — вона завжди дорівнює 1.
  2. У багатозначних елементах без дочірніх елементів можна використати @@POSITION або @@VALUE.
  3. У вкладених структурах (наприклад, параметрах) найбезпечніше використати умову з назвою вкладеного елемента, наприклад PARAM_NAME = "Колір".

Індексація (#)#

Крім спеціальних атрибутів, Element-Path дає змогу також використовувати індексацію, яку записують за допомогою символу #. Індексація = входження елемента. @@POSITION працює з порядком значень усередині багатозначного елемента (наприклад, 3-тє зображення в IMAGE), а індексація за допомогою # дає змогу вибрати конкретне повторне входження того самого елемента (наприклад, другий параметр «Колір»), навіть якщо його порядок у різних товарів відрізняється. Індексація розширює можливості націлювання там, де @@POSITION недостатньо.

Індексацію потрібно використовувати лише тоді, коли шлях до елемента повертає більше ніж одне значення, а спеціальний атрибут @@POSITION використати не можна, бо значення в окремих товарів розташовані на різних позиціях.

Використовувати індексацію замість @@POSITION там, де це не конче потрібно, недоречно, і це може погіршити продуктивність.

Як використати індексацію крок за кроком#

  1. Визначте, на яке входження хочете націлитися (1-ше, 2-ге, 3-тє, …) і за чим його розпізнаєте (наприклад, параметр з назвою «Колір»).
  2. Відкрийте місце, де працюєте з даними: індексацію можна використовувати у вибірках і правилах, у полях для Element-Path, а також у MQL (Mergado Query Language).
  3. Додайте індексацію до шляху за допомогою # у формі: <елемент> #{ порядок }
  4. Збережіть і застосуйте правило або вибірку. Mergado тоді працюватиме лише з визначеним входженням.
  • Синтаксис: PARAM { NAME = "Колір" } #{ 2 } | VALUE
  • Значення: націлюється на друге входження елемента PARAM | VALUE з назвою параметра «Колір».
  • Використання: індексація доречна насамперед в елементах з умовою, у яких не можна використати @@POSITION.
  • Рекомендація: якщо працює звичайне націлювання за позицією, @@POSITION швидший і наочніший.

Приклад:

У фіді є 2 товари з параметром Колір. Обидва товари мають параметр Колір 2 рази з різними значеннями на різних позиціях.

Товар A

<g:product_detail>  
	<g:attribute_name>Колір</g:attribute_name>  
	<g:attribute_value>Білий</g:attribute_value>  
</g:product_detail>  
<g:product_detail>  
	<g:attribute_name>Колір</g:attribute_name>  
	<g:attribute_value>Чорний</g:attribute_value>  
</g:product_detail>  
<g:product_detail>  
	<g:attribute_name>Матеріал</g:attribute_name>  
	<g:attribute_value>Кераміка</g:attribute_value>  
</g:product_detail>

Товар B

<g:product_detail>  
	<g:attribute_name>Колір</g:attribute_name>  
	<g:attribute_value>Зелений</g:attribute_value>  
</g:product_detail>  
<g:product_detail>  
	<g:attribute_name>Матеріал</g:attribute_name>  
	<g:attribute_value>Кераміка</g:attribute_value>  
</g:product_detail>  
<g:product_detail>  
	<g:attribute_name>Колір</g:attribute_name>  
	<g:attribute_value>Червоний</g:attribute_value>  
</g:product_detail>

Якщо потрібно націлитися саме на друге значення параметра Колір у кожного товару, спеціальний атрибут @@POSITION використати не можна, бо значення розташовані на різних позиціях. Допоможе саме індексація.

Правильний запис шляху з використанням індексації:

  • g:product_detail { g:attribute_name = "Колір" } #{ 2 } | g:attribute_value

Поради щодо індексації#

  • Де її використовувати: у вибірках і правилах (Element-Path, за потреби й MQL).
  • Коли до неї вдаватися: коли потрібно націлитися на конкретне входження того самого елемента (наприклад, «другий колір»), а @@POSITION недостатньо.
  • Під час об’єднання значень: індексація дає вам контроль над тим, з якого входження ви складаєте кінцеве значення.
  • Коли це не потрібно: якщо вам досить сталого порядку значень, простіше й швидше використати @@POSITION.

Практичні приклади використання спеціальних атрибутів#

1. Націлювання на діапазон позицій за допомогою @@POSITION#

Шлях для альтернативних зображень з позиції 3 до 8:

  • IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }

2. Поєднання позиції та значення для націлювання на варіанти#

Шлях для параметра «Розмір» у другому варіанті:

  • VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = “Розмір” } | VALUE

3. Націлювання на атрибут за допомогою значення елемента @@VALUE#

Шлях для атрибута @value у параметрах зі значенням «Колір»:

  • PARAM { @@VALUE = “Колір” } | @value

У цьому випадку @@VALUE замінює елемент PARAM_NAME для націлювання на значення «Колір».

4. Націлювання на всі значення, крім одного#

Шлях для категорій, крім «Дитячі майданчики»:

  • CATEGORIES | CATEGORY { @@VALUE NOT CONTAINS “Дитячі майданчики” }

5. Індексація у вибірках — умова для конкретного входження#

Потрібно вибрати товари, у яких параметр «Розмір» має друге входження і його значення — «XL».

Приклад умови (Element-Path):

  • PARAM { NAME = “Розмір” } #{ 2 } | VAL = “XL”

Цей запис гарантує, що ви оцінюєте саме друге входження параметра «Розмір», а не будь-яке значення «XL» у параметрах.

Підсумок#

Спеціальні атрибути розширюють можливості націлювання в Element-Path і дають змогу працювати з багатозначними елементами на рівні окремих значень.
@@POSITION і @@MAX_POSITION націлюються на порядок, @@VALUE — на зміст, а індексація # дає змогу звертатися до конкретних входжень.

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

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

Що таке спеціальні атрибути і навіщо вони існують?#

Спеціальні атрибути — це інструмент, що розширює мову Element-Path і дає змогу точно націлюватися в багатозначних елементах. Вони допомагають розрізняти окремі значення за їхнім порядком або змістом, і їх використовують усередині умов (у фігурних дужках { }).
Кожен спеціальний атрибут:

  • починається двома символами @@,
  • прив’язується до конкретного елемента,
  • розширює можливості націлювання й фільтрування,
  • ніколи не експортується у фід (на відміну від звичайних атрибутів XML).

Зараз Mergado підтримує такі основні спеціальні атрибути:

  • @@POSITION — націлювання за порядком,
  • @@MAX_POSITION — націлювання за найвищою наявною позицією,
  • @@VALUE — націлювання за змістом значення.

Яка різниця між спеціальними та звичайними атрибутами XML?#

Тип атрибута Запис Опис
Стандартний атрибут (XML) @id, @description Є частиною структури XML і доповнює зміст елемента.
Спеціальний атрибут (Element-Path) @@POSITION, @@VALUE Належить до мови Element-Path і слугує для фільтрування й точного націлювання в умовах.

Звичайні атрибути XML експортуються у вихідний фід, а спеціальні атрибути існують лише для внутрішньої логіки Mergado під час роботи з правилами, вибірками або змінними.

Що робить атрибут @@POSITION і коли його використовувати?#

@@POSITION націлюється на порядок значення елемента, до якого він належить. Кожне значення у фіді має свою позицію (1, 2, 3 …), яка визначає, на якому місці в багатозначному елементі воно розташоване.
Використання:

  • Доречний у багатозначних елементах зі сталим порядком (наприклад, зображення, варіанти).
  • У простих елементах (з одним значенням) не потрібен — їхня позиція завжди 1.

Приклад:

  • IMGURL_ALTERNATIVE { @@POSITION = 3 }

Цей запис означає: «Працюю з третім значенням елемента IMGURL_ALTERNATIVE».

У чому слабке місце @@POSITION?#

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

  • в одного товару позиція 2 = «Об’єм»,
  • в іншого товару позиція 2 = «Декор».

Шлях PARAM { @@POSITION = 2 } | VAL тоді в другого товару вибере неправильне значення.

Розв’язання: натомість використайте націлювання за назвою дочірнього елемента, наприклад

  • PARAM { PARAM_NAME = "Об’єм" } | VAL

Що робить атрибут @@VALUE і коли його використовувати?#

@@VALUE являє собою зміст значення елемента. Його використовують для фільтрування за значенням замість порядку.
Доречне використання:

  • в елементах, які не мають дочірніх елементів (наприклад, CATEGORY, IMGURL_ALTERNATIVE),
  • у багатозначних елементах, порядок значень яких змінюється,
  • там, де потрібно націлюватися за змістом, а не за позицією.

Приклад:

  • CATEGORY { @@VALUE != "Іграшки" }

Цей запис вибирає всі значення елемента CATEGORY, крім «Іграшки». Порівняно з @@POSITION цей метод надійніший, бо працює незалежно від зміни порядку.

6. Як вибрати між @@POSITION, @@VALUE і умовою з дочірнім елементом

Мета націлювання @@POSITION @@VALUE Умова з дочірнім елементом
Зображення, категорії (без дочірніх елементів) ✅ Якщо порядок сталий ✅ Якщо порядок змінюється –
Параметри (з вкладенням) ⚠️ Менш надійно 🚫 Недоречно — PARAM значення не несе ✅ Найбезпечніше (PARAM_NAME = "Колір")

Рекомендація:

  • У простих елементах позицію не вказуйте.
  • У багатозначних елементах без дочірніх елементів можна використати обидва підходи (@@POSITION і @@VALUE).
  • У вкладених структурах завжди надавайте перевагу націлюванню через назву дочірнього елемента (наприклад, PARAM_NAME).

Що таке індексація # і чим вона відрізняється від @@POSITION?#

Індексація — це додатковий інструмент мови Element-Path, який дає змогу точно визначити конкретне входження елемента незалежно від його порядку. Її записують за допомогою символу #.

Індексацію можна використовувати не лише в шляхах Element-Path, а й у фільтрах і умовах у вибірках за допомогою MQL (Mergado Query Language). Принцип залишається тим самим: ви вибираєте конкретне входження повторюваного елемента.

Синтаксис: PARAM { NAME = "Колір" } #{ 2 }

Цей запис націлюється на друге входження елемента PARAM з назвою «Колір».
Можливості:

  • можна вказати діапазон позицій: { 1 – 4 },
  • доречно в елементах з умовою, де не можна використати @@POSITION.

Примітка: якщо достатньо звичайного націлювання за позицією, @@POSITION швидший і наочніший.

Як поєднати @@POSITION і @@VALUE в одному шляху?#

Спеціальні атрибути можна поєднувати в межах однієї умови або з іншими фільтрами за допомогою логічних операторів.
Приклад 1 — націлювання на діапазон позицій:
IMGURL_ALTERNATIVE { @@POSITION >= 3 AND @@POSITION <= 8 }

  • Націлюється на альтернативні зображення з 3-ї до 8-ї позиції.

Приклад 2 — поєднання з іншими елементами:
VARIANTS | VARIANT { @@POSITION = 2 } | PARAMETERS | PARAMETER { NAME = "Розмір" } | VALUE

  • Вибирає параметр «Розмір» у другому варіанті.

Приклад 3 — націлювання за значенням:
CATEGORIES | CATEGORY { @@VALUE NOT CONTAINS "Дитячі майданчики" }

  • Вибирає всі категорії, крім тих, що містять «Дитячі майданчики».

Чи можна за допомогою спеціальних атрибутів націлюватися й на атрибути елементів?#

Так. Спеціальні атрибути можна використовувати й у поєднанні зі звичайними атрибутами XML. Наприклад:
PARAM { @@VALUE = "Колір" } | @value

Цей запис націлюється на атрибут @value у параметрах, значення яких — «Колір». Тут @@VALUE робить зайвим використання елемента PARAM_NAME.

Які найпоширеніші помилки під час роботи зі спеціальними атрибутами?#

  • Використання @@POSITION в елементах, де порядок у різних товарів відрізняється.
  • Спроба використати @@VALUE в елементах, які самі по собі значення не несуть (наприклад, PARAM).
  • Плутанина одного символу @ (звичайний атрибут XML) із двома @@ (спеціальний атрибут).
  • Неправильне розташування спеціального атрибута поза умовою.

Про всі помилки Mergado автоматично попереджає в редакторі кольоровим підсвічуванням або повідомленням про помилку під час перевірки.

Яка різниця між @@POSITION і @@MAX_POSITION?#

Атрибут Опис Використання
@@POSITION Посилається на конкретну позицію значення в межах елемента. Націлювання на наявне значення.
@@MAX_POSITION Визначає найвищу позицію (останнє значення) цього елемента. Доречний для додавання нових значень «у кінець».

Коли має сенс використовувати @@MAX_POSITION?#

  • Під час додавання нового значення в багатозначний елемент, щоб не переписалося жодне наявне.
  • Під час копіювання значень з одного багатозначного елемента в інший (наприклад, зображення, альтернативні зображення, контекстні зображення).

Як поміняти місцями перше й останнє входження багатозначного елемента?#

@@MAX_POSITION можна використати й для обміну двох конкретних позицій — зазвичай першого й останнього входження багатозначного елемента. Оскільки @@MAX_POSITION повертає найвищу наявну позицію для кожного товару окремо, порядок дій підлаштується навіть під фіди, де один товар має 2 входження, а інший 5.

Якщо багатозначний елемент має вкладену структуру (наприклад, RELATED_FILES | RELATED_FILE з піделементами TEXT і URL), кожен піделемент потрібно поміняти місцями окремо — за допомогою тимчасових допоміжних елементів.

Порядок дій у правилі Rewrite:

  1. Створіть допоміжний елемент для кожного піделемента, значення якого хочете поміняти місцями (наприклад, HELPER_TEXT, HELPER_URL).
  2. У правилі Rewrite додайте рядки в такому порядку:
    • збережіть значення з першої позиції в допоміжний елемент,
    • перепишіть першу позицію значенням з останньої ({ @@POSITION = @@MAX_POSITION }),
    • перепишіть останню позицію ({ @@POSITION = @@MAX_POSITION }) значенням із допоміжного елемента.
  3. Повторіть для кожного піделемента (TEXT і URL) окремо.

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

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