Produktový XML feed je strojově čitelný export nabídky e-shopu. Srovnávače cen, reklamní systémy, tržiště a další partneři z něj získávají názvy produktů, ceny, dostupnost, obrázky, kategorie a odkazy. Pro mnoho zákazníků je feed první výlohou obchodu, kterou uvidí ještě před návštěvou webu.
Technicky platné XML ale samo o sobě nestačí. Soubor může být správně uzavřený a bez zakázaných znaků, přesto odesílat starou cenu, dostupnost jiné varianty nebo odkaz na stránku, kde produkt nejde koupit. Nejdražší chyby proto často nejsou syntaktické. Jsou to tiché rozpory mezi zdrojovými daty, exportem a skutečným nákupním procesem.
Jak produktový feed funguje
Feed je pravidelně generovaný dokument dostupný na URL, případně datový zdroj odesílaný přes API. Každá položka reprezentuje konkrétní nabídku. Cílový systém soubor načte, zkontroluje formát a pravidla, spojí nabídku s katalogem a rozhodne, zda ji zobrazí, zamítne nebo omezí.
Různé platformy používají odlišné názvy elementů, povinná pole a číselníky. Feed pro český srovnávač proto není automaticky totožný s daty pro Google Merchant Center. Společným základem jsou však stabilní identifikátor, název, popis, URL, obrázek, cena, dostupnost a údaje umožňující produkt správně zařadit.

Zdrojová data mají vznikat jen jednou
Feed by neměl mít vlastní ručně udržovanou cenu nebo dostupnost. Má je odvozovat ze stejného obchodního zdroje jako produktová stránka a pokladna. Pokud web čte cenu z WooCommerce, ale export z pomocné tabulky aktualizované jednou týdně, rozpory jsou nevyhnutelné.
Typické zdroje
- produktový katalog WooCommerce,
- skladový nebo ERP systém,
- ceník a pravidla slev,
- mediální knihovna nebo DAM,
- mapovací tabulky kategorií a značek,
- doplňková data určená jen konkrétnímu kanálu.
U každého atributu určete zdroj pravdy a pořadí případných přepisů. Doplňkový feed může například přidat reklamní štítek nebo vlastní kategorii, neměl by však bez jasného pravidla přepisovat základní cenu.
XML je struktura, ne obchodní logika
XML dokument používá elementy, atributy a textové hodnoty. Musí být správně kódovaný, obvykle v UTF-8, mít jediný kořenový element a korektně uzavřené značky. Speciální znaky jako ampersand nebo menší než musí být escapované, případně vhodně vložené v CDATA sekci.
CDATA neřeší všechny problémy. Sekvence ukončující CDATA se musí ošetřit a neviditelné řídicí znaky mohou dokument rozbít. Bezpečnější je generovat XML strukturovanou knihovnou, nikoli skládat text ručním spojováním řetězců.
Streamované generování
Velký katalog není vhodné celý sestavit v paměti. Generátor může položky číst po dávkách a zapisovat postupně do dočasného souboru. Hotový feed zveřejní atomickou výměnou až po úspěšném dokončení. Cílový systém pak nikdy nestáhne rozpracovaný nebo napůl přepsaný dokument.
Stabilní identifikátor nabídky
ID ve feedu musí zůstat stejné, dokud jde o stejnou obchodní nabídku. Neměňte ho při úpravě názvu, URL ani kategorie. Cílové systémy podle něj spojují historii, výkon, schválení a aktualizace. Neustále nové ID může způsobit ztrátu historie a opakované posuzování produktu.
Interní databázové ID lze použít, pokud je stabilní a jedinečné v rámci zdroje. U více e-shopů nebo zemí připojte identitu trhu či katalogu tak, aby se hodnoty nepřekrývaly. Číslo SKU je vhodné jen tehdy, pokud je povinné, unikátní a nemění se při běžných úpravách.
Produkt, nabídka a varianta nejsou totéž
Jeden model trička může mít více barev a velikostí. Katalogový produkt je společný model, nabídka je konkrétní prodejná varianta. Každá varianta obvykle potřebuje vlastní ID, URL nebo parametr, cenu, dostupnost, obrázek a identifikátory. Skupinový identifikátor spojuje varianty do rodiny, ale nenahrazuje jejich samostatné nabídky.
Pokud feed odešle rodičovský produkt s cenou nejlevnější varianty a odkaz vede na stránku s předvolenou dražší variantou, vznikne cenový rozpor. Cílová stránka má jednoznačně zobrazit variantu odpovídající nabídce z feedu.
Název produktu
Název má přesně a srozumitelně určit produkt. Obvykle obsahuje značku, model, typ a rozlišující variantu. Nemá být seznamem reklamních hesel, dopravy zdarma a vykřičníků. Cílové platformy mohou text zkrátit nebo nabídku kvůli nevhodnému obsahu odmítnout.
Časté chyby
- varianty mají stejný název bez barvy nebo velikosti,
- název obsahuje HTML a technické kódy,
- značka je uvedená dvakrát,
- automatická šablona vytváří prázdné pomlčky a závorky,
- text slibuje dárek nebo slevu, která už neplatí,
- název neodpovídá produktové stránce.
Šablony jsou užitečné, ale musí pracovat s volitelnými částmi. Chybějící značka nemá vytvořit řetězec „ – model – “. Výsledné názvy kontrolujte na vzorku nejdelších, nejkratších a atypických produktů.
Popis a povolený obsah
Popis má vysvětlit vlastnosti produktu, nikoli opakovat podmínky dopravy nebo kontaktní údaje e-shopu. Některé specifikace povolují jen čistý text, jiné omezenou část HTML. Generátor musí formát upravit pro konkrétní kanál.
Po odstranění HTML značek nesmí zmizet mezery mezi odstavci a slovy. Ošetřete shortcody, vložené galerie, skripty a texty šablony. Pokud je popis generovaný pomocí AI, ověřte aktuální požadavky cílové platformy na označení a kvalitu; specifikace se v této oblasti mění.
URL produktové stránky
Odkaz musí být veřejně dostupný, používat HTTPS, nevracet chybu a dovést návštěvníka přímo na správnou variantu. Cílový robot nesmí narazit na přihlášení, cookie stěnu blokující obsah nebo geografické přesměrování na jinou cenu.
Měřicí parametry
UTM nebo jiné parametry přidávejte předvídatelně a bez rozbití existujícího dotazu. Oddělte kanál, kampaň a produkt. Stabilní URL pomáhá párování a diagnostice. Nevytvářejte při každém generování náhodnou adresu, pokud k tomu není technický důvod.
Přesměrování
Jedno trvalé přesměrování po změně adresy bývá přijatelné, řetězec několika přesměrování zpomaluje import a může měnit jazyk, měnu nebo variantu. Feed je vhodné aktualizovat na konečnou URL.
Obrázky
Hlavní obrázek musí zobrazovat skutečný produkt a odpovídat variantě. URL musí být přístupná bez autentizace, stabilní a vracet správný obrazový obsah. Malý náhled, dočasný odkaz nebo soubor blokovaný proti robotům snižuje kvalitu nabídky.
Co kontrolovat
- minimální rozlišení podle cílové specifikace,
- podporovaný formát a správný MIME typ,
- žádný placeholder nebo obrázek „připravujeme“,
- varianta barvy odpovídá exportované nabídce,
- produkt není zakrytý nadměrným textem či vodoznakem,
- další obrázky se neduplikují a nejsou poškozené.
Při změně obsahu pod stejnou URL může cílový systém držet starou kopii. Verzovaná adresa nebo správně nastavené cache hlavičky pomohou, ale změny URL nedělejte bez důvodu u každého exportu.
Cena: nejcitlivější údaj feedu
Cena ve feedu musí odpovídat částce, kterou zákazník skutečně zaplatí za danou nabídku na cílové stránce a v pokladně, včetně správné měny a daňového režimu podle trhu. Google Merchant Center výslovně požaduje shodu ceny v produktových datech, na landing page, ve strukturovaných datech a při checkoutu.
Nejčastější příčiny rozdílu
- feed se obnovuje méně často než web,
- cache vrací starou produktovou stránku nebo starý XML soubor,
- export používá cenu bez DPH, web s DPH,
- akční cena skončila, ale ve feedu zůstala,
- feed uvádí nejlevnější variantu, odkaz otevírá jinou,
- cena je dostupná jen přihlášenému členovi,
- minimální množství mění skutečnou nákupní cenu,
- měna se přepočítává jiným kurzem,
- kupón je započtený bez možnosti ho použít každý zákazník.
U akční ceny přenášejte běžnou i akční hodnotu podle specifikace a případně interval platnosti. Po skončení akce musí export přejít na standardní cenu bez čekání na ruční zásah.
Dostupnost a dodací doba
„Skladem“ nemá být marketingový text. Musí vycházet z prodejné zásoby po odečtení rezervací a zohlednit, zda lze produkt skutečně objednat. Google rozlišuje mimo jiné stavy skladem, vyprodáno, předobjednávka a zpětná objednávka a požaduje shodu s landing page a pokladnou.
České srovnávače mohou pracovat s číselnou dodací dobou nebo vlastními hodnotami podle specifikace. Nezaměňujte skladovou dostupnost s dobou doručení dopravce. Produkt dostupný u dodavatele za pět dní není fyzicky skladem v e-shopu.
Více skladů
Pokud e-shop zobrazuje souhrnnou dostupnost, feed musí používat stejné pravidlo. Zboží na pobočce bez možnosti online expedice nelze automaticky označit jako dostupné pro internetový nákup. U lokálních nabídek se cena a dostupnost vážou na konkrétní prodejnu a musejí odpovídat příslušné lokální stránce.
GTIN, EAN, značka a katalogové identifikátory
Globální identifikátor produktu pomáhá cílovému systému správně spárovat nabídku s katalogem. Posílejte skutečný kód přidělený výrobku, nikoli interní SKU doplněné nulami. Každá varianta může mít vlastní GTIN.
Pokud výrobek identifikátor nemá, nevyplňujte náhodnou hodnotu jen kvůli povinnému poli. Použijte pravidla pro vlastní nebo zakázkové produkty podle konkrétní platformy. Značka a výrobní číslo modelu mají být konzistentní napříč feedem i produktovou stránkou.
Kategorie
Interní strom kategorií e-shopu vyjadřuje navigaci pro zákazníka. Cílová platforma má vlastní taxonomii. Automatické přiřazení podle názvu funguje jen u jednoduchých případů a může zaměnit stejně pojmenované kategorie v různých větvích.
Udržujte mapovací tabulku interní kategorie → cílová kategorie. Mapování verzujte a kontrolujte počet produktů, které spadly do výchozí nebo nezařazené hodnoty. Nová kategorie v e-shopu nemá potichu odesílat stovky produktů bez klasifikace.
Doprava a výdejní místa
Srovnávač může požadovat cenu dopravy, podporované dopravce, možnost osobního odběru nebo dodací dobu. Hodnoty musí odpovídat pokladně pro daný produkt, zemi a cenu objednávky.
Jedna univerzální cena je chybná, pokud se doprava liší podle hmotnosti, rozměru nebo regionu. Pokud nelze přesnou částku určit bez košíku, použijte metodu podporovanou cílovou platformou nebo konzervativní pravidlo podle její specifikace. Neslibujte dopravu zdarma jen proto, že jí dosáhne část objednávek po překročení limitu.
Kam ve feedu patří varianty
Každá prodejná varianta má vlastní položku a stabilní ID. Společný skupinový identifikátor spojuje velikosti nebo barvy. Atributy varianty musí odpovídat URL, obrázku, ceně a dostupnosti.
Kontrolní otázky
- otevře URL přesně tuto barvu a velikost,
- je uvedená cena právě této varianty,
- je dostupnost počítaná samostatně,
- má varianta vlastní GTIN a SKU, pokud existují,
- sdílí správný skupinový identifikátor s příbuznými variantami,
- neexportuje se zároveň neprodejný rodič jako další nabídka.
Technicky platný feed může být obchodně chybný

Syntaktická validace
Ověří, že dokument je dobře vytvořený, používá správné elementy, kódování a povinné hodnoty. Zachytí neuzavřenou značku, nepovolený znak nebo špatný datový typ.
Sémantická validace
Kontroluje význam: cena je kladná, URL vede na správný produkt, obrázek existuje, dostupnost odpovídá skladu a varianta má potřebné atributy. Část pravidel vyhodnotí cílová platforma, část musí hlídat e-shop.
Obchodní validace
Ověří, že zákazník může nabídku skutečně koupit za uvedených podmínek. Zahrnuje pokladnu, dopravu, minimální množství, členství, regionální omezení a platnost akce.
Generování v reálném čase, nebo dávkou
Dynamický feed při každém stažení
Vždy se skládá na požádání. U malého katalogu může být aktuální, ale zatěžuje databázi a při pomalém dotazu může cílový robot dostat timeout nebo chybu. Také hrozí, že dvě stažení během změny vrátí nekonzistentní výsledek.
Pravidelně generovaný soubor
Vzniká na pozadí a mezi generováními se servíruje hotová statická verze. Je rychlý a odolný. Musíte však hlídat jeho stáří a spouštět aktualizaci dostatečně často podle změn cen a skladů.
API nebo dílčí aktualizace
Pro kanály, které je podporují, lze často měněné atributy posílat přes API. Google Merchant API rozlišuje vstupní produktová data a výsledný zpracovaný produkt včetně problémů. API je vhodné pro časté aktualizace, ale neodstraňuje potřebu datového modelu, monitoringu a opakování chyb.
Často funguje kombinace: pravidelný úplný feed jako základ a rychlé dílčí aktualizace ceny či dostupnosti. Oba kanály musejí používat stejná pravidla.
Cache a stáří dat
Feed může být správně vygenerovaný, ale CDN nebo server vrací starou verzi. Nastavte cache podle frekvence aktualizace a po úspěšném generování ji cíleně invalidujte. Do interních metadat ukládejte čas vzniku, počet položek a kontrolní otisk.
Cílová platforma také importuje podle vlastního rozvrhu. Čas vygenerování, čas stažení a čas zpracování jsou tři rozdílné okamžiky. Při diagnostice ceny proto sledujte celou cestu.
Co se stane při chybě generování
Nezveřejňujte prázdný nebo částečný feed. Generujte do dočasného souboru, proveďte základní validaci a teprve potom nahraďte předchozí verzi. Když nový běh selže, ponechte poslední platný soubor a upozorněte správce, že stárne.
Alarmy
- feed se nevygeneroval v očekávaném intervalu,
- počet položek klesl nebo vzrostl mimo toleranci,
- soubor je neobvykle malý nebo velký,
- podíl položek bez ceny, obrázku nebo kategorie překročil limit,
- cílová platforma hlásí skok zamítnutých nabídek,
- náhodný vzorek nesouhlasí s webem,
- URL feedu vrací chybu, přihlášení nebo HTML místo XML.
Samotné HTTP 200 nestačí. Stránka s chybovým hlášením může také vrátit 200 a přitom není XML feedem.
Validace před zveřejněním
Kontroly rozdělte do několika úrovní:
- XML je dobře vytvořené a používá správné kódování,
- kořen a elementy odpovídají specifikaci kanálu,
- povinná pole jsou přítomná a ve správném formátu,
- ID jsou jedinečná a stabilní,
- URL a obrázky vracejí očekávaný obsah,
- ceny a dostupnost dávají obchodní smysl,
- počet položek odpovídá očekávání,
- vzorek variant souhlasí s produktovými stránkami a pokladnou.
Na každý feed použijte validátor konkrétní cílové platformy. Obecný XML validátor nezná její povinné elementy ani obchodní pravidla. Specifikace se průběžně mění, proto je pravidelně kontrolujte.
Monitoring po importu
Úspěšné stažení neznamená, že jsou všechny produkty schválené. Cílový systém může položky zpracovat s varováním, zamítnout je nebo hodnoty přepsat doplňkovým zdrojem. Sledujte výsledný stav, ne jen zdrojový soubor.
Užitečné metriky
- celkový počet exportovaných a zpracovaných položek,
- schválené, omezené a zamítnuté nabídky,
- chyby podle typu a počtu produktů,
- stáří posledního úspěšného importu,
- podíl položek bez GTIN, značky nebo kategorie,
- cenové a dostupnostní neshody,
- produkty bez návštěvnosti kvůli chybě či špatnému zařazení.
Změny sledujte v čase. Nárůst chyb po nasazení nové cenotvorby nebo importu katalogu rychle ukáže souvislost.
Nejčastější chyby v praxi
Feed se generuje jen při návštěvě administrace
Naplánovaná úloha neběží spolehlivě a data stárnou. Použijte skutečný systémový plánovač, monitoring posledního běhu a možnost bezpečného ručního spuštění.
Exportují se skryté nebo neprodejné produkty
Dotaz ignoruje publikační stav, katalogovou viditelnost nebo blokaci pro konkrétní zemi. Výběr produktů musí odpovídat prodejnosti v cílovém kanálu.
Chybějící produkt zruší celý feed
Jedna poškozená položka by neměla bez informace zneplatnit celý katalog. Podle závažnosti ji přeskočte, zalogujte a upozorněte správce. Zároveň nastavte limit, aby export nepokračoval s tisíci chybami a zdánlivě nehlásil úspěch.
Nejedinečná ID variant
Všechny velikosti používají ID rodiče a cílový systém je přepisuje mezi sebou. Každá nabídka musí mít vlastní stabilní identitu a skupinový klíč jen pro propojení.
Staré akční ceny
Feed si cenu uložil při minulém generování nebo nepoužívá časové pásmo e-shopu. Testujte začátek a konec akce, včetně cache a importního zpoždění.
Obrázek je dostupný jen přihlášenému uživateli
CDN, ochrana proti hotlinkingu nebo dočasný podpis blokují robota. Otestujte URL bez cookies a z jiného prostředí.
Feed obsahuje HTML chybu
PHP varování nebo stránka hostingu se vloží před XML deklaraci. Produkční generování nemá zobrazovat chyby do výstupu; logujte je odděleně a před zveřejněním ověřte typ obsahu i první bajty dokumentu.
Bezpečnost produktového feedu
Veřejný feed má obsahovat jen data určená ke zveřejnění. Nevkládejte nákupní ceny, interní marže, dodavatelské identifikátory, neveřejné skladové lokace nebo osobní údaje. Pokud feed obsahuje smluvní B2B ceny, chraňte ho odpovídajícím způsobem a ověřte, že cílový systém podporuje bezpečnou autentizaci.
Jednoduchý tajný řetězec v URL omezuje náhodné nalezení, ale může uniknout v logu nebo analytice. Pravidelně ho rotujte a neposílejte do třetích stran mimo nutný účel.
Jak zavést kvalitní feed krok za krokem
1. Vyberte kanály a jejich účel
Jiná data potřebuje srovnávač, jiná dynamická reklama a jiná marketplace. Nevytvářejte univerzální dokument s nepodporovanými poli bez jasného důvodu.
2. Sestavte datový slovník
Pro každý element určete zdroj, formát, transformaci, povinnost a chování při chybě. Zaznamenejte verzi specifikace.
3. Vyřešte varianty a ID
Toto rozhodnutí ovlivní historii a párování, proto ho nedělejte až po prvním importu.
4. Generujte do dočasné verze
Validujte strukturu, povinná data a statistiky. Až potom soubor zveřejněte.
5. Otestujte vzorek proti webu
Vyberte běžný produkt, akci, varianty, vyprodanou položku, předobjednávku a zahraniční cenu. Projděte až do košíku.
6. Zapněte monitoring zdroje i cíle
Kontrolujte stáří a počet položek ve feedu i chyby po zpracování platformou.
7. Určete vlastníka dat
Marketing řeší názvy a kategorie, sklad dostupnost, obchod ceny a technický správce generování. Každá chyba musí mít konkrétní odpovědnost.
Kontrolní seznam před spuštěním
- Feed vrací XML s odpovídajícím typem obsahu a UTF-8.
- Každá nabídka má jedinečné a stabilní ID.
- Varianty mají vlastní cenu, dostupnost, obrázek a URL.
- Cena odpovídá landing page a pokladně.
- Dostupnost vychází z prodejné zásoby a stejného pravidla jako web.
- GTIN, značka a model jsou skutečné, nikoli vymyšlené náhrady.
- Kategorie jsou mapované na taxonomii cílové platformy.
- Obrázky a produktové URL fungují bez přihlášení.
- Doprava odpovídá podmínkám v košíku.
- Selhání generování nepřepíše poslední platný feed.
- Monitoring hlídá stáří, počet položek a výsledky importu.
- Existuje postup pro hromadnou chybu nebo stažení nabídky.
Feed je součást prodejního systému, ne jednorázový export
Produktový feed musí dlouhodobě udržovat shodu mezi katalogem, webem a cílovou platformou. Kvalitní generátor zná varianty, stabilní identifikátory a specifikaci kanálu. Kvalitní provoz navíc sleduje stáří dat, výsledky importu a obchodní rozpory.
Pokud potřebujete sjednotit feedy pro srovnávače, reklamní systémy nebo další prodejní kanály, popište nám svůj katalog a zdroje produktových dat. Navrhneme export, mapování a monitoring tak, aby nabídky odpovídaly tomu, co zákazník skutečně uvidí a koupí.