Tilbage til portfolio
Forsiden på KALONI.GR: en sort header med telefonnummer, e-mailadresse, hovedmenuen og en række skokategorier over tre fotofliser – "New Collection" over slingback-stiletter i sort, bordeaux og brun på en hylde foran en mørkerød væg, "Boots" over sorte støvler under ordene "BOOTS for every style" og "All Day Comfort" over sorte loafers, en sort slingback og en lysebrun træsko på stenblokke – og derunder overskriften "New Arrivals" og fire produkter mærket "NEW".
Åbn kaloni.gr i en ny fane

kaloni.gr — Tosproget Laravel-skotøjs-webshop

Overblik

Vi designede og udviklede kaloni.gr, en tosproget (græsk/engelsk) Laravel 12-webshop for et damesko-brand med base i Serres. Storefront understøtter produktvarianter (størrelse + farve), farvefiltrerede gallerier, ønskeseddel (session for gæster, DB for autentificerede brugere med login-fletning), nyligt sete produkter, autocomplete-søgning og realtids-forsendelseszonedetektion. Betalinger bruger en gateway-agnostisk abstraktion (PaymentGatewayInterface med DTO-baserede resultater), der understøtter Stripe 3DS, Cardlink hosted-redirect med HMAC-SHA256-digest-verifikation, bankoverførsel, efterkrav og betaling ved afhentning. Admin-panelet dækker produkter/varianter/kategorier, kuponer, forsendelseszoner, ordrelivscyklus og betalingsstatusovergange, anmeldelsesmoderation, nyhedsbrev- og igen-på-lager-abonnementer, kundestyring med GDPR-selvsletning (anonymisering vs hård sletning) og aktivitetslog. Tosproget indhold bruger dedikerede *_translations-tabeller med en smart lokaltilbagefaldskæde (URL-præfiks → session → brugerpræference → config), der driver SEO-venlige /el/ og /en/ URL'er med hreflang-alternativer og Organization/WebSite JSON-LD på hver side. Billeder serveres via Intervention Image v3 med responsive <picture>-srcsets og WebP-søskende; inline-scripts er CSP-kompatible via Vite-nonces; GA4 e-handels-tracking (view_item, add_to_cart, purchase) er betinget af cookie-samtykke. Forretningslogikken er isoleret i 23 service-klasser for et API-klart fundament.

Udfordringer

At bygge et multi-gateway-betalingssystem, der rent understøtter både synkrone (kontant, bankoverførsel) og asynkrone redirect-flows (Stripe 3DS, Cardlink HMAC), mens den tosprogede indholdsmodel holdes enkel og kataloget hurtigt på tværs af hundreder af produktvarianter.

Løsninger

Designede en PaymentGatewayInterface med DTO-baserede resultater, så hver gateway kobles ind bag den samme API; brugte dedikerede *_translations-tabeller med en fallback-kæde (URL-præfiks → session → brugerpræference → config), så oversættelsen lever ét sted pr. enhed; cachede responsive WebP-søskende via Intervention Image v3 og serverede dem gennem <picture>-srcset-tags med eksplicitte dimensioner for at forhindre CLS.