Decoroll
OpenCart-webáruház rolókhoz: javított árkalkulátor és pénztár, majd teljesítménymentés, amely csökkentette az adatbázis terhelését, és feloldatta a tárhelyszolgáltató CPU-korlátozását.

Feladat
Egy rolókat árusító webáruháznak javítani kellett az árkalkulátorát és a pénztárát – aztán közel került ahhoz, hogy a tárhelyszolgáltató lekapcsolja: az oldal és az adatbázisa a napi CPU-korlát nagyjából kétszeresét használta, és senki sem tudta, miért.
Megoldás
- Árkalkulátor: helyes kerekítés (korábban még kerek összegekhez is hozzáadott 1 UAH-t), a kosár végösszege több tétel esetén már nem csúszik el 1–2 UAH-val, a „Kosárba” gomb zárolva van, amíg az ár számítása folyik, így lassú kapcsolaton senki sem rendel rossz áron, és a kalkulátor kérései már nem buknak el vegyes http/https miatt.
- Pénztár: a címmező a szállítási módhoz igazodik (futárcím vagy fiók), a böngésző automatikus kitöltése már nem tölti ki a régiómezőket, és a Chrome többé nem illeszti be az admin mentett jelszavát a rendelési űrlapba.
- E-mail: a kapcsolatfelvételi űrlap üzenetei az áruház postafiókjából mennek ki, a látogatóval a Reply-To mezőben, így a tárhelyszolgáltató már nem utasítja el őket.
- SEO: körülbelül 550 elavult átirányítás eltávolítva, a nyelvi előtagok javítva a kép-URL-ekben és az összes termékfeedben, a robots.txt-ben javítva egy localhostra mutató sitemap.
- A CPU-incidens: egy írásos vizsgálat feltárta a kiváltó okot – a téma relatív linkjei és a nem validált barátságos URL-ek végtelen oldalteret hoztak létre a crawlerek számára. A beágyazott URL-eket most átirányítással vonjuk össze még a PHP futása előtt, a linkeket javítottuk, nyolc adatbázisindexet és URL-gyorsítótárazást adtunk hozzá, kitisztítottuk a munkamenet-táblát, megerősítettük a képkezelést, megállítottunk egy 1 GB-os hibanaplót, és az oldalt botvédelemmel a Cloudflare mögé költöztettük – minden változtatás előtt ellenőrzött adatbázismentéssel.
- Fejlesztői környezet: a projekt gitbe került Docker-környezettel és helyi konfigurációkkal.
Eredmény
Termékoldal-megtekintésenként olvasott sorok: 619 950 → 0. Munkamenetek az adatbázisban: 57 040 → 6777. Sitemap: 1,12 s → 0,16 s. A javítások után a kezdőlap 0,20 s alatt válaszol, a termékoldalak 0,52–0,63 s alatt. A tárhelyszolgáltató feloldotta a korlátozást.