- [Case Studies](https://www.mergado.cz/kategorie/case-studies)
- [E‑commerce tipy](https://www.mergado.cz/kategorie/e-commerce-tipy)
- [E‑shopová řešení a platformy](https://www.mergado.cz/kategorie/e-shopova-reseni-a-platformy)
- [Mergado Pack](https://www.mergado.cz/kategorie/mergado-pack)
- [Mergado tipy](https://www.mergado.cz/kategorie/mergado-tipy)
- [Novinky v Mergadu](https://www.mergado.cz/kategorie/novinky-v-mergadu)
- [Novinky ze srovnávačů](https://www.mergado.cz/kategorie/novinky-ze-srovnavacu)
- [Pracujeme s Mergadem](https://www.mergado.cz/kategorie/pracujeme-s-mergadem)
- [Rozhovory](https://www.mergado.cz/kategorie/rozhovory)
- [Rozšíření](https://www.mergado.cz/kategorie/aplikace)
- [S Mergadem do zahraničí](https://www.mergado.cz/kategorie/s-mergadem-do-zahranici)
- [Ze života Mergada](https://www.mergado.cz/kategorie/ze-zivota-mergada)
 



 

 1. [  Úvod  ](https://www.mergado.cz/)
2. [     Blog  ](https://www.mergado.cz/blog)
3. [     Pracujeme s Mergadem  ](https://www.mergado.cz/kategorie/pracujeme-s-mergadem)
4. <a class="flex items-center gap-2 hover:underline" href="" itemid="" itemprop="item" itemscope="" itemtype="https://schema.org/Thing">    **Jak opravit časté chyby v XML feedu? I. díl** </a>
 
  

 

#  **Jak opravit časté chyby v XML feedu? I. díl** 

 

 

 [    ![](https://www.mergado.cz/sites/default/files/perm/user-avatar/katka2.jpg)   Kateřina Šmajzrová  ](https://www.mergado.cz/blog/katerina-smajzrova) [Pracujeme s Mergadem](https://www.mergado.cz/kategorie/pracujeme-s-mergadem) 

8. 11. 2016

5 minut čtení

 

 

 

 

 

  ![Jak opravit časté chyby v XML feedu? I. díl](https://www.mergado.cz/sites/default/files/field/image/oprava-feedu-1-dil.png)  

Jeden z prvních kroků na cestě za **efektivnější správou inzerce** a vyššími zisky z je [audit XML feedu,](https://audit.mergado.com/) který nabízí Mergado **zdarma**. Po jeho provedení zíkáte seznam chyb a doporučení, jak objevené problémy odstranit. Podívejme se, jak vyřešíte ty nejčastější chyby.



 

 

 
                function tableOfContents() {
                  return {
                    headings_menu: [],
                    heading_active: '', // Added to track the active section
                    shouldBeSticky: false,

                    generateToC() {
                      const headings = document.querySelectorAll('.js-article-full-headings h2, .js-article-full-headings h3');
                      let headingMap = {};

                      headings.forEach((heading) => { // Use an arrow function to maintain `this` context
                        // Normalize heading text to remove diacritics, then replace non-alphanumeric characters with dashes
                        var normalizedText = heading.textContent.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); // Remove diacritics
                        var id = heading.id ? heading.id : normalizedText.trim().toLowerCase()
                          .split(' ').join('-').replace(/[^a-z0-9\-]/ig, ''); // Updated regex to replace non-alphanumeric characters
                        headingMap[id] = headingMap[id] !== undefined ? ++headingMap[id] : 0;

                        // Use the updated `id` with diacritics removed for the heading id and the TOC
                        const finalId = headingMap[id] ? `${id}-${headingMap[id]}` : id;
                        this.headings_menu.push({
                          id: finalId,
                          title: heading.textContent,
                          level: heading.tagName.toLowerCase(), // Track heading level
                          active: false, // Initially set active to false
                        });
                        heading.id = finalId;
                      });
                    },

                    checkStickyNeeded() {
                      const ul = this.$el.querySelector('ul');
                      if (ul) {
                        this.shouldBeSticky = ul.scrollHeight < window.innerHeight;
                      }
                    },

                    setActiveHeading() {
                      // disabled not working with active state on click
                      // add @scroll.window="setActiveHeading()" to the parent div

                      // const headings = document.querySelectorAll('.js-article-full-headings h2');
                      // let activeHeading = '';
                      // let closestHeadingDistance = Infinity;

                      // headings.forEach((heading) => {
                      //   const rect = heading.getBoundingClientRect();
                      //   const offset = rect.top - window.innerHeight / 2; // Consider heading in the middle of the screen as active

                      //   if (offset < 0 && Math.abs(offset) < closestHeadingDistance) {
                      //     activeHeading = heading.id;
                      //     closestHeadingDistance = Math.abs(offset);
                      //   }
                      // });

                      // // Update the active state in headings_menu
                      // if (activeHeading !== this.heading_active) {
                      //   this.headings_menu = this.headings_menu.map(item => ({
                      //     ...item,
                      //     active: item.id === activeHeading,
                      //   }));
                      //   this.heading_active = activeHeading;

                      // }
                    },

                    setActiveItem(clickedId) {
                      this.headings_menu.forEach(item => {
                        item.active = (item.id === clickedId);
                      });
                      this.heading_active = clickedId; // Optionally update the heading_active property if used
                    },
                  };
                }
               1. <a :class="{ 'border-r-[3px] border-secondary': item.active, 'text-sm': item.level === 'h3' }" :href="'#' + item.id" class="inline-block text-balance hover:underline p-0.5 pr-3">  — </a>
  



 

Jeden z prvních kroků na cestě za **efektivnější správou inzerce** a vyššími zisky z je [audit XML feedu,](https://audit.mergado.com/) který nabízí Mergado **zdarma**. Po jeho provedení zíkáte seznam chyb a doporučení, jak objevené problémy odstranit. Podívejme se, jak vyřešíte ty nejčastější chyby.

Níže popisujeme několik častých chyb, které XML feedy mají. K jejich nápravě je často **vhodné využít** [regulární výrazy](https://www.mergado.cz/tema/regularni-vyrazy). Pokud jste s nimi doposud nepracovali, nebo se na ně chcete podrobněji zaměřit, **přečtěte si seriál článků** o regulárních výrazech:

1. [Jak na regulární výrazy v Mergadu — I. díl](https://www.mergado.cz/regularni-vyrazy-1)
2. [Jak na regulární výrazy v Mergadu – II. díl](https://www.mergado.cz/jak-na-regularni-vyrazy-v-mergadu-ii-dil)
3. [Jak na regulární výrazy v Mergadu – III. díl](https://www.mergado.cz/jak-na-regularni-vyrazy-v-mergadu-iii-dil)

## Element EAN obsahuje neplatnou hodnotu 

EAN je důležitým **identifikačním prvkem zboží**, zejména při inzerování na [Google Nákupech](https://www.mergado.cz/tema/google-nakupy). Pokud váš feed obsahuje tuto chybu, postupujte následovně: 1. Zkontrolujte, jestli je váš **EAN správně dlouhý.** Obvykle má EAN **8 nebo 12 – 14 znaků**. Hledejte tedy takové produkty, které tento počet znaků nemají, a to pomocí následujícího regulárního výrazu: **^(\\d{8}|\\d{12,14})$** **![](/sites/default/files/users/chyby-feed-i-1.png)** 2. S tímto výběrem produktů dovete dále pracovat — nejprve zjistit, jakou jinou hodnotu než výše uvedenou [EAN](https://www.mergado.cz/ean-vyuziti-srovnavace) obsahuje a tu pak **opravit přímo v e‑shopu.** Případně, pokud je hodnota EAN uvedena na jiném místě ve feedu, vepište ji do elementu pomocí pravidla [Najít a nahradit](https://www.mergado.cz/blog/najit-a-nahradit-mergadovo-nove-pravidlo-ktere-musite-mit).

## Element MANUFACTURER chybí nebo je prázdný 

Informace o výrobci se často vyskytují **i na jiném místě ve vašem feedu.** Můžete je tedy vybrat a zkopírovat z jiných elementů. Nejprve je ale nutné **zkontrolovat**, zda **element MANUFACTURER ve vašem feedu vůbec je.** Pokud není, jednoduše ho v Mergadu vytvoříte – na kartě *Elementy* dejte *Nový element* a MANUFACTURER přidejte. ![](/sites/default/files/users/chyby-feed-i-2.png) Následně tento element **naplňte pravidlem** podle toho, kde se informace o výrobci nachází. Popisujeme proto **několik možností:**

- V případě, že máte jen **několik málo výrobců** – řekněme maximálně dvě desítky – postupujte pomocí výběrů. **Vyfiltrujte jednotlivé výrobce** (např. vyhledáním jména výrobce v DESCRIPTION nebo v PRODUCTNAME) a následně pro takový výběr **vytvořte nové pravidlo** (typu *Přepsat*), kterým naplníte název výrobce do elementu MANUFACTURER.

![](/sites/default/files/users/chyby-feed-i-3.png)

- V případě **většího množství výrobců**, u kterých by byl předchozí postup velmi zdlouhavý až nemožný, je nutné **zautomatizovat přepisování názvu** tak, aby Mergado poznalo, kde má informaci o výrobci vzít. Řekněme, že je jméno výrobce na začátku elementu PRODUCTNAME. Nejdříve vytvoříme proměnnou s názvem MANUFACTURER, jejíž náplní bude první slovo z elementu PRODUCTNAME. (Novou proměnnou přidáte na kartě *Pravidla* v pravém sloupci skrze příkaz *Upravit proměnné*). To zařídíme skrze regulární výraz: **^\[^\\s\]\*.** Tento regulární výraz hledá od začátku řetězce jakékoliv znaky do první mezery, najde tedy první slovo v řetězci včetně první mezery. Díky tomu je použitelný pro jednoslovné názvy výrobců, např. Addidas, Nike, Reebok, atd.

![](/sites/default/files/users/chyby-feed-i-4.png)

- Tuto proměnnou potom vložíme pomocí pravidla do elementu MANUFACTURER.

![](/sites/default/files/users/chyby-feed-i-5.png)

## Element CATEGORYTEXT má neplatnou hodnotu 

K opravení tohoto nedostatku využijte pravidlo na **Hromadnou úpravu kategorií**, které vám našeptá správnou kategorii daného vyhledávače. **Jak na to se podívejte v tomto videu:**

## Element DELIVERY\_DATE chybí nebo je prázdný 

Pokud vám element DELIVERY\_DATE chybí, je potřeba ho **přidat v nastavení pravidel a následně naplnit** (jako v předchozím případě u elementu MANUFACTURER). Pokud element DELIVERY\_DATE **máte, ale neobsahuje žádná data,** nezbývá nic jiného než dodací dobu nastavit – **ideálně v administraci e‑shopu**.



 

Pro zlepšení výkonu vaší inzerce si můžete navíc zkontrolovat, jaké informace o dodání posíláte a zda není možné distribuční proces zrychlit. Srovnávače se totiž **liší v tom, jak zobrazují vámi uvedenou dobu dodání v inzerci**. [Heureka](https://www.mergado.cz/tema/heureka-cz) i [Zboží.cz](https://www.mergado.cz/tema/zbozi-cz) totiž zobrazují jako skladem jenom takové zboží, které **má v elementu DELIVERY\_DATE hodnotu 0** – pokud tedy máte v e‑shopu produkty, které jsou skladem, označené 1, budou se vám na srovnávačích zobrazovat jako dostupné do tří dnů. S tím se pojí vyšší cena za prokliky a menší šance na dobré umístění.

 

 

 

 

 

## Element PRODUCT obsahuje nevhodná slova

Heureka (a další vyhledávače) bojují proti extrémně dlouhým či zavádějícím názvům produktů **zákazem některých slov**. Většinou se jedná o doplňkové služby, kdy podle specifikace Heureky **může být součástí názvu třeba:** prodloužená záruka, dárkové balení nebo servis zdarma. Naopak **informace o dárku, dopravě zdarma nebo splátkovém prodeji v názvu zboží netoleruje.** Kompletní seznam povolených a zakázaných slov najdete [zde](http://sluzby.heureka.cz/napoveda/xml-feed/#PRODUCT). **Jak si s tímto poradit?** Pokud **víte, jaká slova v tomto názvu máte** – například Doprava zdarma – stačí použít pravidlo *Najít a nahradit*, pomocí kterého tento výraz v celém souboru **najdeme a nahradíme prázdným políčkem**. Pro jistější vyhledávání se hodí zaškrtnout možnost *Regulární* *výraz*. ![](/sites/default/files/users/chyby-feed-i-6.png) V případě, že máte v názvu **různá nevyhovující slova**, postupujte stejně s využitím regulárních výrazů. Pokud máte různé dvouslovné nabídky (Doprava zdarma, Dárek zdarma, Splátkový prodej) na konci názvu, využijte regulární výraz v pravidle *Najít a nahradit*, který bude vypadat takto: **(\\s\*\\S+\\s\*){2}$**. Tento regulární výraz najde dvě slova na konci řetězce, včetně mezery před těmi slovy. Příklad: z řetězce *“Tričko s dlouhým rukávem Doprava zdarma”*, reg. výraz najde *“doprava zdarma”*. Alternativou je regulární výraz **\\s\*-\[^-\]\*$**, který najde jakkoliv dlouhý text od konce řetězce do pomlčky, včetně samotné pomlčky a případné mezery před pomlčkou. Příklad: z řetězce “*Tričko s dlouhým rukávem — Doprava zdarma*”, reg. výraz najde *” — Doprava zdarma”*. O využití Mergada při správě inzerce si přečtěte **v seriálu Nejčastější použití Mergada**:

1. [Nejčastější využití Mergada (1. díl)](https://www.mergado.cz/nejcastejsi-vyuziti-mergada-1-dil)
2. [Nejčastější využití Mergada (2. díl)](https://www.mergado.cz/nejcastejsi-vyuziti-mergada-2-dil)
3. [Nejčastější využití Mergada (3. díl)](https://www.mergado.cz/nejcastejsi-vyuziti-mergada-3-dil)

S Mergadem tyto a mnoho dalších úprav produktových feedů **zvládnete hromadně a přehledně nastavit sami**. Zkvalitníte tím práci na správě inzerce e‑shopu a **ušetříte** **náklady** na zaměstnávání programátora.



 

  ![](https://www.mergado.cz/themes/custom/mergado/static/images/banner/mergado.svg) Mergado na 30 dní zdarma

- upravíte si feed sami a ušetříte náklady za práci programátora
- plný přístup ke všem funkcím už ve zkušební verzi

 

 [Chci to vyzkoušet](https://accounts.mergado.com/register/) 

  ![](https://www.mergado.cz/themes/custom/mergado/static/images/banner/mergado.svg)  

 

Pokud byste si nevěděli rady s dalšími chybami ve vašem feedu, mrkněte na [fórum](http://forum.mergado.cz). Mnoho z nich jsme zde popsali a přidali řešení jejich oprav.

### Mohlo by vás zajímat:



 

 [    ![](https://www.mergado.cz/sites/default/files/perm/image/uawc_cs_cz.jpg)  

### Jak optimalizace feedu zvýšila výkon Meta Ads bez navýšení rozpočtu

 

 ](https://www.mergado.cz/blog/optimalizace-feedu-pro-Meta-Ads) 

 [    ![](https://www.mergado.cz/sites/default/files/perm/image/jak_uspesne_prodavat_na_idealo.jpg)  

### Jak úspěšně prodávat na idealo

 

 ](https://www.mergado.cz/blog/uspesny-prodej-na-idealo) 

 [    ![](https://www.mergado.cz/sites/default/files/perm/image/jak_promenit_produkt_data_vykon.jpg)  

### Výkonnější reklamy bez navýšení rozpočtu: 6 tipů, jak vytěžit maximum z produktových dat

 

 ](https://www.mergado.cz/blog/vykonnejsi-reklamy-bez-navyseni-rozpoctu) 

 

 

- [  Mergado ](https://www.mergado.cz/tema/mergado)
- [  XML feed ](https://www.mergado.cz/tema/xml-feed)
- [  Regulární výrazy ](https://www.mergado.cz/tema/regularni-vyrazy)
 
 [    ![](https://www.mergado.cz/sites/default/files/perm/user-avatar/katka2.jpg)  ](https://www.mergado.cz/blog/katerina-smajzrova)###  [ Kateřina Šmajzrová ](https://www.mergado.cz/blog/katerina-smajzrova) 

Katka se panu Mergadovi starala o české texty, hlídala aby jim bylo rozumět a aby vás bavily. Taky točila videa a webináře pro ty, kdo jsou spíš na obrázky než na texty.

 

 

 

 

 

 

 

 

 

## Mohlo by vás *zajímat*

 

 [    ![](https://www.mergado.cz/sites/default/files/perm/image/heureka_google_rec.jpg)  

### Heureka recenze do Google recenzí: nový postup krok za krokem

 

 ](https://www.mergado.cz/blog/heureka-recenze-do-google-recenzi) 

 [    ![](https://www.mergado.cz/sites/default/files/perm/image/shoptet-shopify-prevod.jpg)  

### Jak jsme s Mergadem převedli e‑shop ze Shoptetu na Shopify: kompletní migrace bez ztráty dat

 

 ](https://www.mergado.cz/blog/jak-jsme-s-mergadem-prevedli-e-shop-ze-shoptetu-na-shopify-kompletni-migrace-bez-ztraty-dat) 

 [    ![nastavení agenturních účtů](https://www.mergado.cz/sites/default/files/perm/image/new-nahladovka-na-blog-1200-x-628-px-37.png)  

### Jak nastavovat uživatelské účty agenturních pracovníků v Mergadu

 

 ](https://www.mergado.cz/blog/opravneni-uzivatelskych-uctu-pro-agentury) 

 

 

 

## Ať vám *nic neunikne*

 Přihlašte se do našeho newsletteru 

   

       

   Přihlášením souhlasíte, že vaše údaje zpracujeme v souladu s podmínkami o [ochraně osobních údajů](https://www.mergado.cz/prohlaseni-o-cookies). 

  Děkujeme, úspěšně jste se připojili k našemu seznamu odběratelů. 

 

 

 
      function ml_webform_success_5807248() {
        var r = ml_jQuery || jQuery
        r('.ml-subscribe-form-5807248 .row-success').show(), r('.ml-subscribe-form-5807248 .row-form').hide()
      }