Jedna platforma pre 12 európskych trhov
Pre Sharp sme prestavali pomalý produktový web na jednu multisite platformu pre 12 trhov a viac ako 4 000 produktov.
Produktové dáta sa dnes z centrálneho PIM synchronizujú takmer okamžite a vyhľadávanie funguje v milisekundách.
12
európskych trhov
4 000+
produktov v katalógu
5
mesiacov od prevzatia
33
redakčných blokov

Sharp potreboval viac než nový web
Pôvodný produktový web Sharpu pri veľkom katalógu prestával stačiť.
Web bol pomalý a produktové dáta sa z PIM systému synchronizovali zložito a s výrazným oneskorením. Nové alebo upravené informácie sa preto na webe mohli objaviť až po niekoľkých dňoch.
Súčasťou zadania bol aj redizajn a vytvorenie platformy, ktorá dokáže obslúžiť viac európskych trhov bez toho, aby každý z nich fungoval ako samostatný web.
PIM
produktové dáta
WordPress databáza
pomalé dotazy pri veľkom katalógu
Zadanie malo tri body
Zrýchliť web a produktový katalóg
Pôvodná implementácia nezvládala výkon pri tisícoch produktov.
Dostať dáta z PIM na web takmer okamžite
Nové informácie sa na webe objavovali až po niekoľkých dňoch.
Postaviť jeden základ pre 12 trhov
Každý trh by inak bol samostatný web, ktorý treba udržiavať zvlášť.
Projekt sme prevzali a prebudovali
Projekt sme prevzali od nemeckej agentúry, ktorá pôvodný web vytvorila.
Existujúcu architektúru sme neopravovali po kúskoch. Prehodnotili sme, ako sa produktové dáta dostávajú na web a ako sa v nich vyhľadáva.
Cieľom bolo znížiť závislosť od WordPress databázy, zrýchliť prácu s produktovým katalógom a vytvoriť spoľahlivejší dátový tok.
Menej závislosti od WordPress databázy znamená viac výkonu a spoľahlivejší dátový tok.
PIM zostal zdrojom pravdy.
WordPress dostal inú úlohu.
Najväčšou zmenou bolo, že produktový katalóg už nie je v databáze WordPressu.
PIM
centrálne produktové dáta
Typesense
vyhľadávanie a filtrovanie
WordPress multisite
obsah a prezentácia
12 trhov
lokálne verzie platformy
PIM zostáva centrálnym zdrojom produktových dát. Vlastný konektor reaguje na zmeny cez webhooky a synchronizuje ich do Typesense.
Typesense sa stará o fulltextové vyhľadávanie a filtrovanie nad viac ako 4 000 produktmi. WordPress zostáva redakčným prostredím pre obsah a jednotlivé stránky.
Dáta, vyhľadávanie a obsah sme oddelili tak, aby každý systém robil to, na čo je vhodný.
Z niekoľkých dní
na takmer okamžitú synchronizáciu
Pôvodná synchronizácia produktových dát bola pomalá a náchylná na chyby.
Ako to funguje dnes
Webhook
Zmena v PIM spustí notifikáciu.
Buffer
Väčšie množstvo zmien sa zhromažďuje.
Dávkové spracovanie
Dáta sa spracúvajú dávkovo.
Opakované pokusy
Pri výpadku sa zápis skúsi znova.
Ochrana zápisov
Kolízne zápisy sa nemôžu prekryť.
Zmena produktu v PIM sa na webe prejaví takmer okamžite namiesto niekoľkých dní.
4 000+ produktov.
Výsledok za milisekundy.
Pri veľkom produktovom katalógu sme fulltextové vyhľadávanie a filtre postavili na Typesense namiesto klasických databázových dotazov.
Používateľ môže okamžite vyhľadávať a filtrovať celý katalóg. V indexe sú aj staršie produkty, ktoré už v aktuálnych dátach PIM nie sú, a katalóg zostáva rýchly aj pri tisícoch položiek.

WordPress databáza vyhľadávanie nebrzdí.
12 trhov.
Jeden základ.
Sharp dnes funguje na jednej WordPress multisite platforme pre 12 európskych trhov.
Trhy zdieľajú kód, dizajn, komponenty, mediálnu knižnicu, produktové dáta a technickú infraštruktúru. Každý trh sa pritom spravuje samostatne.
Pridanie ďalšieho trhu preto neznamená vytvárať ďalší web od začiatku. Platforma sa rozšíri konfiguráciou.
Trhy na platforme
Rakúsko
Nemecko
Španielsko
Francúzsko
Írsko
Taliansko
Holandsko
Poľsko
Portugalsko
Srbsko
Veľká Británia
Európa
Jedna platforma pre dvanásť trhov. Ďalší trh je už len otázka konfigurácie.
Redakcia nemusí čakať na vývojára
Nový WordPress sme postavili ako komponentový redakčný systém s 33 vlastnými blokmi.
Redaktori z nich skladajú produktové a obsahové stránky bez zásahu vývojára.
Produktové sekcie, zoznamy, vyhľadávanie a ďalšie prvky nie sú natvrdo naprogramované do jednotlivých stránok.
To zjednodušuje každodennú správu webu a zároveň drží dizajn a štruktúru jednotlivých trhov pod kontrolou.

Rýchlosť sme neriešili až po spustení
O výkone sme rozhodovali už pri návrhu architektúry.
Okrem presunu produktových dát mimo databázy WordPressu sme použili viacúrovňové cachovanie, optimalizáciu obrázkov a ďalšie opatrenia zamerané na Core Web Vitals.
Rýchlosť je súčasťou architektúry platformy.
Od prevzatia po spustenie za päť mesiacov
Pracovali sme v dvojtýždňových sprintoch s pravidelnou spätnou väzbou od klienta. Sharp mal počas vývoja priebežný prehľad o stave projektu a mohol meniť priority podľa aktuálnych potrieb.
5 mesiacov
jún–október 2024
agilný vývoj
dvojtýždňové sprinty
Spustením sa projekt neskončil
Po spustení sme zostali partnerom pre ďalšiu prevádzku a rozvoj platformy.
Prevádzku, údržbu aj ďalší vývoj má Sharp u jedného partnera.
SLA
Monitoring, aktualizácie a garantované reakčné časy.
Údržba
Priebežné ladenie výkonu a technická starostlivosť.
Rozvoj
Nové funkcie, komponenty a trhy podľa potrieb značky.
V deň spustenia sa začína prevádzka a rozvoj platformy.
Z 12 samostatných webov na jednu platformu
Produktové dáta z centrálneho PIM sa synchronizujú takmer okamžite. Vyhľadávanie a filtrovanie zostáva rýchle aj pri katalógu s viac ako 4 000 produktmi.
Redakcia má vlastné komponenty na správu obsahu a ďalší trh sa dá pridať bez stavania nového webu od začiatku.

Technológie a architektúra
Technológiu vyberáme podľa projektu, nie projekt podľa technológie. Toto sú rozhodnutia, ktoré Sharpovi dali rýchlosť a jednu platformu namiesto dvanástich.
Základ platformy
WordPress Multisite
Dvanásť trhov beží na jednej inštalácii so zdieľaným kódom, dizajnom a mediálnou knižnicou. Ďalší trh sa pridáva konfiguráciou.
Bedrock
Projekt má štruktúru moderného PHP repozitára: závislosti cez Composer, konfiguráciu v premenných prostredia a oddelené prostredia pre testovanie a produkciu.
Sage
Šablóny sú oddelené od logiky a skladajú sa z komponentov. Na tom stojí 33 redakčných blokov bez opakovania kódu.
Dáta a vyhľadávanie
Typesense
Produktový katalóg je v samostatnom vyhľadávacom engine, mimo databázy WordPressu. Fulltext aj fasetové filtre odpovedajú v milisekundách aj pri 4 000 produktoch.
PIM integrácia
PIM zostáva jediným zdrojom pravdy o produktoch. Web dáta iba zobrazuje a nedrží si vlastnú kópiu, takže ten istý produkt nemôže mať na dvoch miestach rôzny stav.
Webhooky
Zmena v PIM sa ohlási sama, namiesto pravidelného preťahovania celého katalógu. Hromadné zmeny zbiera buffer a spracúvajú sa dávkovo.
Výkon
Viacúrovňové cachovanie
Cache má viac vrstiev a k PHP sa dostane len dotaz, ktorý žiadna z nich nevie obslúžiť.
Core Web Vitals
Rýchlosť meriame tým, čo hodnotí Google a vníma používateľ: LCP, CLS a INP. Z týchto metrík vychádza optimalizácia obrázkov aj poradia načítania.
Vlastný routing produktových stránok
Adresy ako /tv/75jp7265e/ nestoja na žiadnej WordPress stránke. Routing ich skladá nad dátami z Typesense.
Ďalšie platformy, ktoré prevádzkujeme
Architektúru sa dá vymeniť aj pod hotovým produktom.
Pozrime sa spolu, čo vo vašom riešení treba zmeniť, aby bolo rýchlejšie a spoľahlivejšie, a čo môže zostať tak, ako je.
Nezáväzná konzultácia.
Odpovieme do 24 hodín.


