Z výběru PRODUCTNAME obs. hodnotu a jednotuku objemu vytvořit PARAM|Objem a do něj hodnotu z PRODUCTNAME vč. jednotky

Dobrý den, většina produktů ve feedu má v názvu (často uprostřed) například “300 ml” nebo “50ml”. Chtěl bych naplnit PARAM|Objem. Doteď musím ručně. Jistě existuje nějaké elegantnější řešení.

1) Výběr: PRODUCTNAME obs. “ml” … pravděpodobně produkty s objemem.
Problém může být, že to může najít i omluvenka (jako že tam není) - to by ale asi šlo opravit už manuálně - snad bude výjimek minimum.

2) Nyní asi Proměnná:

Berme vzory:

  • krém na tvář 50 ml
  • krém na tvář 100ml měsíčkový

Asi použít: (.*)(ml.*)

Proměnnou uložit třeba jako OBJEM_Z_PRODUCTNAME.

A nyní nevím, co dál :frowning: .

Výsledek by měl být:

  • PARAM|Objem s 50 ml
  • PARAM|Objem s 100ml

S proměnnými jsem doteď v Mergadu nepracoval. Návody na blogu mi pomohly do této fáze - jestli je vůbec dobře :slight_smile: . Nevím, jak to zkompletovat. Můžete mi, lidé dobří, pomoci? Děkuji.

Regulární výraz by mohl vypadat např. takhle

((\d)+( *)ml) do proměnné potom použít proměnnou 1

proměnnou pak vložit do elementu PARAM|Objem takhle %OBJEM_Z_PRODUCTNAME% .

promenna

2 Likes

Skvělé. Děkuji!

Pravidlo tedy vypadá takto:

Pokračuji - vidím 2 možnosti:

1) Vytvoření pravidla:


nebo

2) Přes vytvořený výběr (musí být?)

a

(není to již součástí vytvořeného pravidla “OBJEM_Z_PRODUCTNAME”? - nebude 2x? Nebude zbytečně zatěžovat server?)


nebo

3) Úplně jinak? :nerd_face::roll_eyes:

(Například: Ono by možná šlo ani tu proměnnou “OBJEM_Z_PRODUCTNAME” nevytvářet a přes výběr výše (bod 2) do Nového obsahu vložit “PARAM|Objem” - je to možné?)

Nechť návod slouží k podobným případům a i pro ostatní :heart_eyes:.

Děkuji velice.

Tak jak to máte @searchHanousek v bodě 1), potřebujete pravidlo aplikovat na nějaký výběr, takže tudy cesta nevede (na všechny produkty bych to neaplikoval, “proč?” vysvětlím dále).
V bodě 2) máte zase výběr, který neřeší možné budoucí změny vstupního feedu, takže ani takto ne. :slight_smile:
V bodě 3) opět nebudou pokryty budoucí změny ve vstupním feedu a navíc bez použití proměnné mi to přijde méně přehledné, byť to je technicky možné.

Já bych to řešil takto:

  1. vytvořím si výběr, kde PARAM|Objem je prázdný. Pokud v budoucnu začne e-shop posílat objem ve vstupním feedu, považoval bych jej za “přesnější” nebo řekl bych “důležitější” a Mergadem už jej nepřepisoval. Tohle je jen můj náhled na věc a spíše obecný princip, který používám.

  2. vytvořím si proměnnou s názvem OBJEM_Z_PRODUCTNAME, která mi načte objem z názvu, regulární výraz bych použil stejný jak psal Jirka, klidně i jednodušeji zapsaný: \d+\s*ml, protože vyhovuje všem variantám názvu s objemem. Ukázka co regulární výraz zachytí:
    17-13-47-11

  3. vytvořím si pravidlo typu Přepsat, aplikované na výběr z bodu 1. (abych si nepřepsal případné hodnoty ze vstupního feedu) a pouze do elementu PARAM|Objem uložím proměnnou: %OBJEM_Z_PRODUCTNAME%

2 Likes

Párkrát jsem to takto v převzatých účtech viděl a bral jsem to tedy jako v pořádku.


Dám na radu zkušenějšího, to je jasné.

k 1) Vytvořil jsem (předpokládám že výběr je ze Vstupu) - je to odhadem 98 % produktů :nerd_face:. Hodnota PARAM|Objem měla v pár produktech na e-shopu již nějaké hodnoty, v Mergadu tedy již byla.

k 2) Editaci proměnné s regulárním výrazem ( \d+\s*ml ) mi nešlo uložit. Nechal jsem dosavadní Jirkovu verzi.

k 3) Pravidlo, toť důležitá věc.

Tedy:

Rozumím tomu správně?


Poznámka:

Při výběru PRODUCTNAME obs. "ml" ( Přihlášení - Accounts ) mi výběr ukazuje 357 produktů.

Při výběru PARAM|Objem Je prázdný mi výběr ukazuje 480 produktů (z celkových 484 produktů).

Nemělo by to být podobné? Nebo až na Výstupu? Nebo až pro provedení změn?
Odhadem bych spíše viděl tu možnost z PRODUCTNAME - tedy aby se na Výstupu ten parametr Objemu přepsal 357x než 480x - respektive nevím, jestli se s tím výběrem PARAM|Objem uvažuje správně. Nerad bych pokazil 98 % výstupu :smiley:.

Jsem zvědavý a budu brzo starý … no což :smiley:.

Rozumíte tomu správně a pravidlo máte dobře. :wink:
Co se týká výběru, na který se pravidlo aplikuje, máte jej správně na vstupní data a tam, kde v PRODUCTNAME není obsaženo “ml”, tak se ani nevytvoří hodnota v proměnné a tím pádem se do PARAM|Objem uloží prázdná hodnota (tj. PARAM|Objem u takového produktu zůstane prázdný, jak byl).

V praxi se tedy nic nestane, když výběr použijete jak jsem psal, protože je “ošetřeno” u samotného vytvoření proměnné to, aby se neuložila nějaká nesmyslná hodnota k produktům, kde objem není.

Samozřejmě můžete si pro klidné svědomí :slight_smile: udělat rozšířený výběr třeba takto:
PRODUCTNAME CONTAINS "ml" AND [PARAM|Objem] = ""
nebo asi úplně nejpřesněji co mě napadá takto:
PRODUCTNAME ~ "\d+\s*ml" AND [PARAM|Objem] = ""
a pak se bude pravidlo zabývat jen těmi produkty, které nějaký objem v názvu opravdu mají a zároveň není už ze vstupu nějaká hodnota uložená v parametru s objemem.

1 Like

Skvělé, pánové! :slight_smile: Děkuji.


Mě opravdu matou ty výběry - oba doporučené jsou celkem výrazně výsledku jiné :nerd_face:. Rozdíl je o skoro 120 produktů a mám docela strach, co to udělá na výstupu. Se snad vrátím k některým ručním změnám :flushed::sneezing_face::face_vomiting:.

Výběry:

  1. PARAM|Objem EMPTY
    Přihlášení - Accounts
    by se aplikoval na “479 produktů”

  2. PRODUCTNAME ~ "\d+\s*ml" AND [PARAM|Objem] EMPTY
    Přihlášení - Accounts
    by se aplikoval na “352 produktů”.

Mám se bát? :grinning:
Děkuji.

Není čeho se bát, ten druhý výběr je přece omezený ještě další podmínkou, tak není zase takové překvapení, že mu vyhovuje méně produktů. Prostě u některých produktů mililitry v názvech zkrátka nemáte.

Klidně si ty rozdílové produkty vypište a podívejte se na ně “opačným” výběrem:
PRODUCTNAME !~ "\d+\s*ml" AND [PARAM|Objem] EMPTY
https://app.mergado.com/projects/64623/queries/edit/1674198/

Uvidíte, že tam žádný objem (číslo + ml) v názvu nemáte.

1 Like