Jak vytvořit XML/CSV datový feed a automatizovaně propojit velkoobchod s maloobchodním prodejcem. Za 10 minut práce

Často píši o tom, jak MERGADO využít pro tuning dat proudících z e-shopu do :moneybag: reklamního systému. Dnes se ale přesuneme - podíváme se jak využít MERGADO pro správu dat proudících mezi dvěma e-shopy - koncovým maloobchodním prodejcem a velkoobchodem.

MERGADO nabízí možnosti velice široké. :school: Já vysvětlím celý princip na konkrétním případu. Vy už víte, že jednotlivé části postupu můžete :hammer_and_wrench: upravit dle potřeby.

Výchozí situace

Máme velkoobchod, plátce DPH, který provozuje vlastní e-shop. :shopping_cart: E-shop je pro něj důležitý a veškerá data má v něm (ERP posílá data do e-shopu nebo ERP nemá vlastní výstup nebo nemá ERP…). Náš velkoobchod má :family_man_woman_girl_boy: více partnerů, maloobchodních prodejců. Poskytuje jim :dollar: různé marže - podle výše obratu za loňský rok. Tuto marži definuje procentem z koncové doporučené maloobchodní ceny. Sám na svém e-shopu prodává za doporučenou maloobchodní cenu.

Jak stanovit různé marže pro různé maloobchodní partnery

Osobně bych pro každou skupinu partnerů doporučil vytvořit :luggage: :luggage: :luggage: vlastní datový feed (export v Mergadu). Mohli bychom vytvořit jeden společný a v něm definovat pro každou položku zboží více velkoobchodních cen pro různé skupiny partnerů. Osobně mám ale obavu, že mí partneři by mohli dělat chyby - počítat s nákupem za jinou cenu, než jim chci dát a podobně. Já bych tedy udělal pro každou skupinu vlastní export. Nicméně princip jednoho společného exportu je obdobný.

1. Vytvořte export v Mergadu

Vytvořte :new: nový export obvyklým způsobem. Na výstupu zadejte formát, který shopsystémy vašich maloobchodních partnerů umí načíst. Doporučil bych Heureka či Zboží.cz, vlastní custom formát v CSV nebo Mergado XML. V našem případě použijeme formát Heureka.sk.


Tvorba nového exportu v Mergadu

POZNÁMKA: K čemu využije náš velkoobchod SOFTWARE MERGADO

  • :new: Tvorba dat pro maloobchodníky
  • :hammer: Oprava dat a doplnění chybějících dat
  • :heavy_plus_sign: Výpočet prodejních velkoobchodních cen

Vy nemusíte využít všechny přínosy. Některé kroky můžete vynechat. Nebo svůj export rozšířit o vlastní nápady.

2. Spusťte audit XML

Kliknutím na stránce Přehled spusťte :mag_right: audit. Zkontroluje nám obsah feedu a upozorní nás na chyby. Pokud si myslíte, že v exportu z e-shopu chyby nemáte, stejně audit XML spusťte.


Audit XML spustíte kliknutím na ikonu na stránce Přehled. Pokud nepoužíváte MERGADO, můžete využít speciální stránku audit XML.

3. Prohlédněte si výsledky auditu

:right_anger_bubble: Upozorní Vás na chyby a místa ke kontrole. :wrench: Upravovat lze buď přímo ve Vašem e-shopu (skladovém systému, ERP aj.), nebo v Mergadu. Pokud opravu provedete přímo v e-shopu, projeví se oprava i na stránkách e-shopu, což může být žádoucí. Pokud to v e-shopu opravit nejde nebo nechcete, opravujte v Mergadu.


Výsledky auditu XML.

4. Vytvořte nové elementy

V našem případě jsme :new: vytvořili:

  • Elementy nebytné pro náš velkoobchodní export:
    • MARGIN_TARIFF pracovní element. Využijeme pro výpočet marže. Element na výstupu skryjte, ať ho maloobchdníci nevidí.
    • PRICE_OLD cenu pro malobcohdního partnera budeme zapisovat do elementu PRICE. PRICE_OLD nám poslouží pro kontrolu. Naplníme do něj naši doporučenou cenu, co máme u nás na e-shopu. Na výstupu element skryjte.
  • Oprava a vylepšení dat. Nepovinné.
    • PARAM|*** náš vstupní XML feed neobsahuje informace o parametrech zboží. Maloobchodníci je ale chtějí. Pomocí výběrů a pravidel data do těchto elementů doplníme.
    • PRODUCTNAME audit XML mne upozornil, že tento konkrétní export nemá element PRODUCTNAME. V datech ho chci. A tak ho pomocí pravidel naplním.
    • VIDEO_URL příklad, že lze data pro maloobchodníky rozšiřovat nad rámec dat, která mám ve svém e-shopu já. Odkazy na videa bych doplnil buď ručně v Mergadu, nebo např. pravidlem pro import z CSV souboru.

:exclamation: Všimněte si, že MERGADO použiji, kromě stanovení cen, také k opravě a vylepšení dat.


Nové elementy v Mergadu.

5. TIP: prohlížejte hodnoty včetně skrytých

Při prohlížení dat na stránce produkty klikněte na volbu viz níže. Zobrazí se Vám i elementy, na výstupu :dark_sunglasses: skryté.


Zobrazení skrytých dat na stránce Produkty.

6. Definujte výběry

:dollar: Marže obvykle nebývají na celém portfoliu produktů stejné. Liší se dle výrobců, kategorií zboží, cen… My budeme stanovovat marže procentuálně pro různé skupiny zboží. Mohli bychom to udělat i jinak - např. vytvořit v Excelu tabulku s maržemi individuálně, uložit do CSV souboru, a ten do Mergada jediným pravidlem naimportovat. My na to však jdeme přes výběry. Na stránce Produkty vytvořte a uložte výběry zboží pro různé sazby marží.


Výběry produktů udělejte obvyklým způsobem. Pamatujte na “vlastní dotazy” kde můžete využívat více podmínek, operátory AND, OR, závodky aj.

7. Vytvořte pravidla

Pravidel můžete vytvořit mnoho a s jejich pomocí :wrench: opravovat data, viz výše v kapitole 4. Vytvořte nové elementy, kde jsem se rozepisoval o naplnění PARAMNAME, nebo zmínil naplnění parametrů PARAM. To se dělá podobně, jako když pracujete s daty pro reklamní systém a je to nad rámec tohoto příspěvku. Jádrem našeho postupu je výpočet velkoobchodní ceny. Ten řeším takto:

7.1 Definujte marže

Pro jednotlivé výběry (viz krok 6.) definujte sazby marží. Já je zde definuji v procentech z doporučené maloobchodní ceny.


Pro definici marží stačí jediné pravidlo typu Hromadné přepisování výběrů. Pokud je jedna položka zboží ve více výběrech současně, uplatní se sazba, která je zde nejníže.

7.2 Vypočtěte marži

Stačí jediné pravidlo. To z doporučené maloobchodní ceny bez DPH vypočte cenu velkoobchodní pro partnera.


Vzorec pro výpočet velkoobchodní ceny. PRICE je vstupní doporučená cena z mého e-shopu, MARGIN_TARIFF je procentuální sazba marže o kterou chci velkoobchodní cenu snížit.

7.3 Zaokrouhlete ceny

Výstupem výpočtu mohou být čísla s mnoha desetinnými místy. Já tedy cenu zaokrouhlil obvyklým způsobem jediným pravidlem.


Pravidlo pro zaokrouhlování čísel. My jsme cenu zaokrouhlili na dvě desetinná čísla.

A to je celé!

Ač mohl postup vypadat, že má hodně kroků, celý jsem ho naklikal za cca :watch: 10 minut. Jádrem jsou dvě pravidla viz kroky 7.1 a 7.2 s tím, že měnit budete v budoucnu pouze pravidlo jediné, a to viz bod 7.1 Definujte marže. Případně výběry jednotlivých maržových skupin.

:exclamation: Čas navíc si mohou vzít oprava dat, doplňování parametrů… což je užitek “navíc”. A vyplatí se.

Suma sumárum jsme tedy na pár kliknutí vytvořili export, kterým může velkoobchodník předávat automatizovaně data svým maloobchodním prodejcům. Nepotřebovali jsme přitom žádná speciální softwarová napojení ani jiné programátorské práce.


PS: cílem příspěvku je ukázat šíři různých uplatnění feed marketingových dat. Pro napojení velkoobchodů s maloobchodníky existují jistě sofistikovaná řešení. Není mým cílem těmto řešením chodit “do zelí”. Jen vím, že řada velkoobchodníků MERGADO tímto způsobem používá. A funguje jim to.

PPS: uvedený postup lze rozšířit o další vychytávky. O těch ale zase někdy příště :smile:.

Zdravím Michale. Již nějakou dobu bojuji s tím, jak nastavit Výpočet pro varianty produktů. Mám od velkoobchodu feed, ve kterém se pod jedním produktem skrývá několik variant. A když nastavím pravidlo Výpočtu, tak se mi přepíšou všechny ceny podle první varianty. Výpočet vypadá takto: %VARIANTS | VARIANT | PRICE_VAT%(1-(0,01%VARIANTS | VARIANT | VAT%))*0,XXX (XXX - představuje konkrétní marži). Mohl byste mi prosím poradit? :slight_smile:

Tady by mohlo pomoci doplnit v cestě k elementu (element-path) pozici, což se dělá pomocí @@POSITION = <číslo>, viz Mergado 2: Element-Path (technická specifikace) - #3 od davidjanek

Takže cesty k elementům v rámci vzorce by byly pro první variantu produktu něco jako:
%VARIANTS | VARIANT { @@POSITION = 1 } | PRICE_VAT%*(1-(0,01* %VARIANTS | VARIANT { @@POSITION = 1 } | VAT%))*0,XXX

1 Like

Ahoj Luďku. Děkuji za pomoc. Bohužel stále jsem se neposunul dál.

  1. Vytvořil jsem Uložený výběr : VARIANTS | VARIANT { @@POSITION = 1 } | PRICE_VAT != “” (vyber produkty, které nemají prázdné pole PRICE_VAT na první pozici)
  2. Tak samo jsem si vytvořit Uložený výběr pro pozici dva.
  3. Nastavil jsem Pravidla (pro pozici 1 a poté pro pozici 2) pro Výpočet dle tvé rady.

Výsledek je takový, že vidím ve všech variantách stejnou hodnotu PRICE_VAT :X

Postupoval jsem správně?

Zdravím, je potřeba přidat { @@POSITION = 1 } i do pole s elementem, kam se zapisuje:
image

2 Likes

Ahoj. Děkuji za feedback! Na základě toho se mi vše zdařilo (i když to pár hodin ještě dost bolelo).

Nyní jsem se ale dostal k dalšímu háčku a tak se opět obracím na zdejší MERGADO mágy :mage:

Lze nějak skrýt pouze některé vnořené elementy? Mám na vstupu několik ceníků (PRICELIST) a chtěl bych všechny skrýt kromě jednoho (viz obrázek (snad se načte))

1 Like

Zdravím,

pro skrytí všech PRICELISTů kromě jednoho s TITLEM “mujcenik” je potřeba vytvořit si pro každý zanořený element pod elementem PRICELIST (napočítal jsem 17 zanořených elementů) pravidlo Přepsat, které přepíše hodnoty elementů na prázdné (pro všechny PRICELISTy kromě “mujcenik”) a tím pádem se nebudou ukazovat na výstupu.

Takže např. pro element PRICE_VAT bude cesta vypadat takto:
PRICELISTS | PRICELIST { TITLE != "mujcenik" } | PRICE_VAT

A samotné pravidlo:

Stránka Pravidla:


Zároveň je důležité, aby pravidlo přepisující element TITLE bylo pod všemi ostatními přepisovacími pravidly, jelikož se v nich pracuje v podmínce právě s elementem TITLE.

Po přegenerování by se na výstupu měl ukazovat jen PRICELIST s TITLEM “mujcenik”.
image

2 Likes

Opět pomohlo! Děkuji! Ještě jsem přidal ty samé pravidla pro varianty.

2 Likes