Čo robiť, keď Mergado nemôže stiahnuť vstupný feed#

Keď Mergado nedokáže stiahnuť váš vstupný feed, projekt sa nepregeneruje a na výstupe zostanú staršie dáta. Vo väčšine prípadov nie je príčina v Mergade, ale v tom, že server s vaším feedom požiadavku na jeho stiahnutie odmietne alebo na ňu neodpovie. Tento článok vám pomôže zistiť, čo sa deje, a nasmeruje vás k riešeniu — ideálne tak, aby ste príčinu našli sami a nemuseli čakať na odpoveď podpory.

Postup platí pre vstupný feed projektu aj pre súbory, ktoré sťahuje pravidlo Import dátového súboru.

Ako zistíte, čo sa presne stalo#

Nehádajte podľa toho, že „projekt nefunguje“. Mergado zaznamenáva každý pokus o stiahnutie feedu:

  1. V Mergade otvorte projekt, pri ktorom problém nastal.
  2. Prejdite na stránku História.
  3. V kolónke Typ událostí vyfiltrujte Import produktů, prípadne Plánovaný import produktů, ak sa projekt pregenerováva automaticky.

Uvidíte počet neúspešných pokusov a hlásenie k nim. Pri najčastejších chybách (401, 403, 404, 500, 502, 503 a 504) je hlásenie konkrétne a rovno napovie, čo sa stalo — v tom prípade pokračujte podľa tabuľky nižšie. Ak vidíte len všeobecné hlásenie „Neznáma chyba“, prejdite rovno na sekciu Čo znamená „Neznáma chyba“.

Čo znamenajú jednotlivé chyby#

Hlásenie v Histórii Čo sa deje Kde hľadať riešenie
Prístup k vzdialenému súboru bol odmietnutý (401 Unauthorized). Feed je chránený prihlasovacím menom a heslom a Mergado ich nemá alebo sú chybné. Skontrolujte prihlasovacie údaje v URL adrese feedu, prípadne v rozšírení Mergado Drive. Ak ste ich na serveri zmenili, zmeňte ich aj v Mergade.
Vzdialený server odmietol odpovedať (403 Forbidden). Server o Mergade vie, ale prístup mu odmieta. Najčastejší prípad. Býva to whitelist IP adries, WAF (webový firewall, ktorý filtruje prevádzku na váš web), Cloudflare alebo blokovanie automatizovaného sťahovania. Povoľte IP adresy Mergada. Ak používate Cloudflare, postupujte podľa tohto návodu.
Vzdialený súbor neexistuje (404 Not Found). Na zadanej adrese neboli nájdené žiadne dáta. Na zadanej adrese nie je žiadny súbor. Feed bol presunutý, premenovaný alebo je v adrese preklep. Otvorte adresu feedu v prehliadači. Ak ju nenájdete ani vy, získajte aktuálnu adresu vo svojom e-shopovom systéme a opravte ju v nastaveniach projektu.
Na vzdialenom serveri došlo k bližšie nešpecifikovanej chybe (500 Internal Server Error). Server s feedom narazil na vnútornú chybu, najčastejšie zlyhalo samotné generovanie feedu. Skúste adresu otvoriť v prehliadači. Ak chyba pretrváva, riešte ju so svojím hostingom alebo dodávateľom e-shopu.
Vzdialený server nebol schopný odpovedať (502 Bad Gateway). Server pred vaším e-shopom (proxy, CDN) nedostal platnú odpoveď od servera, ktorý feed generuje. Zvyčajne ide o dočasný výpadok. Ak chyba pretrváva, obráťte sa na svoj hosting.
Vzdialený server neodpovedal (503 Service Unavailable). Server je preťažený, v údržbe alebo dočasne nedostupný. Počkajte na ďalší pokus o stiahnutie. Ak sa chyba opakuje, riešte so svojím hostingom výkon servera alebo plánované údržby.
Vzdialený server nebol schopný odpovedať (504 Gateway Timeout). Generovanie feedu trvalo príliš dlho a server nestihol odpoveď odoslať. Požiadajte hosting alebo dodávateľa e-shopu o zrýchlenie generovania feedu, prípadne o jeho predgenerovanie do súboru.

WAF (Web Application Firewall) je bezpečnostný filter, ktorý kontroluje požiadavky na váš web a podozrivé blokuje. Býva súčasťou hostingu alebo služieb, ako je Cloudflare, a niekedy omylom zablokuje aj automatizované sťahovanie feedu.

Čo znamená „Neznáma chyba“#

Pri ostatných chybách História neukáže konkrétny popis, ale len všeobecné hlásenie „Neznáma chyba“. Týka sa to najmä:

  • 429 Too Many Requests — server obmedzuje počet požiadaviek a sťahovanie feedu sa do limitu nezmestilo.
  • Timeout — server vôbec neodpovedal alebo nadviazanie spojenia trvalo príliš dlho.
  • Chyba certifikátu / SSL — server má neplatný, expirovaný alebo nedôveryhodný certifikát.

Presný kód a dôvod z Histórie v tomto prípade nezistíte — vidí ho len naša technická podpora. Skôr ako jej napíšete, skúste si príčinu overiť sami — vo väčšine prípadov ju nájdete bez čakania na odpoveď:

  1. Overte stiahnutie feedu tak, ako ho vidí Mergado. Mergado nesťahuje feed cez prehliadač, ale automatizovane cez nástroj curl s identifikáciou (User-Agentom) MergadoBot. Rovnakú požiadavku si môžete poslať sami. V termináli (macOS, Linux, Windows 10 a novší) spustite:

    curl -I -A "MergadoBot" "https://adresa-vasho-feedu"
    • Na prvom riadku odpovede uvidíte HTTP kód (napríklad HTTP/2 200, 403, 429 alebo 503). Podľa neho spoznáte príčinu, aj keď História ukazuje len „Neznámu chybu“.
    • Odpoveď obsahuje hlavičku cf-mitigated: challenge → feed blokuje Cloudflare, postupujte podľa návodu pre Cloudflare.
    • Príkaz nič nevráti alebo skončí až po dlhom čase → zodpovedá to timeoutu.
    • Príkaz skončí chybou certifikátu → ide o chybu SSL, riešte obnovenie certifikátu u svojho hostingu.

    Test beží z vašej IP adresy, nie z IP adresy Mergada. Ak vám vráti 200, ale Mergado feed stiahnuť nedokáže, blokuje server najskôr priamo IP adresu Mergada — overte to v logu (ďalší krok) alebo u svojho hostingu.

  2. Skontrolujte vlastný access/error log hostingu (v administrácii vášho hostingu — na rozdiel od našej Histórie tam uvidíte skutočný HTTP status). Dohľadajte v ňom čas neúspešného pokusu podľa Histórie a hľadajte požiadavky z IP 81.31.39.112.

    • Požiadavka tam vôbec nie je → bola zastavená skôr, ako sa dostala k vašej aplikácii (firewall, WAF, sieťová úroveň) → zodpovedá to timeoutu.
    • Požiadavka tam je a vidíte konkrétny kód (napríklad 429) → máte presnú príčinu bez toho, aby ste čakali na nás. Pri chybe 429 požiadajte správcu servera alebo hosting o zvýšenie limitu pre IP adresu Mergada.
  3. Porovnajte čas poslednej úspešnej a prvej neúspešnej položky v Histórii. Pomôže to spojiť problém s konkrétnou zmenou — novým bezpečnostným pravidlom, zapnutím Cloudflare, migráciou hostingu alebo obnovením certifikátu.

Ak ani týmto postupom príčinu nenájdete, napíšte nám na mergado@mergado.com — priložte odkaz na projekt, adresu feedu a čas, kedy problém nastal. Až po tomto overení vám kód a presný dôvod dohľadáme v administrácii.

Špeciálny prípad: predtým to fungovalo a prestalo, hoci som nič nezmenil#

Toto je častejšie, než by sa zdalo, a takmer nikdy to nie je chyba na strane Mergada. Typické príčiny:

  • Váš hosting nasadil nové bezpečnostné pravidlá. Reálny prípad: veľký český hosting zaviedol nové pravidlo na detekciu podozrivej komunikácie a omylom vyhodnotil ako rizikovú aj komunikáciu Mergada. Zablokoval tým sťahovanie feedov pri všetkých e-shopoch na svojich serveroch, kým sme ho neupozornili.
  • Zapli ste Cloudflare alebo sa zmenilo jeho nastavenie.
  • Skončila platnosť certifikátu.
  • Migrovali ste hosting alebo sa zmenila IP adresa servera a whitelist tam už nie je.
  • Zmenilo sa heslo alebo hash v adrese feedu, napríklad po aktualizácii e-shopu.

Ako to spoznáte: v Histórii projektu nájdete posledné úspešné stiahnutie a porovnáte ho s prvým neúspešným. Čas, kedy sa to zlomilo, je najcennejší údaj pre vás aj pre váš hosting.

Ako postupovať#

  1. Otestujte feed tak, ako ho sťahuje Mergado — príkazom curl -I -A "MergadoBot" "https://adresa-vasho-feedu" (podrobnejšie v sekcii Čo znamená „Neznáma chyba“). Samotné otvorenie feedu v prehliadači nestačí: prehliadač môže feed načítať, aj keď automatizované sťahovanie server blokuje.
  2. Pozrite sa do Histórie projektu, aká chyba sa opakuje. Ak ide o konkrétne hlásenie (401, 403, 404, 500, 502, 503 alebo 504), nájdite ho v tabuľke vyššie. Ak ide o „Neznámu chybu“, postupujte podľa sekcie Čo znamená „Neznáma chyba“.
  3. Skontrolujte whitelist IP adries. Mergado sťahuje vstupný feed z adresy 81.31.39.112. Ak používate rozšírenia, pridajte aj ich IP adresy.
  4. Overte, že feed nie je chránený viacerými spôsobmi súčasne. Kombinácia whitelistu a hashu v adrese je častý zdroj problémov, typicky pri feedoch zo Shoptetu.
  5. Ak používate Cloudflare, nastavte výnimku podľa samostatného návodu. Samotné pridanie IP adresy na whitelist tam nestačí.
  6. Napíšte svojmu hostingu, ak nič z vyššie uvedeného nepomohlo. Uveďte, že ide o legitímne automatizované sťahovanie produktového feedu, a požiadajte o odblokovanie IP adresy 81.31.39.112. Priložte čas, kedy sťahovanie prestalo fungovať.
  7. Kontaktujte našu podporu, ak si nie ste istí. Napíšte na mergado@mergado.com a priložte odkaz na projekt, adresu feedu a čas, kedy problém nastal.

FAQ#

Znamená chyba pri sťahovaní, že prídem o dáta na výstupe?#

Nie. Keď sa stiahnutie nepodarí, Mergado ponechá dáta z posledného úspešného importu — ak už nejaký prebehol. Výstupný feed zostane dostupný, ale bude obsahovať staršie informácie, kým sa stiahnutie znova nepodarí. Ak sa feed nepodarilo stiahnuť ani raz (napríklad pri novo založenom projekte), na výstupe zatiaľ nie sú žiadne dáta.

Prečo sa mi feed nestiahne, keď v prehliadači funguje?#

Prehliadač a Mergado pristupujú k feedu inak. Mergado feed sťahuje automatizovane cez nástroj curl s identifikáciou MergadoBot. Prehliadač dokáže spracovať JavaScript a bezpečnostné výzvy, automatizované sťahovanie nie. Server tiež môže rozlišovať prístup podľa IP adresy a vaša je iná ako tá Mergada. Najčastejšie za tým stojí whitelist IP adries, WAF alebo Cloudflare. Spoľahlivejší ako prehliadač je preto test cez curl, opísaný v sekcii Čo znamená „Neznáma chyba“.

Platí to isté pre pravidlo Import dátového súboru?#

Áno. Pravidlo Import dátového súboru sťahuje súbor rovnakým spôsobom ako vstupný feed, takže aj príčiny a riešenia sú rovnaké.

Ako zistím, či ma blokuje hosting?#

Spoľahlivým príznakom je chyba typu timeout, keď server neodpovie vôbec, hoci test cez curl s identifikáciou MergadoBot z vášho počítača prejde normálne. Ak navyše problém začal zo dňa na deň bez vášho zásahu, je blokovanie zo strany hostingu veľmi pravdepodobné. Obráťte sa na jeho podporu.

Prečo v Histórii vidím len „Neznáma chyba“ a nie konkrétny kód?#

História ukazuje konkrétny popis len pri najčastejších chybách (401, 403, 404, 500, 502, 503 a 504). Ostatné chyby, napríklad 429, timeout alebo problém s certifikátom, sa v nej zobrazia všeobecne ako „Neznáma chyba“ — presný kód v tej chvíli vidí len naša podpora. Postup, ako si príčinu overiť sami, nájdete v sekcii Čo znamená „Neznáma chyba“.

Musím po vyriešení niečo urobiť, aby sa projekt pregeneroval?#

Mergado sa o stiahnutie pokúša pri každom ďalšom pregenerovaní automaticky. Ak chcete výsledok skontrolovať hneď, spustite pregenerovanie ručne v projekte.

Bol tento článok užitočný?