XML feed
Produktový feed ve formátu XML
Co je XML feed
XML feed je produktový feed uložený ve formátu XML, tedy v textovém souboru, kde je každá položka popsaná pojmenovanými elementy. Jeden produkt odpovídá jednomu bloku, uvnitř kterého má cena, dostupnost, obrázek i identifikátory svůj vlastní element.
Proč se v Česku ustálil zrovna XML
Vynutily si ho srovnávače. Heureka i Zboží.cz mají publikovanou specifikaci s přesně danými názvy elementů, takže soubor buď odpovídá dokumentaci, nebo se nenačte. Google je smířlivější a bere i tabulkové formáty, přesto mu většina českých e-shopů posílá XML: platforma ho generuje tak jako tak. CSV nebo přímé napojení přes API má smysl u projektů, kde se data skládají z několika systémů a jeden export by je neposbíral.
Kde to nejčastěji drhne
- znaky, které XML nedovolí: ampersand, ostré závorky a řídicí znaky z popisů nakopírovaných z Wordu rozbijí soubor hned při prvním parsování
- neuzavřené elementy
- kódování jiné než UTF-8, typicky u exportů ze starších skladových systémů
- feed, který se sestavuje až ve chvíli, kdy si o něj robot řekne; u desítek tisíc položek se stahování nestihne a srovnávač si odnese půlku souboru nebo nic
Poslední bod stojí za rozvedení. Generovat feed na každý požadavek je pohodlné, protože data jsou vždycky čerstvá, jenže u velkého sortimentu to znamená dlouhé sestavování a zbytečnou zátěž databáze. Řešení je nudné: nechat soubor předgenerovat do statické podoby v rozumném intervalu a robotovi servírovat hotové.
Validátor si otevírám dřív, než se pustím do obsahu polí. Když Heureka hlásí, že feed nenačetla, bývá za tím neescapovaný ampersand v názvu nebo timeout při stahování, a obojí poznám během minuty. Teprve když soubor projde, má cenu řešit, jestli jsou v něm produkty popsané dobře; tuhle část vedu u pojmu produktový feed.