Přeskočit na hlavní obsah

XML Feed — Produkty

Hlavní produktový feed pro import produktů do UpSearch. Podporuje jednoduché produkty, master produkty s variantami, promo kódy (price_with_code), badge, parametry a další.


Struktura feedu

Kořenový element

<?xml version="1.0" encoding="utf-8"?>
<products>
<title>Název e-shopu</title>
<link>https://www.example.com/</link>
<item>
<!-- data produktu -->
</item>
</products>

Obsahuje všechny produktové položky (<item>). Každý produkt — ať master, varianta, nebo samostatný — je samostatný <item> na stejné úrovni.


Element <item>

Reprezentuje jeden produkt (master, varianta, nebo samostatný produkt).

Základní identifikátory

ParametrTypPovinnýPopis
idinteger✅ AnoJedinečný identifikátor produktu
codestring❌ NeProduktový kód / SKU
eanstring❌ NeEAN kód produktu
numberstring❌ NeKatalogové číslo produktu
master_idinteger❌ NeID master produktu — propojuje varianty (u masteru = vlastní id)
is_masterboolean❌ Netrue = master produkt, false = varianta nebo samostatný produkt
Jak fungují varianty

Varianty nejsou vnořené uvnitř master produktu. Jsou to samostatné <item> elementy propojené přes <master_id>. Všechny varianty i master sdílejí stejnou hodnotu master_id (= ID master produktu).

Základní informace

ParametrTypPovinnýPopis
namestring✅ AnoNázev produktu
urlstring (URL)✅ AnoURL adresa produktové stránky

Obrázky

ParametrTypPovinnýPopis
imagestring (URL)✅ AnoObrázek produktu pro autocomplete (min. 50×50)
image_2x_linkstring (URL)✅ AnoHlavní obrázek produktu (min. 500×500)
image_alternativestring (URL)❌ NeAlternativní obrázek (např. jiný úhel)

Brand a kategorie

ParametrTypPovinnýPopis
brand_idinteger❌ NeID značky
brand_namestring❌ NeNázev značky
category_idinteger❌ NeID hlavní kategorie
main_categorystring❌ NeNázev hlavní kategorie
categoriesstring❌ NeKategorie (může se opakovat pro více kategorií)
root_categorystring❌ NeKořenová kategorie
breadcrumbstring❌ NeNavigační cesta (oddělená |)

Skladové informace

ParametrTypPovinnýPopis
store_countinteger❌ NePočet kusů na skladě
stock_infoobject❌ NeObjekt s informacemi o stavu skladu
stock_info/textstring❌ NeTextový popis skladu (např. "Skladem", "Na objednávku")
stock_info/statusstring❌ NeStatus skladu (in_stock, not_in_stock, out_of_stock)
in_stockboolean❌ Netrue pokud je skladem
delivery_delayinteger❌ NeDoba dodání ve dnech (0 = skladem)

Ceny

ParametrTypPovinnýPopis
pricenumber✅ AnoCena s DPH v hlavní měně
old_pricenumber❌ NePůvodní cena před slevou
discount_in_percentinteger❌ NeVýše slevy v procentech
price_with_codeobject❌ NeCena s promo kódem (viz sekce níže)
Automatické formátování cen

Stačí poslat pouze číselnou hodnotu price (např. 1299). UpSearch automaticky vygeneruje formátovanou cenu (např. "1 299 Kč") podle nastavení měny a formátu v Nastavení projektu.

Pokud potřebujete vlastní formát zobrazení (např. "od 499 Kč" u master produktů), můžete použít volitelný element price_view.

Volitelné přepsání formátu ceny

ParametrTypPovinnýPopis
price_viewobject❌ NeVlastní zobrazení ceny (přepíše automatický formát)
price_view/valuenumber✅ Ano*Číselná hodnota ceny
price_view/viewstring✅ Ano*Formátovaný text ceny (např. "od 499 Kč")
old_price_viewobject❌ NeVlastní zobrazení původní ceny
old_price_view/valuenumber✅ Ano*Číselná hodnota původní ceny
old_price_view/viewstring✅ Ano*Formátovaný text původní ceny

*Povinné, pokud je daný element přítomen

Víceměnové ceny

Pro e-shopy s více měnami (např. CZK + EUR) přidejte cenové elementy s příponou měny:

ParametrTypPopis
price_EURnumberCena v EUR
price_view_EURobjectFormátované zobrazení v EUR
old_price_EURobjectPůvodní cena v EUR

Cena s promo kódem (price_with_code)

Umožňuje zobrazit zvýhodněnou cenu po zadání promo kódu, včetně data expirace. Widget automaticky zobrazí promo kód a odpočet do konce platnosti.

ParametrTypPovinnýPopis
price_with_code/priceobject✅ AnoCena po aplikaci promo kódu
price_with_code/price/valuefloat✅ AnoČíselná hodnota zvýhodněné ceny
price_with_code/price/viewstring❌ NeFormátovaný text ceny (např. "449 Kč")
price_with_code/codestring✅ AnoPromo kód pro získání slevy
price_with_code/datetimestring (ISO 8601)✅ AnoDatum a čas konce platnosti promo kódu

Podporované formáty datetime:

  • ISO 8601 s časovou zónou: 2026-06-30T23:59:59+02:00 (doporučeno)
  • ISO 8601 základní: 2026-06-30T23:59:59
  • SQL formát: 2026-06-30 23:59:59
Jak to funguje

Widget zobrazí vedle běžné ceny i zvýhodněnou cenu s promo kódem a odpočtem do konce platnosti. Pokud do expirace zbývá méně než 24 hodin, zobrazí se urgentní styl (červené pozadí).

Důležité
  • code nesmí být prázdný
  • datetime musí být platný ISO 8601 datum — nevalidní formát způsobí chybu při importu
  • Po vypršení datetime se price_with_code ve widgetu automaticky přestane zobrazovat

Hodnocení

ParametrTypPovinnýPopis
reviews_ratingfloat❌ NePrůměrné hodnocení (0–5, může být desetinné číslo)
reviews_countinteger❌ NePočet hodnocení

Dárky (gifts)

ParametrTypPovinnýPopis
giftsobject❌ NeDárky/bonusy k produktu (může se opakovat pro více dárků)
gifts/namestring✅ Ano*Název dárku (např. "Pouzdro zdarma", "Paměťová karta 32 GB")
gifts/imagestring (URL)❌ NeObrázek dárku

*Povinné, pokud je element gifts přítomen

Další pole

ParametrTypPovinnýPopis
sold_countinteger❌ NePočet prodaných kusů (pro řazení)

Parametry produktu

ParametrTypPovinnýPopis
paramobject❌ NeTechnické parametry produktu (může se opakovat)
param/namestring✅ Ano*Název parametru (např. "Barva", "Materiál", "Velikost")
param/valuestring✅ Ano*Hodnota parametru

*Povinné, pokud je element param přítomen

Badge (označení)

ParametrTypPovinnýPopis
badgeobject❌ NeVizuální badge/štítek produktu (může se opakovat)
badge/front_textstring✅ Ano*Text na badge (např. "Bestseller", "Novinka")
badge/front_text_colorstring (HEX)❌ NeBarva textu badge (např. "#ffffff")
badge/front_background_colorstring (HEX)✅ Ano*Barva pozadí badge (např. "#10b981")

*Povinné, pokud je element badge přítomen


Master produkty a varianty

Varianty se v UpSearch XML feedu zapisují jako samostatné <item> elementy na stejné úrovni. Propojení master–varianta se řeší přes pole <master_id> a <is_master>.

Pravidla

  1. Master produkt: <is_master>true</is_master>, <master_id> = vlastní <id>
  2. Varianta: <is_master>false</is_master>, <master_id> = ID master produktu
  3. Samostatný produkt (bez variant): <is_master>false</is_master> nebo neuvedeno, bez <master_id>

Jak to funguje

  • Master slouží jako zástupný produkt, který se zobrazí ve výsledcích vyhledávání
  • Varianty jsou propojeny přes sdílené master_id a UpSearch je seskupí
  • Master produkt typicky obsahuje annotation, souhrnný popis a cenu "od X Kč"
  • Varianty mají konkrétní atributy (barva, velikost) v názvu nebo v <param>
Feed:
┌─────────────────────────────────────┐
│ <item> id=1001 master_id=1001 │ ← Master (is_master=true)
│ <item> id=1002 master_id=1001 │ ← Varianta — černá
│ <item> id=1003 master_id=1001 │ ← Varianta — bílá
│ <item> id=2001 (bez master_id) │ ← Samostatný produkt
└─────────────────────────────────────┘

Datové typy

TypPopisPříklad
integerCelé číslo6654, 145, 0
floatDesetinné číslo4.3, 4.7, 5
numberCelé nebo desetinné číslo499, 28.89
stringTextový řetězec"Modrá", "XL"
booleanPravdivostní hodnotatrue, false
URLURL adresahttps://example.com/...
objectVnořený element s další strukturou<price_view>...</price_view>

Příklady XML struktur

Master produkt s variantami (barva)

Tři samostatné <item> elementy propojené přes master_id:

<!-- Master produkt -->
<item>
<id>1001</id>
<name>Designové křeslo</name>
<annotation>Pohodlné designové křeslo dostupné v několika barvách.</annotation>
<url>https://www.example.com/designove-kreslo/</url>
<image>https://www.example.com/images/kreslo-50.jpg</image>
<image_2x_link>https://www.example.com/images/kreslo-500.jpg</image_2x_link>
<brand_id>10</brand_id>
<brand_name>HomeDesign</brand_name>
<category_id>25</category_id>
<main_category>Křesla</main_category>
<categories>Křesla</categories>
<categories>Obývací pokoj</categories>
<root_category>Nábytek</root_category>
<breadcrumb>Nábytek | Křesla</breadcrumb>
<master_id>1001</master_id>
<is_master>true</is_master>
<store_count>8</store_count>
<delivery_delay>0</delivery_delay>
<price>4990</price>
<price_view>
<value>4990</value>
<view>od 4 990 Kč</view>
</price_view>
<stock_info>
<text>Skladem</text>
<status>in_stock</status>
</stock_info>
<in_stock>true</in_stock>
<param>
<name>Materiál</name>
<value>Polyester</value>
</param>
<badge>
<front_text>Bestseller</front_text>
<front_text_color>#ffffff</front_text_color>
<front_background_color>#10b981</front_background_color>
</badge>
</item>

<!-- Varianta — šedá (price_view se generuje automaticky z price) -->
<item>
<id>1002</id>
<name>Designové křeslo šedé</name>
<code>DK-GREY</code>
<ean>8590000000001</ean>
<url>https://www.example.com/designove-kreslo-sede/</url>
<image>https://www.example.com/images/kreslo-sede-50.jpg</image>
<image_2x_link>https://www.example.com/images/kreslo-sede-500.jpg</image_2x_link>
<brand_id>10</brand_id>
<brand_name>HomeDesign</brand_name>
<category_id>25</category_id>
<main_category>Křesla</main_category>
<categories>Křesla</categories>
<root_category>Nábytek</root_category>
<breadcrumb>Nábytek | Křesla</breadcrumb>
<master_id>1001</master_id>
<is_master>false</is_master>
<store_count>5</store_count>
<delivery_delay>0</delivery_delay>
<param>
<name>Barva</name>
<value>šedá</value>
</param>
<price>4990</price>
<stock_info>
<text>Skladem</text>
<status>in_stock</status>
</stock_info>
<in_stock>true</in_stock>
</item>

<!-- Varianta — modrá (price_view se generuje automaticky z price) -->
<item>
<id>1003</id>
<name>Designové křeslo modré</name>
<code>DK-BLUE</code>
<ean>8590000000002</ean>
<url>https://www.example.com/designove-kreslo-modre/</url>
<image>https://www.example.com/images/kreslo-modre-50.jpg</image>
<image_2x_link>https://www.example.com/images/kreslo-modre-500.jpg</image_2x_link>
<brand_id>10</brand_id>
<brand_name>HomeDesign</brand_name>
<category_id>25</category_id>
<main_category>Křesla</main_category>
<categories>Křesla</categories>
<root_category>Nábytek</root_category>
<breadcrumb>Nábytek | Křesla</breadcrumb>
<master_id>1001</master_id>
<is_master>false</is_master>
<store_count>3</store_count>
<delivery_delay>0</delivery_delay>
<param>
<name>Barva</name>
<value>tmavě modrá</value>
</param>
<badge>
<front_text>Doprava zdarma</front_text>
<front_text_color>#ffffff</front_text_color>
<front_background_color>#000000</front_background_color>
</badge>
<price>5490</price>
<stock_info>
<text>Skladem</text>
<status>in_stock</status>
</stock_info>
<in_stock>true</in_stock>
</item>

Samostatný produkt bez variant

<item>
<id>3001</id>
<name>LED stolní lampa</name>
<code>LED-001</code>
<ean>8590000000010</ean>
<url>https://www.example.com/led-stolni-lampa/</url>
<image>https://www.example.com/images/lampa-50.jpg</image>
<image_2x_link>https://www.example.com/images/lampa-500.jpg</image_2x_link>
<brand_name>LightCo</brand_name>
<main_category>Stolní lampy</main_category>
<categories>Stolní lampy</categories>
<categories>Kancelář</categories>
<root_category>Svítidla</root_category>
<breadcrumb>Svítidla | Stolní lampy</breadcrumb>
<is_master>false</is_master>
<store_count>23</store_count>
<delivery_delay>0</delivery_delay>
<param>
<name>Příkon</name>
<value>12 W</value>
</param>
<param>
<name>Materiál</name>
<value>Hliník</value>
</param>
<price>1299</price>
<stock_info>
<text>Skladem 23 ks</text>
<status>in_stock</status>
</stock_info>
<in_stock>true</in_stock>
<reviews_rating>4.7</reviews_rating>
<reviews_count>42</reviews_count>
<badge>
<front_text>Novinka</front_text>
<front_text_color>#ffffff</front_text_color>
<front_background_color>#2563eb</front_background_color>
</badge>
</item>

Produkt ve slevě s promo kódem

<item>
<id>4001</id>
<name>Běžecké boty ProRun</name>
<url>https://www.example.com/bezecke-boty/</url>
<image>https://www.example.com/images/boty-50.jpg</image>
<image_2x_link>https://www.example.com/images/boty-500.jpg</image_2x_link>
<is_master>false</is_master>
<price>2499</price>
<old_price>2999</old_price>
<discount_in_percent>17</discount_in_percent>
<price_with_code>
<price>
<value>1999</value>
<view>1 999 Kč</view>
</price>
<code>SPORT20</code>
<datetime>2026-06-30T23:59:59+02:00</datetime>
</price_with_code>
<stock_info>
<text>Skladem 8 ks</text>
<status>in_stock</status>
</stock_info>
<in_stock>true</in_stock>
<badge>
<front_text>Akce</front_text>
<front_text_color>#ffffff</front_text_color>
<front_background_color>#dc2626</front_background_color>
</badge>
</item>

Produkt s víceměnovými cenami (CZK + EUR)

<item>
<id>5001</id>
<name>Venkovní svítidlo</name>
<url>https://www.example.com/venkovni-svitidlo/</url>
<image>https://www.example.com/images/svitidlo-50.jpg</image>
<image_2x_link>https://www.example.com/images/svitidlo-500.jpg</image_2x_link>
<is_master>false</is_master>
<price>2225</price>
<price_EUR>89</price_EUR>
<stock_info>
<text>Skladem</text>
<status>in_stock</status>
</stock_info>
<in_stock>true</in_stock>
<sold_count>15</sold_count>
</item>

Poznámky k implementaci

Master produkty vs. varianty

  • Master produkt a jeho varianty jsou samostatné <item> elementy propojené přes <master_id>
  • Master produkt má <is_master>true</is_master> a <master_id> rovné vlastnímu <id>
  • Varianty mají <is_master>false</is_master> a <master_id> odkazující na master
  • Rozdíly mezi variantami jsou typicky v názvu a v <param> (Barva, Velikost apod.)

Ceny

  • Stačí poslat <price> jako číslo — formátování se provede automaticky podle nastavení měny v Sales Channelu
  • U master produktů: pokud chcete prefix "od" (např. "od 4 990 Kč"), použijte volitelný <price_view> s vlastním textem
  • <old_price>: původní cena před slevou — old_price_view se vygeneruje automaticky
  • price_with_code: volitelná zvýhodněná cena s promo kódem a expirací

Obrázky

  • image — menší rozlišení pro autocomplete/náhledy (min. 50×50 px)
  • image_2x_link — plné rozlišení pro detail (min. 500×500 px)
  • image_alternative — volitelný druhý obrázek
  • Doporučené minimální rozlišení: 50×50 px (autocomplete), 500×500 px (detail)

Kategorie

  • Element <categories> se může opakovat (produkt ve více kategoriích)
  • breadcrumb obsahuje hierarchickou cestu oddělenou |

Badge styly

Důležité

Barvy pro badge musí být zadány ve formátu HEX (#RRGGBB), ne jako CSS třídy. Barvy se aplikují jako inline CSS styly.

Doporučené barvy pro badge:

Typ badgeBarva pozadíBarva textuPoužití
Bestseller#10b981 (zelená)#ffffff (bílá)Nejprodávanější produkty
Novinka#2563eb (modrá)#ffffff (bílá)Nové produkty
Sleva / Akce#dc2626 (červená)#ffffff (bílá)Produkty v akci
Limitovaná edice#FFCF00 (žlutá)#26237b (tmavá)Omezené edice
Doprava zdarma#64a81b (tmavě zelená)#ffffff (bílá)Produkty s dopravou zdarma
Validátor feedu

Ověřte strukturu vašeho produktového feedu pomocí XML Feed Validátoru — zkontroluje povinná pole, datové typy a vnořené struktury.