Un negozio dove il prezzo lo decide il server
Tenuta del Barone di Montemurlo produce olio extravergine di oliva biologico, IGP Toscano, raccolto a mano sulle colline di Montemurlo. Il negozio doveva reggere pagamenti veri e restare gestibile da chi l'olio lo fa, non da chi scrive codice.
Risultati misurati
4
modi di pagare: carta, Apple Pay, Google Pay, PayPal
0
dipendenze da installare per sviluppare
1
sola fonte per i prezzi: il server
100%
gestione da backoffice, senza rilasci
01 — Contesto
Un prodotto stagionale con pochi articoli e molte varianti
Un frantoio non ha migliaia di codici: ha pochi prodotti, formati diversi e una stagione che decide le disponibilità. La complessità non sta nel catalogo, sta nel fare le cose per bene — spedizioni, IVA, ricevute — su ogni singolo ordine.
Il rischio tipico di questi negozi è che il prezzo venga calcolato nel browser: basta aprire gli strumenti da sviluppatore per pagare meno.
02 — Approccio
Il carrello propone, il server dispone
Il browser tiene il carrello, ma ogni totale viene ricalcolato dal server prima del pagamento: quantità, sconti, spedizione e IVA nascono lì. Quello che arriva dal client è una richiesta, non una verità.
Per lo sviluppo, senza `DATABASE_URL` il server usa PGlite — un PostgreSQL integrato che salva su disco: si clona il repository e si parte, senza installare né Docker né un database. In produzione si cambia una variabile e si passa a un PostgreSQL vero.
03 — Soluzione
Cosa abbiamo costruito
Negozio senza passaggi di build
HTML, CSS e JavaScript serviti così come sono scritti: nessuna compilazione fra il codice e la pagina.
Pagamenti
Stripe per carta e portafogli digitali, più bonifico per chi lo preferisce.
Account e ordini
Registrazione, storico ordini ed email transazionali a ogni cambio di stato.
Backoffice protetto
Prodotti, fotografie, prezzi e ordini gestiti da un pannello con accesso riservato.
04 — Risultato
Online e autonomo
Il negozio è in produzione su un server proprio, dietro un proxy che gestisce i certificati. Il catalogo si aggiorna dal backoffice, i pagamenti passano da Stripe e la scelta di calcolare tutto lato server significa che nessun totale dipende da quello che succede nel browser di chi compra.