Jak vybrat nejlevnější produkt z několika dodavatelských feedů?

V rámci technické podpory se nás občas ptáte, zda jde při zpracování dodavatelských feedů vybrat pro import do e-shopu produkt s nejnižší cenou, tj. zda jde nějak porovnat ceny stejného produktu napříč dodavateli a ten, kdo má produkt nejlevnější, tak jeho cenu importovat do eshopu.

Rychlá odpověď je: ano, s Mergadem je to možné.

Řešení by spočívalo v tom, že si k produktům v hlavním feedu doimportujete ceny od všech dodavatelů, a pak už jen porovnáte, která cena je nejmenší.

Ukážeme si to na příkladu 3 dodavatelů, pojmenovaných A, B a C.

Nutným předpokladem je, že dokážete stejný produkt v jednotlivých dodavatelských feedech nějak identifikovat, tj. produkty mají např. stejný EAN kód nebo stejné produktové číslo PRODUCTNO či CODE.
Pojďme se domluvit, že pro naši ukázku půjde o element s názvem EAN. :wink:

1. převedeme si dodavatelské feedy na CSV formát

Pro každý feed od dodavatele si vytvoříme pomocný projekt v Mergadu, kde jako výstupní formát zvolíme Plain CSV (data oddělená čárkou).

V každém z těchto pomocných projektů provedeme pár úprav:

  • Na stránce Elementy si poskrýváme vše, kromě dvou elementů:
    • první element bude identifikátor produktů, dle naší domluvy výše: EAN.
      :exclamation: Název tohoto elementu musí být stejný, jako máme v hlavním projektu, tam musíme mít také EAN.
    • druhý element si v každém feedu od dodavatele vytvoříme trochu jiný:
      • ve feedu dodavatele A si přidáme nový element s názevm PRICE_A,
      • ve feedu dodavatele B si vytvoříme element PRICE_B a
      • ve feedu dodavatele C si přidáme PRICE_C
  • na stránce Pravidla si přidáme nové pravidlo, typ Hromadné zkopírování hodnot, kterým si naplníme námi vytvořené elementy s cenou, například
    • u prvního dodavatele se bude kopírovat cena z PRICE_VAT do PRICE_A
    • u druhého dodavatele se bude kopírovat cena z PRICE_VAT do PRICE_B
    • u třetího dodavatele se bude kopírovat cena z PRICE_VAT do PRICE_C
  • přegenerujeme projekty (Nastavení → Přegenerování → Přegenerovat změněné)

Tímto získáme tři feedy, které budou v CSV formátu a budou mít vždy jen dva sloupce:

  • identifikátor produktů
  • cenu konkrétního dodavatele

Ve feedu od dodavatele A tak budeme mít sloupce: EAN,PRICE_A
Ve feedu od dodavatele B tak budeme mít sloupce: EAN,PRICE_B
Ve feedu od dodavatele C tak budeme mít sloupce: EAN,PRICE_C

2. vytvoříme si pomocné elementy, do kterých naimportujeme ceny

V hlavním projektu, jehož výstup budeme importovat do e-shopu, si na stránce Elementy přidáme 3 pomocné elementy: PRICE_A, PRICE_B, PRICE_C a skryjeme je pro výstup (takže se nebudou generovat do výstupního feedu, budeme s nimi pracovat jen v rámci Mergado Editoru).

Ukázka:

3. přidáme si importní pravidla

Pro každého dodavatele jedno. Importní pravidlo dokáže importovat jen CSV soubory, proto jsme si v předchozím bodě takové CSV feedy připravili, v každém importním pravidle použijeme jeden z nich.
Importní pravidla nám naplní konkrétní ceny jednotlivých dodavatelů do pomocných elementů PRICE_A,PRICE_B,PRICE_C.
U každého produktu teď budeme mít k dispozici jeho ceny od všech dodavatelů.

Ukázka:

4. porovnáme ceny - vytvoříme si výběry produktů

Na stránce Produkty si postupně vytvoříme několik výběrů na výstupní hodnoty, kterými si najdeme nejlevnější cenu. Tohle je možné udělat vícero způsoby, mě napadl tento “obyčejný”:

  1. výběr najde produkty, kde je nejlevnější cena od dodavatele A

  2. výběr najde produkty, kde je nejlevnější cena od dodavatele B

  3. výběr najde produkty, kde je nejlevnější cena od dodavatele C

5. nastavíme produktům nejlevnější cenu

Na stránce Pravidla si přidáme nové, typ Hromadné přepisování dle výběrů, kterým přepíšeme do elementu s cenou tu nejnižší ze všech dodavatelských feedů. Pravidlo může vypadat takto:

Pokud už nejlevnější cena v hlavním projektu byla a žádný dodavatel není levnější, tak pravidlo cenu nijak nezmění, zůstane tam “původní” cena, když už byla nejnižší.

Přegenerujeme hlavní projekt a máme hotovo, ve výstupním feedu bude nejnižší cena ze všech dodavatelů. :star_struck:
:medal_sports:


PS: a pokud neřešíte dodavatelské feedy a máte jen jeden feed s variantami a chcete zjistit cenu nejlevnější varianty, pak mrkněte sem:

5 Likes

Luxus, @ludekvolejnik dekuji :slight_smile:

4 Likes