Un'azienda agricola che vende, fattura e avvisa senza cambiare strumento
Felice Agricoltura è un'azienda agricola biologica di Montemurlo, in provincia di Prato, con il Frantoio della Rocca. Serviva un posto solo per vendere online, seguire gli ordini e tenere informati i clienti senza scrivere messaggi a mano.
Risultati misurati
1
monorepo: negozio, gestionale e worker
2
processi separati, per un motivo preciso
0
arrotondamenti: importi in centesimi interi
IT
email transazionali via Aruba
01 — Contesto
Vendere prodotti agricoli non è vendere magliette
Un prodotto agricolo ha stagionalità, lotti e un'IVA che cambia per categoria. Gli ordini vanno seguiti fino alla consegna e i clienti, spesso abituali, preferiscono un messaggio su WhatsApp a una email che non leggeranno.
Il punto di partenza è stato l'interfaccia disegnata nel progetto Claude Design dell'azienda, tradotta poi in un'applicazione che dovesse reggere ordini veri e contabilità vera.
02 — Approccio
Due processi, perché WhatsApp non è un'API
Gli avvisi passano da `whatsapp-web.js`, che pilota una sessione reale di WhatsApp Web dentro un Chromium e deve restare acceso con lo stato salvato su disco. Non può vivere dentro una funzione che nasce e muore a ogni richiesta.
Perciò il worker è un processo a sé: il sito accoda i messaggi su Redis e il worker li consegna. Se il worker è fermo il negozio continua a funzionare e i messaggi partono al riavvio — la vendita non si blocca mai per un avviso.
Gli importi sono numeri interi in centesimi: sui totali con IVA per categoria, i decimali in virgola mobile producono differenze di un centesimo che in contabilità non si possono spiegare.
03 — Soluzione
Cosa abbiamo costruito
Negozio e area amministrativa
Un'unica applicazione Next.js: vetrina, carrello, ordini e back-office di gestione.
Logica di dominio isolata
IVA, importi, stati dell'ordine e code stanno in un pacchetto senza dipendenze dal framework: si testano da soli.
Worker WhatsApp
Processo autonomo che consuma la coda Redis e consegna gli avvisi ai clienti.
Pagamenti ed email
Incassi online e posta transazionale via Aruba, con i modelli dei messaggi in italiano.
04 — Risultato
Come si lavora adesso
L'azienda gestisce il catalogo e gli ordini dalla stessa applicazione che i clienti vedono, e gli avvisi partono da soli quando un ordine cambia stato. La separazione fra sito e worker ha un effetto concreto: un problema su WhatsApp non ferma le vendite, e i messaggi in coda vengono recapitati appena il servizio torna.