bring Wallet 01: egytermékes prémium webshop nulláról élesig
Előrendelés két nyelven és két pénznemben, a szűkös keretet őrző készletfoglalással, automatikus számlával – és 1,1 másodperces betöltéssel mobilon.
A bring webshop története egy telefonon
-
01kiindulás
Design tervezetből, mobilra elsőként.
Tokenek, tipográfia, komponensek és mozgás, 11 moodboard-tábla, 26 saját termékfotó. Minden szekciót 390 px-es iPhone-kijelzőre terveztünk, az asztali nézet ebből bővül.
-
02a jelenet
Egyetlen aláíró mozgás: a kinyíló tárca.
Ragadós görgetési szakasz három lépéssel – Zárva, Nyomás, Nyitva. Csökkentett mozgásnál és JavaScript nélkül három állókép jelenik meg.
-
03két nyelv
Magyarul forintban, angolul euróban.
Lefordított URL-ek és hreflang minden oldalon. Az eurós számlák a hivatalos MNB napi középárfolyammal készülnek.
-
04rendelés
A szűkös előrendelési keretet senki nem lépheti túl.
A darabszám már a pénztárban lefoglalódik, így az egyszerre vásárlók sem rendelhetnek többet a keretnél. Szállítás GLS-sel és MPL-lel, csomagpont térképről, a fizetés a Stripe saját oldalán.
-
05fizetés után
Egy visszaigazolás, és minden megy magától.
Az aláírt Stripe-visszaigazolás után számla az OTP eBIZ-ből, e-mail a vásárlónak és az adminnak, hírlevél-feliratkozás és szerveroldali Meta-esemény – mindegyik külön hibatűréssel.
-
06mérve
1,1 másodperc mobilon, 7 KB JavaScript.
Build-lépés nélküli, kézzel írt CSS és JavaScript, AVIF/WebP képek öt szélességben. Az első betöltés 114 KB, az elrendezés nem ugrik.
- Ügyfél
- bring – Wallet 01
- Helyszín
- Magyarország és EU
- Terület
- E-kereskedelem, előrendelés
- Szolgáltatások
- Egyedi webshop, fizetés és számlázás, integrációk, SEO, üzemeltetés
- 01
Kihívás
Részletes design tervezetből, szigorú szabályokkal (nincs lekerekítés, árnyék, színátmenet) és teljesítménycélokkal kellett kétnyelvű, kétpénznemes előrendelési boltot építeni, ahol egy szűkös darabszám-keretet egyszerre vásárlók sem léphetnek túl.
- 02
Megoldás
Egyetlen Laravel 12 + Filament 3 alkalmazás build-lépés nélküli frontenddel; készletfoglalás a pénztárban, Stripe Checkout, OTP eBIZ számla MNB-árfolyammal, GLS/MPL szállítás, Meta Pixel + Conversions API, GA4 és Google Ads, négy termékfeed – és minden az adminból állítható.
- 03
Eredmény
Mobilon 1,1 s LCP, 0 CLS, 114 KB első betöltés és 7 KB JavaScript a főoldalon, 0 hiba a W3C és a schema.org validátorában; a bolt a fizetéstől a számláig kézi munka nélkül fut.
Egy termék, egy márka, egy mozdulat. A bringwalet.com a bring első termékének, a Wallet 01 kártyatartó pénztárcának a webshopja – előrendeléssel, két nyelven, két pénznemben, és olyan gyorsan, hogy mobilon 1,1 másodperc alatt kész.
Kiindulás: egy kész design tervezet
A megrendelő részletes design tervezetet adott át – tokenek, tipográfia, komponensek, mozgás, teljesítménycélok –, mellé 11 asztali és mobil moodboard-táblát, 26 saját termékfotót és a logócsomagot. A fejlesztés mobil-első szemlélettel indult: minden szekciót 390 px-es iPhone-kijelzőre terveztünk, az asztali nézet ebből bővül.
Amit a boltnak tudnia kellett
- Előrendelés azonnali kártyás fizetéssel, maximálható darabszámmal.
- Kétnyelvű bolt (magyar, angol), forintos és eurós árakkal.
- Szállítás Magyarországra és az EU-ba: GLS és MPL futár, csomagpont, ingyenes szállítás összeghatártól.
- Számlázás online számlázóval, kuponok, vásárlói fiók, hírlevél, hirdetési mérés.
- Minden tartalom és beállítás az adminból szerkeszthető.
A design szabályai
Minden szín, térköz és mozgásérték egyetlen tokenfájlból jön. A tiltólista szigorú: nincs lekerekítés, árnyék, színátmenet, karusszel, parallax, emoji és kitalált szám. Egyetlen „aláíró mozgás” van: a görgetésre kinyíló tárca. A teljesítménycélok: LCP 2,5 másodperc alatt, CLS 0,1 alatt, első betöltés legfeljebb 800 KB, JavaScript legfeljebb 100 KB.
Felépítés: egy alkalmazás, build-lépés nélkül
A bolt, az admin felület és az összes integráció egyetlen Laravel 12-alkalmazásban fut, Filament 3 adminnal és MariaDB adatbázissal. A CSS és a JavaScript kézzel írt, közvetlenül kiszolgált fájl – nincs build-lépés, és ez a teljesítménycélokat is segítette. A kód nagyjából 6 700 sor PHP, 1 670 sor sablon, 790 sor CSS és 480 sor JavaScript; az alkalmazás 98 saját útvonalat szolgál ki, a két nyelv külön, lefordított URL-ekkel.
A felület
A design tervezet tokenjei egy az egyben a tokens.css fájlba kerültek: hat szín (fekete, négy betonárnyalat, fehér), 375 és 1440 px között folyékonyan skálázódó térközök, tipográfiai skála és mozgásgörbék. A komponensekben nincs beégetett szín, betűméret vagy lekerekítés.
Főoldal: hét szekció, mind más szerkezetű
- Nyitány: teljes képernyős makrófotó, üvegfejléc, lépcsőzetes belépő animáció, mobilon külön kivágás.
- A jelenet: ragadós görgetési szakasz, ahol a görgetés vezérli a három lépést – Zárva, Nyomás, Nyitva. Csökkentett mozgásnál és JavaScript nélkül három állókép jelenik meg.
- Működés: képrács és számozott funkciólista, mobilon vízszintesen lapozható képsor.
- Részletfotó, adatlap, márka, előrendelés: teljes szélességű kép, kétoszlopos műszaki táblázat 1 px-es vonalakkal, keskeny szöveghasáb, és fekete előrendelési szekció a hátralévő kerettel.
Képek, amik nem ugranak
Minden feltöltött kép automatikusan öt szélességben (480–2400 px) és három formátumban (AVIF, WebP, JPEG) készül el, méretmegadással, így betöltéskor nem ugrik az elrendezés. A termékfotók háttere eredetileg szürkés volt, ezért egy képenként állítható fehérpont-korrekció tiszta fehérre hozza őket, hogy a fotó határ nélkül olvadjon az oldalba. Egy 720 px-es termékfotó AVIF-ben néhány KB.
Akadálymentesen, mobilra
Látható fókuszkeret, fókuszcsapda a mobilmenüben, magyar és angol alt szöveg minden képen, 44 × 44 px-es érintési célok, 16 px-es űrlapmezők (az iOS nem nagyít), biztonságos területek a Dynamic Island és a home-jelző körül, valamint csökkentett mozgás és csökkentett átlátszóság támogatása.
Rendelés: kosártól a számláig
A rendelés a pénztárban jön létre, és a darabszám ekkor azonnal lefoglalódik, adatbázis-zárolással – így egy szűkös előrendelési keretet egyidejű vásárlók sem tudnak túllépni. A fizetés a Stripe saját oldalán történik, a kártyaadatok nem érintik a rendszert.
| Lépés | Mi történik |
|---|---|
| Kosár | A mennyiség a szabad kerethez és a rendelésenkénti maximumhoz igazodik; kupon (százalék, fix, ingyenes szállítás, lejárat, felhasználási limit); HUF/EUR váltás. |
| Pénztár | Ország szerinti szállítási módok és díjak élőben; GLS csomagpont térképről, MPL pont kézi megadással. |
| Fizetés | Stripe Checkout a rendelés tételeivel, szállítással és kedvezménnyel; az összegeket a bolt számolja. |
| Visszaigazolás | Aláírt Stripe-visszaigazolás, egyszeri feldolgozással; a visszatérő oldal is ellenőriz, ha a visszaigazolás késne. |
| Fizetés után | Számla, vásárlói és admin e-mail, hírlevél-feliratkozás, szerveroldali Meta-esemény – mindegyik külön hibatűréssel. |
| Feladás, lemondás | Csomagszám és követési link e-mailben; lemondás teljes vagy részleges visszatérítéssel és sztornó számlával. |
A fizetetlen rendelések két óra után lejárnak, és a lefoglalt darab visszakerül a keretbe – előtte a rendszer még a Stripe-nál is ellenőrzi, nem fizettek-e mégis.
Integrációk
- Stripe: Checkout, öt visszaigazolási esemény (sikeres, aszinkron sikeres és sikertelen fizetés, lejárat, visszatérítés), visszatérítés az adminból.
- OTP eBIZ: számla kiállítása, PDF, sztornó, számlatömb- és bankszámlaválasztó az adminban; eurós számla MNB-árfolyammal, a kedvezmény külön sorban. Az első integráció egy régi felületre épült, a kapott OpenAPI-leírás alapján átírtuk a jelenlegi REST API-ra.
- MNB: hivatalos napi középárfolyam az eurós számlákhoz.
- Meta: böngészős Pixel és szerveroldali Conversions API, közös eseményazonosítóval, így a Meta a két eseményt egynek számolja.
- Google: GA4 és Google Ads vásárlás-konverzió, egy rendelés csak egyszer számít.
- Termékkatalógus: négy feed (Google és Meta, HU/HUF és EN/EUR) árral, elérhetőséggel, előrendelési dátummal, képekkel és országonkénti szállítási díjjal.
- Szállítás és e-mail: a GLS csomagpont-térkép csak megnyitáskor töltődik be; márkázott, adminból szerkeszthető levelek.
A számlázó és a hírlevél egy-egy cserélhető modulra épül: új szolgáltató egy új osztállyal beköthető, a meglévő kód változtatása nélkül.
Admin: minden állítható
A Filament-alapú admin 8 adatkezelőt (rendelések, termékek, kuponok, szállítási zónák, médiatár, oldalak, hírlevél-feliratkozók, fiókok), 7 beállítási oldalt és 3 vezérlőpult-widgetet tartalmaz. A fordítható mezőket mindenhol egymás melletti HU/EN mezőpár szerkeszti. A főoldal minden szövege és képe, a jelenet lépései, a menü, a keresőcímek sablonjai és az integrációk kulcsai is innen állíthatók; a titkos kulcsok titkosítva tárolódnak.
Keresőoptimalizálás
- Strukturált adatok: termék és ajánlat (ár, elérhetőség, szállítás zónánként, visszaküldés), morzsamenü, GYIK, szervezet és webhely – a schema.org validátora szerint 0 hiba.
- Lefordított URL-ek, hreflang minden oldalon; sitemap képekkel és módosítási dátummal.
- Átnevezett termék vagy oldal régi címe automatikus 301-es átirányítással viszi tovább a látogatót.
- A W3C validátor szerint 0 HTML-hiba minden indexelhető oldalon; automatikus megosztási kép minden oldalhoz.
Mért teljesítmény
| Mérőszám | Eredmény | Cél |
|---|---|---|
| LCP mobilon | 1,1 s | < 2,5 s |
| CLS | 0 | < 0,1 |
| Első betöltés | 114 KB | ≤ 800 KB |
| JavaScript a főoldalon | 7 KB | ≤ 100 KB |
| Kiszolgált főoldal-kérés 50 egyidejű kérésnél | ~85/s, 0 hiba | – |
A mérések a szerverről készültek; valós mobilhálózaton a betöltés lassabb, de a célokhoz képest nagy a tartalék. A terheléses teszt alapján a jelenlegi beállítás nagyjából 1 000–1 500 egyszerre aktív látogatót szolgál ki kényelmesen.
Minőségbiztosítás
9 automata teszt 62 ellenőrzéssel – oldalak, kosár és pénztár, admin, jogosultságok, szimulált Stripe-visszaigazolások, kupon, lejárat és túlrendelés elleni védelem. A számlázási és Meta-kérések hamisított válaszokkal, visszagörgetett tranzakcióban is tesztelve; vizuális ellenőrzés mobil és asztali szélességben, a moodboard tábláival összevetve.
Hogyan tovább
- Háttérfeldolgozás a fizetés utáni lépésekhez, így a fizetési visszajelzés pár tized másodperc alatt lefut.
- Oldal-gyorsítótár a főoldalhoz és a termékoldalhoz, ami a böngészési kapacitást nagyságrenddel emeli.
- A jelenet 72 kockás képsorozata állványról forgatott videóból – az admin feltöltője és a lejátszás már kész.
- További integrációk és a következő termékek: a rendszer nem kötődik a pénztárcához.
