Vinacta
Ristoratore

Cantina: inventario, alert stock, scanner barcode

Gestione lotti + posizioni fisiche + scanner mobile + alert proattivi.

6 min lettura

Modelli concettuali

  • Cellar = ristorante / locale fisico (Marco ha 1 cellar)
  • Location = posizione fisica dentro un cellar (scaffale, frigo, riserva)
  • Inventory = bottiglie con quantità + costo medio + lot tracking

Setup iniziale

/app/cellar/restaurants → "Osteria del Vino" (se non già creato)

/app/cellar/locations → aggiungi posizioni che hai fisicamente:

  • "Cantina principale" (riserva, vini importanti)
  • "Scaffale dietro bar" (servizio diretto)
  • "Frigo bianchi" (temperatura controllata)
  • "Carrello servizio" (vini in vetrina per il cliente)

Aggiungere bottiglie

/app/cellar/import → wizard step:

vino,produttore,annata,quantita,posizione,costo Barolo Cannubi,Marchesi di Barolo,2019,12,Cantina principale,28.50 Soave,Pieropan,2022,24,Frigo bianchi,9.80


### Modo 2 — Carico manuale
[/app/cellar/movements](/app/cellar/movements) → "+ Nuovo carico":

- Vino dal catalogo (auto-complete)
- Quantità
- Costo unitario
- Posizione
- Note (fornitore, fattura, ...)

### Modo 3 — Scanner barcode
[/app/cellar/scanner](/app/cellar/scanner) → modalità "Carico" → punta barcode

- 1 scan = 1 bottiglia caricata
- Beep + vibrazione conferma
- Auto-detect produttore + annata da catalogo

## Movimenti

Ogni transazione genera un **Movement**:

- ⬆️ **Carico**: acquisto, regalo, ritorno (aumenta stock)
- ⬇️ **Scarico**: vendita, degustazione, rottura, danno (diminuisce)
- ↔️ **Spostamento**: cambio posizione (no impact stock totale)
- 📝 **Aggiustamento**: conta inventario manuale (regola discrepanze)

## Alert stock minimo

### Configurazione

Per ogni posizione → **stockAlertThreshold** (default 3 bottiglie).

Esempio: "Frigo bianchi" → soglia 6 (alta rotazione)

### Triggering

Quando un vino scende sotto soglia:
- 🔴 Banner alert in [/app/cellar/alerts](/app/cellar/alerts)
- 📧 Email a OWNER + MANAGER (configurabile in [/app/settings/notifications](/app/settings/notifications))
- 📱 Push notification in-app (campanella header)

### Cosa fare

Click alert → vedi:
- Vino + quantità residua
- Suppliers possibili (con prezzo + termini)
- Bottone "+ Nuovo carico" precompilato

## Inventario conta

[/app/cellar/count](/app/cellar/count) — wizard 4-step per inventario fisico:

1. Seleziona posizione (o tutte)
2. Scanner barcode o conta manuale
3. Confronto sistema vs reale (diff evidenziati)
4. Approva → genera Aggiustamento per discrepanze

> 💡 Consigliamo conta mensile o trimestrale per accuratezza.

## Suppliers

[/app/cellar/suppliers](/app/cellar/suppliers) → rubrica fornitori con:

- Anagrafica (nome, ragione sociale, P.IVA, contatti)
- Termini commerciali (sconto, pagamento, minimo ordine)
- Catalogo riservato (prezzi privati negoziati)
- Storia ordini

## Scanner barcode mobile

### Requisiti
- Smartphone iOS 17+ o Android Chrome 113+
- Permesso fotocamera browser
- Bottiglia con UPC-A o EAN-13 (la maggior parte)

### Flusso
1. Mobile → [/app/cellar/scanner](/app/cellar/scanner)
2. Scegli modalità: Carico / Scarico / Spostamento / Cerca
3. Punta barcode
4. Beep + vibrazione = scan riuscito
5. Conferma con tap

### Fallback
Se browser senza BarcodeDetector API: input manuale codice. Funziona ovunque.

## Best practice

✅ Conta mensile o quando hai un sentore discrepanza
✅ Alert threshold realistico (no 0, no 10 per ogni vino)
✅ Note movimenti sempre (es. "degustazione staff" vs "rottura")
❌ Non delegare conta a chi non conosce il catalogo

Vedi anche