# Un negozio dove il prezzo lo decide il server

> Olio extravergine biologico IGP Toscano: catalogo su PostgreSQL, prezzi calcolati dal server, pagamenti Stripe e bonifico, backoffice per gestire tutto senza toccare il codice.

**Enneci Agency** — Tenuta del Barone di Montemurlo di Nicolò Coppi. Via Piemonte 4/40, 59100 Prato (PO), Italia.
Contatti: ciao@enneciagency.it · +39 379 2885434 (anche WhatsApp) · https://www.enneciagency.it
Zona servita: Prato e provincia, Firenze e Pistoia, e in tutta la Toscana.

## Scheda

- Cliente: Tenuta del Barone di Montemurlo
- Settore: Agroalimentare
- Tipo di lavoro: E-commerce
- Anno: 2026
- Sito online: https://www.oliodelbarone.com
- Tecnologie: Node.js, PostgreSQL, PGlite, Stripe, Docker, Caddy
- Pagina: https://www.enneciagency.it/progetti/tenuta-del-barone/

## Risultati

- **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

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.

## 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.

## 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.

## 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.

## Cento file, e nessun passaggio di build

Il progetto intero sta in poco più di cento file. Il server è diviso in tre cartelle — accesso ai dati, regole di dominio, rotte — e il sito è servito così com'è scritto: niente compilazione, niente pacchetto da generare, nessun passaggio fra quello che si legge nel repository e quello che arriva al browser.

È una scelta che si paga in comodità durante lo sviluppo e si ripaga negli anni: fra tre anni, per cambiare una riga, basterà aprire il file. Non servirà ricostruire un ambiente di compilazione che nel frattempo è invecchiato.

Le prove automatiche coprono la parte che tocca i soldi — calcolo dei totali, spedizione, IVA — perché è lì che un errore non si vede finché non arriva il commercialista.

## 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.
