Floural è una piccola panetteria e cake studio cresciuta più in fretta del suo modo di lavorare. La titolare era il ricettario, la formatrice, il giudice dei ritardatari e il controllore delle scadenze — tutto insieme. Le abbiamo costruito un POS che si è preso ogni uno di questi compiti, più qualcuno che non sapeva di volere, così un pasticcere al primo giorno riesce a gestire un turno da solo.
Ognuno di questi problemi aveva lo stesso difetto: la panetteria funzionava quando la titolare era in negozio, e si bloccava quando non c'era. Il brief era semplice — togliere tutto dalla sua testa e metterlo in un sistema di cui il personale si fidasse.
Foto su WhatsApp, un quaderno malridotto e la memoria della titolare. Ogni nuovo pasticcere significava rinsegnare lo stesso chiffon da zero — sbagliandolo un po' ogni volta.
Il personale alzava le spalle e diceva "sembra fresco." I clienti alla fine non la pensavano allo stesso modo. Una crema ritirata male ha azzerato le recensioni di un sabato.
Pan di spagna, crema al mango, ganache — prodotti a lotti, ognuno con la propria scadenza. Il vecchio POS li contava come un numero unico. Una crema da 6 giorni veniva usata prima di una da 2. Il FIFO era un'aspirazione.
Il POS era un foglio di calcolo travestito. Le categorie non erano a colori, gli articoli non avevano codici abbreviati, lo schermo non aveva ritmo. I nuovi assunti imparavano sbagliando — a spese del cliente.
La titolare ricordava chi era in ritardo. A volte. I bonus diventavano trattative. L'equità era percepita, non misurata.
Fine giornata significava quattro riconciliazioni a mano. Il P&L per canale era una voce di corridoio, non un numero.
Ogni prodotto è costruito da componenti (pan di spagna, crema, ganache) che a loro volta derivano da ingredienti. Le ricette della titolare vivono nel database — una per ogni componente, una per ogni prodotto finito — e un ordine di produzione è solo "scegli il componente, premi avvia."
Il sistema mostra al pasticcere le quantità esatte per il lotto scelto, scala gli ingredienti al completamento al costo medio ponderato (HPP) e registra un nuovo lotto del componente con data di produzione e scadenza. La ricetta è la fonte della verità. La titolare non è più il collo di bottiglia.
MC-260422-A, scadenza 25 Apr 2026 21:00, posizione Chiller 2.
Ogni prodotto finito in esposizione ha la propria soglia di scadenza (torte ≠ pasticceria ≠ pane). Quando un'unità viene spostata sul banco, il conto alla rovescia parte. Il display mostra una barra colorata che scorre dal verde al giallo al rosso — il personale e la titolare vedono la stessa immagine da qualsiasi punto del locale.
Rosso? L'unità finisce nel registro degli scarti con una ragione categorizzata — mai solo "eliminato" — così la titolare può vedere a fine mese se il problema è sovrapproduzione, cattiva gestione o contaminazione.
Quando un pasticcere assembla una torta finita, il POS non chiede "c'è della crema?" — sceglie il lotto di crema con la scadenza più imminente che ha ancora abbastanza quantità, lo scala, e annota quale lotto ha usato nella riga dell'ordine.
Se il pasticcere bypassa il FIFO (raro, a volte legittimo) viene registrato con una motivazione. Il deterioramento di un intero lotto finisce nella tabella degli scarti al costo HPP, non al prezzo di vendita — la titolare vede il costo reale.
| Lotto | Prodotto | Scadenza | Rimasto | Pos. | Stato |
|---|---|---|---|---|---|
| MC-260420-B | 20 Apr 06:30 | 23 Apr 06:30 | 340 g | Chiller 1 | USA PROSSIMO |
| MC-260421-A | 21 Apr 14:10 | 24 Apr 14:10 | 1,820 g | Chiller 2 | IN CODA |
| MC-260422-A | 22 Apr 09:05 | 25 Apr 09:05 | 2,000 g | Chiller 2 | IN CODA |
Ogni prodotto ha un codice breve di 2–4 lettere, un colore per categoria e una posizione fissa nella griglia che la titolare definisce. Le nuove cassiere imparano il layout in un'ora perché non cambia mai. La ricerca funziona per codice oppure per nome — veloce per i clienti abituali, indulgente per chi è in formazione.
Il checkout è un'unica schermata: articoli, cliente (facoltativo, con punti fedeltà), metodo di pagamento (contanti, QRIS, bonifico, GoFood, ShopeeFood, acconto), fatto. Il cassetto si apre da solo ai contanti; il resto viene calcolato; la ricevuta si stampa; l'ID dell'ordine è data + sequenza.
Il personale fa il check-in con un selfie all'inizio del turno (Pagi 07:00, Siang 15:00, Malam 21:00). Il sistema legge il timestamp, applica la tolleranza configurata (5 min) e converte ogni minuto extra in "punti ritardo" al tasso stabilito dalla titolare — 1 punto ogni 5 minuti di ritardo, Rp 3.000 per punto.
A fine mese, bonus = base − (punti ritardo × penale). La titolare approva una volta sola. Le contestazioni si azzerano perché i calcoli sono sullo schermo, con le foto.
Ogni canale — dine-in, asporto, GoFood, ShopeeFood, pre-order con acconto — si registra nella stessa tabella ordini con un tag di canale. La riconciliazione di fine giornata è una schermata, non quattro. Il P&L per canale è un filtro, non un progetto.
E il livello extra: punti fedeltà per i clienti (1 ogni Rp 1.000 spesi, con scadenza secondo le regole della titolare), registro scarti categorizzato con perdita stimata in Rp, stock dei materiali da imballaggio che si decrementa automaticamente per ogni vendita, e un log di audit a livello di sistema che permette di tracciare qualsiasi numero di qualsiasi schermata fino alla persona e al momento.
Non abbiamo clonato un POS. Abbiamo trascorso i primi tre giorni in panetteria a osservare. Il modello dati — tre livelli, lotti, FIFO, scadenze — era sulla lavagna prima che una riga di codice fosse scritta.
Seduti in panetteria. Ogni ricetta — pan di spagna, crema, ganache, ogni prodotto — trascritta in schemi strutturati di componenti e prodotti. Il modello dati è diventato il ricettario.
Costruiti ingredients → components → products → shelf_items con tabelle lotto per i componenti e le istanze sul banco. Costo medio ponderato HPP su ogni carico e ogni produzione.
Schermata di produzione con la ricetta come checklist. Soglie di scadenza per prodotto (ore verde/giallo/rosso) collegate a barre colorate in tempo reale. Registro scarti con motivi categorizzati.
Griglia a tessere con codici brevi, ordini con tag canale, checkout in unica schermata, flusso acconto + saldo per i pre-order. La cassiera formata in 90 minuti con uno script di una pagina.
Presenze con selfie, configurazione punti ritardo, bozza bonus mensile → flusso di approvazione. Cassetto con riconciliazione apertura / vendite / prelievi / chiusura. Log di audit su ogni modifica.
Assunti due pasticceri nuovi come test. Entrambi hanno gestito un turno completo da soli entro fine settimana — ricette dallo schermo, FIFO dallo schermo, decisioni sul banco dallo schermo. La titolare è rimasta a casa un sabato.
Nessun delta mese su mese inventato — il sistema è in fase di avvio. Questi sono i flussi di lavoro che si sono spostati dalle spalle della titolare allo schermo.
Ogni ricetta nel database, versionata. I nuovi pasticceri leggono lo schermo, non la titolare.
Griglia a tessere + codici brevi + checkout in un'unica schermata. Il nuovo assunto prende ordini reali nella prima ora.
Ingredienti → componenti → prodotti. I lotti di componenti vengono prelevati dal più vecchio, in automatico.
Ogni unità sul banco ha una barra colorata in tempo reale. "Sembra fresco?" è sostituito da "è verde?"
Minuti di ritardo → punti ritardo → detrazione in Rp. Foto e timestamp. La titolare approva una volta sola.
Dine-in, GoFood, ShopeeFood, pre-order: tutti nella stessa tabella ordini. La chiusura giornata è una schermata.
Installabile sul tablet Android del personale. Nessun framework — ogni schermata è un modulo JS singolo che il nipote della titolare (studente di informatica) può leggere. Il service worker mantiene il POS attivo quando il wi-fi balla.
Routing basato su azioni (?action=), PDO nativo, JWT. Schema a 25 tabelle: impostazioni, utenti, prodotti/componenti/ingredienti con ricette, lotti, banco, presenze, bonus, imballaggi, scarti, audit.
Ingredienti (grezzi) → componenti (semilavorati, a lotti, con scadenza) → prodotti (finiti, legati alla ricetta) → articoli sul banco (con timestamp). Costo medio ponderato HPP attraverso ogni livello.
Check-in con selfie e rilevazione turno, tolleranza + penale configurabili, bozze bonus mensili. Cassetto giornaliero con apertura / vendite / prelievi / chiusura. Ogni modifica nel log di audit con utente + IP.
Una chiamata gratuita per definire lo scope. Le diciamo cosa vale la pena costruire e cosa no.