Jak naimportovat celý e-shop, i když nemáte žádná vstupní data

Jak naimportovat celý e-shop, i když nemáte žádná vstupní data

"Potřebujeme naimportovat produkty od dodavatele X" zní jako běžný požadavek — dokud nezjistíte, že dodavatel neposkytuje žádný XML feed, žádné API, žádný exportovatelný ceník. Na jednom projektu jsme řešili přesně tuhle situaci: klient chtěl do svého PrestaShop e-shopu automaticky importovat stovky produktů z webu výrobce, který nenabízel vůbec žádná strukturovaná data k importu — jen svůj vlastní web. Tady je, jak jsme problém vyřešili, a jak nám nečekaně pomohla AI.


Zadání: import bez jediného řádku vstupních dat

Klient prodával ve svém e-shopu produkty výrobce, který na svém webu produkty samozřejmě zobrazuje — ale nikde nenabízí feed, API ani exportovaný ceník ke stažení. Jediný zdroj dat byl samotný veřejně dostupný web výrobce. Cílem bylo vytvořit systém, který si z tohoto webu pravidelně a automaticky natáhne aktuální katalog produktů, ceny a popisy a naimportuje je do PrestaShopu klienta.

První překážka: web nebyl "obyčejné" HTML

Klasický scraping — stažení HTML stránky a vytažení dat z tagů — na tomto webu nefungoval. Web byl postavený na Next.js s využitím React Server Components (RSC), moderní technologie, kde se velká část obsahu neposílá jako hotové HTML, ale jako speciální serializovaný datový formát, který si až prohlížeč sám doskládá do finální stránky.

To znamená, že prohlížeč (a tedy i běžný scraper, který simuluje prohlížeč) nejdřív dostane tenhle "syrový" datový balíček (RSC payload) a teprve z něj sestaví to, co vidíte na obrazovce. Dobrá zpráva je, že tenhle payload ve skutečnosti obsahuje ta samá strukturovaná data, která hledáte — jen v nezdokumentovaném, na první pohled nečitelném formátu.

Druhá překážka: formát bez dokumentace

RSC payload nemá žádnou veřejnou specifikaci pro parsování třetími stranami — je to interní implementační detail Next.js frameworku, který se navíc mezi verzemi mění. Ruční reverzní inženýrství takového formátu (procházet desítky vzorků, hledat vzory, odhadovat význam jednotlivých částí) by normálně zabralo dny přemýšlení a zkoušení.

Kde pomohla AI

Tady se ukázala jedna z věcí, ve které je AI opravdu silná: rozpoznávání vzorů v nestrukturovaných nebo nedokumentovaných datech. Místo ručního rozplétání payloadu jsem vzorky dat nechal analyzovat pomocí Claude — AI asistenta, kterému jsem ukázal několik reálných vzorků payloadu a požádal ho, aby identifikoval strukturu a navrhl, jak z ní spolehlivě vytáhnout konkrétní pole (název produktu, cena, popis, obrázky).

AI dokázala v nezdokumentovaném formátu rozpoznat opakující se vzory mnohem rychleji, než by to šlo ručním procházením — a to i u formátu, který nikdy v takové podobě "neviděla" jako dokumentaci. Výsledný parser jsme pak doladili a otestovali na širším vzorku dat, aby fungoval spolehlivě i na okrajových případech (produkty s chybějícími poli, varianty, více obrázků).

Stavba celého importního systému

Samotné parsování dat byl jen první krok. Kolem něj vznikl kompletní systém:

  • Front controller založený cron systém — pravidelné, automatické spouštění importu bez nutnosti manuálního zásahu
  • Administrační editor s TinyMCE — možnost ručně doladit popisy produktů po automatickém importu, ne se stoprocentně spoléhat na surová data
  • Bento-box přehled importovaných produktů — vizuální kontrola nad tím, co se naimportovalo, před finálním zveřejněním v e-shopu

Co si z toho odnést

Chybějící feed nebo API dodavatele dnes neznamená, že import automatizovat nejde — jen to znamená jinou cestu k datům. AI se v téhle oblasti ukazuje jako mimořádně užitečný nástroj právě pro rychlé rozpoznání struktury nedokumentovaných formátů, které by ručně zabralo řádově víc času. Finální řešení ale vždy vyžaduje důkladné otestování na reálných datech — AI pomůže odhalit vzor rychle, spolehlivost musí ověřit člověk.

Potřebujete naimportovat produkty z webu, který nenabízí žádný standardní export? Napište mi popis situace, podíváme se, jestli existuje cesta, jak to automatizovat.

Sdílet