Context
Comerțul online cu porți, garduri și sisteme de automatizare nu se bazează pe produse standardizate. Produsele sunt configurabile, dimensiunile și opțiunile schimbă prețul, iar catalogul trebuie întreținut de oamenii care cunosc produsele, nu de programatori. Odată cu adăugarea mai multor limbi, modelul de conținut devine partea cea mai dificilă a proiectului.
Un storefront de acest tip este evaluat simultan după două criterii: cât de repede se încarcă o pagină de categorie pentru un vizitator venit dintr-un motor de căutare și cât de repede poate cineva din backoffice să schimbe un preț fără să solicite un deployment.
Ce am construit
Platforma este împărțită în trei componente — un API, un storefront și un backoffice — astfel încât catalogul are o singură sursă de adevăr, iar site-ul public rămâne un strat de prezentare.
- ERP și API Symfony — aici se află logica domeniului: catalogul, configuratoarele de produse (porți, panouri de gard, kituri de automatizare și produse energetice), regulile de preț, ofertele, comenzile, facturile și traducerile fiecărei versiuni lingvistice. Aceeași aplicație deservește în continuare vechiul backoffice, până când cel nou îl înlocuiește complet.
- Storefront Next.js — magazinul public, randat pe server, ca paginile de categorie și de produs să fie indexabile și rapide, cu rute localizate pentru fiecare limbă.
- Backoffice în React — o aplicație separată, single-page, unde catalogul, traducerile, prețurile și comenzile sunt gestionate zilnic; modificările de catalog intră în producție fără deployment.
- Model de conținut multilingv — traducerile fac parte din modelul de date, nu sunt un strat adăugat ulterior; astfel, adăugarea unei a doua sau a treia limbi nu dublează efortul de întreținere. Storefront-ul stabilește domeniul, țara și moneda pentru fiecare cerere, astfel încât o singură bază de cod deservește mai multe piețe.
- Integrări — mai mulți furnizori de plăți și transfer bancar, curieri, sincronizare bidirecțională a comenzilor și a stărilor cu un ERP extern, feed-uri de produse pentru platformele de reclame și traducerea conținutului din catalog asistată de sisteme automate.
Stack
Symfony 8 pe PHP 8.4 cu Doctrine și MariaDB, Symfony Messenger peste Redis pentru importuri, generarea feed-urilor și trimiterea e-mailurilor, un storefront Next.js cu rute localizate și un backoffice React/Vite. Este o împărțire deliberat convențională: PHP/Symfony acolo unde se află regulile de business și backoffice-ul, React/Next.js acolo unde se decid viteza de randare și SEO.
Status
Proiect privat. Metricile detaliate și referințele de la clienți sunt disponibile la cerere, sub NDA.