kaloni.gr — Δίγλωσσο E-Commerce Υποδημάτων σε Laravel
8 εβδομάδες
|
Full-Stack Προγραμματιστής & Σχεδιαστής
Σχεδιάσαμε και αναπτύξαμε το kaloni.gr, ένα δίγλωσσο (Ελληνικά/Αγγλικά) e-commerce σε Laravel 12 για ένα brand γυναικείων υποδημάτων με έδρα τις Σέρρες. Το κατάστημα υποστηρίζει παραλλαγές προϊόντων (μέγεθος + χρώμα), galleries με φιλτράρισμα χρώματος, λίστα επιθυμιών (session για επισκέπτες, DB για συνδεδεμένους χρήστες με συγχώνευση στη σύνδεση), πρόσφατα προβεβλημένα προϊόντα, αναζήτηση με autocomplete και ανίχνευση ζώνης αποστολής σε πραγματικό χρόνο. Οι πληρωμές χρησιμοποιούν μια αφαίρεση gateway-agnostic (PaymentGatewayInterface με αποτελέσματα σε DTO) που υποστηρίζει Stripe 3DS, Cardlink hosted-redirect με επαλήθευση HMAC-SHA256 digest, τραπεζική μεταφορά, αντικαταβολή και πληρωμή κατά την παραλαβή. Το admin panel καλύπτει προϊόντα/παραλλαγές/κατηγορίες, κουπόνια, ζώνες αποστολής, κύκλο ζωής παραγγελιών και μεταβάσεις κατάστασης πληρωμής, μετριασμό κριτικών, εγγραφές newsletter και ειδοποιήσεις διαθεσιμότητας, διαχείριση πελατών με GDPR αυτο-διαγραφή (ανωνυμοποίηση ή πλήρης διαγραφή) και activity logging. Το δίγλωσσο περιεχόμενο χρησιμοποιεί ειδικούς πίνακες *_translations με έξυπνο fallback τοπικής γλώσσας (URL prefix → session → προτίμηση χρήστη → config), που τροφοδοτεί SEO-φιλικά /el/ και /en/ URLs με hreflang alternates και Organization/WebSite JSON-LD σε κάθε σελίδα. Οι εικόνες σερβίρονται μέσω Intervention Image v3 με responsive <picture> srcsets και WebP εκδόσεις· τα inline scripts είναι CSP-συμβατά μέσω Vite nonces· το GA4 e-commerce tracking (view_item, add_to_cart, purchase) ενεργοποιείται μόνο μετά από συναίνεση cookies. Η επιχειρηματική λογική είναι απομονωμένη σε 23 service classes για ένα API-ready υπόβαθρο.
Τεχνολογίες
Laravel 12
PHP 8.3
Alpine.js
Custom CSS (BEM)
MySQL
Intervention Image v3
Stripe (3DS)
Cardlink
Laravel Breeze + Google OAuth
Multilingual (el/en)
JSON-LD / SEO
Responsive Design
GA4 E-commerce
Vite
Προκλήσεις
Η κατασκευή ενός συστήματος πληρωμών πολλαπλών gateway που υποστηρίζει καθαρά τόσο σύγχρονες (αντικαταβολή, τραπεζική μεταφορά) όσο και ασύγχρονες ροές redirect (Stripe 3DS, Cardlink HMAC), διατηρώντας παράλληλα απλό το μοντέλο δίγλωσσου περιεχομένου και γρήγορο τον κατάλογο σε εκατοντάδες παραλλαγές προϊόντων.
Λύσεις
Σχεδιάσαμε ένα PaymentGatewayInterface με αποτελέσματα σε DTO ώστε κάθε gateway να εντάσσεται πίσω από το ίδιο API· χρησιμοποιήσαμε ειδικούς πίνακες *_translations με αλυσίδα fallback (URL prefix → session → προτίμηση χρήστη → config) ώστε η μετάφραση να ζει σε ένα μέρος ανά οντότητα· κάναμε cache responsive WebP εκδόσεις μέσω Intervention Image v3 και τις σερβίραμε μέσω <picture> srcset με ρητές διαστάσεις για αποτροπή CLS.