Karuselle
Un marketplace multilingue di moda firmata di seconda mano selezionata: ricerca semantica, commissioni flessibili per i venditori, report fiscali UE e nuovi metodi di pagamento su una codebase Laravel in crescita.

Sfida
Un marketplace di moda multilingue con molti venditori e diversi canali di vendita esterni doveva continuare a crescere su una codebase datata: una ricerca più intelligente, commissioni eque e flessibili, report fiscali UE, più metodi di pagamento e un negozio che restasse veloce e sicuro.
Soluzione
Tre anni come unico sviluppatore:
- Aggiornamento del framework: Laravel 5.8 → 6 → 7 → 8 → 9 → 10 → 11 con tutti i pacchetti e PHP 7.4 → 8.x in due settimane, più il trasferimento su un nuovo server.
- Ricerca semantica in quattro lingue: un servizio di embedding e un database vettoriale self-hosted, sincronizzazione incrementale dell’indice tramite code, ripiego sulla ricerca semplice con un circuit breaker, un interruttore nel pannello di amministrazione senza deploy, un filtro deterministico per colore/categoria/materiale, sinonimi e comandi di diagnostica.
- Catalogo e vetrina: filtri AJAX in tempo reale in pannelli a scomparsa con conteggi, conversione delle taglie in taglie UE e nei sistemi dei vari paesi, filtri per sconto e venditore, URL SEO-friendly, restyling completo di schede, header, footer e mega menu, banner e slider della home gestiti con drag and drop.
- Fai un’offerta: l’acquirente propone un prezzo, l’amministratore controbatte via email anche agli ospiti, con limiti per persona, scadenza e protezione dal doppio clic.
- Checkout e pagamenti: commissione Buyer Protection in carrello, checkout, email e fatture IVA; coupon, spedizione in base al paese; Stripe con 3D Secure, Apple Pay e Google Pay, PayPal REST, Paysera con verifica dell’importo.
- Venditori e denaro: canali di vendita con commissioni e fatture proprie, una fattura separata per ogni venditore nello stesso ordine, date di pagamento ai venditori, un report fiscale UE DAC7 in XML, numeri di fattura emessi sotto un lock del database e un modulo Commission Rules con un unico resolver, tariffe per canale, regole in base all’età dell’annuncio, anteprima, ordinamento con drag and drop e registro delle modifiche.
- Feed e marketing: Google Merchant, Facebook, marketplace partner in CSV, sincronizzazione e-commerce con Mailchimp, consent mode v2.
- SEO e GEO: dati strutturati per prodotti, breadcrumb e FAQ, canonical e hreflang solo per le traduzioni esistenti, noindex per le faccette, regole robots per i crawler IA e llms.txt, una sitemap giornaliera e un comando di controllo SEO.
- Lingue: LT, EN, PL e RU con traduzione al salvataggio e comandi di sincronizzazione settimanali.
- Amministrazione e operatività: pannelli di code e job con heartbeat dei worker, esportazioni in background, recupero della sessione che conserva il testo digitato, pulizia delle bozze di prodotto abbandonate.
- Sicurezza: una security review ha chiuso falle nel controllo degli accessi e nell’accesso ai file, ha aggiunto il throttling dei login per account e per IP, ha chiuso le sessioni al cambio password e ha limitato i tipi di file caricabili.
- Test: una suite di test passata da zero a 239 test, con una protezione che impedisce di eseguirli in produzione.
Risultato
- Calcolo delle commissioni per 50 prodotti: da 101 query al database a 2.
- Elenco delle offerte: 169 → 121 query per pagina; un prodotto con 35 offerte: 92 → 64.
- Miniature dei prodotti: 136 KB → 20 KB ciascuna (60 per pagina di categoria); immagini di un prodotto 2,5 MB → 0,5 MB.
- I guadagni dei venditori nello storico vendite ora mostrano quanto è stato davvero addebitato: è stato individuato e corretto un errore che riguardava la maggior parte delle righe storiche.
- La ricerca semantica copre circa 9.000 prodotti in produzione.