Karuselle
Vícejazyčný marketplace s vybranou značkovou módou z druhé ruky: sémantické vyhledávání, flexibilní provize prodejců, daňové výkaznictví v EU a nové platební metody na rostoucím kódu v Laravelu.

Úkol
Vícejazyčný módní marketplace s mnoha prodejci a několika externími prodejními kanály potřeboval dál růst na stárnoucím kódu: chytřejší vyhledávání, férové a flexibilní provize, daňové výkaznictví v EU, více platebních metod — a obchod, který zůstane rychlý a bezpečný.
Řešení
Tři roky jako jediný vývojář:
- Upgrade frameworku: Laravel 5.8 → 6 → 7 → 8 → 9 → 10 → 11 se všemi balíčky a PHP 7.4 → 8.x za dva týdny, k tomu přesun na nový server.
- Sémantické vyhledávání ve čtyřech jazycích: vlastní hostovaná služba pro embeddingy a vektorová databáze, průběžná synchronizace indexu přes fronty, záloha na běžné vyhledávání s circuit breakerem, přepínač v administraci bez nasazení, deterministický filtr barvy/kategorie/materiálu, synonyma a diagnostické příkazy.
- Katalog a veřejná část obchodu: živé AJAX filtry v šuplících s počty výsledků, převod velikostí na EU a typy velikostí podle země, filtry slev a prodejců, URL přátelské k SEO, kompletní redesign karet, záhlaví, zápatí a mega-menu, bannery a slidery na úvodní stránce spravované přetahováním.
- Nabídka ceny: zákazník navrhne cenu, administrátor odpoví protinabídkou e-mailem i neregistrovaným zákazníkům, limity na osobu, vypršení platnosti a ochrana proti dvojitému kliknutí.
- Pokladna a platby: poplatek Buyer Protection v košíku, pokladně, e-mailech i fakturách s DPH; kupóny, doprava podle země; Stripe s 3D Secure, Apple Pay a Google Pay, PayPal REST, Paysera s ověřením částky.
- Prodejci a peníze: prodejní kanály s vlastními provizemi a fakturami, samostatná faktura pro každého prodejce v jedné objednávce, data výplat prodejcům, daňový výkaz EU DAC7 v XML, čísla faktur přidělovaná pod zámkem v databázi a modul Commission Rules s jediným resolverem, sazbami podle kanálu, pravidly podle stáří inzerátu, náhledem, řazením přetažením a protokolem změn.
- Feedy a marketing: Google Merchant, Facebook, partnerské marketplaces v CSV, synchronizace e-commerce s Mailchimpem, consent mode v2.
- SEO a GEO: strukturovaná data pro produkty, drobečkovou navigaci a FAQ, canonical a hreflang jen pro existující překlady, noindex pro fasety, pravidla robots pro AI crawlery a llms.txt, denní sitemap a příkaz pro kontrolu SEO.
- Jazyky: LT, EN, PL a RU s překladem při uložení a týdenními synchronizačními příkazy.
- Administrace a provoz: panely front a úloh s heartbeatem workerů, exporty na pozadí, obnova relace se zachováním napsaného textu, úklid opuštěných konceptů produktů.
- Bezpečnost: bezpečnostní revize uzavřela mezery v řízení přístupu a v přístupu k souborům, přidala omezení pokusů o přihlášení podle účtu i IP, ukončování relací při změně hesla a omezila typy nahrávaných souborů.
- Testy: sada testů od nuly do 239 testů, s pojistkou proti jejich spuštění v produkci.
Výsledek
- Výpočet provizí pro 50 produktů: ze 101 databázových dotazů na 2.
- Seznam nabídek: 169 → 121 dotazů na stránku; produkt s 35 nabídkami: 92 → 64.
- Náhledy produktů: 136 KB → 20 KB každý (60 na stránce kategorie); obrázky jednoho produktu 2,5 MB → 0,5 MB.
- Výdělky prodejců v historii prodejů teď ukazují, co bylo skutečně účtováno — chyba, která postihovala většinu historických řádků, byla nalezena a opravena.
- Sémantické vyhledávání pokrývá v produkci zhruba 9 000 produktů.