XML feedy¶
Stav k 2026-06-21.
Feedy pro zbožové srovnávače a remarketingové sítě. Generuje se každé 2 hodiny (cron/xml-feed.php), výstupní soubory v XML/.
Přehled feedů¶
| Feed | Jazyky | Soubor |
|---|---|---|
| Zbozi.cz | CS (SK neaktivní) | produkty-feed-zbozi-cs.xml |
| Heureka | CS, SK, SK alt | produkty-feed-heureka-cs.xml, -sk.xml, produkty-feed-sk.xml |
| Google Shopping | CS, SK, EN, DE | produkty-feed-google-cs.xml atd. |
| Google Remarketing | CS (SK neaktivní) | remarketing-google-cs.xml |
| Facebook Remarketing | CS, SK | remarketing-facebook-cs.xml, -sk.xml |
Aktivní/neaktivní feedy jsou řízeny přes cron/xml-feedy/soubory.yaml.
Struktura kódu¶
xml-feed.php
└── ProduktyXML (class.xml-export-produktu.php)
├── Zbozi (class.zbozi.php)
├── Heureka (class.heureka.php)
├── Google (class.google.php)
└── Facebook (class.facebook.php)
ProduktyXML::vytvoritFeedy() načte produkty po 1000 kusech a pro každý volá vytvoritXML() — ten distribuuje produkt do všech 12 variant feedu (indexy 0–11).
Co se exportuje¶
Základní filtr (SQL):
WHERE web_id = ? AND zobrazovat = 1 AND blokovat = 0 AND cena_eshop > 0 AND alias != ''
Produkty bez ceny nebo bez aliasu do feedu nejdou.
EN a DE feed — dodatečná filtrace: jen kategorie rc-modely-a-prislusenstvi, plastikove-modely, sberatelske-modely (a jejich podkategorie). Ostatní produkty v EN/DE feedu nejsou.
Cena¶
- Exportuje se
cena_a(prodejní cena s DPH). - Pokud je produkt v akci: přidá se tag
LIST_PRICEs původní cenou — srovnávač zobrazí přeškrtnutou cenu. - Zbozi.cz trick: cena je snížena o náhodných 0,40–0,50 Kč (
minus_cena_halere_zbozi). Důvod: Zbozi.cz řadí produkty se stejnou cenou různě — haléřový rozdíl zajišťuje konzistentní pořadí.
Dostupnost (Zbozi.cz)¶
Interní dostupnost se mapuje na DELIVERY_DATE:
dostupnost <= 3→DELIVERY_DATE = 0(skladem / "Honza" branch)- jinak →
DELIVERY_DATE = dostupnost - nedostupný (
dostupnost = 0ANDskladem = 0) →DELIVERY_DATE = -1+VISIBILITY = 0
Náhrady textu¶
Funkce v function.nahrady-cs.php a function.nahrady-sk.php normalizují texty pro feedy — odstraňují nebo nahrazují znaky/řetězce, které srovnávače odmítají nebo špatně parsují (HTML entity, speciální znaky, interní tagy apod.).
Kolega tyto funkce průběžně upravuje při odmítnutí produktů srovnávačem.
Migrace¶
Co si pohlídat
- Feedy jsou pevně napojeny na strukturu
eshop_produkty— po změně produktového modelu v Syliusu bude třeba přepsat celou vrstvuclass.*.php. - Haléřový trick pro Zbozi.cz je záměrný, neodstraňovat bez rozmyslu.
- EN/DE kategoriová filtrace je hardcoded — při změně stromu kategorií přestane fungovat.
soubory.yamlřídí co je aktivní — SK Zbozi je záměrně vypnuté.