Skip to content

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_PRICE s 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 <= 3DELIVERY_DATE = 0 (skladem / "Honza" branch)
  • jinak → DELIVERY_DATE = dostupnost
  • nedostupný (dostupnost = 0 AND skladem = 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 vrstvu class.*.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é.