- [Case Studies](/kategorie/case-studies)
- [E‑commerce tipy](/kategorie/e-commerce-tipy)
- [E‑shopové riešenia a platformy](/kategorie/e-shopove-riesenia-platformy)
- [Mergado Pack](/kategorie/mergado-pack)
- [Mergado tipy](/kategorie/mergado-tipy)
- [Novinky v Mergade](/kategorie/novinky-v-mergade)
- [Novinky z porovnávačov cien](/kategorie/novinky-z-porovnavacov-cien)
- [Pracujeme s Mergadom](/kategorie/pracujeme-s-mergadom)
- [Rozhovory](/kategorie/rozhovory)
- [Rozšírenia](/kategorie/aplikacie)
- [S Mergadom do zahraničia](/kategorie/s-mergadom-do-zahranicia)
- [Zo života Mergada](/kategorie/zo-zivota-mergada)
 



 

 1. [  Domov  ](/)
2. [     Blog  ](/blog)
3. [     Case Studies  ](/kategorie/case-studies)
4. <a class="flex items-center gap-2 hover:underline" href="" itemid="" itemprop="item" itemscope="" itemtype="https://schema.org/Thing">    **Pre e‑shopárov: Úprava feedu pre zobrazovanie skladovej dostupnosti rôznych dodávateľov** </a>
 
  

 

#  **Pre e‑shopárov: Úprava feedu pre zobrazovanie skladovej dostupnosti rôznych dodávateľov** 

 

 

 [    ![](https://www.mergado.sk/sites/default/files/perm/image/profil-foto.jpg)   Petra Marková  ](/blog/petra-markova) [Case Studies](/kategorie/case-studies) 

1. 8. 2023

4 minúty čítania

 

 

 

 

 

  ![skladová dostupnosť roznych dodavatelov](https://www.mergado.sk/sites/default/files/perm/image/new-nahladovka-na-blog-1200-x-628-px-24.png)  

Veľa e‑shopov chce kombinovať vlastné skladové zásoby so zásobami na externých skladoch dodávateľov. Ak máte tovar na vlastnom sklade, vždy chcete ukazovať, že sú produkty skladom *ihneď k expedícii*. Ale **ukázať zákazníkovi aktuálnu informáciu o skladových zásobách** vašich dodávateľov v reálnom čase, a podľa toho meniť dostupnosť tovaru a termín doručenia, väčšina predajcov nastaviť nedokáže.



 

 

 
                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>
  



 

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

- feed si upravíte sami a ušetríte náklady za prácu programátora
- plný prístup ku všetkým funkciám už v skúšobnej verzii

 

 [Chcem to vyskúšať](https://accounts.mergado.com/register/) 

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

 

Takáto úprava dostupnostného feedu môže zvýšiť vášmu e‑shopu dôveryhodnosť, ponúknuť vašim zákazníkom reálne termíny doručenia, viac predávať, a hlavne **všetko automatizovať**.

Postupovať je možné napríklad tak, ako sme to urobili úspešne pre jedného nášho klienta predávajúceho cyklo doplnky. Poďte sa pozrieť na nastavenie Mergada, ktoré vám umožní podľa aktuálnej skladovej zásoby u vás a dodávateľov **správne zobrazovať dostupnosť produktov vo vašom e‑shope**.

## **Základom sú XML dostupné feedy od dodávateľov**

Ako vstupné informácie budeme potrebovať **XML dostupnostný feedy dodávateľov**. Pretože v našom prípade má klient celkom 5 rôznych dodávateľov produktov, od každého sme získali XML výstup produktov a skladových zásob. Ten sme vložili ako jednotlivé exporty do Mergada, kedy **na vstupe bol XML feed dodávateľa a na výstupe CSV**.



 

 [  ![](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost.png)  ](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost.png) 

## **Modifikácia pôvodného dostupnostného feedu e‑shopu**

Keď už máme pripravené XML feedy s produktmi a skladovými zásobami od rôznych dodávateľov ako samostatné exporty s výstupom v CSV, modifikujeme na základe týchto dát súčasný dostupný feed pre náš e‑shop.

### 1. Produkty na vlastnom sklade majú prednosť

Ak má e‑shop produkt na vlastnom sklade, chceme vždy zobrazovať na produktovej karte našu skladovú zásobu, nie to, že je na sklade u dodávateľa. Preto sme **vytvorili nový element ITEM\_SKLAD**, ktorý hovorí, aký sklad sa má pri produkte preferovať. Hodnota 1 znamená vlastný sklad, hodnota 2 externý sklad niektorého z dodávateľov. Táto hodnota potom finálne e‑shopu hovorí, **ako rýchlo dokáže produkt e‑shop doručiť** (pri doručení z externého skladu dodávateľa je doručenie o 2 dni dlhšie).

Zároveň s tým si zaznamenáme do ďalšej **novej premennej ITEM\_KUSU\_PUVODNI\_HODNOTA**, koľko kusov produktu je skladom. Informáciu zámerne **oddeľujeme** od elementu ZASOBA, ktorá môže byť v procese prepisovaná.



 

 [  ![](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-2.png)  ](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-2.png) 

### 2. Pri produktoch, ktoré nemáme na sklade, určíme, aký dodávateľ ho má skladom

Vo feede si vytvoríme nové elementy na zapisovanie skladovej zásoby pre rôznych dodávateľov:

- ITEM\_KUSU\_DODAVATEL1
- ITEM\_KUSU\_DODAVATEL2
- ITEM\_KUSU\_DODAVATEL3
- ITEM\_KUSU\_DODAVATEL4
- ITEM\_KUSU\_DODAVATEL5

Tie na úvod pravidlom **vynulujeme**, aby sme vždy s každým exportom prepísali do feedu **aktuálnu skladovú dostupnosť.**

Ďalej sme pomocou typu pravidla *Import dátového súboru* **napárovali pripravené CSV výstupy** s informáciami o dostupnosti produktov od jednotlivých dodávateľov pomocou obdobných pravidiel:



 

 [  ![](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-3.png)  ](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-3.png) 

Kľúčom pre spárovanie bolo **číslo produktu alebo EAN**, alternatívne názov produktu. Ako URL adresu zdrojového dátového súboru sme vložili výstupnú adresu dostupnostných feedov od dodávateľov, ktorých sme si v predchádzajúcom kroku pripravili.

Všetkým produktom, ktoré nemáme na vlastnom sklade a má ich niektorý z dodávateľov, **nastavíme hodnotu ITEM\_SKLAD na 2** (tovar na externom sklade):



 

 [  ![](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-4-oprava.png)  ](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-4-oprava.png) 

### 3. Pri produktoch na skladoch dodávateľa prepíšeme späť do skladovej zásoby nový počet kusov skladom

Následne sme porovnali **stav skladových zásob jednotlivých skladov** a vytvorili pre každého dodávateľa výber produktov, ktorých má zo všetkých dodávateľov najviac na sklade. *Výber pre dodávateľa 1 vyzerá takto:*

```plaintext
[ITEM_KUSU_PUVODNI_HODNOTA]  = "0" AND [ITEM_KUSU_DODAVATEL1] > "0" AND [ITEM_KUSU_DODAVATEL1] >= [ITEM_KUSU_DODAVATEL2] AND [ITEM_KUSU_DODAVATEL1] >= [ITEM_KUSU_DODAVATEL3] AND [ITEM_KUSU_DODAVATEL1] >= [ITEM_KUSU_DODAVATEL4] AND [ITEM_KUSU_DODAVATEL1] >= [ITEM_KUSU_DODAVATEL5] 
```

Pretože klient má v našom prípade *päť dodávateľov,* treba pre každého dodávateľa **pripraviť obdobný výber**.

Keď už vieme, ktorý dodávateľ má **najvyššie skladové zásoby**, pomocou pravidla *Hromadné prepisovanie podľa výberu* sme prepísali do elementu **ZASOBA** danú skladovú zásobu:



 

 [  ![](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-5.png)  ](https://www.mergado.sk/sites/default/files/perm/paragraph-image/skladova-dostupnost-5.png) 

### 4. Upravený dostupný feed ponúkneme e‑shopu

Takto modifikovaný feed so skladovými zásobami **ponúkneme e‑shopovému riešeniu**. V našom prípade sme napájali na *eshop-rychle.cz*. S podporou sme sa dohodli, v akom elemente XML feedu je informácia o tom, aký sklad sa má pri produkte zobrazovať (ITEM\_SKLAD) a koľko produktov na sklade je (ZASOBA).

MERGADO potom pravidelne **niekoľkokrát denne sťahuje aktuálne štatistiky** dostupnosti od dodávateľov, automaticky páruje produkty s tými, ktoré ponúkame na e‑shope a určuje, či a v akom množstve daný produkt má dodávateľ na sklade.

E‑shop vďaka tomu dokáže **zobrazovať aktuálne informácie** o dostupnosti i množstve a zvýšiť dôveryhodnosť v očiach zákazníka, ktorý vidí reálnu dostupnosť (v prípade externého skladu 3 pracovné dni) a počet kusov na sklade. Vyhneme sa tak predchádzajúcej neatraktívnej dostupnosti “*Nie je skladom, dostupnosť na otázku* ”, ktorá zahlcovala zákaznícku podporu a odrádzala od nákupu.

## Prispôsobte si mechanizmus a pravidlá na mieru

Každý bude mať trochu inú situáciu, dodávateľa, termíny doručenia a možnosti e‑shopového riešenia, ktorým sa treba prispôsobiť. Tento postup môžete vziať ako vzor a upraviť si ho pre vašu potrebu. Prípadne sa neváhajte obrátiť na nás, marketingovú agentúru [Včeliště](https://vceliste.cz), ktorá je [certifikovaným partnerom Mergada](https://www.mergado.cz/agentury/vceliste). Radi vám podobný **systém nastavíme, prepojíme dáta z rôznych dodávateľov a automaticky spracujeme do potrebného formátu**.

*Článok vznikol v spolupráci s agentúrou* [*Včeliště* ](https://vceliste.cz)*a jej zakladateľom a marketérom **Jozefom Řezníčkom**.*



 

 [    ![](https://www.mergado.sk/sites/default/files/perm/image/profil-foto.jpg)  ](/blog/petra-markova)###  [ Petra Marková ](/blog/petra-markova) 

Slovenský trh a ľubozvučnú slovenčinu má v Mergade na starosti content špecialistka Petra. Textuje, bloguje, prekladá a s vášňou tvorí obsah na sociálne siete. A keď práve nehľadá tie správne slová, venuje svoj čas bytovej džungli, pečeniu, kaviarňam alebo cestovaniu.

 

 

 

 

 

 

 

 

 

## Mohlo by vás *zaujímať*

 

 [    ![GPT Shopping](https://www.mergado.sk/sites/default/files/perm/image/mergado-nahledovky-na-blog-1200-x-628-px.jpg)  

### Ako pripraviť produktové dáta tak, aby dávali zmysel pre GPT Shopping?

 

 ](/blog/optimalizace-dat-pro-gpt-shopping) 

 [    ![uawc_cs_cz](https://www.mergado.sk/sites/default/files/perm/image/mergado-nahledovky_na_blog-1200_x_628_px-4.jpg)  

### Ako optimalizácia feedu zvýšila výkon Meta Ads bez navýšenia rozpočtu

 

 ](/blog/optimalizace-feedu-pro-Meta-Ads) 

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

### Reálny dopad vizuálnej úpravy produktových obrázkov na výkon Meta kampaní

 

 ](/blog/vizualy-pre-meta-kampane) 

 

 

 

## Nenechajte si nič *ujsť*

 Prihláste sa k odberu nášho newslettera 

   

       

   Prihlásením súhlasíte s tým, že vaše údaje budeme spracovávať v súlade s našimi [zásadami ochrany osobných údajov](/vyhlasenie-o-cookies). 

  Ďakujeme, úspešne ste sa pripojili k nášmu zoznamu odberateľov. 

 

 

 
      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()
      }