Co dělat, když Mergado nemůže stáhnout vstupní feed#

Když Mergado nedokáže stáhnout váš vstupní feed, projekt se nepřegeneruje a na výstupu zůstanou starší data. Ve většině případů není příčina v Mergadu, ale v tom, že server s vaším feedem odmítne nebo neodpoví na požadavek o jeho stažení. Tento článek vám pomůže zjistit, co se děje, a nasměruje vás k řešení — ideálně tak, abyste příčinu našli sami a nemuseli čekat na odpověď podpory.

Postup platí pro vstupní feed projektu i pro soubory, které stahuje pravidlo Import datového souboru.

Jak zjistíte, co se přesně stalo#

Nehádejte podle toho, že „projekt nefunguje“. Mergado zaznamenává každý pokus o stažení feedu:

  1. V Mergadu otevřete projekt, u kterého problém nastal.
  2. Přejděte na stránku Historie.
  3. V kolonce Typ událostí vyfiltrujte Import produktů, případně Plánovaný import produktů, pokud se projekt přegenerovává automaticky.

Uvidíte počet neúspěšných pokusů a hlášku k nim. U nejčastějších chyb (401, 403, 404, 500, 502, 503 a 504) je hláška konkrétní a rovnou napoví, co se stalo — v tom případě pokračujte podle tabulky níže. Pokud vidíte jen obecnou hlášku „Neznámá chyba“, přejděte rovnou na sekci Co znamená „Neznámá chyba“.

Co znamenají jednotlivé chyby#

Hláška v Historii Co se děje Kde hledat řešení
Přístup ke vzdálenému souboru byl odepřen (401 Unauthorized). Feed je chráněný přihlašovacím jménem a heslem a Mergado je nemá, nebo jsou chybné. Zkontrolujte přihlašovací údaje v URL adrese feedu, případně v rozšíření Mergado Drive. Pokud jste je na serveru změnili, změňte je i v Mergadu.
Vzdálený server odmítl odpovědět (403 Forbidden). Server o Mergadu ví, ale přístup mu odmítá. Nejčastější případ. Bývá to whitelist IP adres, WAF (webový firewall, který filtruje provoz na váš web), Cloudflare nebo blokace automatizovaného stahování. Povolte IP adresy Mergada. Pokud používáte Cloudflare, postupujte podle tohoto návodu.
Vzdálený soubor neexistuje (404 Not Found). Na zadané adrese nebyla nalezena žádná data. Na zadané adrese žádný soubor není. Feed byl přesunutý, přejmenovaný, nebo je v adrese překlep. Otevřete adresu feedu v prohlížeči. Pokud ji nenajdete ani vy, získejte aktuální adresu ve svém e-shopovém systému a opravte ji v nastavení projektu.
Na vzdáleném serveru došlo k blíže nespecifikované chybě (500 Internal Server Error). Server s feedem narazil na vnitřní chybu, nejčastěji selhalo samotné generování feedu. Zkuste adresu otevřít v prohlížeči. Pokud chyba trvá, řešte ji se svým hostingem nebo dodavatelem e-shopu.
Vzdálený server nebyl schopen odpovědět (502 Bad Gateway). Server před vaším e-shopem (proxy, CDN) nedostal platnou odpověď od serveru, který feed generuje. Obvykle jde o dočasný výpadek. Pokud chyba trvá, obraťte se na svůj hosting.
Vzdálený server neodpověděl (503 Service Unavailable). Server je přetížený, v údržbě nebo dočasně nedostupný. Počkejte na další pokus o stažení. Pokud se chyba opakuje, řešte se svým hostingem výkon serveru nebo plánované údržby.
Vzdálený server nebyl schopen odpovědět (504 Gateway Timeout). Generování feedu trvalo příliš dlouho a server odpověď nestihl odeslat. Požádejte hosting nebo dodavatele e-shopu o zrychlení generování feedu, případně o jeho předgenerování do souboru.

WAF (Web Application Firewall) je bezpečnostní filtr, který kontroluje požadavky na váš web a podezřelé blokuje. Bývá součástí hostingu nebo služeb jako Cloudflare a někdy omylem zablokuje i automatizované stahování feedu.

Co znamená „Neznámá chyba“#

U ostatních chyb Historie neukáže konkrétní popis, ale jen obecnou hlášku „Neznámá chyba“. Týká se to zejména:

  • 429 Too Many Requests — server omezuje počet požadavků a stahování feedu se do limitu nevešlo.
  • Timeout — server vůbec neodpověděl, nebo trvalo příliš dlouho spojení navázat.
  • Chyba certifikátu / SSL — server má neplatný, expirovaný nebo nedůvěryhodný certifikát.

Přesný kód a důvod z Historie v tomto případě nepoznáte — vidí ho jen naše technická podpora. Než jí napíšete, zkuste si příčinu ověřit sami — u většiny případů ji najdete bez čekání na odpověď:

  1. Ověřte stažení feedu tak, jak ho vidí Mergado. Mergado nestahuje feed přes prohlížeč, ale automatizovaně přes nástroj curl s identifikací (User-Agentem) MergadoBot. Stejný požadavek si můžete poslat sami. V terminálu (macOS, Linux, Windows 10 a novější) spusťte:

    curl -I -A "MergadoBot" "https://adresa-vaseho-feedu"
    • Na prvním řádku odpovědi uvidíte HTTP kód (například HTTP/2 200, 403, 429 nebo 503). Podle něj poznáte příčinu, i když Historie ukazuje jen „Neznámou chybu“.
    • Odpověď obsahuje hlavičku cf-mitigated: challenge → feed blokuje Cloudflare, postupujte podle návodu pro Cloudflare.
    • Příkaz nic nevrátí nebo skončí až po dlouhé době → odpovídá to timeoutu.
    • Příkaz skončí chybou certifikátu → jde o chybu SSL, řešte obnovu certifikátu u svého hostingu.

    Test běží z vaší IP adresy, ne z IP adresy Mergada. Pokud vám vrátí 200, ale Mergado feed stáhnout nedokáže, blokuje server nejspíš přímo IP adresu Mergada — ověřte to v logu (další krok) nebo u svého hostingu.

  2. Zkontrolujte vlastní access/error log hostingu (v administraci vašeho hostingu — na rozdíl od naší Historie tam uvidíte skutečný HTTP status). Dohledejte v něm čas neúspěšného pokusu podle Historie a hledejte požadavky z IP 81.31.39.112.

    • Požadavek tam není vůbec → byl zastaven dřív, než se dostal k vaší aplikaci (firewall, WAF, síťová úroveň) → odpovídá to timeoutu.
    • Požadavek tam je a vidíte konkrétní kód (například 429) → máte přesnou příčinu, aniž byste čekali na nás. U chyby 429 požádejte správce serveru nebo hosting o zvýšení limitu pro IP adresu Mergada.
  3. Porovnejte čas poslední úspěšné a první neúspěšné položky v Historii. Pomůže to spojit problém s konkrétní změnou — novým bezpečnostním pravidlem, zapnutím Cloudflare, migrací hostingu nebo obnovou certifikátu.

Pokud ani tímto postupem příčinu nenajdete, napište nám na mergado@mergado.cz — přiložte odkaz na projekt, adresu feedu a čas, kdy problém nastal. Až po tomto ověření vám kód a přesný důvod dohledáme v administraci.

Zvláštní případ: dřív to fungovalo a přestalo, aniž bych něco změnil#

Tohle je častější, než by se zdálo, a skoro nikdy to není chyba na straně Mergada. Typické příčiny:

  • Váš hosting nasadil nová bezpečnostní pravidla. Reálný případ: velký český hosting zavedl nové pravidlo pro detekci podezřelé komunikace a omylem jako rizikovou vyhodnotil i komunikaci Mergada. Zablokoval tím stahování feedů u všech e-shopů na svých serverech, dokud jsme ho neupozornili.
  • Zapnuli jste Cloudflare nebo se změnilo jeho nastavení.
  • Skončila platnost certifikátu.
  • Migrovali jste hosting nebo se změnila IP adresa serveru a whitelist tam už není.
  • Změnilo se heslo nebo hash v adrese feedu, například po aktualizaci e-shopu.

Jak to poznáte: v Historii projektu najdete poslední úspěšné stažení a porovnáte ho s prvním neúspěšným. Čas, kdy se to zlomilo, je nejcennější údaj pro vás i pro váš hosting.

Jak postupovat#

  1. Otestujte feed tak, jak ho stahuje Mergado — příkazem curl -I -A "MergadoBot" "https://adresa-vaseho-feedu" (podrobněji v sekci Co znamená „Neznámá chyba“). Samotné otevření feedu v prohlížeči nestačí: prohlížeč může feed načíst, i když automatizované stahování server blokuje.
  2. Podívejte se do Historie projektu, jaká chyba se opakuje. Pokud jde o konkrétní hlášku (401, 403, 404, 500, 502, 503 nebo 504), najděte ji v tabulce výše. Pokud jde o „Neznámou chybu“, postupujte podle sekce Co znamená „Neznámá chyba“.
  3. Zkontrolujte whitelist IP adres. Mergado stahuje vstupní feed z adresy 81.31.39.112. Pokud používáte rozšíření, přidejte i jejich IP adresy.
  4. Ověřte, že feed není chráněný více způsoby současně. Kombinace whitelistu a hashe v adrese je častý zdroj problémů, typicky u feedů ze Shoptetu.
  5. Pokud používáte Cloudflare, nastavte výjimku podle samostatného návodu. Samotné přidání IP adresy na whitelist tam nestačí.
  6. Napište svému hostingu, pokud nic z výše uvedeného nepomohlo. Uveďte, že jde o legitimní automatizované stahování produktového feedu, a požádejte o odblokování IP adresy 81.31.39.112. Přiložte čas, kdy stahování přestalo fungovat.
  7. Kontaktujte naši podporu, pokud si nejste jistí. Napište na mergado@mergado.cz a přiložte odkaz na projekt, adresu feedu a čas, kdy problém nastal.

FAQ#

Znamená chyba při stahování, že přijdu o data na výstupu?#

Ne. Když se stažení nepodaří, Mergado ponechá data z posledního úspěšného importu — pokud k nějakému už došlo. Výstupní feed zůstane dostupný, ale bude obsahovat starší informace, dokud se stažení nepodaří znovu. Pokud se feed nepodařilo stáhnout ani jednou (například u nově založeného projektu), žádná data na výstupu zatím nejsou.

Proč se mi feed nestáhne, když v prohlížeči funguje?#

Prohlížeč a Mergado přistupují k feedu jinak. Mergado feed stahuje automatizovaně přes nástroj curl s identifikací MergadoBot. Prohlížeč umí zpracovat JavaScript a bezpečnostní výzvy, automatizované stahování ne. Server také může rozlišovat přístup podle IP adresy, a vaše je jiná než ta Mergada. Nejčastěji za tím stojí whitelist IP adres, WAF nebo Cloudflare. Spolehlivější než prohlížeč je proto test přes curl, popsaný v sekci Co znamená „Neznámá chyba“.

Platí to samé pro pravidlo Import datového souboru?#

Ano. Pravidlo Import datového souboru stahuje soubor stejným způsobem jako vstupní feed, takže i příčiny a řešení jsou stejné.

Jak zjistím, jestli mě blokuje hosting?#

Spolehlivý příznak je chyba typu timeout, kdy server neodpoví vůbec, přestože test přes curl s identifikací MergadoBot z vašeho počítače projde normálně. Pokud navíc problém začal ze dne na den bez vašeho zásahu, je blokace ze strany hostingu velmi pravděpodobná. Obraťte se na jeho podporu.

Proč v Historii vidím jen „Neznámá chyba“ a ne konkrétní kód?#

Historie ukazuje konkrétní popis jen u nejčastějších chyb (401, 403, 404, 500, 502, 503 a 504). Ostatní chyby, například 429, timeout nebo problém s certifikátem, se v ní zobrazí obecně jako „Neznámá chyba“ — přesný kód v tu chvíli vidí jen naše podpora. Postup, jak si příčinu ověřit sami, najdete v sekci Co znamená „Neznámá chyba“.

Musím po vyřešení něco udělat, aby se projekt přegeneroval?#

Mergado se o stažení pokouší při každém dalším přegenerování automaticky. Pokud chcete výsledek zkontrolovat hned, spusťte přegenerování ručně v projektu.

Byl tento článek užitečný?