Práce s parametry v MERGADU 2

 
V tomto příspěvku si povíme, jak se změnila práce s parametry v MERGADU 2 oproti MERGADU 1. Máte-li připomínky nebo dotazy, napište nám je prosím!

Shrnutí

Práce s parametry se v MERGADU 2 podstatně liší oproti MERGADU 1, jelikož se jednotlivé parametry neberou jako elementy (např. element PARAM|Barva s hodnotou černá). Nyní se berou jako balíček specifických elementů pro parametry s jejich hodnotami, tzn. jeden parametr bereme jako např. 3 elementy PARAM, PARAM_NAME a VAL:

<PARAM>
  <PARAM_NAME>Barva</PARAM_NAME>
  <VAL>Černá</VAL>
</PARAM>

A od toho se odvíjí i veškerá práce s parametry.

Jak vnímáme parametry?

V MERGADU 1
se s parametry pracuje jako s ostatními elementy
. My jako uživatelé s nimi tak pracujeme, ale i samotné MERGADO (v kódu) s nimi tak pracuje. Tedy máme-li ve vstupním feedu např. parametr Barva s hodnotou Černá

<PARAM>
  <PARAM_NAME>Barva</PARAM_NAME>
  <VAL>Černá</VAL>
</PARAM>

uloží se do MERGADA 1 jako element PARAM|Barva s hodnotou elementu Černá. Dále s tímto elementem pracujeme jako s ostatními běžnými elementy. Na základě toho jde v MERGADU 1 s parametry dělat úplně všechno, co s běžnými elementy - najdeme je na stránce Elementy, dají se skrýt atd.

Všimněme si, že ve vstupním feedu ale není žádný element <PARAM|Barva>Černá</PARAM|Barva>.

MERGADO 2
kopíruje strukturu XML
, tj. všechny elementy ze vstupního feedu převezme jako elementy i k sobě a pracuje s nimi tak. Tedy máme-li ve vstupním feedu např. parametr Barva s hodnotou Černá

<PARAM>
  <PARAM_NAME>Barva</PARAM_NAME>
  <VAL>Černá</VAL>
</PARAM>

uloží se do MERGADA 2 jako 3 elementy:

  • PARAM,
  • PARAM_NAME (zanořený pod elementem PARAM) a
  • VAL.

Každý z těchto 3 elementů má vlastní hodnoty elementu:

  • PARAMprázdnou hodnotu,
  • PARAM_NAME má hodnotu Barva a
  • VAL má hodnotu Černá.

Je důležité si uvědomit, že žádný pseudoelement PARAM|Barva už v MERGADO 2 neexistuje. Místo toho jsou výše zmíněné 3 elementy.

Pokud máme ve feedu více parametrů (např. dva)

<PARAM>
  <PARAM_NAME>Barva</PARAM_NAME>
  <VAL>Černá</VAL>
</PARAM>
<PARAM>
  <PARAM_NAME>Distribuce</PARAM_NAME>
  <VAL>CZ</VAL>
</PARAM>

v tom případě řekneme, že element PARAM_NAME má více hodnot: Barva a Distribuce. Jedná se o tzv. vícenásobný element. To stejné platí pro element VAL, ten má taky více hodnot: Černá a CZ.
Jak ale v MERGADU 2 napodobit tvar PARAM|Barva MERGADA 1, tedy získat hodnotu parametru Barva? Pro dostatečně vysvětlující odpověď doporučuji přečíst si specifikaci Element-Path. Krátká odpověď zní: Pište PARAM { PARAM_NAME = “Barva” } | VAL místo PARAM|Barva.

Pro srovnání, vezmeme-li si třeba element DESCRIPTION, tj. na vstupu

<DESCRIPTION>popisek</DESCRIPTION>

tak se do MERGADA 2 uloží jako jeden element DESCRIPTION s hodnotou popisek, protože ve vstupním XML feedu je tam taky jako jeden element s hodnotou. Vidíme, že oproti běžným elementům jsou parametry opravdu složitější záležitost právě kvůli jejich struktuře (3 elementy závisejících na sobě).

Podívejme se teď na konkrétní případy práce s parametry a potenciální problémy, na které bychom mohli cestou narazit.

Konkrétní případy práce s parametry

Zobrazení seznamu parametrů

V MERGADU 1
se parametry, tedy elementy začínající na PARAM|, např. PARAM|Barva, vypisují na stránce Elementy (protože je MERGADO 1 bere jako elementy).

V MERGADU 2
se parametry, tedy hodnoty elementu PARAM_NAME, ukazují na stránce hodnot elementu PARAM_NAME. Tam se dostaneme klikem na element PARAM_NAME na stránce Elementy.

Zobrazení hodnot konkrétního parametru

MERGADO 1
Na stránce Elementy se klikne na daný element PARAM|... a to nám otevře stránku s hodnotami daného elementu.

MERGADO 2
Mohlo by nás napadnout, že by stačilo na stránce Elementy kliknout na element VAL, zanořený pod elementem PARAM.

Screenshot from 2022-09-06 10-47-25

Tím se nám zobrazí stránka hodnot elementu PARAM | VAL. Tato stránka obsahuje úplně všechny hodnoty všech parametrů. Naším cílem je ale podívat se na hodnoty nějakého konkrétního parametru. Dosáhneme toho následovně:

  1. Na stránce Elementy klikneme na element PARAM_NAME, přejdeme tak na stránku jeho hodnot (seznam parametrů),
  2. vpravo ve sloupci Související hodnoty klikneme na VAL.

Vybrání konkrétního parametru

MERGADO 1
Parametr vybereme jako běžný element. Takže např. následovně

MERGADO 2
Po celém MERGADU 2 se v rámci různých inputů, kde cílíme na hodnoty elementů (včetně našeptání ve Vlastním MQL dotazu nebo ve formuláři pravidel přes %), nachází v druhé záložce se štítkem seznam parametrů (a dopravy). Stačí si pak jen vybrat parametr a kliknout na něj. Odpovídající cesta k hodnotě parametru se pak doplní do inputu.

Pokud jsme více znalí, můžeme si cestu k hodnotě parametru do inputu napsat sami.

Vytvoření nového parametru a jeho naplnění hodnotou

MERGADO 1
Většina uživatelů si vytvoří nový element, např. PARAM|Distribuce, na stránce Elementy a následně na daný element použije pravidlo Přepsat.

Už ale málokdo ví, že stejného výsledku lze dosáhnout pravidlem Nastavit parametry produktu. Postup je popsán níže, jelikož platí jak pro MERGADO 1, tak pro MERGADO 2.

MERGADO 2
V pravidle Nastavit parametry produktu zadáme na levé straně názvy parametrů, které chceme vytvořit, a na pravé straně zadáme odpovídající hodnoty, jimiž je chceme naplnit. Po aplikování pravidel se nám nové parametry vytvoří a naplní danými hodnotami.

Přepsání hodnoty parametru

MERGADO 1
Pro přepsání hodnoty parametru opět většina uživatelů použije pravidlo Přepsat na daný element, např. PARAM|Distribuce. Ukázku najdeme v předchozí části.

MERGADO 2
Na přepsání hodnot parametrů použijeme pravidlo Nastavit parametry produktu. Postupujeme stejně jako v předchozí části.

Přejmenování názvu parametru

MERGADO 1
Pokud se parametr naimportoval ze vstupního feedu, skryjeme ho a vytvoříme nový parametr (viz část Vytvoření nového parametru a jeho naplnění hodnotou).

Jestliže byl parametr vytvořen uvnitř MERGADA 1, stačí nám upravit jeho název - ať už na stránce Elementy jako element, anebo v pravidle Nastavit parametry produktu.

MERGADO 2
Pokud je v MERGADU 2 parametr vytvořen přes pravidlo Nastavit parametry produktu, stačí upravit název u daného parametru v tomto pravidle. Jestliže není parametr vytvořen v tomto pravidle, použijeme na přejmenování parametru pravidlo Přepsat, kde jako cílový element napíšeme jeho cestu ve tvaru PARAM { PARAM_NAME = "Distribuce" } | PARAM_NAME (pokud chceme změnit název parametru Distribuce). Pro jiné názvy stačí přepsat slovo Distribuce na odpovídající název parametru.

Smazání parametru

MERGADO 1
Na stránce Elementy smažeme příslušný element, např. PARAM|Distribuce, kliknutím na ikonu popelnice.

MERGADO 2

Starý postup - můžete se podívat na starý postup, který je stále platný, ale zbytečně obtížný.

Vytvoříme si celkem 2 pravidla Přepsat. Prvním smažeme hodnoty elementu VAL příslušných elementů PARAM_NAME. Tedy máme-li např.

<PARAM>
  <PARAM_NAME>Barva</PARAM_NAME>
  <VAL>černá</VAL>
</PARAM>
<PARAM>
  <PARAM_NAME>Distribuce</PARAM_NAME>
  <VAL>CZ</VAL>
</PARAM>

a chceme oba parametry Barva a Distribuce smazat, vyplníme do inputu pro element PARAM { PARAM_NAME IN ("Barva"; "Distribuce") } | VAL. Do inputu pro obsah necháme nevyplněno.

Druhým pravidlem Přepsat smažeme hodnoty samotných elementů PARAM_NAME - do inputu pro element vyplníme PARAM { PARAM_NAME IN ("Barva"; "Distribuce") } | PARAM_NAME a do inputu pro obsah necháme opět nevyplněno.

A hotovo! Po aplikaci pravidel se nám všechny zmíněné parametry smažou. Ještě podotkněme, že záleží na pořadí pravidel, tedy aby pravidlo na smazání hodnot VAL bylo nad pravidlem na smazání hodnot PARAM_NAME.

Pracujeme na tom! Víme, že postup je zbytečně obtížný. Pracujeme na možných vylepšeních.

Nový postup - zapracovali jsme na tom a nyní je mazání parametrů v MERGADU 2 mnohem jednodušší:
Pro smazání parametru si v pravidle Nastavit parametry produktu nastavíme vlevo parametr, který chceme smazat, a vpravo necháme prázdný input.

Např. chceme-li smazat parametr Barva, v pravidle Nastavit parametry produktů na levé straně na nový řádek napíšeme Barva a pravou stranu necháme prázdnou.

Pokud už pravidlo Nastavit parametry produktů máme vytvořené z dřívějška a parametr Barva už tam máme, stačí si najít daný řádek s parametrem Barva a smazat hodnotu napravo. Případně je v pořádku dopsat Barva s prázdnou pravou stranou na úplně nový řádek, po uložení pravidla se ostatní předcházející řádky s parametrem Barva smažou a bude se tedy aplikovat pouze řádek s parametrem Barva a prázdnou pravou stranou.

Skrytí parametru

MERGADO 1
Na stránce Elementy klikneme u příslušného elementu na ikonu přeškrtnutého oka a tím element skryjeme ve všech produktech. V ukázce skrýváme element PARAM|Velikost.

MERGADO 2
Skrývání parametrů v MERGADU 2 je to stejné jako jejich mazání, viz výše. Pokud bychom chtěli parametry “odmazat”/“odkrýt”, stačí k příslušnému parametru napsat hodnotu parametru do pravého inputu. A po aplikaci pravidel se nám parametr odkryje. Případně pokud máme parametry nahrané ze vstupního feedu, stačí smazat řádek s daným parametrem nebo vypnout celé pravidlo. Po aplikaci pravidel se parametr vrátí do původního stavu, neupravený ze vstupu, tedy s nějakou hodnotou.

4 Likes

Ahoj, mě by zajímalo, jak vytvořit Parametr barva, abych pak mohl použít pravidlo “Hromadné přepisování dle hodnot” a na základě třeba že productname obsahuje černá, tak se naplní PARAM|Barva černá. Takto to šlo u Mergada 1, ale u Mergada 2 je to vůbec možné, když to nelze takto jednoduše ten parametr vytvořit v “elementech” ?

1 Like

Co mě napadlo, tak jedině si vytvořit proměnou, která to bude hledat v productname a pak přes pravidlo “Nastavit parametry produktů” to tímto způsobem vytvořit a přidat tam tu novou proměnnou.

Ano, tohle je možné ve dvou krocích:

  1. pravidlem typu “Nastavit parametry produktů” provedeme jen inicializaci, tj. vytvoření parametru Barva s libovolnou hodnotou:

  1. pomocí dalších pravidel různých typů, třeba to “Hromadné přepisování dle hodnot” potom přepíšeme u konkrétních produktů počáteční hodnotu konkrétní hodnotou:

1 Like

Ano, i tohle je cesta, kterou lze použít a je to úplně v pohodě řešení:

  1. vytvoření proměnné (regulární výraz je třeba vytvořit individuálně dle toho, v jaké podobě se barva v názvech produktů vyskytuje)

  1. použití proměnné v pravidle pro vytvoření parametru Barva:

:wink: