Manuale HorecaPOS
Questo manuale è diviso in tre parti: prima per il personale (di sala), poi per il manager e infine per l'amministratore. Ogni parte si basa sulla precedente: un manager può fare tutto ciò che può fare il personale di sala, e l'amministratore può fare tutto.
Cosa può fare esattamente il tuo ruolo lo imposta l'amministratore in Impostazioni → Permessi. Se non vedi un pulsante, il tuo ruolo non ha (ancora) il permesso per usarlo.
Questo manuale è disponibile anche nella cassa: tocca il pulsante © in basso a destra su ogni schermata e scegli Manuale, oppure apri http://<kassa-pc>:3000/handleiding. Vedi anche l'introduzione e la documentazione API.
Parte 1 · Personale
Per iniziare
Accesso. Apri la cassa sulla cassa, sul tablet o sul telefono e inserisci il tuo PIN (da 4 a 8 cifre). Vedrai poi la piantina della sala.
Aprire un tavolo. Tocca un tavolo. Un tavolo libero riceve un nuovo ordine; con un tavolo occupato continui l'ordine già aperto. In alto passi da una sala all'altra (ad esempio Sala e Terrazza). Per il banco usi Vendita rapida, per gli ordini da asporto Asporto.
Ordinare. Scegli un gruppo di prodotti e tocca i prodotti. Compaiono sullo scontrino a sinistra. Se vuoi, scegli prima la portata (1 = subito, 2 e 3 attendono finché non le chiami). Tocca Invia ordine: le comande vanno in cucina e al bar. Finché non hai toccato Invia ordine, puoi semplicemente togliere le righe.
Incassare. Tocca Incassa, scegli Carta / Bancontact, Contanti o Buono regalo, eventualmente una mancia, e conferma. Con la carta il pagamento parte da solo sul terminale. Lo scontrino viene stampato; puoi anche inviarlo via e-mail.
Uscire. Esci quando hai finito, così nessun altro lavora con il tuo nome. Dopo 8 ore vieni disconnesso automaticamente.
Niente internet? La cassa continua a funzionare. Se in alto compare Nessuna connessione internet · carta manuale, digita l'importo direttamente sul terminale e nella schermata di incasso scegli Già pagato sul terminale.
Più gruppi allo stesso tavolo
Allo stesso tavolo possono sedere più gruppi, ognuno con il proprio conto e il proprio scontrino.
- Tocca un tavolo: libero = nuovo ordine; un gruppo = subito quel gruppo; più gruppi = prima scegli, oppure + Nuovo gruppo (il nome può restare vuoto).
- Nella schermata ordini in alto c'è la barra dei gruppi: passare da un gruppo all'altro, + Gruppo, Nome gruppo (ad es. "Rossi") e Dividi / sposta.
- Dividi / sposta: scegli per ogni riga quante unità spostare (con 3× Birra ad es. 1) e verso quale gruppo, oppure crea un nuovo gruppo. Così sposti qualcosa che è sul conto sbagliato, o dividi in seguito "ognuno paga la sua parte". Se un gruppo resta vuoto, viene eliminato.
- Più parti insieme: con + Un'altra parte prepari una parte e scegli la successiva (ad es. il pesce e un Dry Martini al tavolo 2, il resto al tavolo 35). Una parte può andare anche su + Altro tavolo (lì come nuovo gruppo). Con Sposta tutto passa in una volta. ½ divide una riga a metà, anche una mezza bottiglia (0,667 diventa 2 × 0,3335).
- Unisci: tutto da uno o più altri tavoli (o da gruppi di questo tavolo) su questo conto, in una volta.
- Belgio: dividere o unire in una volta corrisponde a un solo cambio tavolo nella scatola nera, come richiesto dal SPF Finanze (UC242, UC251, UC252, UC4119bis). Se dopo l'ordine si elimina qualcosa o si applica uno sconto a una riga già ordinata, la modifica parte con il messaggio successivo di quel tavolo (ordine, conto provvisorio, cambio tavolo), altrimenti con la vendita: la vecchia riga in negativo e la nuova in positivo (UC226, UC4102, UC4104, UC4107, UC4110).
- Sulla schermata dei tavoli un pallino arancione indica quanti gruppi ci sono; l'importo è il totale di tutti i gruppi.
- Lo scontrino e la comanda mostrano "Tavolo 5 - gruppo 2" o "Tavolo 5 - Rossi".
Dividere il conto all'incasso
L'incasso funziona come sempre: Tutto in una volta. Nella schermata di incasso ora il conto si può anche dividere, con i pulsanti sotto Indietro e Incassa (così restano sempre visibili, senza scorrere):
- Dividi in parti uguali: scegli con − e + tra quante persone (di default il numero di coperti, oppure 2 se la cassa non registra i coperti). Lo schermo mostra l'importo a persona; ognuno paga la sua parte con carta, contanti o buono regalo (con mancia se vuole). Dopo ogni parte fa il conto alla rovescia ("ancora 3 persone"); l'ultimo paga esattamente il resto.
- Importo personalizzato: qualcuno paga un importo fisso (ad es. € 20); il resto rimane aperto.
- Per prodotto…: apre Dividi / sposta per spostare dei prodotti su un conto separato e incassarlo a parte (come sopra).
Un pagamento parziale registra solo il pagamento; il conto resta aperto e nella schermata ordini compare "già pagato … · ancora da pagare …". Lo scontrino (con tutti i pagamenti) arriva con l'ultimo pagamento, come per un incasso normale. Il pagamento con carta tramite il collegamento è esattamente per l'importo parziale. Se è già stato pagato in parte, non si possono più spostare righe in un altro gruppo né aggiungere sconti; togliere righe è possibile solo se resta abbastanza da pagare. Ogni pagamento parziale finisce nel registro.
Vendita rapida e asporto (senza tavolo)
In alto a destra sulla schermata dei tavoli ci sono Vendita rapida e Asporto. Entrambi aprono subito un ordine senza tavolo. Vendita rapida è la vendita al banco (IVA per consumo sul posto); Asporto usa l'aliquota IVA da asporto di ogni prodotto. Con "Nome cliente" aggiungi un nome, che compare sullo scontrino ("Asporto – Rossi") e in cima alla comanda. Gli ordini aperti senza tavolo sono sotto i pulsanti delle sale ("Senza tavolo: Asporto #12 – Rossi"), così li ritrovi. Se torni indietro senza vendere nulla, l'ordine vuoto sparisce da solo.
Entrambi i pulsanti si possono attivare o disattivare per locale in Impostazioni → Attività, subito sotto il tema chiaro/scuro (attivo di default). Disattivato = pulsante nascosto; gli ordini senza tavolo già aperti restano visibili.
Consegna e fasce orarie
Ordini che prendi tu stesso alla cassa, ad esempio al telefono o al banco, con le stesse regole del webshop: zone di consegna e un numero massimo di ordini per fascia oraria. Si attiva in Impostazioni → Attività → Consegna e fasce orarie, subito sotto i pulsanti Vendita rapida e Asporto (disattivato di default).
- Pulsante Consegna nella schermata dei tavoli (accanto ad Asporto): inserisci nome, telefono e indirizzo (con Inserimento rapido dell'indirizzo attivo: ricerca tramite CAP e numero civico). La cassa trova la zona di consegna e mostra i costi di consegna, il minimo e "gratis da". Se l'indirizzo è fuori dalle zone, la consegna non è possibile.
- Zone di consegna: per CAP (intervalli e singoli CAP, es.
5000-5049, 5051, 5052 AB), entro un raggio in km dall'attività (in linea d'aria) o un'area sulla mappa che disegni tu. Raggio e area funzionano solo con indirizzi nei Paesi Bassi (posizione tramite PDOK). Per zona: costi di consegna, minimo, gratis da e minuti extra; vale la prima zona corrispondente partendo dall'alto, quindi i tipi si possono combinare (es. prima alcuni CAP, poi un'area, poi un raggio per il resto). Nessuna zona impostata = consegna ovunque, senza costi né minimo. Le zone del webshop si impostano a parte (gestione del webshop). - Area sulla mappa: in una zona di consegna scegli il tipo Area sulla mappa e poi Disegna sulla mappa. Clicca sulla mappa per aggiungere punti (almeno 3); trascina un punto per spostarlo, clicca su un punto per rimuoverlo e trascina il pallino a metà di un lato per inserire un punto intermedio. La mappa mostra anche le zone a raggio e l'attività. Le tessere della mappa provengono da OpenStreetMap, quindi per la mappa serve internet; per la consegna in sé no (tranne per la ricerca dell'indirizzo). Se l'indirizzo non può essere cercato, la cassa lo segnala invece di "fuori dalle zone di consegna".
- I costi di consegna compaiono come riga "Costi di consegna" sull'ordine e vengono ricalcolati dopo ogni modifica (gratis da, nessun prodotto = nessun costo), finché non è stato pagato nulla. Sotto il minimo non si può incassare; la schermata dell'ordine mostra quanto manca, con il pulsante Asporto invece (costi di consegna e minimo non si applicano).
- Orario: Il prima possibile (ora + tempo di consegna, più i minuti extra della zona) o una fascia oraria di oggi. Se sono impostati orari di apertura per Thuisbezorgd, valgono anche qui.
- Massimo per fascia oraria (0 = nessun massimo; fascia da 5 a 60 minuti): per Asporto e Consegna insieme; contano anche gli ordini del webshop in cassa. Se è impostato un massimo, anche Asporto chiede un orario e le fasce piene non si possono scegliere. Due casse contemporaneamente sull'ultimo posto: solo una lo ottiene.
- Sulla comanda compaiono indirizzo, nome, telefono e orario; in "Senza tavolo" e in cima alla comanda ad es. "Consegna – 18:30 Rossi".
Estensioni (tutte disattivate di default; senza queste impostazioni funziona esattamente come sopra):
- Orari di apertura propri per asporto e consegna (per giorno della settimana, es.
16:00-21:00oppure11:30-14:00, 17:00-22:00; oltre la mezzanotte è consentito:17:00-01:00; vuoto = chiuso quel giorno). Disattivato = come prima (gli orari di Thuisbezorgd, se presenti, altrimenti tutto il giorno). - Giorni di chiusura (es.
25-12-2026, 26-12-2026): in quei giorni niente asporto né consegna. - Ordinare in anticipo: da 0 (solo oggi, come prima) a 14 giorni. Nella finestra Consegna/Asporto scegli prima il giorno; un giorno successivo compare sulla comanda prima dell'orario.
- Affollato: tanti minuti in più per "il prima possibile" (cassa e webshop). Si imposta rapidamente anche con il pulsante Webshop nella barra superiore.
- Indirizzi belgi (CAP di 4 cifre): con un raggio o un'area sulla mappa la cassa cerca la posizione tramite OpenStreetMap (Nominatim; servono via e località).
- Il webshop segue la cassa: la cassa è prioritaria. Il webshop usa allora le zone di consegna, i tempi di consegna e asporto, la fascia oraria, il massimo per fascia oraria, gli orari di apertura (se impostati qui), i giorni di chiusura e i giorni in anticipo della cassa, e conta nella fascia oraria anche gli ordini presi alla cassa. Disattivato = il webshop ha le proprie impostazioni (gestione del webshop), come prima. Attivare o disattivare asporto/consegna resta compito del webshop.
Codice: lib/bezorgen.ts, routes/bezorgen.ts, BezorgDialoog.tsx, BezorgInstellingen.tsx, BezorgKaart.tsx e lib/kaart.ts (la mappa, senza pacchetti aggiuntivi; lo stesso codice si trova come public/kaart.js nel webshop).
Telefonia: riconoscere il cliente in un ordine telefonico
Impostazioni → Telefonia (disattivato di default; disattivandolo si conserva tutto). Due interruttori separati:
- Cerca cliente per numero di telefono per consegna e asporto: digiti il numero nella schermata di consegna e la cassa mostra il cliente con indirizzo e ordini precedenti; Copia dati compila nome, e-mail e indirizzo. Funziona anche senza centralino.
- Identificativo chiamante: quando un cliente chiama, il centralino (o il telefono, la FRITZ!Box, il modem o il telefono Android) segnala il numero. Sugli schermi appare una notifica con chi chiama: nome, indirizzo, gli ultimi ordini (con i piatti e l'importo, anche dalla webshop, da Thuisbezorgd e dalle piattaforme di consegna), il totale e una prenotazione. Con Prendi ordine a domicilio o Prendi ordine da asporto si apre la schermata di consegna con tutto già compilato (con Consegna e fasce orarie attive); l'ordine viene collegato alla chiamata e la notifica scompare su tutti gli schermi. Pulsante 📞 nella barra in alto: le chiamate delle ultime 24 ore. Disattivabile per schermo (Mostra notifiche su questo schermo).
La ricerca avviene nella carta fedeltà, negli ordini a domicilio e da asporto della cassa, nella webshop, in Thuisbezorgd, nelle piattaforme di consegna e nelle prenotazioni. I numeri vengono uniformati (+31 6 1234 5678, 0031612345678 e 06-12345678 sono uguali; anche numeri belgi).
Come arriva il numero (più fonti insieme sono possibili; la stessa chiamata conta una volta):
| Fonte | Per | Configurazione |
|---|---|---|
| Webhook / action URL | 3CX (integrazione CRM), Aircall, Voys / VoIPGRID, Yeastar serie P, telefoni con action URL per chiamata in arrivo (Fanvil, Grandstream, Mitel 6800/6900, Snom, Yealink: funziona con qualsiasi centralino e operatore), servizi di integrazione (Zapier, Make, n8n, Power Automate) | l'indirizzo da Impostazioni → Telefonia (/api/telefonie/oproep?sleutel=...&nummer=...), GET o POST, JSON, modulo o query; anche tramite il portale: https://<portaal>/telefonie/<kassa-id>/oproep?sleutel=... |
| Asterisk (AMI) | Asterisk, FreePBX, Issabel, VitalPBX, Grandstream UCM | indirizzo, porta (5038; Grandstream UCM 7777), utente AMI e password (permessi call) |
| FRITZ!Box | FRITZ!Box con telefonia | indirizzo (fritz.box) e porta 1012; attivare una volta il callmonitor con #96*5* |
| Modem USB caller ID | linea fissa analogica con visualizzazione del numero | porta seriale (COM3, /dev/ttyACM0), baud e comando di inizializzazione (predefinito AT+VCID=1) |
| Telefono Android | il telefono integrato di un telefono Android del locale | app HorecaPOS su quel telefono, Impostazioni → Telefonia → Associa questo telefono (Android 10+: scegliere l'app come app per l'identificativo chiamante) |
La risposta contiene il chiamante, anche come contact (firstname, lastname, phone, email, address) per un modello CRM di 3CX. Le chiamate in uscita e interne non vengono mostrate; Solo queste linee limita a determinate linee o telefoni. Le chiamate vengono cancellate dopo il periodo di conservazione (predefinito 30 giorni, GDPR). Chiamata di prova simula la chiamata di un numero.
Codice: apps/pos-server/src/lib/telefonie.ts, routes/telefonie.ts, packages/shared/src/telefonie.ts; schermate Telefonie.tsx, BezorgDialoog.tsx; Android android-app/native/java/Beller*.java. Registro: Telefonia.
Fattorini propri: giri, versamento cassa e tracciamento
Per le attività con fattorini propri. Attivalo in Impostazioni → Attività → Consegna → Fattorini propri (disattivato di default). Non serve un'app per il fattorino: usa una pagina nel browser del proprio telefono (chi vuole può usare l'app Optimum Bezorger: vedi App fattorini qui sotto).
Creare un giro. In cassa c'è il pulsante Giri (con il numero di consegne ancora da far partire più i giri in consegna).
- In Pronti per la consegna spunta gli ordini che partono. Sono gli ordini a domicilio dalla cassa, dal webshop e da Thuisbezorgd (solo consegna propria; non quelli con un fattorino di Thuisbezorgd).
- Scegli il fattorino (un dipendente) e il fondo resto che porta con sé (di default l'importo dell'impostazione), e tocca Crea giro.
- Compare un codice QR. Il fattorino lo scansiona con il proprio telefono e vede per ogni indirizzo il nome, l'indirizzo con un pulsante Percorso (navigazione), Chiama, la nota, l'orario richiesto e quanto incassare. C'è un calcolatore del resto (il cliente dà € 50 → resto € 31,50). Non serve accedere. Condividi il link solo con il fattorino: chi ce l'ha vede gli indirizzi di questo giro. Con Codice QR per il fattorino crei un nuovo link; il vecchio non funziona più.
- Tocca Parti quando il fattorino esce. Il fondo resto esce dal cassetto (uscita di denaro, con il motivo). Il cliente riceve un avviso che l'ordine è in consegna:
- per un ordine dalla cassa via SMS e/o e-mail, se Messaggi al cliente è attivo (vedi Consegna e fasce orarie);
- per il webshop come impostato nel webshop (e-mail, SMS o notifica push);
- per Thuisbezorgd tramite Thuisbezorgd.
Se il giro non è ancora partito, si può ancora annullare.
- Durante il giro il fattorino tocca per ogni indirizzo Consegnato, contanti, Consegnato, carta (un proprio terminale POS) o Consegnato (già pagato). La cassa lo vede subito. Se il fattorino non può segnalarlo, si può fare anche in cassa. Di ritorno al locale il fattorino tocca Sono di ritorno al locale.
Versamento cassa. Dopo il giro tocca Incassa (permesso Gestire il cassetto):
- Per ogni ordine scegli contanti, carta alla porta, già pagato o non consegnato (rientrato). Quanto segnalato dal fattorino è già compilato.
- La cassa incassa ogni ordine con un importo aperto, senza nuovo scontrino (il cliente ha già lo scontrino; puoi ristampare in Scontrini). Un ordine non consegnato esce dal giro e resta aperto, così può andare in un giro successivo.
- Vedi quanto è previsto: il fondo resto più i contanti incassati. Inserisci quanto versa il fattorino, oppure conta per banconote e monete (Conta per banconote e monete). La cassa mostra se è corretto, o quanto c'è in più o in meno.
- Il fondo resto torna nel cassetto (entrata di denaro). La differenza è indicata nel giro e nel registro, e compare anche come differenza di cassa nel rapporto Z.
Tracciamento (da attivare a parte nell'impostazione). Con in consegna il cliente riceve un link a una pagina di tracciamento sul portale. Il link è nell'SMS o nell'e-mail, e nel webshop sulla pagina di stato (Segui il tuo fattorino). Sulla pagina di tracciamento ci sono:
- se l'ordine è in preparazione, in consegna o consegnato;
- l'orario previsto: dalla posizione del fattorino passando per gli indirizzi precedenti, altrimenti l'orario richiesto;
- quanti indirizzi vengono ancora prima (senza mostrare altri indirizzi);
- con Il fattorino in diretta sulla mappa anche il fattorino, il locale e il proprio indirizzo su una mappa (OpenStreetMap). Il fattorino attiva da sé la condivisione della posizione sul telefono (Condividi la mia posizione). La posizione viene inviata solo finché la pagina è aperta; la pagina tiene lo schermo acceso.
Le pagine sono nella lingua del telefono (tutte le lingue del portale). In cassa vedi per ogni giro quando la posizione è stata trasmessa l'ultima volta (con un link alla mappa).
Privacy. Il portale conserva i dati di un giro (nomi, indirizzi, numeri di telefono, la posizione) solo finché il giro è in corso. All'incasso viene cancellato tutto, altrimenti dopo 24 ore. Il cliente vede solo il proprio ordine. La posizione del fattorino è visibile solo durante il giro, e non più appena il fattorino è rientrato.
Pianificazione giri (facoltativa)
Attivala in Impostazioni → Attività → Consegna → Pianificazione giri (disattivata per impostazione predefinita; funziona con i fattorini propri). Nella finestra Giri compare allora il pulsante Proponi giri. La cassa riunisce in giri gli ordini ancora da consegnare:
- gli ordini vicini tra loro i cui orari richiesti rientrano nella fascia oraria (predefinita 30 minuti) vanno insieme;
- fino al numero massimo di indirizzi per giro (predefinito 4), purché il giro (andata, tutti gli indirizzi e ritorno all'attività) non duri più del massimo (predefinito 45 minuti);
- per ogni giro l'ordine migliore, la distanza (km), il tempo di percorrenza andata e ritorno e, per indirizzo, l'arrivo previsto partendo ora. Se è più tardi dell'orario richiesto, compare più tardi del richiesto.
Con Usa questo giro spunti quegli ordini, in quell'ordine; scegli il fattorino e tocca Crea giro. Per un giro non ancora partito, Ordine migliore mette gli indirizzi nell'ordine più veloce (anche sul telefono del fattorino). Per ogni giro sono indicati distanza e tempo di percorrenza.
Impostazioni: indirizzi per giro, durata massima di un giro, la fascia oraria, la velocità del rider (bici ~15, scooter ~25, auto ~35 km/h in città) e i minuti per indirizzo (parcheggiare, suonare, incassare; predefinito 2). Questi valori può impostarli anche il manager: nella finestra Giri con il pulsante Imposta pianificazione giri (permesso Imposta pianificazione giri, attivo di default per il manager; modificabile in Impostazioni → Permessi). Attivare o disattivare la pianificazione giri e il servizio di percorsi (indirizzo, chiave API) restano all'amministratore.
Distanza e tempo di percorrenza, a scelta dell'amministratore:
- Stima (predefinita): distanza in linea d'aria per 1,35 (fattore di deviazione) alla velocità del fattorino. Funziona senza internet e senza account.
- OSRM: percorsi su strada tramite un server OSRM. Inserisci l'indirizzo (
https://, oppurehttp://nella rete locale). Il server demo pubblico (https://router.project-osrm.org) è solo per uso occasionale; per l'uso quotidiano installa un tuo server OSRM o affidati a un fornitore. - OpenRouteService: percorsi su strada con una tua chiave API (gratuita su openrouteservice.org, con un limite giornaliero). L'indirizzo predefinito è
https://api.openrouteservice.orge può puntare a un tuo server. La chiave resta sulla cassa; le schermate mostrano solo che è stata inserita.
Con Prova verifichi il servizio. Se il servizio non risponde, la pianificazione torna alla stima e lo segnala. Un indirizzo con posizione sconosciuta (senza CAP e numero civico validi) compare nella proposta sotto senza posizione nota e non viene pianificato. L'esportazione della configurazione include le impostazioni, ma non la chiave.
Codice: lib/ritplanning.ts.
App fattorini (facoltativa)
Attivala in Impostazioni → Attività → Consegna → App fattorini (disattivata di default; funziona con i fattorini propri e il portale di gestione). Ogni fattorino abbina allora il proprio telefono una sola volta, invece di scansionare un codice QR per ogni giro:
- In Telefoni abbinati scegli il fattorino (un dipendente), eventualmente il nome del telefono, e tocca Abbina telefono.
- Compare un codice QR. Il fattorino lo scansiona nell'app Optimum Bezorger (pulsante Abbina) o con la fotocamera del telefono: la pagina si apre nel browser. Funziona anche senza app e si può aggiungere alla schermata Home.
- L'abbinamento resta valido finché non lo revochi; il telefono da quel momento non vede più nulla. Un nuovo abbinamento per lo stesso dipendente sostituisce quello vecchio (ad esempio con un telefono nuovo).
Nell'app o nella pagina ci sono tutti i giri propri (ogni giro che la cassa crea per questo fattorino), con gli stessi pulsanti di un giro: Percorso, Chiama, importo da incassare con calcolatore del resto, Consegnato e Sono di ritorno al locale. Attivabili separatamente:
- Prendere ordini da soli: il fattorino vede le consegne che devono ancora andare in un giro, spunta quello che porta con sé e tocca Prendi. La cassa crea il giro (o le aggiunge se quel fattorino ha già un giro non ancora partito); il fondo resto standard va con lui. Ciò che un altro ha già preso non è più disponibile.
- Partire da soli: Parti nell'app fa lo stesso che nella cassa (fondo resto dal cassetto, i clienti ricevono un avviso).
- Mappa live: in Giri c'è il pulsante Mappa con l'attività, tutti i fattorini in servizio e gli indirizzi ancora da consegnare. Il fattorino attiva e disattiva In servizio da solo. L'app trasmette la posizione anche a schermo spento (Android: una notifica nella barra finché la condivisione è attiva); la pagina web solo finché è aperta. Senza questa impostazione la posizione viene condivisa solo durante un giro con tracciamento.
L'app per Android è su Google Play e sulla pagina di download del portale (/download/). Una versione per iPhone è pronta, ma uscirà solo quando ci sarà un account sviluppatore Apple; fino ad allora gli iPhone usano la pagina web. Su un giro preso dal fattorino stesso compare preso dal fattorino nell'app.
Codice: lib/bezorgersapp.ts, nel portale src/volgen.mjs e l'app nel repo horecapos-bezorger.
Nel registro risulta chi ha creato un giro, l'ha fatto partire, l'ha segnalato come consegnato e l'ha incassato, con gli importi. Disattivare: nessun pulsante Giri; giri e impostazioni restano salvati.
Sul portale: /bezorger/<sleutel> e /volg/<code>. Codice: lib/bezorgers.ts, routes/bezorgers.ts, Bezorgers.tsx e nel portale src/volgen.mjs.
Avviso per tempi di preparazione troppo lunghi
Un ordine da asporto o a domicilio pronto più tardi del promesso: la cassa se ne accorge, lo segnala e può inviare subito delle scuse al cliente, eventualmente con un buono sconto. Attivalo in Impostazioni → Attività → Consegna → Avviso per tempi di preparazione troppo lunghi (disattivo per impostazione predefinita).
- Quali ordini: asporto e consegna con un orario promesso, dalla cassa (consegna e fasce orarie), dal webshop e da Thuisbezorgd.nl / Takeaway.com.
- In ritardo: non ancora pronto o in consegna tanti minuti (predefinito 10) dopo l'orario promesso. Pronto o in consegna significa: tutto pronto sullo schermo cucina, lo stato pronto o in consegna nel webshop o su Thuisbezorgd, il messaggio ✉ Pronto / ✉ In consegna al cliente, oppure pagato. La cassa controlla ogni minuto.
- Avviso: pulsante In ritardo nella barra superiore con il numero (con suono per ogni nuovo), con per ogni ordine l'orario promesso e quanti minuti di ritardo. Un ordine scompare da solo quando è pronto o in consegna, oppure con Gestito; sotto ci sono quelli delle ultime 24 ore, con l'ora in cui erano pronti. Tutto viene registrato nel registro.
- Webshop: la pagina di stato dell'ospite mostra che ci vuole più tempo, con il nuovo orario previsto.
- Con Thuisbezorgd non è possibile (il cliente appartiene a Thuisbezorgd): lì solo l'avviso. È possibile un testo personalizzato;
{naam},{zaak},{code},{korting}e{geldig}vengono compilati. - Buono sconto (solo con Codici sconto attivi): con le scuse, un codice sconto personale per il prossimo ordine (es.
SORRY-7K4Q2M), un importo o una percentuale, utilizzabile una sola volta, valido per un certo numero di giorni, in cassa e nel webshop. I codici non compaiono nell'elenco dei Codici sconto. Se l'invio non riesce, il codice decade. Con il pulsante in cassa solo con il permesso Applica sconto. - Disattivo: gli avvisi e i codici emessi restano salvati (anche nel backup); l'impostazione è inclusa nell'esportazione della configurazione.
Codice: lib/telaat.ts, routes/telaat.ts, TeLaat.tsx e packages/shared/src/telaat.ts.
Il pulsante Invia ordine: cosa fa e quando ti serve
Toccare un prodotto e toccare Invia ordine sono due passaggi diversi:
- Toccando un prodotto lo aggiungi subito al conto (nell'elenco a sinistra), come nuovo. Lo vedi solo tu: la cucina e il bar non ne sanno ancora nulla. Una nuova riga è una bozza: puoi ancora eliminarla o cambiare quantità e opzioni, senza storno.
- Invia ordine inoltra tutte le nuove righe in una volta: le comande vanno alle stampanti di cucina e bar (e allo schermo cucina) e le righe passano a ordinato. A quel punto puoi eliminarle solo con uno Storno (permesso storno). Sul pulsante è indicato quante nuove righe sono pronte, ad es. Invia ordine (3); se non ci sono nuove righe, il pulsante è grigio.
Perché due passaggi? Al tavolo prendi l'intera ordinazione (bevande, antipasto, piatto principale), la modifichi ancora se l'ospite cambia idea e poi la mandi in cucina in una volta sola, con una comanda per reparto invece di una per prodotto. Così la cucina può iniziare molto prima del pagamento.
Cos'altro succede con Invia ordine:
- Portate: la portata 1 va subito in cucina; le portate 2, 3 e 4 vengono inviate come ATTESA e la cucina inizia solo quando richiami quella portata (vedi Portate).
- Giri: ogni Invia ordine è un giro; su questo si basa ↻ Un altro giro.
- Il magazzino viene scalato e una spina dosata viene sbloccata.
- All-you-can-eat: se è troppo, troppo presto o troppo tardi per la formula, la cassa chiede prima se è comunque consentito.
- Belgio (GKS 2.0): le righe vengono prima inviate come pro forma alla scatola nera; se non riesce, in cucina non arriva nulla e restano nuove.
- Nessuna connessione: l'ordine viene salvato e va in cucina non appena la connessione torna. Stampante spenta: l'ordine passa comunque, la comanda finisce nella coda di stampa (vedi Stampante cucina spenta o nessuno schermo cucina).
Puoi anche incassare subito. Se tocchi Incassa mentre sul conto ci sono ancora nuove righe, la cassa le ordina prima automaticamente, così cucina e bar ricevono sempre la loro comanda. Al bar o per l'asporto non devi quindi toccare prima Invia ordine: tocca i prodotti e subito Incassa. Se l'ordine automatico non riesce (nessuna connessione, regola all-you-can-eat, scatola nera), la schermata di pagamento resta chiusa e vedi il motivo.
Preferisci che il bar non riceva una comanda quando incassi subito? In Impostazioni → Attività → Ordini e incasso attiva la casella Incasso diretto senza comanda. Così a cucina e bar arriva solo ciò che invii con Invia ordine; ciò che incassi subito non genera alcuna comanda.
Pulsante Incassa grande o piccolo
Con la casella Pulsante "Incassa" grande spuntata la schermata ordini mostra un pulsante Incassa grande subito sotto i prodotti ordinati: largo, alto e con l'importo, così si preme in fretta. Se il conto è già pagato in parte, il pulsante mostra l'importo ancora da pagare. Il pulsante piccolo in basso accanto a Invia ordine scompare.
Con il pulsante grande anche i pulsanti della schermata di incasso sono grandi: Incassa (con Carta, Buono regalo e gli altri metodi di pagamento) e con Contanti Contanti esatti e Incassa sono larghi e alti, facili da premere, anche con le dita sporche (per esempio in una macelleria). I metodi di pagamento sono un po' più grandi e i pulsanti mancia un po' più piccoli, così tutto resta sullo schermo.
In una nuova installazione la casella è disattivata: quindi il pulsante piccolo in basso accanto a Invia ordine e una schermata di incasso con pulsanti normali. Meglio grande? In Impostazioni → Attività, subito sotto il tema chiaro/scuro, spunta la casella Pulsante "Incassa" grande. Una cassa già in uso mantiene l'impostazione che aveva. La scelta vale per tutte le casse e i tablet dell'attività.
Segnare un prodotto come "esaurito"
Chiunque nella schermata ordini può tenere premuto un prodotto (o cliccarlo con il tasto destro del mouse) e scegliere Esaurito. Il prodotto diventa grigio e non si può più ordinare su nessuna cassa. Allo stesso modo lo rimetti con Di nuovo disponibile. Ogni modifica finisce nel registro. L'amministratore può farlo anche in Impostazioni → Prodotti. Anche il server della cassa rifiuta un prodotto segnato come "esaurito" ("Cola" è esaurita), quindi anche da un tablet che non aveva ancora ricevuto la modifica o da ordini salvati offline; quel tablet mostra allora "Invio non riuscito".
Schermo cucina (KDS)
Oltre alle stampanti delle comande (non al loro posto), la cucina o il bar possono usare uno schermo. Su un tablet/pc in cucina apri http://<kassaserver>:3000/keuken, accedi con un PIN e scegli la postazione: sono gli stessi nomi delle stampanti (cucina, bar, ...), quindi sullo schermo compare esattamente ciò che sarebbe sulla comanda. "Tutto" mostra tutte le postazioni.
- Una comanda per ordine, la più vecchia per prima, con tavolo/asporto, numero e da quanto tempo è in attesa (arancione dopo 10, rosso dopo 20 minuti).
- Le portate sono separate; una portata non ancora chiamata appare in grigio come "IN ATTESA di chiamata". Gli storni sono barrati.
- Tocca una riga per segnarla come pronta, o Pronto per l'intera comanda. Il personale di sala vede allora nella barra in alto "Cucina: Tavolo 5 è pronto". Con Impostazioni → Attività → Schermo cucina → Suono per il personale (disattivato di default) la cassa emette anche un bip ("din-don", senza file audio). Il browser permette i suoni solo dopo il primo tocco sullo schermo; alza il volume del tablet.
- Richiama mostra ciò che è stato segnato come pronto nell'ultima ora: quello che è stato tolto per sbaglio si può recuperare così.
Lo schermo si aggiorna da solo all'istante. Le comande continuano a essere stampate; chi non usa lo schermo non nota alcuna differenza.
Schermo cucina: inoltro, ordine e portata
Impostazioni → Stampanti → Schermo cucina. Ogni parte si attiva separatamente, disattivata per impostazione predefinita; disattivandola si conserva tutto.
- Inoltro tra postazioni, per esempio freddo → caldo → pass. Per ogni postazione imposti una postazione successiva fissa; sulla comanda compare allora un pulsante → caldo (e sempre Inoltra a… per scegliere un'altra postazione). Passano solo le righe aperte di quella postazione. Una postazione non ha bisogno di una stampante: inserisci postazioni come pass in Postazioni senza stampante. Pronto (e l'avviso al cameriere) arriva solo all'ultima postazione. In "Tutto" una riga inoltrata mostra dove si trova ora. Ogni passaggio è indicato sulla riga e nel registro.
- Riordinare: trascina le comande (mouse) o spostale con ◀ ▶ (touchscreen). L'ordine vale per postazione e per tutti gli schermi di quella postazione; le nuove comande si aggiungono in fondo.
- Portata successiva dallo schermo cucina: su una comanda con una portata in attesa compare Richiedi portata 2. Il cameriere riceve allora "La cucina richiede la portata 2 per il Tavolo 5" (con suono) e chiama come sempre; sullo schermo cucina compare "Portata 2 richiesta · n min" finché la portata non è chiamata. Oppure scegli Chiama portata: lo schermo cucina chiama allora la portata da sé, con la comanda "CHIAMATA PORTATA 2", proprio come il pulsante sulla cassa.
Stampante cucina spenta o nessuno schermo cucina
La cassa continua sempre a funzionare, anche quando la stampante della cucina o del bar è spenta (o è finita la carta, o il cavo è staccato) e anche senza schermo cucina:
- Gli ordini passano sempre. Le righe risultano subito come ordinate, il conto è corretto e si può incassare normalmente. Le stampanti vengono contattate contemporaneamente e ognuna ha al massimo circa 4 secondi: una stampante spenta non fa aspettare a lungo le altre (né il personale).
- Coda di stampa. Una comanda che non è stato possibile stampare va nella coda di stampa. Il server della cassa riprova ogni 30 secondi, per un quarto d'ora; appena la stampante torna a funzionare esce, con in cima LATER GEPRINT. Se una comanda successiva su quella stampante riesce, quelle in attesa vengono stampate subito dopo.
- Dopo un quarto d'ora i tentativi si fermano da soli; a quel punto si può ancora usare Ristampa ora.
- Schermo cucina. Se l'ordine è sullo schermo cucina, la cucina lo vede lì anche quando la stampante è spenta. Chi non usa lo schermo cucina non perde nulla: la cassa non aspetta mai il "Pronto" della cucina.
- La coda esiste solo nella memoria del server della cassa (dopo un riavvio è vuota).
- Anche lo scontrino: se non si stampa, l'incasso è comunque registrato (la cassa segnala "stampa non riuscita") e più tardi puoi stampare una copia in Scontrini.
Portate (antipasto, piatto principale ...)
I pulsanti delle portate compaiono solo quando servono: non appena c'è un menu (prodotto composto) sull'ordine, o quando c'è già qualcosa nella portata da 2 a 4. Con i prodotti normali, come una cola, non li vedi e tutto va subito in cucina. Non c'è niente da impostare.
Sotto la lista dell'ordine c'è Portata 1 2 3 4. Di default è attiva la portata 1 e tutto funziona come sempre: "Invia ordine" manda tutto subito in cucina, senza intestazioni di portata sulla comanda. Se scegli la portata 2 (o successiva) prima di toccare i prodotti:
- con "Invia ordine" vanno già in cucina, sotto "-- Portata 2 · IN ATTESA di chiamata --", così la cucina può prepararsi;
- nella lista dell'ordine compare "Portata 2 · in attesa" con un pulsante Chiama portata;
- con Chiama portata la cucina riceve una comanda " CHIAMATA PORTATA 2 " con ciò che va preparato adesso.
La portata 1 parte sempre subito. Se la portata 2 è già stata chiamata, un piatto ordinato in seguito nella portata 2 parte anch'esso subito.
Allergeni per prodotto
Di default disattivato: in tal caso gli allergeni non sono visibili da nessuna parte. Si attiva da Impostazioni → Attività → Inserisci e mostra allergeni per prodotto.
- Impostazioni → Prodotti: per ogni prodotto seleziona i 14 allergeni UE (glutine, crostacei, uova, pesce, arachidi, soia, latte, frutta a guscio, sedano, senape, semi di sesamo, solfiti, lupini, molluschi). Nell'elenco dei prodotti le abbreviazioni compaiono dopo il nome.
- Schermata ordini: su ogni pulsante prodotto compaiono in piccolo le abbreviazioni (ad es.
Gl Me), e il pulsante ⚠ Allergeni nella barra dei gruppi mostra per ogni prodotto del gruppo scelto gli allergeni per esteso, con la spiegazione delle abbreviazioni. - Le modifiche agli allergeni finiscono nel registro (vecchio → nuovo). Se l'impostazione è disattivata, gli allergeni già inseriti restano salvati.
All you can eat
Di default disattivato. Si attiva in Impostazioni → Attività → All-you-can-eat (solo l'amministratore). Crei una o più formule, ad es. Pesce, Carne e Sushi, ognuna con:
- un nome (compare sullo scontrino: "Pesce adulto", "Pesce bambino");
- un prezzo per adulto e per bambino (IVA inclusa) e l'aliquota IVA (di default NL
LAAG, BEB); - i piatti inclusi (€ 0): interi gruppi di prodotti e/o singoli prodotti (anche di altri gruppi, ad es. patatine sia con Pesce che con Carne);
- un limite di tempo in minuti (0 = nessuno);
- giri: al massimo un certo numero di piatti a persona per giro (0 = illimitato) e almeno un certo numero di minuti tra due giri (0 = nessuno);
- un supplemento spreco per pezzo (0 = nessuno).
Con ↑ ↓ imposti l'ordine. Conta quando un piatto appartiene a più formule: va a quella più in alto scelta dal gruppo. Elimina rimuove una formula per i nuovi tavoli; i tavoli in corso mantengono le loro righe di prezzo (lì si possono ancora ridurre le persone, non aumentarle).
Al tavolo:
- Nella schermata ordini, sopra lo scontrino, c'è + All-you-can-eat. Scegli per formula il numero di adulti e bambini; si può mescolare (ad es. 2× Pesce e 2× Carne). Il prezzo compare come righe sul conto; queste non vanno in cucina. Il numero di coperti del gruppo diventa il totale dei partecipanti (se la cassa registra i coperti).
- La barra mostra per ogni formula: persone, tempo rimanente (rosso quando il tempo è scaduto), a quale giro si è con il massimo, e quanto manca al giro successivo. I piatti inclusi compaiono sui pulsanti come AYCE e sullo scontrino con l'etichetta AYCE a € 0. Tutto ciò che non appartiene a nessuna formula scelta (bevande, dessert ...) si paga normalmente.
- Invia ordine: ogni "Invia ordine" con piatti gratuiti è un giro, per formula (solo le formule di cui ci sono piatti). Quello che è stato toccato offline e inviato più tardi non viene bloccato.
- Modifica: modificare i numeri per formula. Meno persone conta come storno (permesso "storno"). Portare una formula a 0 (o Interrompi per tutto) è possibile finché sul conto non ci sono ancora piatti di quella formula.
- Supplemento (solo se una formula scelta ha un supplemento spreco): scegli la quantità (e la formula, se ce ne sono più di una); "Supplemento spreco × quantità" va sul conto.
- Incasso, divisione, sconti e scontrino funzionano come sempre: i prezzi delle formule, il supplemento e le bevande sono righe normali con la loro IVA.
- Se l'amministratore disattiva l'all you can eat mentre ci sono gruppi in corso, i piatti toccati da quel momento costano di nuovo il prezzo normale; ciò che è già sul conto resta.
- Nel webshop (opzionale, disattivato di default): con Anche negli ordini al tavolo tramite il codice QR (webshop), l'ospite che ordina a un tavolo con una formula vede i piatti compresi come Incluso per € 0, con in alto lo stato (persone, giro, tempo). Ogni ordine è un giro, con le stesse regole di Invia ordine; troppi piatti, troppo presto o troppo tardi: il webshop rifiuta subito. Bevande e altri piatti l'ospite li paga normalmente; tutto va sul conto del tavolo. Disattivato = il webshop applica i prezzi normali, come prima.
Buoni regalo
Due interruttori in Impostazioni → Attività → Buoni regalo:
- Buono regalo come metodo di pagamento all'incasso: di default attivo, come sempre. Disattivato = il pulsante Buono regalo non compare all'incasso (né in rimborso tramite in caso di reso) e il server di cassa rifiuta i pagamenti con buono regalo.
- Vendi buoni regalo con saldo: di default disattivato. Se attivo:
- Nella schermata ordini c'è il pulsante Buono regalo: scegli l'importo (€ 10, 25, 50, 100 o un altro importo) e lascia che la cassa generi un codice, oppure scansiona il codice di una carta prestampata. Il buono va come riga sul conto (codice IVA BON: nessun ricavo, nessuna IVA, non va in cucina). Lì puoi anche verificare il saldo per un cliente.
- Dopo l'incasso il buono è attivo e la stampante di scontrini stampa un buono regalo con l'importo, il codice e un QR code.
- Riscattare: all'incasso scegli Buono regalo e scansiona o digita il codice (il pulsante Saldo mostra il saldo). L'importo viene scalato dal saldo. Se il saldo è inferiore al conto, viene scalato tutto il saldo come pagamento parziale e il resto si paga con carta o in contanti. Il saldo può essere usato in più volte.
- Codice vuoto = buono regalo senza codice, come prima (ad es. un vecchio buono cartaceo).
- Rapporto → Buoni regalo (permesso Gestire buoni regalo, di default manager e amministratore): ricerca per codice, credito residuo, cronologia per buono, blocca (perso/rubato) e correggi saldo con un motivo. Tutto finisce nel registro.
- Rapporti: i buoni regalo venduti non contano come ricavo e sono indicati a parte (Buoni regalo venduti); il denaro incassato compare invece nei metodi di pagamento. Ciò che si paga con un buono regalo è normale ricavo (con IVA) nel metodo di pagamento Buono regalo.
- Contabilità: i buoni venduti vanno in avere e quelli riscattati in dare sul conto Buoni regalo (credito dei clienti).
- Un buono regalo venduto può essere reso tramite Scontrini → Reso, finché non è stato usato (saldo = valore). Dopo il reso il buono è annullato (saldo 0, bloccato; risulta nella cronologia del buono). Se è già stato usato (in parte), imposta il saldo a 0 in Rapporto → Buoni regalo e rimborsa a parte il residuo. Non è possibile applicare sconti a un buono regalo.
Credito ricaricabile (facoltativo)
Per club, mense sportive, centri giovanili ed eventi: un buono regalo con saldo diventa una tessera ricaricabile. Si attiva in Impostazioni → Attività → Credito ricaricabile, sotto i buoni regalo (di default disattivato; funziona solo se Vendi buoni regalo con saldo è attivo).
- Tessera o braccialetto: vendi un buono regalo con Carta prestampata e scansiona la tessera (un lettore NFC/RFID che funziona come tastiera, o un codice a barre). Il numero della tessera diventa il codice; con quello l'ospite paga come con un buono regalo.
- Ricarica: schermata ordini → Buono regalo → Ricarica credito: scansiona il buono o la tessera e inserisci l'importo. Va come riga sul conto (codice IVA BON: nessun ricavo, nessuna IVA, come un buono regalo venduto) e dopo l'incasso è sul saldo. Nella cronologia del buono compare Ricaricato.
- Saldo massimo per buono o tessera (di default € 500, impostabile fino a € 5.000).
- Rimborsa saldo residuo (casella, di default disattivata; permesso Gestire il cassetto): dopo Verifica saldo compare Rimborsa saldo residuo. Il saldo va a € 0 e l'importo compare come denaro fuori dal cassetto sui rapporti X e Z (Tegoed terugbetaald …).
- Una ricarica può essere annullata tramite Scontrini → Reso finché il saldo è ancora almeno pari a quell'importo; il buono o la tessera resta valido.
- Ricarica al chiosco (facoltativo): vedi Chiosco self-service.
Buoni pasto
Solo per attività in Belgio, di default disattivato: Impostazioni → Attività → Incassa → Buoni pasto. I buoni pasto sono un benefit salariale: il datore di lavoro li carica su una tessera del dipendente (Edenred, Monizze o Pluxee). L'ospite paga con essa sul normale terminale di pagamento; non serve alcun collegamento con gli emittenti.
- Attivo: all'incasso compare il pulsante Buono pasto. Scegli l'emittente (solo gli emittenti che l'attività accetta) e fai avvicinare all'ospite la tessera al terminale di pagamento, come per un pagamento con carta. Senza collegamento al terminale: l'ospite paga direttamente sul terminale di pagamento e tu tocchi Incassa.
- Niente mancia e niente resto con i buoni pasto. Se il saldo non basta, l'ospite paga il resto in altro modo (il conto resta aperto finché non è tutto pagato).
- Solo per determinate categorie (facoltativo, ad es. cibo ma non alcolici): con i buoni pasto si può pagare al massimo l'importo di quei prodotti sul conto. La schermata di incasso indica quanto; l'ospite paga il resto in altro modo.
- Sullo scontrino: Buono pasto Pluxee (seguito dall'emittente).
- Rapporto Z e rapporto X: una riga per emittente (Buono pasto Edenred, … Monizze, … Pluxee).
- Contabilità: un conto contabile per emittente (Buoni pasto Pluxee (da incassare) ecc., di default 416100, 416200 e 416300), perché il denaro arriva dall'emittente e non dalla banca del terminale di pagamento.
- Serve: un accordo con ogni emittente di cui accetti i buoni e un terminale di pagamento che accetti queste carte (chiedi al fornitore del terminale di pagamento).
Valuta estera
Incasso in contanti in un'altra valuta, ad es. turisti britannici o americani, o nelle zone di confine con il franco svizzero. Di default disattivato: Impostazioni → Attività → Incassa → Valuta estera. Aggiungi le valute (CHF, CZK, DKK, GBP, HUF, NOK, PLN, SEK, TRY, USD) con un cambio per ogni valuta: quanti euro calcoli per 1 unità (ad es. 1 GBP = € 1,15).
- Inserito a mano: un cambio fisso; aggiornalo tu quando cambia.
- Live (BCE): il cambio del giorno della Banca centrale europea (cambi di riferimento, ogni giorno lavorativo verso le 16:00; gratuito, senza account). Con una maggiorazione in percentuale (0-20) il cambio si abbassa di altrettanto, così l'attività non paga di tasca propria il cambio valuta. La cassa scarica i cambi da sola se hanno più di 6 ore; Aggiorna ora li scarica subito. Senza internet resta l'ultimo cambio.
- Attivo: all'incasso compare il pulsante Valuta estera. Scegli la valuta; la cassa mostra quanto fa in quella valuta. Inserisci quanto dà il cliente: la cassa converte e dà il resto in euro. Se il cliente non vuole il resto, spunta Il resto è mancia: il resto va sullo scontrino come mancia, in Belgio in quella valuta (GKS 2.0, UC296).
- Se l'ospite dà meno dell'intero importo, è una parte; il rimanente lo paga in altro modo.
- Sullo scontrino: la valuta, l'importo e il cambio, e il resto in euro.
- Rapporti X e Z: una riga propria per ogni valuta (Valuta estera GBP, in euro) e, al cassetto, cosa c'è nel cassetto in quella valuta. Il resto in euro viene sottratto dal denaro previsto nel cassetto; le valute stesse le conti a parte.
- Contabilità: conta come contanti (cassa), in euro.
Pulsanti aggiuntivi per ordini e incasso
Pulsanti per ciò che non serve a ogni locale. Tutto è disattivato di default; attivali uno per uno in Impostazioni → Attività → Ordini e incasso (permesso Configurare attività, pagamenti e stampanti). Disattivato = il pulsante non compare da nessuna parte nella cassa e il server di cassa rifiuta l'operazione. Nei Paesi Bassi tutto funziona senza scatola nera; in Belgio un pulsante funziona solo quando quella funzione è stata testata con la scatola nera (accanto al pulsante è indicato finché non è così).
All'apertura di un tavolo:
- Registra numero di coperti: la domanda "Quante persone?" per un tavolo libero, i coperti sulla piantina e nella schermata ordini, e i coperti nei report. Vedi Numero di coperti.
Durante l'ordine (schermata ordini, per ciò che tocchi dopo):
- Raggruppa prodotti uguali (nessun pulsante, attivo per impostazione predefinita): se tocchi di nuovo lo stesso prodotto (stesse opzioni, non ancora ordinato), la quantità aumenta invece di aggiungere una nuova riga: 4 Cola su una riga con il prezzo per 4. Con − se ne toglie uno, anche se è già stato ordinato (storno di uno). Con una nota, un posto o da asporto resta una riga a parte; ciò che è già stato ordinato resta una riga a parte (un nuovo giro).
- − e + (prima del prezzo su ogni riga): − ne toglie uno, + ne aggiunge uno (stesso prodotto, opzioni e nota; se Raggruppa prodotti uguali è disattivato, una nuova riga). Non ancora ordinato e a 0: la riga sparisce. Già ordinato: uno in meno è uno storno, quella riga resta barrata (per la cucina e i report); uno in più diventa una nuova riga ancora da ordinare. Toccare il prezzo stesso non toglie più nulla. Con un menu solo −.
- Da asporto (solo al tavolo): il cliente porta via questo prodotto, es. una bottiglietta d'acqua o un dessert. Quella riga riceve l'IVA dell'asporto (in Belgio etichetta C), il resto del conto l'IVA del consumo sul posto. Sullo scontrino compare asporto accanto alla riga.
- Posto (a un tavolo): tocca più volte per il posto 1, 2, 3 ...; le righe ricevono quel numero di posto (anche sulla comanda). In Belgio ogni riga va alla scatola nera con il centro di costo del posto (CHAIR, UC4123). Ancora una volta dopo il posto 12 = di nuovo senza posto.
- Ritiro vuoto: il prodotto successivo viene aggiunto con -1, es. una bottiglia o un bicchiere vuoto (cauzione). Funziona solo con prodotti con Rendibile (cauzione) (Impostazioni → Prodotti). Se l'intero conto è negativo (solo cauzione restituita, senza vendita), Incassa diventa un rimborso: in contanti o con carta (riaccreditato sul terminale stesso). In Belgio come rimborso (REFUND, UC4108 e UC4114).
- Riscatta SPV: il cliente paga un prodotto o un menu con un single purpose voucher (un buono proprio per quel prodotto, es. "1 menu all-in"). Tocca Riscatta SPV e poi il prodotto sullo scontrino: viene aggiunto con -1 (stesso prezzo e IVA, per un menu con i suoi componenti), con SPV accanto. Non va in cucina; si può togliere normalmente. Un prodotto-buono lo vendi in anticipo come prodotto normale; in Impostazioni → Prodotti attiva SPV (buono). In Belgio la riga va alla scatola nera come VOUCHER al momento della vendita (UC271).
- Scala acconto: vedi sotto.
- Prezzo libero (nessun pulsante, per prodotto): per un prodotto con Prezzo libero la cassa chiede il prezzo, es. il piatto del giorno o un acconto.
All'incasso:
- Incasso diretto senza comanda (non è un pulsante): per impostazione predefinita, Incassa invia prima ciò che non è ancora stato ordinato, così cucina e bar ricevono sempre la loro comanda (vedi Il pulsante Invia ordine). Attivo: ciò che incassi subito senza toccare prima Invia ordine non genera alcuna comanda, ad es. al bar, dove lo prendi tu stesso. Ciò che è già stato ordinato non cambia.
- Incassa separatamente (a un tavolo, in Dividi il conto): scegli cosa paga ora un cliente, anche una parte di una riga (½ per mezza bottiglia). Diventa una parte a sé che incassi subito; il resto rimane sul conto, senza dividere prima il conto o spostarlo in un altro gruppo. Uno sconto percentuale sull'intero scontrino viene applicato in proporzione. Indietro senza pagare = tutto di nuovo sul conto. In Belgio la vendita resta nella posizione del tavolo, senza cambio tavolo (UC4103bis, UC4104).
- Cliente andato via senza pagare (permesso Chiudi senza pagamento, di default solo manager e amministratore): il conto viene chiuso come vendita senza pagamento, con un motivo nel registro. Sul rapporto X e Z e nel riepilogo giornaliero compare come Non pagato (cliente andato via); nella registrazione contabile va a inesigibile (di default 4985 / 643000). In Belgio una vendita senza pagamento (UC4109).
In seguito (Scontrini):
- Correggi prezzo (permesso Correggere il prezzo di uno scontrino, di default solo manager e amministratore): il prezzo di uno scontrino incassato era sbagliato, es. 50% di sconto invece di 5%. La cassa crea un nuovo scontrino senza tavolo con le righe del vecchio scontrino stornate (in negativo, al prezzo pagato allora) e gli stessi prodotti di nuovo al prezzo normale. Applica lì lo sconto giusto e incassa la differenza (o rimborsa se il nuovo prezzo è più basso). Il vecchio scontrino resta com'era; una volta per scontrino, e non se è già stato reso qualcosa. In Belgio le vecchie righe vengono inviate come CORRECTION (UC4116).
Codice: apps/pos-server/src/lib/kassaopties.ts, routes/kassaopties.ts; schermata KassaOpties.tsx. Registro: Impostazione modificata, SPV riscattato, Correggi scontrino, Non pagato.
Scala acconto
Un acconto (caparra, es. per una festa o una prenotazione) lo vendi come un prodotto normale con Acconto attivo (Impostazioni → Prodotti; ha sempre un prezzo libero). Creane uno per aliquota IVA se l'acconto deve essere per aliquota (es. Acconto cibo e Acconto bevande), oppure un solo prodotto se è una parte del preventivo. Il cliente paga l'acconto in anticipo e riceve uno scontrino.
Attivare: Impostazioni → Attività → Ordini e incasso → Scala acconto (disattivato di default). Al conto finale tocca Scala acconto nella schermata ordini e inserisci il numero dello scontrino dell'acconto. La cassa mette le righe dell'acconto di quello scontrino sul conto con quantità negativa (stesso prodotto, prezzo e IVA). Ciò che è già stato scalato non può esserlo di nuovo. Se l'acconto supera il conto, il cliente riceve indietro la differenza (rimborso). In Belgio le righe scalate vanno alla scatola nera come rimborso (REFUND) (UC4110, UC4111, UC4113). Registro: Acconto scalato.
Scontrino via e-mail
Di default disattivato. Si attiva in Impostazioni → Attività → Scontrino anche via e-mail.
SMTP_HOST=smtp.voorbeeld.nl
SMTP_PORT=587
SMTP_GEBRUIKER=kassa@voorbeeld.nl
SMTP_WACHTWOORD=...
SMTP_AFZENDER=bon@voorbeeld.nl
Dopo la compilazione riavvia la cassa. Da quel momento in Incassa compare il campo Invia anche lo scontrino via e-mail (facoltativo): vuoto = solo stampa, come sempre; con un indirizzo e-mail = lo stesso scontrino (con riepilogo IVA e dati fiscali) arriva anche via e-mail all'ospite, con il nome del locale come mittente.
- L'indirizzo e-mail non viene conservato; nel registro compare solo "scontrino N inviato a a***@dominio.it" e se l'invio è riuscito.
- Se l'invio non riesce (ad es. credenziali errate), lo scontrino è comunque incassato e stampato; il messaggio spiega cosa è andato storto.
- Non con un pagamento parziale (conto diviso): lo scontrino arriva con l'ultimo pagamento, quindi l'indirizzo si inserisce lì.
- Invio successivo: in Scontrini ogni scontrino ha il pulsante Invia e-mail (permesso Stampare la copia di uno scontrino). Invia lo scontrino con la dicitura COPIA, come una copia stampata (in Belgio registrata come copia).
- Nessun pacchetto aggiuntivo necessario: la cassa comunica direttamente con il server di posta (STARTTLS su 587, TLS su 465).
Prenotazioni
Si attiva in Impostazioni → Attività → Prenotazioni (disattivato di default). Lì imposti anche quanti minuti prima un tavolo prenotato compare sulla piantina sala (default 60) e la durata standard di una prenotazione (default 120 minuti).
- Pulsante Prenotazioni nella barra superiore: panoramica per giorno (◀ ▶), con numero di prenotazioni, persone e no-show. + Nuova prenotazione: nome, telefono, e-mail, persone, data, ora, durata, tavolo (anche in seguito) e nota. Le prenotazioni le inserisce il personale; la prenotazione online non c'è (ancora).
- Se sullo stesso tavolo c'è già una prenotazione in quella fascia oraria, la cassa lo segnala; si può comunque scegliere "Salva comunque".
- Conferma via e-mail (casella, o in seguito "Invia e-mail") se c'è un indirizzo e-mail e un server di posta (
SMTP_HOST, vedi Scontrino via e-mail). - Sulla piantina sala un tavolo libero prenotato appare viola con "R 19:30 Rossi (4)". Toccandolo: "Rossi è arrivato" apre il tavolo con 4 persone e "Rossi" come nome del gruppo; "Altri ospiti" lo apre normalmente.
- Nella panoramica: Arrivato (apre il tavolo; senza tavolo ne scegli prima uno), Modifica, No-show, Annulla e Ripristina. Tutto finisce nel registro.
- Prenotazioni da piattaforme online: vedi Piattaforme di prenotazione qui sotto.
Integrazione cassa TheFork: tavolo aperto all'arrivo, conto di ritorno
Con la POS API di TheFork la cassa lavora insieme a TheFork Manager (disattivato di default), oltre a scaricare le prenotazioni di cui sopra. Si attiva in Impostazioni → Piattaforme di prenotazione → Integrazione cassa TheFork; passa dal portale di gestione.
- Se in TheFork Manager metti un ospite su Arrivato o Al tavolo, in cassa si apre il tavolo con lo stesso nome, con il numero di ospiti e una nota: nome, allergie e dieta, acconto, offerta/sconto e punti fedeltà (Yums). Se su quel tavolo c'è già un ordine aperto, viene collegato. Nessun tavolo con quel nome: un avviso, e in Piattaforme scegli il tavolo.
- Dopo il pagamento il conto va a TheFork (totale e righe con nome, gruppo di prodotti, quantità e importo); TheFork mette quindi la prenotazione su Partito. Con il pagamento diviso, un unico conto con il totale. Se non riesce, la cassa riprova ogni quarto d'ora (per due giorni), oppure con Invia di nuovo in Piattaforme.
- Abbinamento: la cassa mostra un codice di abbinamento; inseriscilo in TheFork Manager (Integrazioni → cassa). L'ID ristorante di TheFork (Customer-id) lo inserisce l'amministratore, oppure arriva automaticamente con il primo ordine.
- Spunte: apri il tavolo automaticamente, nome, allergie e acconto come nota, conto a TheFork.
- Requisito: Pin Voordeel ha la chiave API di TheFork (solo per partner) e vi ha registrato la cassa come POS (pulsante nel portale di gestione); TheFork attiva l'integrazione dopo una sessione di test.
Documentazione di TheFork: https://docs.thefork.io/POS-API/introduction
Lista d'attesa per clienti senza prenotazione
Per i clienti senza prenotazione che aspettano un tavolo. Si attiva in Impostazioni → Attività → Lista d'attesa (senza prenotazione) (disattivato di default). Visibile solo se gli SMS tramite CM.com sono configurati; altrimenti la lista d'attesa non compare da nessuna parte nella cassa (nemmeno nelle impostazioni). Funziona separatamente dalle prenotazioni: anche se sono disattivate. Lì c'è anche il testo dell'SMS (vuoto = "Hallo {naam}, uw tafel bij {zaak} is klaar. Wilt u zich melden bij de bediening?"; {naam}, {zaak} e {personen} vengono compilati).
- Tasto Lista d'attesa nella barra in alto, con il numero di persone in attesa (arancione se qualcuno aspetta). + In lista d'attesa: nome, telefono (per l'SMS), persone, l'attesa indicata e una richiesta (terrazza, seggiolone).
- La lista segue l'ordine di arrivo, con da quanto tempo ognuno aspetta (in rosso se più a lungo di quanto indicato) e in alto il numero di persone in attesa, coperti e l'attesa media di oggi.
- Se l'SMS non riesce, è indicato il motivo. Si può rinviare l'SMS.
- Fai accomodare: scegli il tavolo; la cassa lo apre con il numero di coperti (se la cassa registra i coperti) e il nome come nome del gruppo (come per una prenotazione che arriva).
- Andato (andato via o disdetto) e Ripristina. Sotto la lista c'è chi è stato accomodato o è andato via oggi, con quanto ha aspettato.
- Privacy: i numeri di telefono vengono cancellati dopo un giorno; chi è ancora in lista dopo 12 ore viene tolto automaticamente. Aggiunta, chiamata (con solo le ultime 3 cifre del numero) e accomodamento sono nel registro.
- Perché non nelle Prenotazioni? Una prenotazione è per dopo (data, ora, tavolo in anticipo); la lista d'attesa è per adesso (ordine, attesa, SMS quando il tavolo è libero). Per questo un interruttore e un tasto propri, con lo stesso "apri tavolo" di una prenotazione.
- Online in lista d'attesa (opzionale, disattivato di default; solo con il webshop): con Gli ospiti possono anche iscriversi da soli tramite il webshop, nel webshop c'è Lista d'attesa (e c'è un codice QR da mettere alla porta, nella gestione del webshop in Tavoli e QR). L'ospite inserisce nome, telefono, persone e una richiesta e vede il suo posto in tempo reale. Nella cassa compare nella lista con online; chiamare, far accomodare e andato funzionano come sempre, e l'ospite lo vede anche sul telefono (dove può anche cancellarsi).
Carta fedeltà / punti
Si attiva in Impostazioni → Attività → Carta fedeltà / punti (disattivato di default, e allora non se ne vede nulla da nessuna parte). Lì imposti anche: punti per euro (0 = solo carte timbri), dopo quanti punti scatta un premio e quanti euro di sconto vale quel premio.
- Alla cassa, sopra lo scontrino, c'è "+ Carta fedeltà": cerca il cliente per nome o numero di telefono, oppure crea un nuovo cliente (nome, telefono ed e-mail facoltativi). Poi il nome con il saldo punti compare sullo scontrino.
- Riscattare: con punti sufficienti "Riscatta 100 punti: € 5 di sconto"; con una carta timbri piena "Caffè gratis" (il caffè deve essere sullo scontrino). Diventa una riga di sconto, che chiunque può rimuovere.
- Punti e timbri vengono aggiunti e scalati solo all'incasso: i punti sull'importo dopo lo sconto (esclusi i buoni regalo venduti), i timbri per ogni pezzo di un prodotto con carta timbri (il prodotto gratuito non conta).
- Sullo scontrino: punti accumulati, riscattati, saldo e stato delle carte timbri.
- Rapporto → Clienti (permesso Gestire carta fedeltà): cercare clienti, modificarne i dati, correggere i punti (con motivo), cronologia ed eliminare (GDPR: nome, telefono ed e-mail vengono cancellati; la cronologia resta anonima). In fondo le carte timbri per prodotto (ad es. 10 caffè = 1 gratis).
- Un reso non annulla automaticamente i punti accumulati; se necessario correggili in Rapporto → Clienti.
- Carta fedeltà con numero (facoltativo): in Rapporto → Clienti → (cliente) inserisci il numero della carta (o scansiona la carta in quel campo). Con il lettore di codici a barre, la scansione di quella carta collega il cliente allo scontrino, alla cassa e sul chiosco. Puoi cercare per numero di carta anche con + Carta fedeltà.
Profilo ospite: VIP, esigenze alimentari e preferenze (facoltativo)
Si attiva in Impostazioni → Attività → Profilo ospite, sotto la carta fedeltà (predefinito disattivato; funziona solo se la carta fedeltà è attiva). Poi:
- Nella schermata ordini, sotto il cliente collegato, compare "+ Profilo ospite": spunta VIP, scegli le esigenze alimentari (vegetariano, vegano, pescetariano, halal, kosher) e le allergie (i 14 allergeni) e scrivi le preferenze (es. "tavolo fisso vicino alla finestra", al massimo 300 caratteri). Poi compaiono presso il cliente nella schermata ordini, le allergie in rosso. Si possono modificare anche in Rapporto → Clienti → (cliente) → Profilo ospite.
- Se tocchi un prodotto con un allergene dell'ospite (vedi Allergeni per prodotto), la cassa chiede prima se aggiungerlo comunque. Vale solo ciò che è inserito nel prodotto; in caso di dubbio chiedi sempre alla cucina.
- Un VIP riceve una ★ sulla piantina: con un conto aperto e con la prenotazione mostrata di quel cliente. Quando arrivano gli ospiti di una prenotazione, la cassa collega il cliente della prenotazione al conto.
- Esigenze alimentari e allergie (e VIP) compaiono sulla comanda per cucina e bar:
GAST: VIP · Vegetarisch · allergie: Noten. - Esigenze alimentari e allergie sono dati sanitari: inseriscili solo con il consenso dell'ospite. Nel registro compare solo che il profilo è stato modificato, non le esigenze stesse. Eliminando il cliente si elimina anche il profilo ospite.
Preferiti / tasti rapidi
Di default disattivato. Impostazioni → Attività → Preferiti / tasti rapidi:
- Più venduti: all'inizio della barra delle categorie il pulsante ★ Preferiti con i 12 prodotti più venduti negli ultimi 14 giorni (aggiornati automaticamente). La schermata ordini si apre sui preferiti.
- Scelti da te: nella schermata ordini tieni premuto a lungo un prodotto (o clic destro) e scegli ★ Preferito (tasto rapido); di nuovo = rimuovi. Permesso Gestire prodotti. Tutte le casse lo vedono subito.
- Inserimento, opzioni, menu, happy hour ed "esaurito" funzionano sui preferiti esattamente come nelle categorie normali.
Un altro giro
Nella schermata ordini c'è il pulsante ↻ Un altro giro (appena c'è qualcosa sul conto, anche se non è ancora stato ordinato). Un tocco aggiunge di nuovo l'ultimo giro (tutto ciò che è partito in una volta con "Invia ordine", o ciò che hai appena toccato) come nuove righe; poi semplicemente Invia ordine. I prezzi sono quelli attuali (anche happy hour).
- Pressione prolungata (o clic destro): scegli tu. Con ◀ ▶ scorri i giri precedenti, attiva/disattiva per prodotto (ad es. togli la spunta al cibo) e la quantità con − / +. Opzioni e note vengono riprese.
- I prodotti esauriti e i menu non vengono ripresi (i menu si inseriscono a parte). Funziona anche senza connessione.
- Le righe vengono aggiunte così come compaiono sul conto: con Raggruppa prodotti uguali attivo, una riga per prodotto (2 Cola); disattivato, ogni riga separatamente (2 volte 1 Cola).
Tempo al tavolo sulla piantina
Su ogni tavolo occupato compare ⏱ 45m · 12m: da quanto tempo il tavolo è occupato e da quanto è stato inserito qualcosa l'ultima volta (tieni premuto sul tavolo o passaci sopra con il mouse per gli orari precisi). Se per un po' non si ordina nulla, il tavolo riceve un bordo arancione: passa a dare un'occhiata. Quanti minuti lo imposti in Impostazioni → Attività → Tempo al tavolo (default 20, 0 = nessun bordo arancione). Se non è stato ancora inserito nulla, il tempo conta dall'apertura del tavolo.
Se a un tavolo ci sono più gruppi (conti separati), compare una riga per gruppo, ad es. G1 ⏱ 50m · 12m e Rossi ⏱ 10m (il nome del gruppo, altrimenti il numero). Un gruppo fermo da troppo tempo riceve un'etichetta arancione e il tavolo un bordo arancione.
Spostare un intero tavolo
Nella schermata degli ordini trovi Sposta tavolo. Scegli la sala (ad es. Terrazza) e un tavolo: tutti i gruppi del tavolo si spostano, ognuno con il proprio conto. Se scegli un tavolo occupato, i tavoli vengono uniti (i gruppi si aggiungono). Se vuoi spostare solo una parte, usa come prima Dividi / sposta. Se tutto deve andare su un solo conto, usa Unisci.
Lavorare offline (tablet senza wifi)
Se la connessione tra un tablet e il server di cassa cade (wi-fi in terrazza, server spento per un attimo), compare una barra gialla e il tablet continua a lavorare con gli ultimi tavoli, prodotti e ordini aperti salvati:
- aprire tavoli, inserire prodotti e Invia ordine vengono salvati sul tablet (anche se si riavvia) e compaiono nell'elenco dell'ordine con un bordo tratteggiato ("non ancora inviato");
- appena la connessione torna, tutto va in ordine al server e solo allora la comanda va in cucina. Ogni invio ha una chiave, quindi nulla arriva due volte. Se nel frattempo qualcun altro ha aperto il tavolo, i prodotti si aggiungono a quell'ordine;
- incassare, sconti, divisione conto ecc. sono possibili solo con connessione; "Incassa" attende che tutto ciò che riguarda quel tavolo sia stato inviato.
Numero di persone
Facoltativo e disattivato di default: Impostazioni → Attività → Ordini e pagamento → Registra numero di coperti. Disattivato = il minor numero di tocchi possibile: un tavolo libero si apre con un solo tocco, i coperti non compaiono da nessuna parte, e report, dashboard e riepilogo giornaliero non mostrano coperti né spesa per coperto.
Attivato: quando tocchi un tavolo libero, la cassa chiede quante persone sono (pulsanti grandi 1-8, oppure digita; "Salta" = 1). Sulla piantina un tavolo occupato mostra "3/4 pers." (persone/posti, in giallo se ci sono più persone che posti). Nella schermata ordini lo modifichi con il pulsante "3 pers." nella barra dei gruppi; con più gruppi il tavolo somma tutti i gruppi.
Senza coperti tutto continua a funzionare: Dividi in parti uguali al pagamento parte da 2, l'all-you-can-eat chiede da sé il numero di adulti e bambini, e le prenotazioni e la lista d'attesa mantengono il proprio numero di persone (il tavolo si apre allora senza coperti).
Registro HACCP
Ogni locale horeca deve monitorare e documentare la sicurezza alimentare: nei Paesi Bassi secondo la Hygiënecode voor de Horeca (codice di igiene per l'horeca, controllo della NVWA), in Belgio secondo l'autocontrollo del FAVV (guida G-023). Attiva il Registro HACCP in Impostazioni → Leggi e norme (disattivato per impostazione predefinita).
- Punti di misura (amministratore): es. cella frigorifera, congelatore, mantenimento in caldo, temperatura al cuore dopo la cottura, abbattimento e ricevimento merci, con un minimo e/o un massimo in °C e la frequenza (ogni giorno, due volte al giorno, ogni settimana o all'uso). Aggiungi elenco standard crea una base di partenza (refrigerazione fino a 7 °C, in Belgio fino a 4 °C; congelatore fino a -18 °C; mantenimento in caldo da 60 °C; cottura da 75 °C).
- Pulizia e controllo: attività per giorno, settimana (eventualmente in un giorno fisso) o mese, con zona e istruzioni, es. disinfettare i taglieri, filtri del grasso, controllo infestanti, verificare il termometro.
- Registrare (chiunque abbia effettuato l'accesso): pulsante HACCP nella barra in alto, con il numero ancora aperto oggi. Inserisci la temperatura o spunta un'attività (Fatto o Non riuscito). Se una temperatura è fuori limite, serve un'azione correttiva (es. "porta chiusa, prodotto buttato"). Le registrazioni non possono essere modificate; un errore si corregge con una nuova registrazione.
- Riepilogo (permesso Fatturato per periodo): per periodo tutte le registrazioni, il numero di scostamenti e le registrazioni mancate per giorno; come CSV (Excel) o da stampare / salvare come PDF per un controllo.
Impianto di spillatura e flussimetri
Ogni spillatura segnalata da un computer di spillatura o da un flussimetro finisce sul conto, così niente "va perso". Attivalo in Impostazioni → Impianto di spillatura (spento per impostazione predefinita).
- Fonti (amministratore): il computer di spillatura o il sistema di flussometri. Scegli la marca; la cassa compila un'impostazione predefinita. Da Paesi Bassi e Belgio: Van Duijnen Horeca (automazione della spillatura, Dashbar), Beconet (Multi-Tap), TapSystems, Horecatechniek Nederland, Heineken SmartDispense, WeissBeerger / AB InBev e BarTrack; inoltre Gruber, Addimat, WMF / Hogatron (E-Protokoll), Drinkotec (ex-Hartec), , Berg, Easybar, Azbar, Scanabar, PourMyBeer, iPourIt, BeerBoard, US BeerSAVER, Bevchek, Capton/BarVision, Kegtron, Kegbot Kegboard, una "spina intelligente" o un sistema proprio. Il collegamento è possibile in cinque modi (Kegboard: vedi Spillatura dosata e Kegboard più sotto):
- Campi:
kraan(otap,plu),ml(ocl,liter,volumeconeenheid) oporties,id(la stessa spillatura due volte = registrata una volta),tijdstip,tafel,bediening; una spillatura, un elenco o{ "taps": [...] }. - Rete (TCP): la cassa si collega al computer di spillatura (indirizzo e porta) o resta in ascolto su una porta.
- Porta seriale: porta COM o USB-seriale, 1200–115200 baud, 8N1, 7E1 o 7O1.
- Per rete e seriale imposti il formato messaggio (un messaggio per riga, oppure STX … ETX con eventuale controllo XOR e risposta ACK/NAK) e lo schema di un messaggio, con le parti
kraanoplued eventualmenteml,cl,liter,porties,tafel,bedieningeid(es.kraan;mlo solo un PLU per bicchiere). I fornitori comunicano il formato esatto solo agli installatori; chiedilo al fornitore del computer di spillatura. Spillatura di prova invia una spillatura come farebbe il computer di spillatura.
- Campi:
- Spine (amministratore): per spina o PLU il prodotto e come finisce sul conto: per bicchiere (bicchiere in ml; una spillatura di 520 ml con bicchieri da 250 ml = 2 bicchieri; da 50% conta un bicchiere) o al litro (il prezzo del prodotto è il prezzo al litro; sul conto es. "Pils 0,33 l" per l'importo giusto).
- Sul conto: se il computer di spillatura segnala un tavolo, la spillatura va subito sull'ordine aperto di quel tavolo. Altrimenti compare in Spillato: nella schermata ordini appare la barra "… spillature senza conto"; scegli le spillature e tocca Su questo conto. Le righe risultano subito ordinate (non viene più inviata una comanda al bar) e la giacenza viene scalata. Il pulsante Spillato nella barra superiore mostra tutto ciò che non ha ancora un conto.
- Scarta (permesso Storno): risciacquo, rottura, assaggio, personale, gratis o altro (con nota); viene registrato nel registro. Troppo poco per un bicchiere (es. risciacquo) va scartato.
- Panoramica (permesso Fatturato per periodo): per spina spillato, sul conto, scartato (per motivo), annullato e ancora aperto, in litri, con la percentuale venduta, e come CSV.
- Le spillature segnalate non possono essere modificate (solo gestite).
Spillatura dosata e Kegboard
Con la spillatura dosata una spina si apre solo dopo che il bicchiere è stato battuto in cassa, e solo per quella quantità. Così non viene spillato nulla che non sia sul conto. Funziona solo se l'impianto di spillatura è attivo, e la attivi per spina (disattivata per impostazione predefinita).
- Per spina (amministratore, Impostazioni → Impianto di spillatura → Spine): spunta Spillatura dosata e scegli per quanto tempo la spina può restare aperta dopo la battuta (10–600 secondi, predefinito 120). Con Kegboard inserisci anche il relè (elettrovalvola). La spillatura dosata è possibile solo per bicchiere.
- Battuta: con Invia ordine (o con Incassa diretto) la cassa crea per ogni riga del conto con quel prodotto uno sblocco (numero di bicchieri × bicchiere in ml) e lo invia al computer di spillatura. La spillatura che arriva dopo appartiene a quella riga del conto. Quindi non finisce una seconda volta sul conto né in Spillato. Una spillatura senza sblocco finisce normalmente in Spillato.
- Storno della riga prima della spillatura: la spina si richiude. Uno sblocco non spillato in tempo scade; la spina non si apre mai più tardi.
- Sblocchi nella schermata ordini (una barra sopra il conto): vedere cosa è in corso, Interrompi e Sblocca di nuovo. Si può sbloccare di nuovo solo se non è ancora stato spillato nulla, quindi non viene mai sbloccato niente in più. Sblocco di prova (amministratore) sblocca un bicchiere senza conto; finisce nel registro.
- Come lo sblocco arriva al computer di spillatura:
- Kegboard (Kegbot, open source, ESP32 con flussometri ed elettrovalvole; protocollo completamente pubblico): la cassa invia un grant per le spine con quel prodotto, i relè e la quantità. La scheda chiude da sola la spina quando la quantità è raggiunta o il tempo è scaduto.
- Rete/seriale: un comando di sblocco configurabile con
{kraan},{ml},{porties},{sec}e{id}(ad es.V{kraan};{ml}), inviato nel formato di messaggio della fonte (riga o STX … ETX con XOR). Facoltativamente c'è un comando di arresto. Il comando esatto lo fornisce il fornitore.
- Collegare un Kegboard: in + Fonte scegli il marchio Kegbot Kegboard. La scheda si presenta alla fonte; clicca Consenti (o Rifiuta). La scheda riceve allora una sola volta una propria chiave, che la cassa conserva solo come hash. Un altro dispositivo o una chiave errata non cambia nulla per una scheda collegata; se la scheda ha perso la chiave, usa prima Scollega. La fonte mostra il firmware, i contatori e i relè della scheda. I rubinetti sono i numeri dei contatori (0, 1 …). Una tessera presentata alla scheda viene rifiutata: il pagamento avviene alla cassa. Se l'impianto di spillatura è spento, la scheda conserva i messaggi e li invia più tardi.
- Nella fonte imposti dopo quanti secondi senza flusso il rubinetto si chiude (5–300, predefinito 30). Per ogni rubinetto indichi il numero del contatore, il relè (elettrovalvola) e per quanto tempo il rubinetto può restare aperto dopo la registrazione in cassa.
Controllare la musica dalla cassa
Il personale controlla la musica dal touchscreen della cassa, così non serve uno schermo separato al bancone. Attivalo in Impostazioni → Attività → Schermi e utilizzo → Controllare la musica dalla cassa (disattivato per impostazione predefinita). Compare allora il pulsante Musica nella barra superiore: per sorgente (ad es. Bar e Terrazza) Riproduci, Pausa, Successivo, Precedente, Più forte, Più piano e un cursore per il volume, con ciò che è in riproduzione. Torna alla cassa chiude il pannello. Disattivandolo, le sorgenti restano salvate.
- Playlist (Sonos, Bluesound e VLC): la coda con ciò che è in riproduzione. Tocca un brano per riprodurlo; con Modifica togli brani (✕), li sposti su o giù (↑ ↓; Sonos e Bluesound) o svuoti la playlist. Con Scegli altra musica riproduci un preferito Sonos (ad es. una stazione o un canale Tunify) o una playlist Sonos, oppure una preselezione BluOS.
- Su uno schermo separato: gli stessi comandi e la playlist in grande su
http://<kassaserver>:3000/muziek, ad es. su un secondo monitor accanto alla cassa o un tablet al bancone (già connesso sullo stesso dispositivo, altrimenti con un PIN). - Su un tablet o telefono: un codice QR con l'indirizzo di quello schermo separato nella rete del locale. Un dipendente lo scansiona con il proprio tablet o telefono (sulla rete Wi-Fi del locale) e accede con il proprio PIN; con Esci si richiude. Vedi Secondo schermo su un tablet o telefono.
L'amministratore aggiunge le sorgenti con + Sorgente musicale, sceglie come sono collegate e le verifica con Prova:
- Soundtrack (soundtrack.io): tramite l'API pubblica, con un token API (da richiedere a Soundtrack) e una zona audio (Carica zone). Riproduci, pausa, successivo, volume e cosa è in riproduzione.
- Sonos: l'indirizzo IP dello speaker (per un gruppo: lo speaker che guida il gruppo). Funziona con tutto ciò che suona sul Sonos, ad es. Tunify, Spotify o la radio.
- Bluesound (BluOS): l'indirizzo IP del lettore; funziona anche con tutto ciò che vi suona, ad es. Tunify.
- VLC sul computer musicale: l'interfaccia web attivata (Strumenti → Preferenze → Mostra impostazioni: Tutto → Interfaccia → Interfacce principali: Web, con una password in Lua); l'indirizzo IP (eventualmente con
:poort, predefinita 8080) e la password. - Computer musicale proprio (indirizzi web): per un computer o box musicale con un indirizzo web per pulsante; GET o POST, e
{volume}(0-100) nell'indirizzo per il volume. Senza indirizzo Più forte/Più piano, la cassa regola il volume a passi. - Web player del servizio musicale: l'indirizzo web del web player o della pagina di controllo (ad es. il web player di Tunify o Media Tools) si apre nella cassa con il pulsante Musica; se il servizio non può essere mostrato in un'altra schermata, usa Apri in una finestra separata.
La cassa comunica con i lettori dal server, quindi devono trovarsi nella stessa rete della cassa (Soundtrack via internet). Può controllare la musica chiunque abbia effettuato l'accesso; per configurarla serve il permesso Configurare attività, pagamenti e stampanti. Il token e la password non vengono mai più mostrati e non compaiono nel registro; nel registro compare solo la configurazione (attivo/disattivato, sorgenti), non ogni pressione di pulsante. L'esportazione della configurazione include solo attivo/disattivato (le sorgenti appartengono a una sola attività).
Secondo schermo su un tablet o telefono
La musica e le telecamere possono essere mostrate anche sul tablet o telefono personale di un dipendente, come secondo schermo accanto alla cassa. Nella finestra Musica o Telecamere c'è il pulsante Su un tablet o telefono: mostra un codice QR con l'indirizzo, ad es. http://192.168.1.20:3000/muziek o .../camera.
- Collega il tablet o telefono alla rete Wi-Fi del locale.
- Scansiona il codice QR con la fotocamera (o digita l'indirizzo nel browser).
- Accedi con il tuo PIN. Vedi solo ciò che ti è consentito: la musica tutti, le telecamere solo con il permesso Vedere le immagini delle telecamere.
- Fatto: Esci in alto a destra. Se l'accesso è scaduto (ad es. il tablet è rimasto inattivo per una notte), lo schermo chiede di nuovo il PIN.
Suggerimento: aggiungi la pagina alla schermata Home del tablet (nel browser: Aggiungi a schermata Home), così si apre come un'app.
Per questo la cassa rileva l'indirizzo IP del PC della cassa nella rete (se il PC ne ha più di uno, ad es. Wi-Fi e cavo, scegli la rete). Sul portale di gestione (cassa da remoto) è l'indirizzo del portale. Il codice QR lo genera la cassa stessa, senza internet.
Abbinare tablet: con un solo tasto al tablet (facoltativo)
Ancora più semplice: abbina un tablet una sola volta e la cassa invia la musica o le telecamere a quel tablet con un solo tasto. Attivalo in Impostazioni → Attività → Schermi e utilizzo → Tablet come secondo schermo (disattivato per impostazione predefinita).
- Sul tablet: apri
http://<kassaserver>:3000/tablet(nell'impostazione compare Su un tablet o telefono con il codice QR), accedi con un PIN e dai un nome al tablet, es. Tablet Bar. Abbina. - Sulla cassa: nella finestra Musica o Telecamere ora c'è il tasto A Tablet Bar (con un pallino verde se il tablet è acceso). Toccalo: il tablet apre quello schermo da solo. Con la musica viene inviata anche la fonte scelta (es. Terrazza).
- Sul tablet: Chiudi torna in attesa; Disabbina questo tablet rimuove l'abbinamento.
Lascia aperta la pagina sul tablet; se il tablet è spento o in standby, apre lo schermo appena è di nuovo acceso. Il tablet resta connesso come il dipendente che vi ha effettuato l'accesso: inviare e vedere le telecamere è possibile solo con il permesso Vedere le immagini delle telecamere. Nell'impostazione l'amministratore vede quali tablet sono abbinati e se sono accesi, e può rinominarli o rimuoverli. Il tablet conserva una propria chiave; la cassa ne conserva solo un hash. Disattivando: i tablet abbinati restano salvati. Nel registro risulta chi ha abbinato, rinominato o rimosso un tablet.
Schermo di chiamata per l'asporto
Uno schermo per i clienti con a sinistra In preparazione e a destra Pronto, con numeri grandi, come in una friggitoria o un fast food. Attivalo in Impostazioni → Attività → Schermi e utilizzo → Schermo di chiamata per l'asporto (disattivato di default).
Non serve associare: su una TV con browser (smart TV, chiavetta o mini PC), un tablet o un secondo monitor apri l'indirizzo della cassa seguito da /oproep, ad es. http://192.168.1.20:3000/oproep. Nell'impostazione e nella finestra Chiama ci sono i pulsanti Su uno schermo separato e Su un tablet o telefono (codice QR con l'indirizzo). Non serve accedere: lo schermo mostra solo numeri. Tocca lo schermo una volta, così il browser può riprodurre suoni.
Cosa compare:
- ordini da asporto dalla cassa, dalla webshop e da Thuisbezorgd (e, se vuoi, anche ordini al banco senza tavolo, con la vendita rapida) delle ultime 12 ore;
- appena qualcosa è stato inviato in cucina o al bar (o l'ordine della webshop è su in preparazione), il numero compare sotto In preparazione;
- Pronto si imposta da solo quando lo schermo cucina segnala pronto l'intero ordine o l'ordine della webshop è su pronto. Il numero lampeggia un attimo e lo schermo fa un din-don;
- un numero pronto resta per i minuti impostati (di default 10), oppure fino a Ritirato;
- gli ordini del chiosco (vedi Chiosco self-service) compaiono sempre appena sono pagati o verranno pagati alla cassa, anche con "mangio qui", con il numero di ritiro del loro scontrino;
- facoltativamente anche gli ordini per i rider di Thuisbezorgd, Uber Eats, Deliveroo e HubRise (casella Anche gli ordini per i rider …): con il numero d'ordine della piattaforma e il nome della piattaforma sotto, così il rider vede quando il suo ordine è pronto. Ritirato segnala allora anche alla piattaforma che il rider lo ha preso (come nella finestra della piattaforma).
Il numero: per il negozio online, Thuisbezorgd e le piattaforme di consegna, il numero d'ordine che l'ospite o il rider ha già; altrimenti il numero di ritiro (da 1 a 999). È stampato in grande sullo scontrino, con la spiegazione che il numero comparirà sullo schermo quando l'ordine è pronto (nella lingua dello scontrino).
Opzionale (disattivato per impostazione predefinita, nell'impostazione):
- Annunciare il numero a voce: per un nuovo numero pronto lo schermo dice ad es. "Numero 42, il suo ordine è pronto." nella lingua scelta (olandese, inglese, tedesco, francese, spagnolo, italiano, portoghese, polacco, turco o arabo). La voce viene dal browser dello schermo e suona diversa a seconda del dispositivo; tocca lo schermo una volta dopo averlo aperto. Dopo il segnale acustico, se anche il suono è attivo.
- Stato dell'ordine sul telefono: sotto il numero di ritiro sullo scontrino compare un codice QR. L'ospite lo scansiona, vede il suo numero e lo stato (ordinato, in preparazione, pronto, ritirato) e riceve una notifica quando l'ordine è pronto. Passa dal portale di gestione, quindi la cassa deve esservi collegata. Non per il webshop e Thuisbezorgd (hanno un proprio stato) né per il chiosco (ha una propria impostazione).
In cassa c'è il pulsante Chiama (con il numero di ordini ancora in preparazione):
- Pronto imposta un numero su pronto a mano (senza schermo cucina, o se è più veloce). Per un ordine della webshop o di Thuisbezorgd lo stato viene aggiornato, quindi anche il cliente riceve un avviso.
- Indietro lo riporta su In preparazione.
- Ritirato lo toglie dallo schermo (con Annulla).
Nell'impostazione scegli anche se mostrare il nome accanto al numero (di default no, per la privacy) e se lo schermo emette suoni. Disattivando: nessun pulsante Chiama e nessun numero di ritiro sullo scontrino; le impostazioni restano salvate. Nel registro si vede chi ha impostato cosa a mano su pronto, indietro o ritirato.
Timbratura entrata e uscita
Di default la timbratura è disattivata: in quel caso non compare da nessuna parte nella cassa (nessun pulsante nella barra superiore, niente nella schermata di accesso, nessuna scheda Orari di lavoro). Attivala in Impostazioni → Attività, sotto Timbratura entrata/uscita del personale:
- Disattivato: non usare. Se in seguito disattivi la timbratura, non è più visibile da nessuna parte, ma le ore già timbrate restano salvate (non viene cancellato nulla); se la riattivi, le ritrovi.
- Attivo: i dipendenti possono timbrare entrata e uscita. Dopo l'accesso la cassa chiede se vuoi timbrare l'entrata (puoi scegliere Non ora). Nella barra superiore compare allora Timbra entrata o Entrata timbrata 17:02; toccalo per timbrare l'uscita.
- Obbligatorio: dopo l'accesso devi prima timbrare l'entrata, altrimenti non puoi usare la cassa. Timbrando l'uscita esci subito anche dalla cassa.
Chi non usa la cassa (ad es. la cucina) timbra nella schermata di accesso: tocca Timbra entrata / uscita e inserisci il tuo PIN. Alterna tra entrata e uscita, senza accedere.
Se la timbratura è attiva, l'amministratore vede in Impostazioni → Orari di lavoro:
- chi è in servizio adesso (e può timbrare l'uscita per chi l'ha dimenticato);
- le ore lavorate per dipendente per periodo, con tutti i turni, e un download in CSV (ore anche in formato decimale per l'elaborazione delle buste paga);
- modificare o aggiungere turni (tocca un turno, oppure + Aggiungi turno). Ogni modifica finisce nel registro con orari vecchi e nuovi.
In Belgio ogni timbratura di entrata e uscita viene comunicata anche alla scatola nera. Se non è raggiungibile, la timbratura non avviene (come per l'incasso). Resta da confermare se ciò soddisfa esattamente la registrazione del personale belga.
Pesatura ed etichette (bilancia)
Se la bilancia è attiva (Impostazioni → Bilancia), i prodotti possono avere un prezzo al chilo. Tutti gli altri prodotti restano normalmente a pezzo.
- Pesare: tocca un prodotto con prezzo al chilo (il pulsante mostra p. es.
12,95/kg). La finestra Pesare mostra in tempo reale il peso della bilancia (p. es. una Aclas OS6X, o la bilancia su cui gira la cassa stessa); verde = stabile. Metti il prodotto sulla bilancia e tocca Aggiungi appena il peso è stabile. Il prezzo è prezzo al chilo × peso (arrotondato al centesimo); il contenitore (tara) del prodotto viene sottratto automaticamente. Se il prodotto ha opzioni, seguono dopo. - Più bilance: se ci sono più bilance, scegli in alto nella finestra su quale pesi. Ogni cassa/tablet ricorda la scelta.
- A mano: senza bilancia (o se è consentito a mano), digita il peso:
0,512o1,2sono chili,512o512 gsono grammi. - Etichetta della TS6X: scansiona il codice a barre dell'etichetta con lo scanner nella schermata ordini (scansiona e basta, non serve aprire nulla), oppure tocca Etichetta e scansiona o digita le 13 cifre. Il prodotto (PLU) e il peso vengono presi dall'etichetta. Se sull'etichetta c'è un prezzo, la cassa applica esattamente quel prezzo.
- Sullo schermo, sullo scontrino e sul display cliente compare anche il peso, ad es.
Gehakt 6,63con sotto0,512 kg x € 12,95/kg; sulla comanda0,512 kg Gehakt. Divisione, spostamento e reso avvengono in chili. - Un prodotto pesato richiede la connessione con il server di cassa (il peso arriva tramite il server di cassa).
Uber Eats, Deliveroo e HubRise
Oltre a Thuisbezorgd.nl / Takeaway.com, arrivano in cassa anche gli ordini di Uber Eats (Paesi Bassi e Belgio), Deliveroo (solo Belgio; Deliveroo ha lasciato i Paesi Bassi alla fine del 2022) e tutto ciò che passa da HubRise (tra cui Uber Eats, Deliveroo, Just Eat/Takeaway.com e app di ordinazione più piccole). Ogni piattaforma si attiva separatamente in Impostazioni → Piattaforme di consegna (disattivato di default; disattivandolo si conserva tutto). La scheda mostra per ogni piattaforma in quali paesi opera e avvisa se non opera nel paese dell'attività.
- Attivala, poi Accedi a Uber Eats e collega il negozio (l'attività accede con il proprio account Uber Eats). Se l'account ha più negozi, inserisci l'ID negozio (store id) e accedi di nuovo. Prima Uber Eats deve approvare Pin Voordeel come partner.
- Deliveroo: diretto, tramite il portale. Inserisci il site id (location id) e l'ID marchio (brand id). Senza tablet (predefinito): la cassa accetta o rifiuta; con tablet: l'attività accetta sul tablet e il portale segnala solo se l'ordine è in cassa.
- HubRise: la cassa scarica gli ordini da sola (ogni 20 secondi, non serve il portale).
- Per piattaforma: accetta automaticamente, comanda subito a cucina/bar e (Uber Eats, Deliveroo) invia il menu automaticamente dopo una modifica e Invia menu ora. Nel menu ci sono i prodotti spuntati in Prodotti nel menu di Uber Eats e Deliveroo, con le opzioni; anche lo stato esaurito viene inviato.
Ordini. Un ordine diventa un ordine normale (bezorgen o afhalen, nome gruppo <platform> <nummer>) con i prezzi della piattaforma: prodotti riconosciuti dall'ID (dal menu), dal codice o dal numero PLU; sconosciuto = una riga a parte con il prezzo della piattaforma (e un avviso); costi di consegna, supplementi e sconti come righe proprie; se il totale non torna comunque, una riga "Differenza". La comanda va subito a cucina/bar. Pulsante Piattaforme nella barra superiore (con il numero di ordini in corso; arancione se c'è qualcosa da accettare): accetta o rifiuta (con motivo), in preparazione, pronto, in consegna, consegnato o ritirato, annulla e Completa (pagato online). Ciò che la piattaforma supporta viene rimandato (Uber Eats: accetta, rifiuta, annulla; Deliveroo: accetta, rifiuta, in preparazione, pronto, ritirato; HubRise: tutti gli stati). Se l'attività consegna da sé (consegna propria), l'ordine compare anche in Giri, e partenza e consegna vengono inviate automaticamente alla piattaforma. Un annullamento da parte della piattaforma fa decadere l'ordine. Se la cassa non è connessa al portale da più di 2 minuti, il portale rifiuta un nuovo ordine di Uber Eats e comunica a Deliveroo (con tablet) che non è riuscito, così l'attività lo vede sul tablet.
Codice: apps/pos-server/src/lib/bezorgplatforms.ts, routes/bezorgplatforms.ts; schermate Bezorgplatforms.tsx. Lato portale: horecapos-portaal/src/platforms.mjs. Registro: Piattaforme di consegna (attivazione, impostazioni, ordini). Tutto è incluso nei backup della cassa.
Le piattaforme più piccole nei Paesi Bassi e in Belgio (Homie, Hebtrek, sneleten.nl, Bistroo ...) non hanno un'integrazione cassa pubblica; se sono su HubRise, funzionano tramite HubRise. Per il resto: vedi il backlog.
Cassa automatica (sistema chiuso di gestione del contante)
Predefinito disattivato: i contanti funzionano come sempre. Con un sistema chiuso di gestione del contante il personale non tocca i contanti: il cliente o il dipendente inserisce il denaro nella cassa automatica, che lo conta, controlla le banconote false e restituisce il resto.
- Casse automatiche con cui la cassa comunica direttamente:
- CashDro (3, 4+, 5, 7, S Compact; NuKassa, KluisKassa): in rete (web service). Sulla CashDro attiva Web Integration e crea un utente apposito per la cassa.
- Cashmatic (SelfPay 460/860/1060; in Belgio Xpos): in rete (porta 50301) con un utente della Cashmatic.
- Azkoyen Cashlogy (POS1000, POS1500): tramite il CashlogyConnector su un PC Windows vicino alla cassa automatica (porta 8092).
- CashKeeper: tramite CKMonitor su un PC Windows (porta 16501).
- Glory CASHINFINITY (CI-5, CI-10, CI-10X; anche tramite Cikam): tramite il controller (FCC) della cassa automatica. Ancora in beta: fai verificare la prima integrazione da Glory o dal tuo rivenditore.
- Esterno: un altro software comanda la cassa automatica e comunica con la cassa (come Cikam, ImaCash per 25 marchi, il software di CashGuard/StrongPoint (Merlin), PayComplete (SUZOHAPP), Gunnebo SafePay o marchi francesi come CashMag).
- Cassa automatica di prova: senza hardware, per esercitarsi o fare dimostrazioni. Con Verifica connessione controlli indirizzo e accesso. Metti la cassa automatica nella rete interna (mai aperta verso internet) e usa un utente apposito per la cassa, non un amministratore.
- Incassa con Contanti: Paga alla cassa automatica avvia il pagamento per l'importo (arrotondato per i contanti se attivo, più la mancia; con la divisione del conto la parte). Lo schermo mostra quanto è stato inserito e quanto viene restituito; la cassa incassa solo quando la cassa automatica segnala finito. Annulla = la cassa automatica restituisce il denaro. Se la cassa automatica non ha potuto dare tutto il resto (monete insufficienti), viene indicato quanto va dato dal cassetto. Un pagamento riuscito non ancora incassato (ad es. tablet spento) viene ritrovato presso quell'ordine.
- Contanti solo tramite la cassa automatica (predefinito attivo): il server della cassa accetta i contanti solo con un pagamento riuscito alla cassa automatica esattamente per quell'ordine e quell'importo. Disattivato = anche contanti normali nel cassetto.
- Cassetto (Rapporto → Cassetto, permesso Gestire il cassetto): Leggi lo stato (per moneta e banconota, con Cashmatic, Cashlogy, Glory e la cassa automatica di prova), Eroga con motivo (ad es. resto per il cassetto), Ricarica e Prelievo (il resto rimane; con Cashmatic). Previsto nel cassetto non conta il denaro nella cassa automatica (indicato a parte sotto: Nella cassa automatica), ma conta il resto che è stato dato dal cassetto.
Il pulsante ©
In basso a destra su ogni schermata (PIN, piantina sala, ordini e cucina) c'è un piccolo pulsante ©. Apre i dati di OptimumPOS: logo, indirizzo, telefono, e-mail e sito web. L'icona è salvata localmente nell'app e quindi funziona anche senza internet. La stessa icona è anche l'icona dell'app (scheda e schermata iniziale).
Parte 2 · Manager
Per iniziare
Di default un manager può fare tutto ciò che può fare il cameriere e inoltre, tra l'altro, applicare sconti, fare resi, chiudere la giornata, gestire il cassetto e consultare il registro e il magazzino. Si trova soprattutto sotto il pulsante Rapporto:
- Parziale (X): il ricavo fino a questo momento, senza chiudere la giornata.
- Cassetto: fondo cassa, entrate/uscite di denaro e apertura del cassetto.
- Chiudi giornata (Z): a fine giornata; dopo inizia una nuova giornata.
- Rapporti Z precedenti, Fatturato per periodo e Dashboard.
- Registro, Buoni regalo e Clienti.
Magazzino
Di default disattivato. Si attiva in Impostazioni → Attività → Gestione magazzino. Disattivato = non compare da nessuna parte nella cassa.
- Per ogni prodotto scegli in Impostazioni → Prodotti → (prodotto) → Magazzino:
- No: come sempre;
- Per prodotto: ogni vendita scala 1 (ad es. bottigliette, lattine), con un livello di avviso per "quasi esaurito";
- Tramite ingredienti: una ricetta, ad es. hamburger = 1 panino + 150 g di carne + 1 fetta di formaggio. Ogni vendita scala gli ingredienti.
- Impostazioni → Magazzino (permesso Gestire magazzino, di default manager e amministratore):
- Prodotti e Ingredienti: le giacenze, con esaurito / quasi esaurito; filtro "solo (quasi) esauriti" ed esportazione in CSV.
- Per ogni prodotto o ingrediente registri Ricevimento (+) (consegna), Inventario (=) (la quantità contata diventa la nuova giacenza) o Scarica (−) (rottura, scaduto; motivo obbligatorio).
- Crea ingredienti con unità (pz, g, kg, ml, cl, l, porzione, bottiglia, fusto) e livello di avviso.
- Cronologia: tutti i movimenti (vendita, storno, ricevimento, inventario, scarico) con chi e quando. Anche le azioni di gestione finiscono nel registro.
- Lo scarico avviene con Invia ordine (o all'incasso per ciò che è stato incassato subito). Uno storno rimette in giacenza. Divisione e spostamento non scalano due volte. Nei menu vengono scalati i piatti, non la riga del menu. I resi (nota di credito) non rimettono in giacenza (la merce resa di solito non è più vendibile); se serve, registrala come ricevimento.
- Se la giacenza è esaurita (o un ingrediente non basta per un'altra volta), il prodotto passa automaticamente a esaurito su tutte le casse. Quando è quasi esaurito, sul pulsante del prodotto compare ancora N. Dopo un ricevimento o un inventario è subito di nuovo ordinabile. Anche il server di cassa rifiuta il prodotto ("Pils" è esaurito (giacenza 0)), quindi anche da un tablet che non lo sapeva ancora.
- La giacenza può scendere sotto 0 (ad es. due tablet contemporaneamente, o ordini offline); l'inventario la rimette a posto.
- Lista ordini: Impostazioni → Magazzino → Lista ordini. Per ogni prodotto (per prodotto) e ogni ingrediente imposti, oltre al livello di avviso, anche rifornisci fino a e il fornitore. Nella lista ordini compare tutto ciò che è al livello di avviso o sotto (senza livello di avviso: a 0), per fornitore, con la proposta rifornisci fino a − giacenza. Le quantità sono modificabili e si possono spuntare o togliere. Poi Stampa (stampante di scontrini), Copia (per e-mail o WhatsApp), Esporta (CSV) e, dopo la consegna, Consegnato: registra come ricevimento (registra tutto in una volta). Con la casella in alto vedi anche ciò che non è ancora esaurito, per ordinare qualcosa in più.
- Opzioni: in un gruppo di opzioni (Impostazioni → Prodotti → Opzioni) c'è il pulsante Magazzino. Indica per ogni scelta gli ingredienti per pezzo, ad es. Formaggio extra = 1 fetta di formaggio, Patatine = 150 g di patatine. Quando la scelta viene selezionata, quegli ingredienti vengono scalati per pezzo (anche se il prodotto stesso non gestisce il magazzino; con uno storno rientrano). Se un ingrediente è esaurito, la scelta compare in cassa come (esaurito) e non è selezionabile.
Ordinare dai fornitori
Predefinito disattivato. Si attiva in Impostazioni → Magazzino → Ordinare dai fornitori (solo con Gestione magazzino attiva). Disattivato = la lista ordini funziona come sempre.
- Fornitori (scheda Fornitori): scegline uno dall'elenco o crea un fornitore tuo. L'elenco comprende grossisti e cash & carry (Sligro, Sligro-ISPC/Sligro-M, HANOS, Makro, De Kweker, Horeca Totaal, Van Zon, zegro, Lekkerland), foodservice (Bidfood e Bidfood Belgium, Solucious, Chefs Culinar, Java, Q-Food, Agora Culinair, VHC Jongens/Kreko/Actifood, Hocras, Van Hoeckel ...), grossisti di bevande (De Klok, Henk Smit, Horesca, De Monnik, Hansen, Dranken Geers ...), birrifici e bibite (Heineken tramite Sligro, AB InBev/BEES, Alken-Maes, Haacht, Duvel Moortgat, Martens, Coca-Cola, Spadel, Grolsch, Bavaria), fornitori di freschi (Van Gelder, Driessen, FiliusKaas, Bakkers Brigade, Rungis ...), non-food (Bunzl, Takeaware, Supplierz), l'enoteca online Vinify.nl e piattaforme d'ordine (Apicbase, Exact Horeko, Growzer, inOne, Cuisin.io, OrderXL). Sono presenti solo i fornitori del paese del locale. Se ne scegli uno, modalità d'ordine, file e colonne sono già impostati; per ogni fornitore è indicato come si ordina.
- Per fornitore: numero cliente, ordinare tramite:
- E-mail: l'ordine come e-mail (con tabella) all'indirizzo e-mail per gli ordini, facoltativamente una copia, con la lista ordini in allegato: CSV, Excel, CSV per Care4Fresh (molti grossisti di freschi), UBL 2.1 Order (Peppol BIS Order), EANCOM ORDERS (D96A nei Paesi Bassi, D01B/HO2C in Belgio) o cXML. Le risposte arrivano all'indirizzo e-mail del locale.
- File: la cassa crea il file, tu lo carichi nel webshop del fornitore (ad es. Bunzl Snel bestellen:
artikel;aantal, Takeaware:SKU,Quantity). Separatore, riga di intestazione e colonne sono configurabili (artikel,ean,omschrijving,aantal,eenheid,prijs,totaal; conartikel=SKUdai all'intestazione un nome proprio). - Integrazione (cXML): un cXML OrderRequest con numero cliente e segreto condiviso all'indirizzo ordini del fornitore, come quelli che i sistemi di acquisto inviano a Sligro, HANOS e Bidfood. Indirizzo, numero cliente e segreto te li fornisce il fornitore (Sligro: koppelingen@sligro.nl). Il segreto non torna mai sullo schermo.
- Entrambe le integrazioni supportano anche nome utente e password (Basic) e header aggiuntivi (uno per riga, ad es.
X-Api-Key: ...). - Caricamento (SFTP/FTPS): la cassa deposita da sola il file (EANCOM, UBL, CSV, Excel ...) in una cartella sul server del fornitore, come molti grossisti accettano gli ordini EDI. SFTP (SSH), FTPS (esplicito sulla porta 21 o implicito sulla porta 990) oppure, solo nella rete locale, FTP. Accesso con password o chiave SSH (OpenSSH, PEM o PuTTY .ppk; ed25519, ECDSA o RSA). Crea chiave crea una coppia di chiavi nella cassa; la chiave pubblica la invii al fornitore. Verifica connessione effettua l'accesso e cerca la cartella. L'impronta digitale del server SFTP viene registrata alla prima connessione e poi verificata (un altro server non riceve la password); con FTPS e un certificato proprio fissi l'impronta digitale del certificato. Non serve alcun software aggiuntivo.
- Stampa: l'ordine sulla stampante di scontrini, da trasmettere per telefono.
- Password, chiavi, token e header non tornano mai sullo schermo (lasciare vuoto = mantenere, Cancella = rimuovere).
- Richiedi l'integrazione: per un fornitore la cassa prepara un'e-mail per richiedere un'integrazione (cXML, EDI tramite SFTP/FTPS, UBL/Peppol o l'API propria del fornitore) con i dati dell'attività (nome, indirizzo, partita IVA, numero cliente, GLN) e ciò che serve; per l'EDI con la chiave pubblica. Modifica e invia; una copia e le risposte vanno all'indirizzo e-mail dell'attività. La data della richiesta è indicata presso il fornitore. Per Sligro va a koppelingen@sligro.nl, altrimenti inserisci l'indirizzo del tuo account manager.
- Un fornitore proprio (non presente nell'elenco) può fare tutto tranne ciò che il fornitore stesso deve offrire: e-mail, file e stampa funzionano sempre; un'integrazione o un caricamento solo con i dati di quel fornitore.
- Giorni d'ordine e consegna: giorni d'ordine, ora limite, tempo di consegna (la data di consegna desiderata sull'ordine) e un importo minimo d'ordine. Automatico: nei giorni d'ordine, a partire da quell'ora, la cassa prepara da sola un ordine (tu lo controlli) oppure lo invia subito (per e-mail, caricamento o integrazione; sotto l'importo minimo d'ordine viene solo preparato). Una volta al giorno per fornitore.
- Per prodotto (Impostazioni → Prodotti → (prodotto) → Magazzino, con Per prodotto) e per ingrediente: Ordinare da (il fornitore), codice d'ordine presso quel fornitore, EAN, per confezione (cassa da 24 = 24), il nome della confezione e il prezzo d'acquisto per confezione. Il livello di avviso è il momento di ordinare; rifornisci fino a indica quanto deve esserci poi.
- Ordini d'acquisto (scheda Ordini d'acquisto):
- Proposta d'ordine per fornitore: tutto ciò che è pari o inferiore al livello di avviso. Ciò che è già ordinato e non ancora arrivato (in arrivo) viene conteggiato, così non ordini nulla due volte. Proposta = rifornisci fino a − giacenza − in arrivo (senza rifornisci fino a: fino al livello di avviso), arrotondata per eccesso a confezioni intere. Modifica le quantità e Crea ordine.
- Un ordine è prima preparato: quantità, righe libere (senza prodotto, ad es. tovaglioli), nota e data di consegna sono ancora modificabili. Poi Invia (nel modo del fornitore o, per una volta, in un altro modo). Se non riesce (ad es. il fornitore rifiuta), viene indicato il motivo e puoi riprovare.
- Ricevuto: per ogni riga la quantità ricevuta (già impostata sulla quantità ordinata); il magazzino aumenta per confezione (2 casse da 24 = 48), con l'ordine indicato nello storico.
- Ogni file (CSV, Excel, UBL, EANCOM, cXML) si può anche scaricare separatamente.
- Inviato, non riuscito, ricevuto e annullato vengono annotati nel registro. La normale Lista ordini continua a funzionare; se un prodotto ha un fornitore dell'elenco, compare lì sotto quel nome.
Gestione recensioni
Leggere e rispondere alle recensioni di Google e Trustpilot dalla cassa. Si attiva in Impostazioni → Fedeltà e recensioni → Gestione recensioni (disattivato di default, e allora non se ne vede nulla da nessuna parte). Leggi e rispondi in Rapporto → Recensioni (permesso Leggere e rispondere alle recensioni, di default anche per il manager). Se lo disattivi, i collegamenti e le recensioni restano salvati.
- Ogni locale tocca poi solo Connetti a Google e accede con il proprio account Google del profilo dell'attività. Una chiave Places può anche essere gestita centralmente (i costi sono allora a carico del fornitore). Trustpilot è per locale: ogni locale ha un proprio account Trustpilot Business (l'API è inclusa in un abbonamento a pagamento), da cui provengono la chiave, il segreto e il business user ID. Nella cassa, per ogni opzione è indicato "Chi se ne occupa?".
- App del fornitore (tramite il portale clienti): se l'app Google e/o l'app Trustpilot del fornitore sono nel portale clienti (vedi il README di horecapos-portaal, "Reviews: app del fornitore"), l'amministratore sceglie App del fornitore in Accesso e chiavi (predefinito per un nuovo collegamento se il portale ha l'app). L'attività tocca Connetti a Google o Accedi con Trustpilot e accede con il proprio account; la cassa attende da sola che l'accesso sia completato (ogni 3 secondi, al massimo 15 minuti) e recupera i tokens una sola volta dal portale. Anche il rinnovo passa dal portale. Nella cassa non servono client-ID, secret o chiave API; per Trustpilot servono però il dominio e, per le risposte, il business user ID. Trustpilot pubblico legge quindi tramite la chiave del portale. Richiede
PORTAAL_URLePORTAAL_SLEUTEL. App propria o chiave API continua a funzionare come descritto sotto. - Di chi sono le recensioni: restano sul Profilo dell'attività su Google e sulla pagina Trustpilot dell'attività stessa, e la cassa le conserva solo nel proprio database. Le risposte compaiono con il nome dell'attività. Il portale inoltra solo l'accesso (in memoria, al massimo 15 minuti, recuperabile una sola volta) e non conserva recensioni né tokens; il nome dell'app del fornitore compare solo nella schermata di consenso.
- Registrati da solo: per ogni piattaforma c'è un link per creare da sé un Profilo dell'attività su Google (business.google.com/create) o un account Trustpilot Business (business.trustpilot.com) e, per Trustpilot, un link ai piani (business.trustpilot.com/plans). Registrazione e pagamento avvengono direttamente sulla piattaforma; non esiste un'API per questo.
- Poi Connetti a Google e accedi con l'account che gestisce il Profilo dell'attività. Una sola sede nel profilo = scelta subito; più sedi = scegli nella cassa.
- Google Places (sola lettura): con il Place ID e una chiave API della Places API (o
GOOGLE_PLACES_API_KEY): la media, il numero di recensioni e le 5 recensioni più pertinenti. In questo modo non si può rispondere. - Trustpilot Business (lettura e risposta): chiave API e segreto API di un'applicazione in Trustpilot Business (Integrations → API; oppure
TRUSTPILOT_API_KEYeTRUSTPILOT_API_SECRET), il dominio del locale (la cassa cerca la business unit) e, per le risposte, il business user ID di chi risponde. - Trustpilot pubblico (sola lettura): solo la chiave API.
- La cassa recupera ogni 30 minuti (e subito dopo il collegamento; Recupera ora). La cassa non conserva l'indirizzo e-mail né il numero d'ordine del cliente (che Trustpilot trasmette).
- Rapporto → Recensioni: media, numero per stella, senza risposta e non lette; filtra per piattaforma, stelle, senza risposta e non lette. Per ogni recensione Rispondi (al massimo 4000 caratteri; tutti possono leggerla), Modifica risposta, Rimuovi risposta e Letta. Una recensione nuova o modificata risulta non letta. Nel registro compaiono review_beantwoord e review_antwoord_weg.
- Scollegando, le recensioni recuperate restano salvate.
Marketing via SMS ed e-mail
Messaggi ai clienti della carta fedeltà che hanno dato il loro consenso. Senza carta fedeltà nessuno dei due si può attivare.
- Consenso per cliente e per canale: per un nuovo cliente alla cassa ci sono le spunte "Il cliente vuole ricevere le campagne via SMS" e "... via e-mail" (disattivate per impostazione predefinita). In Rapporto → Clienti vedi e modifichi il consenso (con la data in cui è stato dato) e un compleanno (solo giorno e mese). Disiscrizione: togli le spunte e salva.
- Menu aggiornato subito: se attivi o disattivi il marketing o la carta fedeltà, la cassa invia di nuovo il menu al webshop entro pochi secondi (solo se qualcosa è cambiato), così la casella compare o scompare subito.
- Consenso tramite il webshop: se l'attività ha un webshop, al pagamento compare la casella "Voglio ricevere offerte via e-mail/SMS" (solo i canali attivi; non selezionata per impostazione predefinita). Quando arriva un ordine del genere, la cassa cerca il cliente per numero di telefono (altrimenti per indirizzo e-mail), lo crea se necessario e registra il consenso con la data. Un numero o un indirizzo mancante di un cliente esistente viene completato; nel registro compare klant_toestemming con origine webshop.
- Rapporto → Marketing (permesso Gestire carta fedeltà): in alto, quanti clienti hanno dato il consenso per SMS e per e-mail.
- Campagne (una tantum): nome, SMS o e-mail, (oggetto,) testo con
{naam},{zaak}e{punten}, ed eventualmente solo i clienti che non vengono da un po' o hanno almeno un certo numero di punti. Visualizza mostra a quanti clienti va, il messaggio come lo riceve il cliente e il numero di SMS per cliente. Invia prova al tuo numero o indirizzo. Poi Invia: la cassa invia in background (al massimo 1000 alla volta) e conta cosa è stato inviato e cosa non è riuscito. Nessuno riceve due volte la stessa campagna; se la cassa si ferma a metà, Continua l'invio riprende da chi non ha ancora ricevuto nulla. - Invio tramite Mailchimp o Klaviyo (con un collegamento a una lista scelta, vedi sotto): per una campagna via e-mail scegli in Invia tramite la cassa (il server di posta proprio, come sopra), Mailchimp o Klaviyo. La cassa aggiorna prima la lista (disiscrizioni, punti), crea lì una campagna esattamente per i clienti scelti presenti nella lista (Mailchimp: un gruppo fisso nell'audience; Klaviyo: una lista dedicata alla campagna) e la invia con il mittente predefinito dell'audience o dell'account. Mailchimp/Klaviyo compila
{naam}e{punten}per ogni cliente; il link di disiscrizione del servizio è in fondo. Nessun limite di 1000 alla volta e nessun codice sconto personale ({code}). Se non riesce, la campagna resta una bozza con il messaggio di errore. La scheda Marketing c'è anche quando è attivo solo il collegamento (allora solo campagne tramite Mailchimp/Klaviyo; Invia prova usa il server di posta della cassa). I messaggi automatici li invia sempre la cassa stessa; in Mailchimp/Klaviyo li crei come Customer Journey o Flow. Chiave Klaviyo: anche permessi di scrittura per Campaigns e Templates (se hai già effettuato l'accesso: accedi di nuovo). - Come notifica push tramite il webshop (se nella gestione del webshop sono attive le Notifiche push con offerte): in Invia via scegli Notifica push (webshop come app), con un titolo (max 60 caratteri) e un breve testo (max 200 caratteri; viene compilato solo
{zaak}, perché il webshop non sa chi è l'ospite). La cassa invia la promozione al webshop tramite il portale di gestione, e il webshop la invia agli ospiti che lì attivano Offerte come notifica; toccandola si apre il menu del webshop. Dopo qualche secondo la promozione mostra quante sono arrivate. Max 3 al giorno, insieme a quanto il locale invia dalla gestione del webshop; altrimenti la promozione resta una bozza con il motivo indicato. La scheda Marketing è presente anche se è attivo solo questo (senza carta fedeltà o email marketing). Niente codice sconto né selezione (giorni, punti); per provare: sul tuo telefono attiva Offerte come notifica nel webshop. - Automatici: un messaggio di compleanno (il giorno del compleanno, una volta all'anno) e "ci manchi" (dopo tanti giorni senza visita, una volta ogni volta che il cliente non si fa vedere). Attivo/disattivo per messaggio; partono solo di giorno (10:00–20:00).
- Codice sconto personale (facoltativo, per messaggio o promozione; solo se i Codici sconto sono attivi in Impostazioni → Attività): ogni cliente riceve un proprio codice, ad es.
TERUG-7K4Q2M(compleannoJARIG-…, promozioneACTIE-…), in percentuale o come importo fisso, eventualmente con un importo minimo d'ordine, utilizzabile una volta, valido per il numero di giorni impostato dopo l'invio (predefinito 30) e alla cassa e/o nel webshop. Inserisci{code}e{geldig}nel testo dove li vuoi; altrimenti la cassa aggiunge sotto il messaggio "Uw kortingscode: … (10% korting, aan de kassa of in de webshop, geldig t/m …)". Visualizza e Invia prova mostrano un codice di esempio (TERUG-VOORBEELD, non funziona). Se l'invio non riesce, il codice non viene creato. Nella promozione si vede quanti codici sono stati emessi e usati. - Disiscrizione si trova sotto ogni messaggio: in un SMS "Disiscriverti? Chiama il ... o diccelo alla prossima visita", in un'e-mail un link di disiscrizione all'indirizzo e-mail dell'attività (anche il pulsante Annulla iscrizione in Gmail e Outlook). Una risposta all'e-mail arriva all'attività.
- Privacy (GDPR): solo clienti con consenso e con un numero o indirizzo; nessun numero o indirizzo nel registro, ma per ogni campagna quanti messaggi sono stati inviati e quanti non sono riusciti. Se elimini un cliente, sparisce anche dalla lista di invio.
- Costi: gli SMS passano dal tuo account CM.com (più di 160 caratteri = più SMS per cliente). Gmail e altri server di posta hanno un limite giornaliero; con molti clienti invia a blocchi.
Mancia per dipendente
In Impostazioni → Attività → Mancia (solo se "Mostra pulsanti mancia all'incasso" è attivo) scegli come la mancia per dipendente compare sul parziale (X), sul rapporto Z (scontrino ed e-mail) e su Fatturato per periodo (anche nel CSV):
| Scelta | Ripartizione |
|---|---|
| Disattivato (default) | solo il totale delle mance, come sempre |
| Mance individuali | mance dei conti incassati personalmente da ciascuno |
| Cassa comune per ore | tutte le mance insieme, in base alle ore timbrate nel periodo (richiede la timbratura entrata/uscita; nessuno ha timbrato = in parti uguali) |
| Cassa comune | tutte le mance insieme, in parti uguali tra chi era in servizio (senza timbratura: chi ha inserito o incassato qualcosa) |
I centesimi rimanenti vanno a chi è più vicino al centesimo successivo, così il totale torna sempre. È un riepilogo: la cassa non paga nulla (si può fare con "Denaro fuori dal cassetto"). I vecchi rapporti Z restano come erano.
Rapporto Z via e-mail
Inserisci una volta sola in Impostazioni → Attività → Invia rapporto Z a l'indirizzo e-mail dell'amministratore (più indirizzi: separati da virgola, max. 3). Dopo Chiudi giornata il rapporto Z viene inviato automaticamente a quell'indirizzo, oltre allo scontrino stampato. Vuoto = nessun invio, come sempre.
- L'invio avviene in background, così un server di posta lento non rallenta la chiusura giornaliera.
- Invio non riuscito o serve di nuovo: Rapporto → Rapporti Z precedenti → (rapporto) → Invia di nuovo per e-mail (con la dicitura COPIA).
Riepilogo della giornata (facoltativo)
Se c'è un indirizzo in Invia rapporto Z a, sotto compare la casella Con un breve riepilogo della giornata in cima all'e-mail (predefinito disattivato). Attivo = in cima all'e-mail del rapporto Z alcune righe in linguaggio semplice, solo dai dati della cassa stessa (niente IA, nulla esce all'esterno):
- ricavi, scontrini e ospiti e la spesa media per scontrino, rispetto allo stesso periodo di una settimana prima (in percentuale); se allora non c'era nulla, viene indicato;
- i 5 prodotti più venduti e cosa salta all'occhio: prodotti venduti almeno 3 in più o in meno rispetto alla settimana scorsa;
- il numero di storni (rispetto alla settimana scorsa) e l'ora di punta (scontrini e ricavi).
Il rapporto Z stesso (scontrino ed e-mail) resta esattamente uguale. Anteprima di oggi mostra il riepilogo dall'ultima chiusura giornaliera fino ad ora. Il riepilogo è in olandese, come l'e-mail del rapporto Z.
Dashboard
Scheda Dashboard in Rapporto (permesso Fatturato per periodo), sola lettura:
- Ricavi per ora in un grafico: il giorno scelto (blu) accanto allo stesso giorno della settimana precedente (grigio). Oggi viene confrontato con la settimana scorsa fino alla stessa ora, così la percentuale è corretta. Con ◀ ▶ o la data scegli un altro giorno.
- Riquadri: ricavi (± % rispetto alla settimana scorsa), scontrini e media per scontrino, spesa media per ospite (solo consumo sul posto; asporto/consegna non contano) per quel giorno e per il periodo scelto.
- Top 10 prodotti e ore di punta negli ultimi 7, 28 o 90 giorni. Le ore di punta sono una mappa di calore giorno della settimana × ora (ricavo medio per giorno di apertura) con sopra le tre ore più affollate, utile per i turni.
I buoni regalo venduti non contano come ricavo, sconti e intestazioni dei menu non entrano nella top 10 (come negli altri rapporti). Una giornata va dalle 00:00 alle 24:00.
Rapporti aggiuntivi
Tre schede aggiuntive in Rapporto, ognuna attivabile separatamente da Impostazioni → Attività → Gestione e rapporti → Rapporti aggiuntivi (predefinito disattivato: nessuna scheda). Richiedono lo stesso permesso di Fatturato per periodo e sono di sola lettura. Periodo: questa settimana, la settimana scorsa, questo mese, il mese scorso, gli ultimi 90 giorni, quest'anno o a scelta (al massimo poco più di un anno).
- Menu engineering: per ogni prodotto quanto spesso viene venduto (quota di tutti i pezzi venduti) rispetto a quanto rende per pezzo (margine = prezzo di vendita IVA esclusa meno il costo). Ogni prodotto riceve una classificazione: Star (popolare e alto margine: lascialo così), Cavallo da tiro (popolare, basso margine: alza un po' il prezzo o rendilo più economico da produrre), Enigma (poco venduto, alto margine: mettilo più in evidenza) e Cane (poco venduto, basso margine: toglilo dal menu o sostituiscilo). Popolare = almeno il 70% di una quota uguale; alto margine = almeno il margine medio per pezzo venduto. Il costo viene da Apicbase (Impostazioni → Ricette), altrimenti dal prezzo d'acquisto del prodotto (prezzo d'acquisto per confezione diviso per il numero di pezzi per confezione), altrimenti dalla ricetta degli ingredienti con un prezzo d'acquisto (Magazzino). I prodotti senza costo sono elencati a parte in fondo. Facoltativamente per categoria (
?groep=). - Promozioni e codici: per codice sconto, per campagna da Marketing (i codici personali insieme) e per happy hour: quante volte è stato usato (scontrini; per un happy hour anche i pezzi), quanto sconto, il fatturato e la media per scontrino.
- Sprechi: ciò che è stato scaricato dal magazzino (Impostazioni → Magazzino, Scarica (−)), per motivo (maiuscole e spazi non contano) e per prodotto o ingrediente, con il valore al costo; e ciò che è stato annullato dopo essere già stato inviato in cucina o al bar, con il valore di vendita e di costo.
Sconti
Un manager o un amministratore vede nella schermata ordini, accanto al totale, il pulsante % Sconto:
- sull'intero scontrino o su una riga;
- come percentuale (10, 15, 20, 25, 50, 100% = gratis, o a scelta) o come importo fisso;
- sempre con un motivo (Personale, Cliente abituale, Reclamo, Promozione, Uso interno o testo libero).
Lo sconto compare come riga a sé sullo scontrino ("Sconto 10%", con il motivo sotto) con la stessa aliquota IVA, così il totale e il riepilogo IVA tornano. Sull'intero scontrino lo sconto viene ripartito per aliquota IVA. Per toglierlo: tocca l'importo della riga di sconto. Se una riga con sconto proprio viene annullata, lo sconto decade con essa. Se togli un prodotto da uno scontrino con sconto percentuale sull'intero scontrino, la cassa ricalcola lo sconto su ciò che rimane (in Belgio UC226); un importo fisso resta e all'incasso viene di nuovo ripartito sulle righe. Se con uno sconto del 100% non c'è nulla da pagare, chiudi con "Chiudi (niente da pagare)". Gli sconti compaiono nel registro, e nel rapporto X/Z e nel riepilogo del periodo come "di cui sconto". In caso di reso di uno scontrino con sconto, lo sconto viene applicato in proporzione.
Codici sconto (facoltativo)
Codici con sconto su tutto lo scontrino, ad esempio per una promozione (ZOMER10). Si attivano in Impostazioni → Attività → Codici sconto (disattivato di default); i codici si creano in Impostazioni → Codici sconto (permesso Gestire prodotti):
- sconto in percentuale o un importo fisso, eventualmente con un importo d'ordine minimo, validità dal/al e al massimo tante volte (vuoto = illimitato);
- per codice: alla cassa e/o nel webshop (la cassa invia i codici insieme al menu; gli utilizzi valgono per cassa e webshop insieme).
Nella schermata ordini c'è il pulsante Codice sconto (chiunque può inserire un codice; il codice è creato in anticipo dall'attività). Lo sconto compare come riga "Codice sconto CODICE" sullo scontrino, ripartito sulle aliquote IVA; un codice per scontrino, e non più se è già stato pagato (in parte). Se rimuovi la riga o l'ordine viene annullato, l'utilizzo non conta più. Eliminare un codice usato lo disattiva (i report restano corretti). Tutto finisce nel registro (Codice sconto). Codice: lib/kortingscodes.ts, routes/kortingscodes.ts, Kortingscodebeheer.tsx, KortingscodeDialoog.tsx.
Non compaiono nell'elenco di Impostazioni → Codici sconto (il numero per promozione sì, in Rapporto → Marketing) e passano al webshop finché sono validi e non usati.
Rapporti e chiusura giornaliera
Pulsante Rapporto nella barra superiore:
- Parziale (X): ricavi, IVA, metodi di pagamento, per categoria e il cassetto dall'ultima chiusura giornaliera. Si può anche stampare. Non chiude nulla.
- Chiudi giornata (Z) (manager o amministratore): conta il cassetto (viene mostrata la differenza rispetto a fondo cassa + contanti), inserisci il fondo cassa per il giorno dopo, chiudi. Il rapporto Z riceve un numero progressivo, viene salvato e stampato sulla stampante di scontrini. Non è possibile finché ci sono ordini aperti. Facoltativo: Conta per moneta e banconota (aiuto al conteggio) compila per te l'importo contato; il conteggio per moneta/banconota compare allora anche sul rapporto Z. Digitare direttamente il totale funziona come sempre.
- Cassetto (manager o amministratore, facoltativo):
- Denaro fuori dal cassetto (versamento in banca, spesa, mancia pagata) o denaro nel cassetto (fondo per il resto) con importo e motivo. Il cassetto si apre ed esce uno scontrino con riga per la firma da conservare con il denaro (disattivabile). Conta nel previsto nel cassetto e compare riga per riga sui rapporti X e Z.
- Inserire o correggere il fondo cassa di oggi (di solito lo inserisci alla chiusura giornaliera per il giorno dopo).
- Apri cassetto senza vendita, con motivo.
- Tutto finisce nel registro. Se non usi queste funzioni, la chiusura giornaliera funziona esattamente come prima (fondo cassa + contanti = previsto nel cassetto).
- Sotto i ricavi compaiono il numero di ospiti (persone degli ordini incassati) e la media per ospite, anche sul rapporto X/Z stampato.
- Fatturato per periodo (manager o amministratore): oggi, ieri, questa/la scorsa settimana, questo/lo scorso mese, quest'anno o un intervallo da-a a scelta. Mostra ricavi, IVA, metodi di pagamento, mance, ospiti, categorie di prodotti, per giorno e per dipendente. Con Esporta (Excel/CSV) ottieni un file per il commercialista (punto e virgola e decimali con virgola, si apre direttamente in Excel in olandese).
- Rapporti Z precedenti: elenco con ricavi e differenza di cassa; apri e stampa una copia (con la dicitura "COPIA").
Esportazione per la contabilità
Rapporto → Fatturato per periodo → Esportazione contabilità (giornale) (permesso Fatturato per periodo) crea un CSV con una scrittura contabile al giorno, pronto da importare in e-Boekhouden, Exact, SnelStart, Twinfield ecc. (tramite la loro importazione CSV/di prima nota), oppure uno dei formati qui sotto (UBL, XAF e già pronto per 14 software).
Per ogni giorno una registrazione (KASSA-JJJJMMDD) sempre in pareggio (dare = avere):
| Lato | Cosa |
|---|---|
| Dare | incassi per metodo di pagamento (contanti, carta, buono regalo, online, altro), mance incluse |
| Avere | ricavi per aliquota IVA (IVA esclusa) e IVA da versare per aliquota |
| Avere | mance (da pagare al personale, non sono ricavi) |
| +/- | differenza di arrotondamento (arrotondamento contanti a 5 centesimi) |
| +/- | denaro in/fuori dal cassetto (gestione cassa) in contropartita a conti transitori, e differenza di cassa dal rapporto Z |
Resi e sconti sono già compresi negli scontrini e riducono i ricavi. Colonne: Datum; Boekstuk; Dagboek; Rekening; Omschrijving; Debet; Credit; Btw-code; Btw-% (punto e virgola, decimali con virgola). Dopo il download la cassa segnala se ci sono giorni non in pareggio o con una differenza superiore all'arrotondamento.
Accanto al pulsante scegli il formato (la scelta viene ricordata nel browser). Lo stesso giornale, ma formattato in modo che il software possa importarlo direttamente. L'elenco mostra solo i formati per il paese dell'attività (Impostazioni → Attività), prima gli standard (CSV, UBL, XAF), poi i software in ordine alfabetico:
| Formato | File | Importazione nel software |
|---|---|---|
| Generale (CSV) | journaal_…csv | qualsiasi software con importazione CSV/prima nota (abbina le colonne) |
| UBL 2.1 / Peppol (XML), NL e BE | journaal_…_ubl.xml (più giorni: .zip) | ogni giorno una fattura "incassi giornalieri" a Kassaverkopen (già pagata) secondo Peppol BIS Billing 3.0, con una riga per aliquota IVA e il conto ricavi in AccountingCost; solo fatturato e IVA (metodi di pagamento, mance, arrotondamento, cassetto e differenza di cassa non vanno in una fattura). Da caricare tra l'altro in Adsolut, Billit, BUNNI, DigiBoox, Expert/M, Moneybird, Popsy, Rompslomp, Storecove e TriFact365; non per l'invio tramite la rete Peppol. Nome, partita IVA e indirizzo provengono da Impostazioni → Attività |
| XML Auditfile Financieel (XAF 4.0), NL | journaal_…_xaf.xaf | file di audit dell'Amministrazione fiscale olandese (Belastingdienst) (XSD XmlAuditfileFinancieel4.0): un unico file per il periodo, con libro mastro, codici IVA, periodi e ogni giorno una transazione di prima nota; importabile tra l'altro in Caseware, Exact Reeleezee e Visma Cash |
| AccountView (XML), NL | journaal_…_accountview.xml | Movimenti XML (VFPData, una transact per riga di registrazione con dj_code, period, inv_date, inv_nr, acct_nr, trn_desc e amount: dare positivo, avere negativo), un documento al giorno nella prima nota; importazione con una definizione di importazione (Document → Importeren → Importdefinitie aanmaken, tipo XML), i nomi dei campi sono quelli di AccountView stesso, quindi basta abbinarli 1 a 1 una volta. Fai controllare la prima importazione |
| AFAS Profit (XML) | journaal_…_afas.xml | XML dell'UpdateConnector FiEntries (movimenti contabili), una registrazione al giorno con anno, periodo, amministrazione e registro; da importare in Profit con Importa → XML; inserisci il numero di amministrazione (predefinito 1) |
| Asperion (CSV), NL | journaal_…_asperion.csv | formato FMUTA (Extra → Import financiële mutaties), ogni giorno una riga di intestazione e le righe di registrazione; la definizione di importazione viene impostata da Asperion tramite l'helpdesk |
| Riepilogo giornaliero (HTML), NL e BE | journaal_…_dagstaat.html | riepilogo giornaliero leggibile per giorno (fatturato per aliquota IVA, metodi di pagamento, mance, differenza di cassa) e totali; da stampare come PDF o inviare per e-mail, per i software senza importazione (Accountable, Dext, Dexxter, Jortt, Kleisteen, MoneyMonk) |
| e-Boekhouden.nl (CSV) | journaal_…_eboekhouden.csv | Data; N. documento; Descrizione; Conto contabile; Importo (dare positivo, avere negativo); codice IVA GEEN (l'IVA è già sui conti IVA); Importa → Movimenti, tipo prima nota |
| Exact Online (XML) | journaal_…_exact.xml | eExact-XML (argomento GLTransactions): una registrazione di prima nota al giorno (tipo 90) nel registro; Importa/esporta → Importa XML |
| InformerOnline (TXT), NL | journaal_…_informer.txt | prima nota separata da tabulazioni (Geavanceerd → Memoriaal → uploaden); il registro deve essere un numero 1–99 (altrimenti 90) |
| KING ERP (XML), NL | journaal_…_king.xml | KING_JOURNAAL: un lotto di registrazioni (non definitivo) con una scrittura contabile al giorno |
| KOMAS (CSV), NL | journaal_…_komas.csv | formato libero KOMAS (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag |
| Odoo (CSV), NL e BE | journaal_…_odoo.csv | Contabilità → Journal Entries → Import records; registro e conto per nome o codice |
| Sage BOB 50 (Excel), BE | journaal_…_bob.xlsx | Importation de données externes → Opérations diverses (abbinare le colonne una sola volta) |
| SAP Business One (ZIP), NL e BE | journaal_…_sapb1.zip | Data Transfer Workbench, Journal Entries: JournalEntries.csv e JournalEntries_Lines.csv |
| SnelStart (CSV) | journaal_…_snelstart.csv | Data; N. documento; Descrizione; Conto contabile; Dare; Avere (gg-mm-aaaa, virgola decimale, senza BOM); importa come prima nota, il registro lo scegli durante l'importazione |
| Twinfield (XML) | journaal_…_twinfield.xml | transazioni di registro come bozza (destiny="temporary"), il commercialista le rende definitive; inserisci il codice amministrazione (vuoto = l'amministrazione in cui importi) |
| Winbooks (CSV), BE | journaal_…_winbooks.csv | K_DOC.CSV, ogni giorno un documento nel registro (Winbooks numera da solo) |
| Yuki (XML) | journaal_…_yuki.xml | Journal-XML (GeneralJournal), una prima nota al giorno, stessa struttura del collegamento diretto; ID amministrazione facoltativo |
Panoramica: quale software di contabilità in quale modo
Per segmento, in ordine alfabetico. NL/BE = paese in cui funziona il software: in Impostazioni → Contabilità → Software di contabilità vedi solo i software per il paese dell'attività (i software olandesi non funzionano in Belgio e viceversa). Live = la cassa registra da sola ogni giorno (si sceglie in Impostazioni → Contabilità → Software di contabilità); su richiesta = esiste un'API, ma richiede prima una registrazione come partner o un'approvazione del fornitore (faccelo sapere). File = il formato in Esportazione contabilità. Dove sono possibili entrambi, puoi usarli entrambi. L'elenco si trova in packages/shared/src/boekhoudcatalogus.ts e compare anche in Impostazioni → Contabilità.
| Software | NL | BE | Live | File | Nota |
|---|---|---|---|---|---|
| PMI e liberi professionisti | |||||
| Accountable | – | ✓ | – | Riepilogo giornaliero (HTML, per PDF o e-mail) | |
| AccountView (Visma) | ✓ | – | su richiesta | AccountView (XML), Generale (CSV) | File: movimenti XML per una definizione di importazione (Document → Importeren); anche il CSV generico funziona con una definizione di importazione. Live tramite l'API di AccountView.Net su richiesta ad AccountView. |
| Acumulus | ✓ | – | ✓ | – | Live come fattura di vendita pagata al giorno, con una riga per aliquota IVA. |
| AFAS Profit | ✓ | – | ✓ | AFAS Profit (XML) | |
| Asperion | ✓ | – | su richiesta | Asperion (CSV) | Live dopo l'iscrizione come partner API presso Asperion. |
| Billit | – | ✓ | su richiesta | UBL 2.1 / Peppol (XML) | Carica l'UBL tramite Fast input; live dopo l'approvazione di Billit. |
| BUNNI | ✓ | – | – | UBL 2.1 / Peppol (XML) | Ancora nessuna documentazione API pubblica. |
| Dexxter | – | ✓ | – | Riepilogo giornaliero (HTML, per PDF o e-mail) | |
| DigiBoox (Visma DigiBTW) | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| e-Boekhouden.nl | ✓ | – | – | e-Boekhouden.nl (CSV) | Anche per ex clienti Ficsus. |
| Exact Online | ✓ | ✓ | ✓ | Exact Online (XML) | |
| Exact Reeleezee | ✓ | – | – | XML Auditfile Financieel (XAF 4.0) | |
| Horus | – | ✓ | ✓ | – | |
| InformerOnline | ✓ | – | – | InformerOnline (TXT) | |
| Jortt | ✓ | – | – | Riepilogo giornaliero (HTML, per PDF o e-mail) | Nessuna importazione: registra l'incasso giornaliero come ricavo con il riepilogo giornaliero come allegato. |
| KING | ✓ | – | su richiesta | KING ERP (XML) | Live dopo la registrazione come partner presso KING Software. |
| Kleisteen | ✓ | – | – | Riepilogo giornaliero (HTML, per PDF o e-mail) | |
| KOMAS (Adfinis) | ✓ | – | – | KOMAS (CSV) | |
| Minox | ✓ | – | su richiesta | – | Live dopo un collegamento partner tramite Minox. |
| Moneybird | ✓ | – | ✓ | UBL 2.1 / Peppol (XML) | |
| MoneyMonk | ✓ | – | – | Riepilogo giornaliero (HTML, per PDF o e-mail) | MoneyMonk avrà nel 2026 un'API per le integrazioni. |
| Octopus | – | ✓ | su richiesta | – | Live dopo la richiesta di un software house ID a Octopus. |
| Popsy / Allegro | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Rompslomp | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| Sage BOB 50 | – | ✓ | – | Sage BOB 50 (Excel) | |
| Silvasoft | ✓ | ✓ | ✓ | – | Live come registrazione di vendita al giorno, con una riga per aliquota IVA; metodi di pagamento, mance e differenza di cassa non vengono inclusi. |
| SnelStart | ✓ | – | ✓ | SnelStart (CSV) | |
| Twinfield | ✓ | – | ✓ | Twinfield (XML) | |
| Visma Cash | ✓ | – | su richiesta | XML Auditfile Financieel (XAF 4.0) | API con una chiave da CASHWeb; il formato dei record per le registrazioni è ancora da confermare. |
| Visma eAccounting | ✓ | – | su richiesta | – | Live dopo l'approvazione di Visma (registrazione partner). |
| Winbooks | – | ✓ | su richiesta | Winbooks (CSV) | |
| Wolters Kluwer Adsolut | – | ✓ | su richiesta | UBL 2.1 / Peppol (XML) | UBL con il conto ricavi per riga; attiva in Adsolut "grootboekrekening verwerken bij verkopen". |
| Wolters Kluwer Expert/M | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Yuki | ✓ | ✓ | ✓ | Yuki (XML) | |
| Internazionale | |||||
| QuickBooks Online | ✓ | ✓ | ✓ | CSV generico | Nessuna edizione olandese o belga: controlla le impostazioni IVA. |
| Xero | ✓ | ✓ | ✓ | CSV generico | |
| Zoho Books | ✓ | ✓ | ✓ | CSV generico | |
| Enterprise e catene | |||||
| Exact Globe+ | ✓ | ✓ | – | Exact Online (XML) | Stesso XML di Exact Online; fai controllare la prima importazione. |
| Microsoft Dynamics 365 Business Central | ✓ | ✓ | ✓ | – | |
| Odoo | ✓ | ✓ | ✓ | Odoo (CSV) | |
| Oracle NetSuite | ✓ | ✓ | su richiesta | CSV generico | |
| SAP Business One | ✓ | ✓ | ✓ | SAP Business One (ZIP) | |
| Unit4 ERPx | ✓ | ✓ | – | CSV generico | |
| Piattaforme e aggregatori | |||||
| Apicbase | ✓ | ✓ | su richiesta | – | Vendite per scontrino per magazzino e food cost: integrazione in Impostazioni → Ricette (non come software di contabilità). |
| Caseware | ✓ | ✓ | – | XML Auditfile Financieel (XAF 4.0) | |
| Combidesk | ✓ | – | su richiesta | – | Combidesk realizza e gestisce il collegamento in autonomia (tra l'altro verso Exact, Moneybird, SnelStart e Twinfield); su richiesta come partner. |
| Dext | ✓ | ✓ | – | Riepilogo giornaliero (HTML, per PDF o e-mail) | Invia il riepilogo giornaliero (PDF) per e-mail al tuo indirizzo Dext. |
| Jamix | ✓ | ✓ | su richiesta | – | Vendite per magazzino e food cost tramite l'interfaccia JAPI di Jamix; sviluppo su misura su richiesta a Jamix. |
| Omniboost | ✓ | ✓ | su richiesta | – | Inoltra tramite il programma partner di Omniboost a molti sistemi contabili e alberghieri. |
| Storecove (Peppol) | ✓ | ✓ | su richiesta | UBL 2.1 / Peppol (XML) | |
| TriFact365 | ✓ | – | – | UBL 2.1 / Peppol (XML), Riepilogo giornaliero (HTML, per PDF o e-mail) | |
| Qualsiasi altro software | ✓ | ✓ | – | CSV generico, UBL o XAF (NL) |
Fai controllare la prima importazione dal commercialista. Il formato si trova in packages/shared/src/journaalexport.ts (con test).
Impostazioni → Contabilità (permesso Configurare attività, pagamenti e stampanti): codice registro (default MEM) e il conto di contabilità generale per ogni voce. Vuoto = conto di esempio (NL: 8000/8010/8020 ricavi, 1500/1510 IVA, 1000 cassa, 1100 carta; BE: 7000xx ricavi, 451000 IVA, 570000 cassa). Fai inserire i conti reali dal commercialista.
Collegamento con un software di contabilità
Collegamenti live con Acumulus, AFAS Profit, Microsoft Dynamics 365 Business Central, Exact Online, Horus, Moneybird, Odoo, QuickBooks Online, SAP Business One, Silvasoft, SnelStart, Twinfield, Xero, Yuki e Zoho Books. Dopo ogni giornata la cassa registra lo stesso giornale dell'esportazione qui sopra (incassi e IVA per aliquota, metodi di pagamento, mancia, arrotondamento, cassetto e differenza di cassa) come registrazione di prima nota nel software scelto, con il registro e i conti contabili di Impostazioni → Contabilità. È sempre attivo al massimo un software.
- L'elenco è suddiviso per segmento (PMI e liberi professionisti, Internazionale, Enterprise e catene) e mostra solo i software che funzionano nel paese dell'attività; il server rifiuta un software di un altro paese (400) e non registra con esso (409). Subito sotto l'amministratore riceve esattamente i campi di quel software; il collegamento e l'elenco dei giorni registrati si trovano sotto i conti contabili, e più sotto la panoramica di tutti i software per questo paese. Se al momento dell'aggiornamento ne erano attivi due (in una versione precedente era possibile), Exact Online resta attivo e l'altro software viene disattivato.
| Software | Paese | Collegare con | Cosa registra la cassa |
|---|---|---|---|
| Acumulus | NL | codice contratto, utente e password di un utente API | ogni giorno una fattura di vendita pagata con una riga per aliquota IVA; Acumulus invia gli errori per e-mail a ACUMULUS_FOUTMAIL |
| AFAS Profit | NL | ambiente, token, amministrazione | prima nota (FiEntries) |
| Business Central | NL, BE | tenant, ambiente, azienda, ID client e segreto di un'app Microsoft Entra (API.ReadWrite.All) | righe nel registro generale con il codice di Registro |
| Exact Online | NL, BE | accesso (OAuth, app propria: vedi Exact Online qui sotto; Belgio: start.exactonline.be) | registrazione di prima nota nel registro (es. 90) |
| Horus | BE | accesso (OAuth, app qui sotto), dossier facoltativo | operazione diversa |
| Moneybird | NL | token API, amministrazione facoltativa | prima nota (general journal document) |
| Odoo | NL, BE | indirizzo, database, utente, chiave API | scrittura contabile nel registro con il codice breve (es. MISC) |
| QuickBooks Online | NL, BE | accesso (OAuth, app qui sotto; QUICKBOOKS_OMGEVING) | journal entry; conti per numero |
| SAP Business One | NL, BE | indirizzo del Service Layer, database, utente, password | scrittura contabile (JournalEntries) |
| Silvasoft | NL, BE | utente e chiave API | registrazione di vendita sul contatto Kassaverkopen, una riga per aliquota IVA (metodi di pagamento, mance e differenza di cassa non vengono inclusi) |
| SnelStart | NL | chiave di collegamento e chiave di abbonamento | prima nota |
| Twinfield | NL | accesso (OAuth, app qui sotto), ufficio facoltativo | transazione di registro |
| Xero | NL, BE | accesso (OAuth, app qui sotto), organizzazione facoltativa | manual journal; conti per codice |
| Yuki | NL, BE | chiave API, amministrazione facoltativa | prima nota (GeneralJournal) |
| Zoho Books | NL, BE | accesso (OAuth, app qui sotto; per impostazione predefinita il data center europeo), organizzazione facoltativa | scrittura contabile; conti per codice |
- OAuth (Horus, QuickBooks, Twinfield, Xero, Zoho): registrare una volta un'app presso il software.
- Per alcuni software i campi dell'API non si possono confermare del tutto dalla documentazione pubblica (tra cui Horus, Zoho Books, il segno in Business Central e la struttura in SAP Business One): fai sempre controllare la prima registrazione dal commercialista.
- Exact Online: registra il giornale come registrazione di prima nota nell'amministrazione scelta.
- Si sceglie in Impostazioni → Contabilità → Software di contabilità → Exact Online (di default Disattivato). Belgio: la cassa usa automaticamente
start.exactonline.be. - Impostazioni → Contabilità → Exact Online: Collega a Exact Online apre l'accesso a Exact; poi vedi a quale amministrazione è collegata la cassa. In Registro inserisci il codice di un registro di prima nota in Exact (es.
90) e assicurati che i conti contabili esistano in Exact. - Quando: subito dopo Chiudi giornata e poi ogni ora, per tutti i giorni passati (fino a ieri compreso) a partire da Registra da (per impostazione predefinita il giorno del collegamento; i giorni precedenti li ha già il commercialista). Ogni giorno una volta sola; i giorni senza incasso vengono saltati. Registra ora è sempre possibile.
- Errori (un conto non esiste in Exact, la giornata non quadra, niente internet) compaiono con il motivo accanto a quel giorno; la cassa riprova più tardi e i giorni successivi aspettano finché non riesce (così l'ordine resta corretto). Nel registro: "exact_geboekt".
- L'IVA va sui conti contabili IVA (senza codice IVA, come nell'esportazione). Fai controllare le prime registrazioni dal tuo commercialista.
- Exact: un collegamento continua a funzionare finché la cassa lo usa (ogni 10 minuti un nuovo token, ogni volta con un nuovo refresh token). Se viene revocato o non viene usato troppo a lungo, la cassa mostra Ricollega. Disabbina cancella i token; ciò che è stato registrato resta.
- Si sceglie in Impostazioni → Contabilità → Software di contabilità → Exact Online (di default Disattivato). Belgio: la cassa usa automaticamente
- AFAS Profit: numero di ambiente (es.
12345; produzione, test o collaudo), il token di un connettore app con l'UpdateConnector FiEntries e il numero di amministrazione (default 1). Registro = il codice di un registro di prima nota in AFAS (es.90). - Registro = numero o nome di un registro di prima nota; se ce n'è uno solo, la cassa usa quello. I conti contabili devono essere numeri.
- Twinfield: accesso con OAuth. Senza quell'app la cassa non può collegarsi. La cassa cerca il cluster e l'amministrazione (vuoto = la prima); registro = il codice di un registro di prima nota (es.
MEMO). Registra in modo definitivo (destiny="final"). - Yuki: chiave API dell'amministrazione (Yuki → Impostazioni → Servizi web); amministrazione vuota = la prima di quella chiave. Registra una prima nota (GeneralJournal); Yuki non usa un codice registro.
- Quando: subito dopo Chiudi giornata e ogni ora, per tutti i giorni passati a partire da Registra da (di default il giorno del collegamento; con un altro software di nuovo da quel giorno). Ogni giorno una volta per software; i giorni senza incassi vengono saltati; in caso di errore il motivo compare accanto a quel giorno e i giorni successivi aspettano. Registra ora è sempre possibile. Nel registro: "boekhoudpakket_geboekt".
- Chiavi e token non vengono mai mostrati sullo schermo (lascia vuoto quando ricolleghi = mantieni). Sulla copia della cassa nel portale non si registra nulla.
File di audit cassa (XAA)
Per le attività olandesi, in Rapporto → Fatturato per periodo, accanto all'esportazione contabilità, c'è il pulsante File di audit cassa (XAA): l'XML Auditfile Afrekensystemen 3.2 della Belastingdienst (amministrazione fiscale olandese) e dell'XML Platform (SRA) sul periodo scelto (al massimo poco più di un anno; permesso Fatturato per periodo). È il file che la Belastingdienst raccomanda per fornire i dati di una cassa durante un controllo o al commercialista; le regole sono nella Handreiking voor een betrouwbaar afrekensysteem (Guida per un sistema di cassa affidabile) (docs/xaa).
Nel file (auditfile_kassa_<van>_tm_<tot>.xml, schema docs/xaa/XmlAuditfileAfrekensystemen3.2.xsd):
- dati anagrafici: l'attività (nome, partita IVA, indirizzo), i codici IVA, tutti i dipendenti (con ruolo e data di creazione; più
SYSTEEMper ciò che fa la cassa da sola, come webshop e collegamenti) e tutti gli articoli con il loro gruppo; - eventi: tutto il registro del periodo (accesso e uscita, cassetto aperto, chiusura giornaliera, impostazioni e prezzi modificati, storno, sconto, reso, copia scontrino, timbratura entrata/uscita ...) e l'apertura della giornata di cassa con il fondo cassa, ciascuno con il codice della Belastingdienst (18001 accesso, 18003 cassetto, 18006 modifica installazione, 18008 rapporto Z, altrimenti 18999);
- transazioni di cassa: ogni scontrino (vendita, reso e proforma, con numero di scontrino, dipendente e stato fiscale se non è in ordine) con tutte le righe (articolo, gruppo, quantità, prezzo, IVA; anche sconti, buoni regalo, intestazioni di menu e righe annullate prima del pagamento, queste con importo 0), l'IVA per aliquota, l'arrotondamento, i pagamenti per metodo di pagamento (contanti, carta, buono regalo, online; mancia a parte) e il denaro versato/prelevato dal cassetto.
Gli importi sono positivi con C (vendita, incasso) o D (reso, pagamento); gli orari sono in ora olandese con offset. Tutte le chiavi sono gli id del database senza trattini, quindi rintracciabili nella cassa.
Firma (capitolo 6 della specifica): se Optimum POS ha configurato un certificato, il file di audit viene firmato in una busta (XML Signature) e il file si chiama …_ondertekend.xml; altrimenti è un file di audit semplice, e la cassa lo segnala al download.
Pagamento a credito
I clienti aziendali (un'azienda che ogni settimana fa ritirare il pranzo, un hotel, un'associazione) acquistano a credito e pagano più tardi, con fattura. Attivalo in Impostazioni → Fatture → Pagamento a credito (solo con Fatture attivo; disattivato per impostazione predefinita).
- Clienti: in Rapporto → A credito registri i clienti aziendali con i dati per la fattura (nome, indirizzo, partita IVA, numero KvK/d'impresa, ID Peppol, e-mail), eventualmente un fido (quanto può restare aperto al massimo) e un termine di pagamento proprio (altrimenti quello delle fatture), e se la fattura viene inviata subito.
- Incasso: metodo di pagamento A credito, scegli il cliente (con quanto è già aperto e il fido). Lo scontrino è una vendita normale: fatturato e IVA in quel giorno, in Belgio normalmente tramite la scatola nera, con "A credito" sullo scontrino. La cassa crea subito la fattura (UBL/Peppol e da stampare) per l'importo ancora aperto con la data di scadenza, e la invia come impostato per le fatture (e-mail, Peppol tramite Billit/Storecove/Banqup o il proprio indirizzo). A credito è un unico importo per il resto del conto (prima si può pagare una parte in altro modo), senza mancia; un buono regalo non si può vendere a credito. Oltre il fido la cassa rifiuta.
- Pagamento: il cliente paga nel locale in contanti, con carta o con buono regalo (Rapporto → A credito → Pagamento ricevuto; anche in parte). Non è una nuova vendita né un nuovo scontrino: i contanti entrano come denaro nel cassetto (il cassetto si apre), tutto compare su X e Z sotto Ricevuto a credito. Quando tutto è pagato, la fattura risulta "pagata". Il pagamento online non è incluso.
- Bonifico: se in Dati in fattura è indicato un IBAN, questo compare sulla fattura (e nell'UBL), con "Puoi pagare anche nel locale". Se il cliente ha fatto un bonifico, registralo con Pagamento ricevuto → Bonifico (banca): non nel cassetto, ma sui rapporti X e Z sotto Ricevuto a credito. Senza IBAN compare "Da pagare nel locale". In Belgio sulla fattura e nell'UBL compare una comunicazione strutturata (+++123/4567/89012+++, ricavata dal numero fattura), così la banca la trasmette con il pagamento.
- Banca: registrare i bonifici senza ridigitarli, vedi sotto.
- Credito (denaro anticipato): in Rapporto → A credito → Versa credito versi denaro in anticipo sul conto di un cliente, in contanti (il cassetto si apre) o con carta, es. per una serie di pranzi. Alla prossima vendita a credito il credito viene scalato prima dalla fattura; se la fattura è superiore, il resto rimane aperto. Il credito compare presso il cliente (credito € ...), su X e Z sotto Ricevuto a credito (Credito versato, Con credito del cliente) e nella registrazione contabile come ricevuto in anticipo (di default 1640 / 460000). In Belgio il versamento va alla scatola nera come entrata di denaro (signMoneyInOut) (UC4100).
- Fattura riepilogativa (per cliente, disattivata di default): con Una fattura per tutti gli scontrini il cliente non riceve ancora la fattura per una vendita a credito. Lo scontrino resta aperto sul cliente (Scontrini non ancora fatturati, conta per il limite) e può già essere pagato. Con Crea fattura riepilogativa (ad es. a fine mese) tutti gli scontrini aperti finiscono su un'unica fattura, ogni riga preceduta dal numero di scontrino; ciò che è già pagato vi risulta come pagato. Un reso sul conto compare come righe negative. Disattivato = come sempre una fattura per vendita. In Belgio un'unica fattura con tutti gli scontrini nella scatola nera (signInvoice, UC4121 e UC4122).
- Belgio: se il cliente paga più tardi una vendita a credito (contanti, carta, buono regalo o bonifico), la cassa lo segnala come correzione di pagamento sullo scontrino: dal credito cliente al metodo di pagamento effettivo (signPaymentCorrection, UC4118).
- Panoramica: fatture aperte con la data di scadenza (scadute in rosso), per cliente le fatture e i pagamenti. In Impostazioni → Fatture una colonna Aperto.
- Contabilità: nel giornale la vendita a credito va a Crediti verso clienti (predefinito 1300 nei Paesi Bassi, 400000 in Belgio; impostabile in Impostazioni → Contabilità) e il pagamento va da cassa, carta, buono regalo o banca (predefinito 1050 / 550000) a crediti verso clienti. XAA: metodo di pagamento "A credito".
- Permesso: Incassare a credito e ricevere pagamenti a credito (predefinito cameriere no, manager sì). Tutto viene registrato nel registro.
- Disattivato: clienti, fatture e pagamenti vengono conservati (anche nel backup); l'interruttore è incluso nell'esportazione della configurazione, i clienti no (appartengono a un solo locale).
- Nel webshop (opzionale, disattivato di default): con Anche nel webshop i clienti aziendali ordinano online a credito (asporto e consegna). In Rapporto → A credito crei per ogni cliente un codice cliente e lo dai al cliente; la cassa conserva solo una versione cifrata, quindi lo vedi una sola volta. Nuovo codice cliente = il vecchio non funziona più; Rimuovi codice cliente = quel cliente non può più ordinare online a credito. Il webshop rispetta il fido. Nella finestra Webshop completi un ordine del genere con Completa (a credito): incasso a credito, con subito la fattura.
Banca: registrare i bonifici
In Rapporto → A credito → Banca la cassa cerca per ogni accredito la fattura a credito corrispondente:
- Importa estratto conto: il file del tuo home banking, in formato CAMT.053 (XML, tutte le banche nei Paesi Bassi e in Belgio), MT940 (.sta/.940) o CODA (.cod, Belgio). Solo accrediti; importare due volte lo stesso estratto non crea righe doppie.
- Ricerca: per numero fattura o comunicazione strutturata nella causale (sicuro), altrimenti per importo (e nome): in quel caso è una proposta. Ogni riga si può registrare (sulla proposta o su un'altra fattura), ignorare o più tardi registrare comunque. Registrare = Bonifico (banca) alla data bancaria, mai più dell'importo aperto; non nel cassetto.
- Collegamento bancario (PSD2, facoltativo): in Impostazioni → Fatture → Collegamento bancario la cassa scarica da sola ogni ora gli accrediti tramite Enable Banking (banche nei Paesi Bassi, in Belgio e nel resto d'Europa). Scegli la banca e accedi (conto aziendale); il consenso vale 180 giorni, poi va ricollegato. Scollegare revoca il consenso; gli accrediti restano. Senza contratto con Enable Banking funziona solo per i tuoi conti (restricted production).
- Registrazione automatica (disattivata per impostazione predefinita): un accredito che appartiene sicuramente a una fattura viene registrato subito dalla cassa (anche durante l'importazione).
- Permesso: registrare con Chiudere conti a credito e ricevere pagamenti a credito; impostare il collegamento bancario con Configurare attività, pagamenti e stampanti. Importazione, collegamento, scaricamento e registrazione finiscono nel registro.
- Disattivato: con il pagamento a credito disattivato la cassa non scarica nulla; gli accrediti e il collegamento restano salvati (anche nel backup).
Immagini delle telecamere nella cassa
Tutte le immagini delle telecamere del locale in un'unica pagina, senza schermo o app separati. Attivalo in Impostazioni → Attività → Schermi e utilizzo → Immagini delle telecamere nella cassa (disattivato per impostazione predefinita). Compare allora il pulsante Telecamere nella barra superiore per chi ha il permesso Vedere le immagini delle telecamere (per impostazione predefinita manager e amministratore; in Impostazioni → Permessi attivabile anche per i camerieri). Tutte le telecamere sono affiancate; tocca una telecamera per l'immagine grande. Disattivandolo, i sistemi di telecamere restano salvati.
Anche come schermo separato: Su uno schermo separato apre http://<kassaserver>:3000/camera (ad es. un monitor dietro il bancone), e Su un tablet o telefono mostra un codice QR: un dipendente lo scansiona con il proprio tablet o telefono e accede con il proprio PIN (anche lì solo con il permesso Vedere le immagini delle telecamere). Su uno schermo stretto le telecamere sono una sotto l'altra. Vedi Secondo schermo su un tablet o telefono.
L'amministratore aggiunge i sistemi di telecamere con + Sistema di telecamere, li verifica con Prova e sceglie per ogni telecamera il nome e se è nella pagina:
- Hikvision, Dahua, Axis e Reolink: una telecamera o un registratore (NVR) nella rete: l'indirizzo IP (eventualmente con
:poort), un utente (preferibilmente solo visualizzazione) e i canali, ad es.1-8o1,3,5. Accesso con Basic o Digest; https con un certificato proprio è ammesso. - Synology Surveillance Station: l'indirizzo del NAS (porta predefinita 5000, con https 5001) e un utente; Recupera telecamere recupera le telecamere con i loro nomi.
- UniFi Protect: l'indirizzo della console (https) e un account locale; Recupera telecamere.
- ONVIF: qualsiasi telecamera o registratore con ONVIF (ad es. Hanwha, Bosch, Uniview, Annke); Recupera telecamere cerca l'indirizzo della foto per ogni sorgente video.
- Indirizzo web proprio: una foto (JPEG), un flusso MJPEG o un indirizzo
rtsp://. - Pagina web del sistema di telecamere (ad es. Frigate, Blue Iris o go2rtc): si apre nella cassa con il pulsante Telecamere (o in una finestra separata).
Senza ffmpeg: la foto.
Privacy: la cassa recupera le immagini dal sistema di telecamere e si limita a inoltrarle; non viene salvato nulla (nessuna registrazione, nessuna cache). Utenti e password restano sul server e non compaiono mai sullo schermo né nel registro. Nel registro risulta chi ha guardato le telecamere. La pagina richiede le immagini con una chiave (valida 12 ore, finché il dipendente è connesso), perché un'immagine nel browser non può inviare un token. L'esportazione della configurazione include solo attivo/disattivato.
Registro delle azioni sensibili
Rapporto → Registro (manager o amministratore) mostra chi ha fatto cosa e quando.
- Scegli un periodo (oggi, ieri, questa settimana, questo/lo scorso mese o un intervallo da-a), cosa vuoi vedere (di default Azioni sensibili, oppure ad es. solo storni e sconti, o Tutto) ed eventualmente un singolo dipendente.
- In alto, per dipendente: numero e importo di storni (righe cancellate dopo l'invio dell'ordine), sconti e resi, e quante volte il cassetto è stato aperto senza vendita, denaro fuori dal cassetto, copie di scontrini, pro forma e pagamenti con carta manuali. Tocca un nome per vedere solo quel dipendente. Anche il numero di volte in cui è stato inserito un PIN errato.
- Sotto, ogni azione con ora, chi, cosa e una descrizione leggibile (ad es. "2x Cola cancellato dopo l'invio dell'ordine € 5,60 · tavolo 4 · motivo: il cliente non lo voleva").
- Scarica (CSV) per Excel.
Cosa viene registrato: storni, sconti (e loro rimozione), resi, copie di scontrini, pro forma, pagamenti con carta manuali, apertura del cassetto, entrate/uscite di denaro dal cassetto, fondo cassa, chiusura giornaliera, spostamento di righe o tavoli, chiusura di ordini vuoti, modifica di prezzo/nome/IVA dei prodotti, prodotti nuovi o eliminati, modifiche a personale e impostazioni, modifica degli orari di lavoro, accesso e uscita, PIN errati e timbrature di entrata e uscita. Con il pagamento su conto anche: clienti, vendite e pagamenti su conto, importazione degli estratti conto, il collegamento bancario e il recupero dalla banca. Con l'avviso per tempi di preparazione troppo lunghi: ordini in ritardo e scuse inviate. Con Mailchimp o Klaviyo: connessione, scelta della lista, scollegamento e disiscrizioni da lì. Con il controllo della musica: attivo/disattivato e aggiunta, modifica e rimozione delle sorgenti musicali. Con le immagini delle telecamere: chi ha guardato le telecamere (al massimo una volta ogni mezz'ora per dipendente), attivo/disattivato e i sistemi di telecamere. Con gli avvisi: ogni avviso, la sua gestione e l'attivazione e disattivazione.
Avvisi: frodi e anomalie
Impostazioni → Avvisi. Due parti, ciascuna attivabile separatamente e disattivata di default; disattivarle conserva tutti gli avvisi e le impostazioni. Può configurarli chi ha il permesso Configura avvisi (di default il manager e l'amministratore); può vedere e gestire gli avvisi chi può vedere il registro. La cassa controlla ogni 5 minuti (e con Controlla ora); non sulla cassa ombra.
Rilevamento di frodi e furti (per dipendente, per giornata lavorativa dalle 05:00), ogni regola attivabile separatamente con una propria soglia:
- storni dopo il pro forma: eliminato quando il cliente aveva già visto il conto;
- storni, sconti e resi: da un certo numero di volte, o in totale da un importo (0 = non per importo);
- cassetto aperto senza vendita (pulsante Apri cassetto);
- conto aperto da molto: ordinato ma dopo un certo numero di minuti non ancora pagato.
Avvisi per anomalie, confrontato con lo stesso giorno della settimana e la stessa ora delle ultime settimane (di default 4; i giorni senza ricavi non contano, almeno due giorni di confronto):
- ricavi finora più bassi (e/o più alti) del normale oltre il margine, solo da ricavi normali di un importo impostato;
- tempo di cucina (dall'ordine in cucina fino a pronto sullo schermo cucina) dell'ultima ora sopra il margine, o sopra un numero fisso di minuti;
- storni di oggi sopra il margine, solo da un numero minimo.
Ogni avviso arriva una sola volta (per regola, dipendente e giorno; il tempo di cucina al massimo una volta all'ora) e va a:
- la cassa: pulsante Avvisi (n) nella barra in alto con gli avvisi dell'ultimo giorno, dell'ultima settimana o degli ultimi 30 giorni; Gestito con una nota. Gli altri schermi ricevono solo un segnale senza nomi;
- notifica push con ntfy (app gratuita; ntfy.sh o un tuo server, topic ed eventualmente un token), Pushover (API-token dell'app e la user key) o Telegram (token del bot e il chat-id);
Ogni canale ha un pulsante Messaggio di prova. Token e chiavi restano sulla cassa (gli schermi vedono solo se sono compilati). Un avviso non è una prova: controlla il conto e il registro e parlane con il dipendente.
Scontrini: copia e reso (nota di credito)
Pulsante Scontrini nella barra superiore:
- Elenco degli scontrini dall'ultima chiusura giornaliera, o degli ultimi 7 giorni; uno scontrino più vecchio si cerca per numero.
- Stampa copia: lo stesso scontrino con la dicitura "COPIA" (in Belgio con il blocco FDM dello scontrino originale). Viene registrato nel registro.
- Reso / nota di credito (manager o amministratore): scegli per ogni riga quanto viene reso, un motivo e come viene rimborsato il denaro (contanti, carta, buono regalo, altro). Lo scontrino originale resta invariato: si aggiunge una nuova nota di credito con un proprio numero nel giornale (tipo di ticket
retour, importi negativi, in Belgio come NR alla FDM). Non si può mai rendere più di quanto venduto. Nei rapporti X e Z il reso conta come ricavo negativo. - Con CCV o un altro terminale: rimborsa prima sul terminale stesso e poi spunta "Già rimborsato sul terminale".
- Contanti con arrotondamento a 5 centesimi: anche l'importo da restituire viene arrotondato.
- Ritorno sul conto (vendita a credito): se lo scontrino era a credito di un cliente aziendale, scegli A credito. L'importo viene scalato dalla fattura aperta e la cassa crea subito una nota di credito (in UBL una CreditNote, tipo 381, con un riferimento alla fattura; in Belgio firmata con signInvoice, UC4122). Non si può riportare sul conto più di quanto è aperto sulla fattura; rimborsa il resto in contanti o con carta. La nota di credito compare in Fatture e la invii come una fattura.
Cassetto con sensore e cassetto per dipendente
Predefinito disattivato. Si imposta in Impostazioni → Pagamenti → Cassetto.
- Sensore: molti cassetti segnalano tramite la stampante di scontrini se sono aperti o chiusi (ESC/POS
DLE EOT 1, pin 3 della porta DK). Ciò è possibile solo con una stampante di scontrini in rete. Tocca Misura: cassetto chiuso e Misura: cassetto aperto; se c'è una differenza, applichi lo stato corretto (alto = aperto o basso = aperto). Nessuna differenza = questo cassetto (o cavo) non ha un sensore. Nessuna risposta dalla stampante = sconosciuto, mai "chiuso".- Non incassare finché il cassetto è aperto: il server della cassa rifiuta allora un nuovo incasso con "Il cassetto è ancora aperto".
- Cassetto proprio per dipendente: una stampante di scontrini può aprire due cassetti (cassetto 1 e cassetto 2). Scegli il cassetto di ogni dipendente; la cassa apre allora, per l'incasso in contanti, per denaro nel/fuori dal cassetto e per Apri cassetto, il cassetto di chi ha effettuato l'accesso. In Rapporto → Cassetto compare allora Cassetto per dipendente: fondo cassa per dipendente, contanti (senza la cassa automatica), previsto, Conta e la differenza per persona (nel registro come
ladetelling). La normale chiusura giornaliera resta invariata. - Prova cassetto 1 e Prova cassetto 2 aprono il cassetto per verificarlo.
- Apri cassetto senza vendita viene già sempre annotato (con motivo) nel registro e nel file di audit cassa (XAA), come richiesto dall'amministrazione fiscale (Belastingdienst) (eccezioni come "no sale").
Parte 3 · Amministratore
Per iniziare
Installazione. HorecaPOS si installa con il programma di installazione per il tuo sistema, disponibile nella pagina di download di OptimumPOS: Android (app), Windows (programma di installazione), macOS (installer per Mac con Apple Silicon e Intel), Linux (installer grafico, oppure il pacchetto .deb o .rpm), Raspberry Pi (installer grafico o .deb per un Raspberry Pi 3, 4 o 5 con Raspberry Pi OS a 64 bit) e Chromebook (l'app Android da Google Play). Scegli per tutti gli utenti per un server di cassa a cui si collegano i tablet e lo schermo cucina, oppure solo per me per una sola cassa su quel dispositivo. L'installer installa tutto il necessario, anche il database, e fa un backup ogni notte. Per aggiornare, installa la nuova versione: i tuoi dati restano. Il programma di installazione si avvia nella lingua del tuo computer (altrimenti in inglese); su Windows e Linux puoi scegliere un'altra lingua nella prima schermata. La cassa si avvia poi subito in quella lingua. I pacchetti .deb e .rpm e l'app Android seguono la lingua del sistema, altrimenti l'olandese.
L'amministratore configura la cassa in Impostazioni. Lì ci sono schede come Attività, Personale, Permessi, Orari di lavoro, Prodotti, Happy hour, Magazzino, Piantine sala, Pagamenti, Stampanti, Contabilità, Backup, Importa/esporta e Database. Quali schede vede anche un manager dipende dai permessi.
Database. In Impostazioni → Database (solo l'amministratore) scegli tra MySQL / MariaDB, il database integrato e PostgreSQL; nel passaggio vengono trasferiti tutti i dati (vedi Database). Se Optimum POS ha già impostato un indirizzo fisso durante l'installazione, vale quell'indirizzo e non ci sono campi da compilare. Altrimenti compili tu Server, Porta, Database, Utente e Password. La cassa li salva da sola, poi li mostra già compilati e puoi sempre modificarli con Modifica dati MySQL/MariaDB o Modifica dati PostgreSQL. Lasciare vuota la password significa: mantenere la password salvata (per lo stesso utente). L'installer e un aggiornamento non modificano DATABASE_URL né il database scelto.
Contabilità
Tutto ciò che riguarda la contabilità si trova in Impostazioni → Contabilità. Compila insieme al tuo commercialista il registro e i conti contabili. Se vuoi che la cassa registri da sola ogni giorno il fatturato giornaliero, scegli il tuo software in alto in Software di contabilità, anche Exact Online: vedi solo i software che funzionano nel paese della tua attività. Subito sotto compili i dati di quel software e colleghi. Per i software in cui accedi con login (come Exact Online, Twinfield o Xero), compila prima l'app: ID client e segreto client. Se Optimum POS ha impostato in modo fisso il software o un dato durante l'installazione, non vedi quella scelta o quel campo. Lì trovi anche una panoramica di tutti i software: quali possono essere collegati live e quali ricevono un file. Un file si crea in Rapporto → Fatturato per periodo → Esportazione contabilità: scegli il formato del tuo software, oppure UBL (Peppol), XAF o un riepilogo giornaliero. Fai sempre controllare la prima registrazione o importazione dal tuo commercialista.
Per un'attività olandese lì c'è anche File di audit cassa (XAA): l'XML Auditfile Afrekensystemen della Belastingdienst con tutti gli scontrini, le righe, i pagamenti e gli eventi della cassa nel periodo scelto. Lo consegni al tuo commercialista o, in caso di controllo, alla Belastingdienst.
Paghe e pianificazione
Se il tuo personale usa la timbratura entrata/uscita, in fondo a Impostazioni → Orari di lavoro trovi Paghe e pianificazione, in due blocchi. In Elaborazione paghe scegli il tuo software paghe o (in Belgio) il tuo segretariato sociale, e inserisci per ogni dipendente la sua matricola in quel software. Poi crei per un periodo il file con le ore lavorate e i ricavi per dipendente, e lo importi nel tuo software paghe. In Pianificazione del personale scegli il tuo sistema di pianificazione: con Deputy, Dyflexis e Shiftbase i ricavi vanno ogni ora automaticamente, con gli altri crei un file dei ricavi. Così vedi nella tua pianificazione il costo del personale accanto ai ricavi. Se lavori senza timbratura entrata/uscita, puoi comunque inviare i ricavi alla tua pianificazione: si trova allora in fondo a Impostazioni → Contabilità, sotto Ricavi alla tua pianificazione. Se Optimum POS ha impostato qualcosa in modo fisso durante l'installazione, quella scelta o quel campo non li vedi.
Backup
La cassa crea un backup automatico ogni notte, e sempre prima di un aggiornamento. In Impostazioni → Backup vedi tutti i backup (quando, da chi o automatico, dimensione) e con Crea backup ne crei uno tu. Se l'ultimo backup risale a più di due giorni fa, compare un avviso rosso: in quel caso contatta Optimum POS.
Ripristinare si fa con il pulsante Ripristina accanto a un backup. Tutto ciò che è successo dopo quel backup va perso. Devi confermarlo con una spunta e inserire di nuovo il tuo PIN. La cassa crea prima un backup di sicurezza dello stato attuale e poi disconnette tutti. In Belgio non è possibile dalla cassa (i contatori della scatola nera proseguono); lì lo fa Optimum POS.
Database
In Impostazioni → Database (solo l'amministratore) vedi dove la cassa conserva i suoi dati. In alto c'è il database attuale con programma, versione, tabelle, righe e indirizzo o cartella. Per il personale e i tablet la cassa funziona allo stesso modo con ogni database. Su Windows, macOS, Linux e Raspberry Pi scegli tra tre database:
- MySQL / MariaDB: un programma di database separato (MySQL 8.0 o successivo, MariaDB 10.6 o successivo), per esempio su un server o NAS che hai già. Tutti i dati stanno allora in normali tabelle di MySQL o MariaDB, leggibili dal tuo programma di reportistica o BI. La cassa calcola esattamente come con PostgreSQL.
- Integrato (PGlite): fa parte della cassa stessa, non devi installare nulla. La scelta migliore per la maggior parte dei locali, e il database su Android e Chromebook.
- PostgreSQL: un programma di database separato, sul PC della cassa o altrove nella rete.
Quando MySQL o MariaDB? Se il tuo locale ha già un server MySQL o MariaDB, se il tuo amministratore IT lavora con questo, o se vuoi leggere i dati nella tua reportistica, in Excel o in un programma di BI. Nel dubbio scegli l'integrato: funziona subito.
Cosa serve per MySQL o MariaDB?
- MySQL 8.0 o successivo, oppure MariaDB 10.6 o successivo, raggiungibile dal server della cassa.
- Un database proprio per la cassa (o per le casse di una catena), con il set di caratteri utf8mb4.
- Un utente del database che in quel database possa creare, modificare, rinominare ed eliminare tabelle (CREATE, ALTER, DROP, INDEX, SELECT, INSERT, UPDATE, DELETE), per esempio così:
CREATE DATABASE horecapos CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'horecapos'@'localhost' IDENTIFIED BY 'wachtwoord';
GRANT ALL PRIVILEGES ON horecapos.* TO 'horecapos'@'localhost';
Se MySQL o MariaDB gira su un altro computer, nelle ultime due righe metti l'indirizzo IP del server della cassa al posto di localhost.
Migrare a MySQL / MariaDB:
- In Indirizzo di MySQL/MariaDB compila i campi: Server (predefinito localhost), Porta (predefinita 3306), Database (predefinito horecapos), Utente e Password; lo stesso per MariaDB. Se l'indirizzo è già impostato, i campi sono già compilati; se lasci vuota la password, resta quella salvata (per lo stesso utente). La cassa salva l'indirizzo da sola; se Optimum POS ha già impostato un indirizzo fisso, vale quell'indirizzo e non ci sono campi. Se la cassa funziona già con MySQL/MariaDB, modifichi i dati in seguito con Modifica dati MySQL/MariaDB. Una connessione cifrata la configura Optimum POS per te.
- Tocca Verifica connessione: vedi il programma e la versione, oppure perché non funziona.
- Tocca Migra a MySQL/MariaDB, conferma con la spunta e inserisci il tuo PIN.
La migrazione funziona in ogni direzione tra i tre database, e tutti i dati vengono trasferiti:
- La cassa per un momento non accetta richieste (di solito meno di un minuto); poi i tablet riprendono da soli.
- Prima la cassa fa un backup dello stato attuale (in Impostazioni → Backup).
- Tutto passa nel nuovo database e la cassa conta tabella per tabella se c'è tutto esattamente.
- Solo quando tutto torna, la cassa continua sul nuovo database. I dipendenti collegati restano collegati.
Se qualcosa non riesce, non cambia nulla e la cassa continua a lavorare sul vecchio database. Il vecchio database resta com'è, quindi puoi sempre tornare indietro. I dati di cassa già presenti nel nuovo database MySQL/MariaDB o PostgreSQL vengono sostituiti. Funziona anche in Belgio: i contatori della scatola nera vengono trasferiti esattamente.
Backup e ripristino funzionano allo stesso modo con tutti e tre i database (Impostazioni → Backup). Un backup di un database si può ripristinare in qualsiasi altro, anche un backup di PostgreSQL in MySQL o MariaDB.
Cosa c'è in MySQL o MariaDB? Ogni tabella della cassa, con lo stesso nome e le stesse colonne (orari in UTC). Ogni tabella riceve in più la colonna chiave _hp_sleutel, e nelle tabelle di supporto _horecapos_stand, _horecapos_kolom, _horecapos_reeks e _horecapos_wijziging (registro delle modifiche, conservato 14 giorni) la cassa tiene lo stato, i tipi di colonna, i contatori e le modifiche. Gli altri programmi leggono i dati; scrivono solo le casse.
Come funziona: la cassa calcola in una copia di lavoro veloce sul server della cassa e scrive ogni modifica in MySQL/MariaDB nello stesso passaggio. Se non riesce, la modifica non viene eseguita e la cassa segnala un errore; tieni quindi MySQL/MariaDB raggiungibile. All'avvio la cassa legge tutto da MySQL/MariaDB.
Più casse su un database. Come con PostgreSQL, più casse possono usare lo stesso database MySQL/MariaDB, per esempio ogni locale di una catena con il proprio server di cassa. Le modifiche avvengono una dopo l'altra e ogni cassa recepisce prima quello che hanno fatto le altre, così non si perde nulla quando si modifica nello stesso momento. Se una cassa ripristina un backup o una cassa con una versione più recente aggiorna il database, le altre casse rileggono tutto da sole; aggiorna quindi tutte le casse insieme. Una cassa rimasta spenta per più di 14 giorni rilegge tutto all'avvio.
Durante l'installazione scegli anche il database: MySQL / MariaDB, integrato (consigliato) o PostgreSQL con il suo indirizzo. Se non è raggiungibile, la cassa si installa con il database integrato; potrai migrare qui in seguito. Con un aggiornamento la scelta resta.
Collegare tablet e schermi
- Su ogni tablet/cassa apri l'indirizzo del server di cassa, ad es.
http://192.168.1.20:3000, e aggiungilo come collegamento alla schermata iniziale (Chrome: Aggiungi a schermata Home). - Schermo cucina:
http://192.168.1.20:3000/keuken. - Display cliente (rivolto al cliente, facoltativo):
http://192.168.1.20:3000/klantscherm, vedi Display cliente. - Gli schermi trovano il server di cassa da soli (stesso indirizzo, porta 4000).
Schermo cliente
Uno schermo sulla cassa rivolto verso il cliente. Il cliente vede più o meno cosa è stato ordinato e, in modo molto chiaro, l'importo e come si paga. Non ha comandi: lo schermo segue solo ciò che fa la cassa. Di default disattivato; si attiva in Impostazioni → Attività → Display cliente. Su un PC cassa con due schermi la cassa lo attiva automaticamente la prima volta; se poi lo si disattiva, resta disattivato. Senza display cliente (disattivato, o non installato) tutto funziona esattamente come sempre: la cassa invia l'immagine in background e il personale non si accorge mai di un errore o di uno schermo mancante.
Cosa vede il cliente:
- Riposo (nessuno sta pagando): il nome del locale e un testo di benvenuto personalizzato (Impostazioni → Attività; vuoto = "Benvenuto").
- Ordine: i prodotti con quantità e importo (righe uguali raggruppate, un menu come una riga con i componenti in piccolo sotto, lo sconto come una riga) e il totale in grande. Con il conto diviso, sotto compare quanto già pagato. Con Impostazioni → Attività → Foto prodotti → sul display cliente compare una piccola foto accanto a ogni prodotto.
- Incasso: il metodo di pagamento (Carta, Contanti, Buono regalo), la mancia e in grande Da pagare. Contanti: quanto dà il cliente e quanto riceve di resto, appena inserito in cassa. Carta: "Segui le istruzioni sul terminale di pagamento".
- Grazie: dopo l'incasso per qualche secondo "Grazie!" con l'importo pagato (contanti: il resto per il cliente), poi di nuovo la schermata di riposo.
Collegamento, in due modi (entrambi da configurare sul dispositivo stesso):
- Secondo monitor sul PC cassa (Windows, Linux/Raspberry Pi, macOS): automatico. All'accesso e dopo l'installazione la cassa apre il display cliente a schermo intero sullo schermo più piccolo che non è quello principale (a parità di dimensioni, quello più a destra); su Windows sempre su uno schermo diverso da quello della cassa (la cassa è sul touchscreen e si apre anche da sola all'avvio). Dimensione e posizione vengono dal sistema, quindi funziona con qualsiasi formato. Senza un secondo schermo non succede nulla. Su Windows un display cliente chiuso torna da solo; su Linux e macOS il collegamento HorecaPOS display cliente nel menu lo rimette a posto. Su Windows si apre nella modalità kiosk di Chrome (o Edge): a schermo intero, senza barra del titolo e senza barra delle applicazioni (si chiude con Alt+F4). Segue la cassa sullo stesso PC senza codice di abbinamento.
- In ogni browser, una pressione prolungata non apre mai il menu del browser e non compare alcuna richiesta di tradurre la pagina.
- Cassa chiusa = display cliente chiuso. Se il software di cassa si arresta (Riavvia, un aggiornamento, la cassa arrestata o rimossa), anche il display cliente si chiude dopo poco più di 10 secondi; quando la cassa torna in funzione, riappare da solo. Su Windows si chiude anche se chiudi solo la finestra della cassa. Sotto Wayland (Linux) la cassa non può chiudere la finestra da sola.
- Display cliente chiuso per sbaglio? Su Windows riappare da solo dopo qualche secondo, purché la cassa sia aperta e il secondo schermo sia collegato.
- Sempre un solo display cliente. Su Windows il display cliente si trova solo nella modalità kiosk sul secondo schermo. Un display cliente nella finestra della cassa (ad es. ripristinato da Edge dopo un'interruzione di corrente o aperto con il pulsante nella cassa) si chiude da solo entro pochi secondi; al suo posto compare quindi il display cliente corretto.
- Nessuno connesso = solo il benvenuto. Se la cassa è sulla schermata del PIN (anche dopo un riavvio o una disconnessione), il display cliente mostra solo il testo di benvenuto, mai il conto precedente.
- Su Windows l'apertura automatica si può anche disattivare con la casella Apri display cliente automaticamente ... nel programma di installazione.
- Su Linux la cassa sposta la finestra con wmctrl (incluso nel pacchetto). Con Wayland (ad es. Raspberry Pi OS con labwc) non è possibile: sposta allora una volta tu stesso il display cliente sul secondo schermo (il browser lo ricorda) oppure scegli X11 in raspi-config. Su macOS il Mac chiede la prima volta l'autorizzazione in Accessibilità.
- A mano: Impostazioni → Locale → Display cliente → Apri display cliente (secondo monitor). In Chrome ed Edge (anche su un Chromebook) il pulsante sposta subito la finestra sul display cliente (la prima volta il browser chiede l'autorizzazione); un clic sul display cliente lo mette a schermo intero. In altri browser: trascina e premi F11.
- Cassa Android con display cliente integrato (ad es. Sunmi D2/T2) o un monitor via HDMI/USB-C: anche qui automatico. Appena l'app è installata su una cassa, il display cliente compare sul secondo schermo; collegare e scollegare funziona subito.
- Sunmi T1 mini / T2 mini con il piccolo display di testo (2 righe): l'app mostra lì automaticamente l'importo: Totale, Da pagare, in contanti Resto, dopo il pagamento Grazie! e a riposo il nome del locale. Il display cliente deve essere attivo.
- iPad (schermo operatore) con uno schermo esterno via HDMI/USB-C o AirPlay: l'app mette automaticamente il display cliente su quello schermo (predisposto; l'app iOS non è ancora uscita).
- Chromebook: come schermo operatore in Chrome il pulsante Apri display cliente (secondo monitor) funziona come sopra. Nell'app Android il display cliente compare automaticamente sul secondo schermo non appena ChromeOS passa quello schermo alle app Android; se non lo fa, usa un dispositivo separato con codice di abbinamento.
- Dispositivo separato (tablet o PC a parte accanto alla cassa): apri
http://<kassaserver>:3000/klantscherm. In basso a destra lo schermo mostra un codice di abbinamento di 6 caratteri. Inseriscilo sulla cassa in Impostazioni → Attività → Display cliente → Abbina. Disabbina riporta lo schermo al codice di abbinamento. L'abbinamento viene salvato per cassa (nel browser di quella cassa), quindi ogni cassa può avere il proprio display cliente.
Il display cliente non chiede un PIN (non c'è nulla da comandare) e mostra solo l'immagine della cassa a cui è abbinato. L'immagine è solo nella memoria del server di cassa; dopo un riavvio lo schermo resta vuoto fino alla modifica successiva. L'impostazione (attivo/disattivato e testo di benvenuto) è inclusa nel backup e in Importa/esporta (Altre impostazioni).
Scontrino digitale tramite QR (opzionale)
Predefinito disattivato. Si attiva da Impostazioni → Attività → Cucina e display cliente → Scontrino digitale (l'opzione compare quando il display cliente è attivo e salvato). Dopo il pagamento, insieme a Grazie compare un codice QR, che resta visibile 45 secondi invece di pochi secondi. L'ospite lo scansiona con il proprio telefono e vede lo scontrino, esattamente come quello cartaceo (stesso testo, per una cassa belga anche con il blocco FDM). Sul telefono può stamparlo, salvarlo come PDF o scaricarlo come file di testo.
- Passa attraverso il portale di gestione:
https://kassa.<portaal>/__bon/<kassa>/<sleutel>. La cassa deve quindi essere collegata al portale; altrimenti non compare nessun codice QR e non cambia nulla. - La chiave è casuale e impossibile da indovinare, e vale 30 giorni. Dopodiché la cassa la elimina automaticamente. Il portale non conserva nulla.
- Funziona con un secondo monitor e con un display cliente separato. Lo scontrino cartaceo e quello via e-mail continuano a funzionare normalmente.
Display cliente a riposo: presentazione (opzionale)
Predefinito disattivato. Si attiva da Impostazioni → Attività → Cucina e display cliente → Display cliente a riposo. Se sul display cliente non c'è un conto, le diapositive si alternano (per impostazione predefinita ogni 8 secondi, regolabile da 4 a 60):
- Campagne: gli happy hour (se l'happy hour è attivo), con lo sconto, i giorni e gli orari e i prodotti o le categorie; quelli in corso vengono per primi, con "Ora!".
- Prodotti in evidenza (al massimo 12, per esempio le novità del menu), con prezzo e (se le foto dei prodotti sul display cliente sono attive) la foto. Un prodotto esaurito viene saltato.
- La raccolta punti: punti per euro, il premio e le carte timbri (solo se la carta fedeltà è attiva).
- Testi personalizzati: al massimo 5, ognuno su una propria diapositiva (per esempio "Da venerdì novità: il nostro menu estivo").
Senza diapositive il display cliente mostra la schermata di benvenuto, come sempre.
Happy hour
Di default disattivato. Si attiva in Impostazioni → Attività → Usa happy hour; dopo compare la scheda Impostazioni → Happy hour.
- Per ogni happy hour: nome (compare sullo scontrino), giorni, da–a (può superare la mezzanotte, ad es. 23:00–01:00), sconto in % o un prezzo fisso, e per quali categorie di prodotti e/o singoli prodotti.
- In quella fascia oraria la cassa applica automaticamente il prezzo happy hour all'inserimento (mai più caro del normale; con un prezzo fisso le opzioni si aggiungono normalmente). Sul pulsante del prodotto compare il vecchio prezzo barrato con il nuovo prezzo e HH; nell'ordine e sullo scontrino compare il nome dell'happy hour. Ciò che è già stato inserito mantiene il suo prezzo.
- Offerta del giorno: spunta Tutto il giorno (00:00–24:00) e scegli il giorno o i giorni, ad es. spareribs a prezzo fisso ogni martedì.
- Stagione: spunta Solo in una stagione (ogni anno) e scegli dal e al (giorno e mese, ad es. dal 1 giugno al 31 agosto; si può andare oltre il capodanno, ad es. dal 1 dicembre al 28 febbraio). Fuori stagione l'happy hour non vale.
- Le modifiche finiscono nel registro.
Fasce orarie e stagioni
Disattivato per impostazione predefinita. Si attiva da Impostazioni → Attività → Fasce orarie e modalità d'ordine → Assortimento per fascia oraria e stagione; poi compare la scheda Impostazioni → Fasce orarie. Se lo disattivi, tutti i prodotti tornano sempre in vendita e le fasce orarie restano salvate.
- Per fascia oraria: nome (ad es. Colazione, Pranzo, Cena, Menu estivo), giorni, da–a (può superare la mezzanotte; Tutto il giorno = 00:00–24:00), eventualmente una stagione (ogni anno, giorno e mese), e quali categorie e/o singoli prodotti ne fanno parte.
- Prodotti e categorie che si trovano in una o più fasce orarie sono in vendita solo mentre una di quelle fasce è attiva; ciò che non è in nessuna fascia oraria è sempre in vendita. La schermata ordini mostra solo ciò che è in vendita ora e cambia da sola quando una fascia inizia o finisce; il server rifiuta il resto ("ora non in vendita, solo a Colazione").
- Il webshop mostra e applica lo stesso assortimento (al momento dell'ordine).
- Un prezzo diverso in un giorno o in una stagione è un happy hour (offerta del giorno, vedi sopra).
- Menu per sede: ogni cassa (sede) ha i propri prodotti, fasce orarie e prezzi.
- Le modifiche finiscono nel registro.
Assortimento e prezzi per modalità d'ordine
Disattivato per impostazione predefinita. Si attiva da Impostazioni → Attività → Fasce orarie e modalità d'ordine → Assortimento e prezzi per modalità d'ordine. Se lo disattivi, vale di nuovo ovunque il prezzo normale e tutto è in vendita ovunque; i prezzi inseriti restano salvati.
- In Impostazioni → Prodotti per prodotto: Prezzo da asporto e Prezzo con consegna (vuoto = il prezzo normale) e Venduto per (sul posto, asporto, consegna; almeno uno). Per una categoria anche Venduto per, per tutti i prodotti di quella categoria.
- Per un ordine da asporto o con consegna, la schermata ordini mostra il prezzo di quella modalità e solo ciò che vi si vende; il server applica quel prezzo e rifiuta il resto. Happy hour, menu e opzioni calcolano con quel prezzo.
- L'aliquota IVA per l'asporto (sul prodotto) è indipendente da questo, come sempre.
- Per asporto e consegna il webshop mostra i prezzi e i prodotti di quella scelta (cambiando, la pagina del menu si ricarica), e al tavolo quelli sul posto.
- Esportazione e importazione della configurazione (Impostazioni → Importa/esporta) includono i prezzi per modalità d'ordine, "venduto per", le fasce orarie e la stagione degli happy hour.
Menu
Di default disattivato. Si attiva in Impostazioni → Attività → Usa menu.
- Un menu è un normale prodotto (con il prezzo del menu) per cui imposti i componenti in Impostazioni → Prodotti → (prodotto) → Menu:
- fisso: sempre questo prodotto (ad es. "Bevanda: vino della casa");
- a scelta: scegli 1 (o più) da una categoria di prodotti, eventualmente limitata a determinati prodotti (ad es. "Secondo: scegli 1 tra i Secondi").
- Per ogni componente la portata (1 = subito, 2/3 = in attesa di chiamata).
- Quando inserisci il menu, scegli i piatti per ogni componente. Per ogni piatto (anche quelli fissi) puoi scegliere le opzioni come per un prodotto singolo (cottura, formaggio extra; le opzioni obbligatorie vanno scelte) e una nota. Il sovrapprezzo delle opzioni si aggiunge al prezzo del menu. Il menu compare come una riga con sotto i piatti (e le loro opzioni).
- I piatti vanno a cucina/bar come righe separate (comanda e schermo cucina), ciascuno nella propria portata. La riga del menu stessa no.
- Ai fini dell'IVA il prezzo del menu viene ripartito tra i componenti in proporzione al loro prezzo normale, così cibo e bevande hanno ciascuno l'aliquota giusta. Sullo scontrino compare il menu con il prezzo totale e sotto i piatti.
- Se il menu stesso ha delle opzioni (ad es. formato), le scegli in alto nella finestra del menu. Compaiono accanto alla riga del menu sullo scontrino e, accanto a ogni piatto del menu, sulla comanda e sullo schermo cucina come "(menu)".
- Rimozione/storno avviene per menu intero (tocca la riga del menu).
- Dividi / sposta: scegli la riga del menu; i piatti la seguono. Con 2× lo stesso menu puoi anche spostarne 1 (intestazione e piatti vengono divisi).
- Senza connessione puoi inserire i menu normalmente; vengono salvati sul tablet e inviati appena la connessione torna (come i prodotti singoli).
- L'happy hour può valere anche per un menu.
Ricette e costo (Apicbase)
Integrazione con Apicbase (ricette, costo, magazzino e acquisti) tramite la Generic POS API di Apicbase (disattivata di default, ogni parte si attiva o disattiva separatamente). Si imposta in Impostazioni → Ricette (permesso Imposta attività, pagamenti e stampanti). La cassa comunica direttamente con Apicbase (solo traffico in uscita, nessun portale necessario).
- Connetti (tutto da compilare a cura dell'amministratore), in uno di tre modi:
- Incolla token: in Apicbase Library Settings → API Settings → New token → Service Account Token (scope accounts, library, sales); incollare l'access token e il refresh token;
- Accedi con l'API-app propria dell'attività (client-id e client secret da API Settings): Accedi ad Apicbase e incollare il codice che Apicbase mostra dopo;
- Un token scaduto (dopo 7 giorni) viene rinnovato automaticamente dalla cassa con il refresh token.
- Outlet: Recupera outlet e scegliere l'outlet di questa attività. La cassa vi imposta il POS su Generic POS API con un proprio location-id (modificabile; predefinito
HORECAPOS-…, unico per cassa). - Attivo, con caselle di spunta:
- Prodotti, gruppi e opzioni ad Apicbase: categorie, prodotti (PLU = il numero PLU del prodotto, altrimenti il codice, altrimenti l'id), opzioni come modifier, con prezzo e IVA. Automaticamente dopo ogni modifica (dopo un minuto) e ogni giorno. In Apicbase colleghi poi ogni prodotto della cassa a una ricetta;
- Ogni scontrino incassato ad Apicbase: prima i più vecchi, al massimo 100 per volta, entro un quarto d'ora dall'incasso (e ogni 5 minuti). Lo sconto viene ripartito sulle righe; importi liberi, supplemento monouso e cauzione figurano come prodotto a sé in Apicbase; prodotti pesati come 1 pezzo con l'importo totale. Se non riesce, la cassa si ferma (Apicbase vuole gli scontrini in ordine) e riprova più tardi: l'incasso non ne risente. All'attivazione scegli da quale giorno (predefinito da adesso);
- Recupera il costo per porzione (ogni 6 ore): per ogni ricetta collegata il food cost (ingredienti e scarti), con costi del personale, il prezzo di vendita e il margine secondo Apicbase. Calcolato con il fornitore più economico, l'ultimo prezzo ordinato o il valore medio di magazzino;
- Riprendi il prezzo di vendita da Apicbase (disattivato per impostazione predefinita): impostare il prezzo di vendita dei prodotti collegati nella cassa (annotato nel registro).
- In fondo: Costo per prodotto con costo, costo con personale, prezzo in cassa, costo % e margine. Pulsanti Invia catalogo ora, Invia scontrini ora e Recupera costi ora.
Codice: apps/pos-server/src/lib/apicbase.ts, routes/apicbase.ts; schermata Apicbase.tsx. Registro: Apicbase. Requisito: il modulo API di Apicbase. Per l'app di Pin Voordeel per tutti i clienti: partnership e certificazione con Apicbase (vedi il backlog). Documentazione: https://developers.apicbase.com/docs/generic-pos-api-guide
Software alberghiero: addebito in camera
Per un ristorante o un bar di un hotel: addebitare il conto nella camera di un ospite. Disattivato di default: Impostazioni → Hotel (permesso Configurare attività, pagamenti e stampanti).
- Un unico elenco con tutti i software alberghieri (Software alberghiero dell'hotel). Collegamenti integrati:
- Mews (Connector API: client token e access token, il servizio del ristorante e, per aliquota IVA, il codice IVA di Mews), apaleo (app propria con client ID e client secret, l'ID della struttura; per aliquota IVA eventualmente il tipo di IVA) e Cloudbeds (chiave API e ID della struttura), ciascuno con un ambiente di prova e uno reale;
- Oracle OPERA Cloud (OHIP), protel (protel I/O), RoomRaccoon, Booking Experts, Amadeus (XMLPOS), VIPS, Stayntouch, Clock PMS+, Guestline (Rezlynx), Hotelogix, eviivo, Little Hotelier, Shiji e Infor HMS (Databridge). Dopo la scelta compaiono esattamente i campi di quel software alberghiero (chiavi, ID hotel, eventualmente l'indirizzo della loro API e, per aliquota IVA, il loro codice), con una breve spiegazione di cosa richiedere al fornitore. Questi collegamenti sono realizzati secondo la documentazione dei fornitori; fate confermare il collegamento dal fornitore e provate prima con Verifica connessione e un solo scontrino;
- una demo (quattro suite, camere da 4 a 7) per provare;
- Sirvoy, come collegamento parziale e solo con Sirvoy Pro. Sirvoy non ha un'API con cui una cassa possa aggiungere qualcosa a una prenotazione, nemmeno tramite file (l'importazione CSV crea solo nuove prenotazioni). Così la cassa conosce gli ospiti (camera, nome, arrivo, partenza): la ricerca in Addebita in camera e il self-service al chiosco e nel webshop funzionano normalmente. Lo scontrino non arriva da solo in Sirvoy: dopo l'incasso compare in Impostazioni → Hotel sotto Da inserire in Sirvoy, con camera, ospite, numero dello scontrino e importo per aliquota IVA. L'hotel lo aggiunge a mano come extra alla prenotazione e clicca su Inserito (per annullare Non ancora). Serve:
- preferibilmente una cassa collegata al portale di gestione: l'indirizzo passa allora dal portale (
https://<portaal>/hotel/<kassa-id>/sirvoy?sleutel=...) e in hotel non serve aprire alcuna porta. Altrimenti la cassa stessa deve essere raggiungibile da internet tramite https (dominio proprio con certificato o port forwarding; Sirvoy richiede TLS 1.2 o superiore) e inserisci quell'indirizzo; - L'indirizzo è visibile una sola volta; la cassa conserva solo l'hash. Creare un nuovo indirizzo = quello vecchio non funziona più;
- preferibilmente una cassa collegata al portale di gestione: l'indirizzo passa allora dal portale (
Sirvoy invia qualcosa solo quando una prenotazione cambia: le prenotazioni precedenti al collegamento la cassa le conosce solo dopo una modifica in Sirvoy. I messaggi possono arrivare in ordine sparso; un messaggio più vecchio (generatedAt) di ciò che la cassa ha già viene ignorato. In hotel = non annullata e senza check-out, con check-in fatto o arrivo oggi o prima, e partenza oggi o dopo. Verifica connessione indica quante prenotazioni sono arrivate.
Tutti i software alberghieri sono in vendita nei Paesi Bassi e/o in Belgio. Verifica connessione controlla i dati. Codice per collegamento: apps/pos-server/src/lib/pms/<naam>.ts.
- Self-service (disattivato di default): l'ospite dell'hotel addebita da solo l'ordine sulla propria camera, al chiosco e/o nel webshop (asporto e consegna, non per ordini al tavolo). Inserisce numero di camera e cognome; la cassa verifica con il software alberghiero se quell'ospite alloggia ora in quella camera. Con un massimo per ordine (di default € 150), e dopo 5 tentativi falliti in un quarto d'ora deve prima passare alla reception. Il messaggio non rivela mai chi alloggia in una camera.
- Incasso: con il collegamento attivo c'è il metodo di pagamento Addebita in camera. Cerca l'ospite per nome o numero di camera (solo ospiti che soggiornano ora in hotel) e tocca Addebita in camera .... La cassa registra lo scontrino per aliquota IVA sul conto alberghiero dell'ospite; l'ospite paga al check-out.
- Belgio: se l'ordine è già registrato al tavolo presso la scatola nera, passa prima dal tavolo alla camera (signCostCenterChange verso ROOM, UC4101); lo scontrino va alla scatola nera come credito camera (ROOM_CREDIT).
- Se la registrazione nel software alberghiero non riesce (niente internet), la vendita c'è comunque e la registrazione compare come Non riuscito in Impostazioni → Hotel, con Riprova.
- Rapporti e contabilità: Addebita in camera (hotel) è un metodo di pagamento a sé sul rapporto X e Z, nel riepilogo giornaliero e nel file di audit (XAA).
Codice: apps/pos-server/src/lib/hotel.ts, routes/hotel.ts, i collegamenti in lib/pms/, catalogo packages/shared/src/hotelcatalogus.ts; schermata Hotel.tsx. Registro: Hotel. I segreti (token) sono solo nel database, mai sullo schermo.
Gestione vini con Vinify
Impostazioni → Gestione vini (disattivato di default; disattivandolo si conserva tutto). Vinify gestisce la cantina, la carta dei vini e il magazzino ed è la fonte principale dei vini. Secondo i requisiti POS di Vinify, la cassa offre un'API con cui Vinify può:
Autenticarsi, con tutti e tre i metodi previsti da Vinify (l'amministratore attiva quali):
- ID API e chiave API (
X-Api-IdeX-Api-Key, oppureAuthorization: Bearer <id>:<sleutel>); - Chiave API e secret API con una firma:
X-Api-Key,X-TimestampeX-Signature= hex HMAC-SHA256(secret,<timestamp>\n<METHODE>\n<pad met query>\n<sha256 van de body>), vecchia al massimo 5 minuti.
La chiave e il secret li crea la cassa (mostrati una volta); le schermate mostrano solo se sono compilati. Raggiungibile tramite il portale su https://<portaal>/vinify/<kassa-id>/... (nessuna porta aperta nel locale; l'indirizzo è in Impostazioni → Gestione vini). Quali prodotti sono vino: ciò che crea Vinify, più i gruppi che spunti. Se Vinify fornisce un indirizzo a cui inviare le vendite, la cassa le invia anche da sé (push, con un token): dopo ogni scontrino incassato e ogni 5 minuti ciò che non è ancora riuscito. Vinify attiva l'integrazione con HorecaPOS (hello@vinify.no). Tutto nel registro. Da non confondere con Vinify.nl, un'enoteca online: si trova tra i fornitori (Ordinare dai fornitori).
Inserimento rapido dell'indirizzo con CAP e numero civico
Si attiva in Impostazioni → Attività → Inserimento rapido dell'indirizzo (disattivato di default; solo per un'attività nei Paesi Bassi). Inserisci CAP e numero civico (anche con lettera o aggiunta, es. 12A o 12-1) e tocca Cerca indirizzo: via, numero civico, CAP e città vengono compilati. Se a quel numero ci sono più indirizzi (12, 12A, 12B), scegli quello giusto. Dopo puoi ancora modificare tutto tu.
- Nei dati dell'attività (Impostazioni → Attività, sopra l'indirizzo).
- Per un cliente della carta fedeltà: alla cassa per un nuovo cliente e in Rapporto → Clienti. Per questo i clienti hanno un indirizzo (facoltativo): via e numero civico, CAP e città.
- Gli indirizzi arrivano dal Locatieserver di PDOK, gratuito (gli indirizzi ufficiali dei Paesi Bassi, BAG): non servono account né chiave, ma serve internet. Senza internet o per un indirizzo belga, scrivi semplicemente l'indirizzo tu.
Avviso quando c'è una nuova versione
Si attiva in Impostazioni → Attività → Avviso aggiornamenti (disattivato di default).
- Cassa aggiornata: se il server di cassa è stato aggiornato mentre un tablet ha ancora aperte le vecchie schermate, in alto compare "La cassa è stata aggiornata (versione …)" con Aggiorna. Il tablet controlla ogni 5 minuti, quando lo schermo torna visibile e dopo un riavvio del server.
- Aggiornamento disponibile: se la cassa è collegata al portale di gestione (
PORTAAL_URL/PORTAAL_SLEUTEL) e lì è compilatoNIEUWSTE_VERSIE, chi può gestire le impostazioni vede "Aggiornamento disponibile: versione …" (con la spiegazione daUPDATE_NOTITIE). Più tardi nasconde l'avviso su quel tablet finché non esce una versione ancora più recente. L'aggiornamento si fa come sempre conscripts\windows\update.cmd(vedi Aggiornare).
Piattaforme di prenotazione
Le prenotazioni di TheFork, Formitable, Zenchef, Resengo (solo Belgio), OpenTable (solo Paesi Bassi), PlanPanther, RestoManager e Aqqo (solo Paesi Bassi) arrivano automaticamente nella cassa e sulla piantina. Si attiva in Impostazioni → Piattaforme di prenotazione (disattivato di default). Solo se le Prenotazioni sono attive.
- Paese del locale: puoi scegliere solo piattaforme che funzionano nel paese del locale (Resengo solo in Belgio, OpenTable e Aqqo solo nei Paesi Bassi). Anche il server lo controlla.
- Più piattaforme contemporaneamente: puoi collegare più piattaforme insieme, ad esempio TheFork e Formitable. Due piattaforme non ricevono mai lo stesso tavolo nella stessa fascia oraria; la seconda prenotazione arriva allora senza tavolo.
- + Collega piattaforma: scegli la piattaforma e inserisci i dati. I segreti (Client secret, chiave di callback) non compaiono mai nella panoramica; lasciare vuoto = mantenere, Cancella = rimuovere.
- TheFork (API B2B pubblica): Restaurant-UUID, Client ID e Client Secret (da richiedere a TheFork). Se la cassa annulla, annulla anche su TheFork.
- Formitable, Zenchef, Resengo, OpenTable, PlanPanther, RestoManager, Aqqo: la loro API è solo per partner o non è pubblica (PlanPanther, RestoManager e Aqqo: un'integrazione cassa si concorda con loro). Gli eventi Formitable (
booking.created,.changed,.canceled,.checkin,.checkout) vengono riconosciuti. - Sulla piantina: se un tavolo nella cassa ha lo stesso nome del tavolo della piattaforma ed è libero in quella fascia oraria, la prenotazione va su quel tavolo; altrimenti senza tavolo (sceglilo all'arrivo). Una prenotazione che arriva di nuovo viene aggiornata, non duplicata. Nella panoramica compare "tramite TheFork".
- Stato: se la piattaforma annulla o segnala un no-show, la cassa lo recepisce. Ciò che nella cassa è già arrivato resta arrivato.
- Notifica di ritorno (no-show di ritorno): inserisci un URL di callback (per esempio del tuo servizio di integrazione). La cassa invia ogni modifica fatta in cassa (arrivato, no-show, annullato, pagato con importo) come JSON:
{ platform, id, status, statusEn, bedrag, valuta, tafel, tijdstip, gemeldOp }(importo in centesimi, solo se pagato), conAuthorization: Bearer <terugmeld-sleutel>se l'hai inserita. Se non riesce, la cassa riprova ogni minuto e l'errore compare presso la piattaforma. Ciò che proviene dalla piattaforma stessa non viene rinviato. - Prenotazione di prova: crea una prenotazione come la invierebbe la piattaforma.
- Elimina: il collegamento e la chiave vengono rimossi; le prenotazioni restano.
- Tutte le modifiche sono nel registro (senza segreti).
Programmi fedeltà e recensioni
Due interruttori separati in Impostazioni → Fedeltà e recensioni (entrambi disattivati di default, e allora non se ne vede nulla da nessuna parte). Se li disattivi, le impostazioni e tutto ciò che è già avvenuto restano salvati.
Programma fedeltà di un'altra piattaforma: il cliente accumula punti con Joyn (Belgio) e/o Piggy (Leat; Paesi Bassi e Belgio). È indipendente dalla carta fedeltà della cassa, che può restare attiva insieme.
- Più insieme: in Belgio Piggy e Joyn possono essere attivi insieme, ciascuno con i propri dati (scegli la piattaforma, compila, Salva; Modifica ed Elimina per piattaforma). Il cliente riceve per ogni programma un QR code proprio sullo scontrino, un link proprio nello scontrino inviato via e-mail e un pulsante proprio nella webshop, e accumula una volta per ordine per ogni programma. Ciò che era già configurato continua semplicemente a funzionare.
- Codice QR sullo scontrino: dopo il pagamento, sotto lo scontrino compare un codice QR con "Scansiona e accumula punti con ...". Nello scontrino via e-mail c'è un link, e nel webshop (asporto e consegna) un pulsante nella pagina dell'ordine e un link nell'e-mail di conferma. Un ordine dà punti una sola volta: scontrino, e-mail e webshop usano lo stesso codice univoco (il numero dell'ordine). Puoi disattivare "Codice QR sullo scontrino stampato"; l'e-mail e il webshop ricevono comunque il link.
- Piggy, modalità "Codice QR e link": inserisci l'indirizzo del tuo portale clienti Piggy, lo Shop UUID e l'Account secret (Piggy Business Dashboard). Funziona senza internet: la cassa crea il link da sé.
- Piggy, modalità "Accredita subito": inserisci anche un personal access token (Piggy → Marketplace → Private App). Se la cassa invia lo scontrino via e-mail e il cliente con quell'indirizzo è già iscritto, la cassa accredita subito i punti; sullo scontrino compare allora "Punti accreditati su Piggy". La cassa non crea mai un nuovo iscritto; nessun iscritto (o nessun indirizzo e-mail) = il codice QR.
- Joyn, modalità "Codice QR e link": con la partner key, la shop reference e lo shared secret di Joyn (da richiedere a api-integration@joyn.be). Funziona senza internet. Il codice QR è valido 2 ore.
- Joyn, modalità "Tramite l'API": con la shop API key (attiva il collegamento nel portale esercenti di Joyn). Al pagamento la cassa richiede a Joyn un codice punti. Il riscatto avviene come sempre sul Joyn-iPad.
- Crea link di esempio: verifica che i dati siano corretti (un link da € 10; aprilo solo per vederlo).
- Si possono scegliere solo le piattaforme del paese dell'attività; i segreti sono salvati solo nel database e non compaiono mai sullo schermo (lasciare vuoto = mantenere).
Chiedi recensioni: dopo la visita, una sola e-mail con un pulsante per Google e/o Trustpilot.
- Qualche ora dopo (impostabile, predefinito 3) il cliente riceve l'e-mail, nella lingua dello scontrino.
- Webshop: per asporto e consegna è il webshop stesso a inviare l'e-mail, qualche ora dopo che l'ordine è stato chiuso in cassa, nella lingua del cliente.
- Google: incolla il link per le recensioni dal tuo Profilo dell'attività (Google → il tuo Profilo dell'attività → Chiedi recensioni,
https://g.page/r/.../review) o inserisci il Place ID. - Trustpilot: inserisci il dominio della tua attività (il pulsante porta a
trustpilot.com/evaluate/<domein>). Se hai su Trustpilot un indirizzo di invito (Automatic Feedback Service,...@invite.trustpilot.com), inseriscilo pure: l'e-mail va allora in copia nascosta (Ccn) a Trustpilot, con nome, indirizzo e-mail e numero dello scontrino invisibili, e Trustpilot invia l'invito da sé (allora nessun pulsante Trustpilot proprio). Solo Trustpilot con indirizzo di invito: la cassa invia l'e-mail solo per Trustpilot. - Non troppo spesso: lo stesso cliente (indirizzo e-mail) riceve al massimo una richiesta per periodo (predefinito 90 giorni; 0 = ogni volta). Per questo la cassa conserva solo un hash dell'indirizzo; l'indirizzo e-mail stesso viene cancellato appena l'e-mail è inviata (se non riesce, dopo tre tentativi, e altrimenti dopo 14 giorni).
- Codice QR sullo scontrino (facoltativo): anche un codice QR per una recensione sotto lo scontrino stampato.
- Anteprima dell'e-mail e Cancella e-mail in attesa (gli indirizzi vengono allora cancellati subito). Il registro mostra review_gevraagd con a***@dominio.it.
- Google e Trustpilot vietano di premiare una recensione e di chiederla solo ai clienti soddisfatti ("review gating"). Per questo la cassa chiede a tutti allo stesso modo e non dà nulla in cambio di una recensione.
- Leggere e rispondere alle recensioni dalla cassa: vedi Gestione recensioni qui sotto.
Collegamento con Mailchimp e Klaviyo
I tuoi clienti della carta fedeltà nel tuo programma di e-mail: in Impostazioni → Attività → Mailchimp e Klaviyo (sotto il marketing via SMS ed e-mail). Non c'è un interruttore: senza un collegamento con una lista scelta non succede nulla.
- Connetti: con una chiave API (Mailchimp: Profiel → Extra → API keys; Klaviyo: una chiave privata
pk_…con permessi di scrittura per Lists, Profiles, Subscriptions, Events, Campaigns e Templates). Il segreto client e la chiave non vengono mai più mostrati (lasciare vuoto = mantenere). Poi scegli la lista (Mailchimp: audience). - Clienti: chi ha dato il consenso alle e-mail va nella lista (iscritto), con nome, cognome, telefono, compleanno e punti (Mailchimp: campo
PUNTEN, creato dalla cassa stessa; Klaviyo: proprietàpunten). Consenso revocato, indirizzo e-mail modificato o cliente eliminato: disiscritto. Viene reinviato solo ciò che è cambiato. Con un collegamento, la cassa (e la casella "offerte" nel webshop) chiede anche ai nuovi clienti il consenso alle e-mail, modificabile in Rapporto → Clienti, anche senza l'e-mail marketing integrato. - Disiscrizione: chi si disiscrive in Mailchimp o Klaviyo non ha più il consenso alle e-mail neanche nella cassa (registro: "disiscritto in Mailchimp"). Chi si è disiscritto da solo non viene reiscritto dalla cassa.
- Ordini: ogni scontrino pagato di un cliente nella lista viene inviato come evento (Mailchimp:
bestelling, con importo, numero di scontrino e quantità; Klaviyo:Placed Order, con il valore in euro). Così crei e-mail automatiche nel tuo programma di e-mail, ad es. dopo il primo ordine o quando qualcuno non viene da un mese. Gli scontrini precedenti alla scelta della lista non vengono inviati. - Campagne: in Rapporto → Marketing puoi inviare una campagna anche tramite Mailchimp o Klaviyo (vedi Marketing via SMS ed e-mail); la cassa crea lì la campagna e la invia.
- Aggiornamento: ogni 5 minuti, oppure con Aggiorna ora. Scollegamento: rimosso dalla cassa; in Mailchimp e Klaviyo resta tutto. Le chiavi sono nel database (incluse nel backup, non nell'esportazione della configurazione).
Codice: lib/mailinglijst.ts, routes/mailinglijst.ts e MailingKoppelingen.tsx.
BI ed esportazione dati
I dati di vendita verso Power BI, Looker Studio, Excel, Google Sheets, Tableau, Qlik Sense, Metabase, un servizio BI (ad esempio YourBI, BI4Horeca o Moore DRV) o un tuo data warehouse. Si attiva in Impostazioni → BI ed esportazione dati (disattivato di default). Sola lettura: tramite un collegamento non si può modificare nulla nella cassa. Nessun dato degli ospiti.
- Dati: scontrini (anche note di credito), prodotti venduti (righe dello scontrino), pagamenti, fatturato per giorno, fatturato per ora, storni, prodotti, dipendenti (senza PIN) e ore lavorate. Importi in euro con il punto come separatore decimale, orari nel fuso orario del locale.
- + Collegamento: scegli il software e la modalità. Ogni software supporta una o più modalità; puoi avere più collegamenti contemporaneamente (anche per lo stesso software).
- Il software recupera da solo (API): la cassa fornisce una sola volta una chiave di sola lettura. Periodo con
?van=&tot=(AAAA-MM-GG) o un indirizzo fisso con?periode=(vandaag, gisteren, 7d, 30d, 90d, 365d, week, maand, vorigemaand, jaar); al massimo 366 giorni, al massimo 200.000 righe. La chiave inAuthorization: Bearer,X-Sleutelo?sleutel=. - Tramite il portale: se la cassa è collegata al portale clienti, lo stesso indirizzo funziona anche dall’esterno del locale, senza aprire una porta:
https://<portaal>/bi/<kassa-id>/<gegevens>?periode=90d&formaat=csv&sleutel=.... Così il servizio Power BI lo aggiorna secondo la pianificazione (senza gateway) e Google Sheets può recuperarlo con=IMPORTDATA("...")(anche come origine per Looker Studio). La cassa mostra l’indirizzo nel collegamento. - Panoramica della catena tramite il portale clienti (più locali): un solo indirizzo e una sola chiave per tutte le tue casse insieme. Su ogni cassa che deve partecipare attiva Panoramica della catena tramite il portale clienti (sotto l'interruttore BI) e crea una chiave nel portale clienti in Le mie casse → BI per tutti i tuoi locali. Poi:
https://<portaal>/bi/keten/<gegevens>?periode=90d&formaat=csv&sleutel=hpk_.... Il portale recupera i dati da ogni cassa e li unisce, conkassaIdezaaksu ogni riga. Le casse offline o che non partecipano compaiono inontbrekend(JSON) e nell'intestazioneX-Ontbrekend. La cassa stessa non ha bisogno di una propria chiave per questo; disattivandolo sulla cassa o nel portale clienti si interrompe. - Con un token, questo viene inviato come
Authorization: Bearere c’è una firma inX-HorecaPOS-Handtekening(sha256=HMAC del contenuto). Se non riesce, la cassa riprova ogni minuto; nulla viene inviato due volte. Con a partire dal invia anche scontrini precedenti. - La cassa fornisce file: ogni giorno (a un orario, per il giorno precedente; i giorni mancati vengono recuperati) o ogni ora (oggi fino ad ora), come CSV (virgola, o punto e virgola per Excel olandese) o JSON, verso una cartella sul computer di cassa (ad esempio una cartella OneDrive o SharePoint per Power BI o Excel), un server FTP(S) o SFTP o per e-mail. Nomi dei file:
horecapos_<gegevens>_<datum>.csv. - Invia prova (push) e Esporta ora (file) nel collegamento.
- Scarica tu stesso: scegli dati, periodo e formato.
- Modello Power BI (
.pbit): un report pronto per Power BI Desktop, con Scarica modello Power BI in BI ed esportazione dati. Crea prima una connessione API (Power BI). Nel modello: una tabella per set di dati con i tipi corretti, un calendario (anno, mese, settimana, giorno della settimana), relazioni (data → calendario, righe scontrino → prodotti, ore lavorate → dipendenti) e misure (incasso IVA inclusa ed esclusa, IVA, mance, scontrini, ospiti, media per scontrino e per ospite, quantità venduta, incasso prodotti, pagato, storni, ore lavorate, incasso per ora lavorata). Tre pagine: Panoramica (cifre chiave, incasso per giorno, giorno della settimana e ora, metodi di pagamento), Prodotti (per gruppo e per prodotto) e Personale (ore e incasso per dipendente). Tramite il portale, il servizio Power BI lo aggiorna anche secondo una pianificazione. - I segreti (token, password, chiave) non compaiono mai nella panoramica; lasciare vuoto = mantenere, Cancella = rimuovere. Tutto viene registrato nel registro (senza segreti).
Paghe e pianificazione
Con la timbratura entrata/uscita attiva (Impostazioni → Attività) trovi in fondo a Impostazioni → Orari di lavoro Paghe e pianificazione (permesso Gestire le impostazioni), in due blocchi separati. Se la timbratura è disattivata, non ci sono ore: allora c'è solo il blocco Pianificazione del personale (i ricavi, live o come file dei ricavi) in fondo a Impostazioni → Contabilità, sotto l'intestazione Ricavi alla tua pianificazione:
- Elaborazione paghe (payroll): scegli il software paghe o (Belgio) il segretariato sociale, compila i relativi campi e per ogni dipendente la sua matricola in quel software. Poi crei per un periodo il file con le ore lavorate (turni chiusi, per dipendente per giorno di timbratura in entrata) e i ricavi per dipendente (IVA esclusa, ciò che lui/lei ha incassato): pronto all'uso per Loket.nl (Variabele gegevens, totale per dipendente nel periodo, riga di intestazione
aanslnr;persnr;ploeg;<looncomponent>) e SD Worx Belgio (Tijdsregistratie, posizioni fisse, per dipendente per giorno), altrimenti l'elenco ore (CSV: Data; Matricola; Nome; Ore; Ricavi IVA esclusa). I dipendenti senza matricola non entrano nel file di Loket o SD Worx; la cassa segnala chi sono. - Pianificazione del personale (WFM): scegli il sistema di pianificazione. Un nuovo invio sovrascrive. Inoltre l'elenco ricavi (CSV per giorno e ora, IVA esclusa e inclusa) e per Strobbo il file Excel per Importeer omzet.
- Solo i software che funzionano nel paese dell'attività, per gruppo e in ordine alfabetico; il server rifiuta un software di un altro paese (400).
- Chiavi e token non vengono mai mostrati sullo schermo.
- Riguarda la contabilità: il costo del personale lo registra il software paghe in contabilità, i ricavi li registra la cassa (Impostazioni → Contabilità). AFAS Payroll ed Exact Online Loon si trovano nello stesso ambiente della contabilità di AFAS ed Exact.
- Sulla copia della cassa nel portale non è possibile (lo fa la cassa nel locale).
- Per alcuni software l'API non è pubblica o è riservata ai partner (tra cui Loket, Nmbrs, Nostradamus, Employes, Shyfter, Planday, Eitje): sono indicati su richiesta; fino ad allora il file. Il tracciato di SD Worx e Strobbo proviene dalla loro documentazione: fai verificare la prima importazione.
| Software | NL | BE | Live | File | Nota |
|---|---|---|---|---|---|
| Software paghe e centri elaborazione paghe | |||||
| ADP | ✓ | ✓ | su richiesta | Elenco ore per dipendente e giorno (CSV) | Collegamento tramite ADP (su richiesta); fino ad allora l'elenco ore per dipendente e giorno. |
| AFAS Payroll | ✓ | – | su richiesta | Elenco ore per dipendente e giorno (CSV) | Paghe in AFAS Profit (stesso ambiente della contabilità in AFAS); collegamento su richiesta, fino ad allora l'elenco ore. |
| BCS HR | ✓ | – | su richiesta | Elenco ore per dipendente e giorno (CSV) | Collegamento tramite BCS (su richiesta); fino ad allora l'elenco ore. |
| Buddee | ✓ | – | su richiesta | Elenco ore per dipendente e giorno (CSV) | Software HR e paghe; collegamento su richiesta, fino ad allora l'elenco ore per dipendente e giorno. |
| Employes | ✓ | – | su richiesta | Elenco ore per dipendente e giorno (CSV) | Employes ha un'API per le ore lavorate (token del cliente); il collegamento seguirà dopo un accordo con Employes. Fino ad allora l'elenco ore. |
| Exact Online Loon | ✓ | – | su richiesta | Elenco ore per dipendente e giorno (CSV) | Paghe in Exact Online (stesso ambiente della contabilità in Exact); collegamento su richiesta, fino ad allora l'elenco ore. |
| Humanwave | ✓ | – | su richiesta | Elenco ore per dipendente e giorno (CSV) | Collegamento tramite Humanwave (su richiesta); fino ad allora l'elenco ore. |
| Loket.nl | ✓ | – | su richiesta | Loket.nl Variabele gegevens (CSV), Elenco ore per dipendente e giorno (CSV) | File per Werkgever → Collectieve mutaties → Importeren → Variabele gegevens (ore per dipendente nel periodo). Live tramite l'API di Loket dopo la registrazione presso Loket. |
| Nmbrs | ✓ | – | su richiesta | Elenco ore per dipendente e giorno (CSV) | Elenco ore per dipendente e giorno, da riprendere in Nmbrs. Live tramite l'API di Nmbrs dopo la registrazione di un'app presso Nmbrs. |
| Salar (Van Winckel) | ✓ | – | – | Elenco ore per dipendente e giorno (CSV) | Elenco ore per dipendente e giorno per lo studio di elaborazione paghe; il formato di importazione di Salar non è pubblico. |
| Segretariati sociali | |||||
| Acerta | – | ✓ | su richiesta | Elenco ore per dipendente e giorno (CSV) | Segretariato sociale: il tracciato del file delle prestazioni lo ricevi da Acerta; fino ad allora l'elenco ore. |
| Group S | – | ✓ | su richiesta | Elenco ore per dipendente e giorno (CSV) | Segretariato sociale: il tracciato del file delle prestazioni lo ricevi da Group S; fino ad allora l'elenco ore. |
| Liantis | – | ✓ | su richiesta | Elenco ore per dipendente e giorno (CSV) | Segretariato sociale con un'API che Liantis rilascia per ogni azienda; fino ad allora l'elenco ore. |
| Partena Professional | – | ✓ | su richiesta | Elenco ore per dipendente e giorno (CSV) | Segretariato sociale: il tracciato del file delle prestazioni lo ricevi da Partena; fino ad allora l'elenco ore. |
| SD Worx | ✓ | ✓ | – | SD Worx Tijdsregistratie (TXT), Elenco ore per dipendente e giorno (CSV) | Belgio: file Tijdsregistratie (posizioni fisse, per dipendente per giorno) per "Tijdsregistratie importeren". Paesi Bassi: l'elenco ore. |
| Securex | – | ✓ | su richiesta | Elenco ore per dipendente e giorno (CSV) | Segretariato sociale: i collegamenti passano tramite partner; fino ad allora l'elenco ore. |
| Pianificazione e rilevazione ore | |||||
| Book'u | – | ✓ | su richiesta | Ricavi per giorno e ora (CSV) | Book'u effettua le dichiarazioni Dimona; un collegamento con la cassa è disponibile su richiesta. Fino ad allora l'elenco ricavi. |
| Deputy | ✓ | ✓ | ✓ | Ricavi per giorno e ora (CSV) | Live: i ricavi per ora vanno ogni ora a Deputy (Sales). Un token permanente lo crei in Deputy nelle integrazioni API. |
| Dyflexis | ✓ | – | ✓ | Ricavi per giorno e ora (CSV) | Live: i ricavi per ora vanno ogni ora a Dyflexis (information streams). Il token API lo ottieni tramite Dyflexis. |
| Eitje | ✓ | – | su richiesta | Ricavi per giorno e ora (CSV) | Eitje si collega tramite il suo programma partner; fino ad allora l'elenco ricavi per giorno e ora. |
| Exact Horeko | ✓ | – | su richiesta | Ricavi per giorno e ora (CSV) | Collegamento tramite Horeko (su richiesta); fino ad allora l'elenco ricavi. |
| Fooks | ✓ | – | su richiesta | Ricavi per giorno e ora (CSV) | Fooks realizza da sé i collegamenti con le casse; fino ad allora l'elenco ricavi per giorno e ora. |
| L1NDA | ✓ | – | su richiesta | Ricavi per giorno e ora (CSV) | L1NDA realizza i collegamenti con le casse insieme a partner; fino ad allora l'elenco ricavi per giorno e ora. |
| Mr. Einstein | ✓ | – | su richiesta | Ricavi per giorno e ora (CSV) | HR, turni e costi del personale per la ristorazione; Mr. Einstein realizza i collegamenti con le casse insieme al fornitore della cassa (richiesta tramite mreinstein.nl/contact). Fino ad allora l'elenco ricavi per giorno e ora. |
| Nostradamus | ✓ | ✓ | su richiesta | Ricavi per giorno e ora (CSV) | Nostradamus riceve i ricavi tramite la sua interfaccia cassa (token API e dominio dell'attività, su richiesta a Nostradamus); fino ad allora l'elenco ricavi per giorno e ora. |
| Plan-Me | – | ✓ | su richiesta | Ricavi per giorno e ora (CSV) | Plan-Me effettua le dichiarazioni Dimona; un collegamento con la cassa è disponibile su richiesta. Fino ad allora l'elenco ricavi. |
| Planday | ✓ | ✓ | su richiesta | Ricavi per giorno e ora (CSV) | Planday ha un'API aperta per i sistemi di cassa; il collegamento seguirà dopo un accordo. Fino ad allora l'elenco ricavi. |
| Shiftbase | ✓ | – | ✓ | Ricavi per giorno e ora (CSV) | Live: i ricavi per giorno vanno ogni ora al registro giornaliero del reparto in Shiftbase. La chiave API la crei in Shiftbase in App center. |
| Shyfter | – | ✓ | su richiesta | Ricavi per giorno e ora (CSV) | Shyfter effettua le dichiarazioni Dimona e accetta i ricavi per giorno tramite la sua API; il collegamento seguirà dopo un accordo con Shyfter. Fino ad allora l'elenco ricavi. |
| Strobbo | ✓ | ✓ | – | Importazione ricavi Strobbo (Excel), Ricavi per giorno e ora (CSV) | File Excel per Planning → € → Importeer omzet (ricavi per giorno per postazione). |
| Tamigo | ✓ | ✓ | su richiesta | Ricavi per giorno e ora (CSV) | Collegamento tramite Tamigo (su richiesta); fino ad allora l'elenco ricavi. |
| Werktijden.nl | ✓ | – | – | Ricavi per giorno e ora (CSV), Elenco ore per dipendente e giorno (CSV) | Werktijden.nl registra da sé le ore e (ancora) non accetta ricavi tramite la sua API; gli elenchi servono per il confronto. |
| XPS Logic | ✓ | – | su richiesta | Ricavi per giorno e ora (CSV) | XPS Logic è orientato al personale flessibile e interinale; un collegamento è disponibile su richiesta. Fino ad allora l'elenco ricavi. |
Obblighi di legge in Belgio e nei Paesi Bassi
Cosa chiede la legge e cosa fa HorecaPOS al riguardo (fai confermare dal tuo commercialista cosa vale per la tua attività):
| Paese | Requisito | HorecaPOS |
|---|---|---|
| Belgio | Sistema di cassa registrato (GKS 2.0) con scatola nera per i locali della ristorazione che vi sono tenuti (tra l'altro con oltre € 25.000 di fatturato annuo da pasti, IVA esclusa) | collegamento con la scatola nera (FDM), i dati obbligatori sullo scontrino e i contatori nel rapporto Z (paese Belgio in Impostazioni → Attività, FDM_API_KEY e FDM_TERMINAL_ID); in alto in Impostazioni → Attività scegli se l'attività è soggetta al GKS: Sì = incassare solo con una scatola nera funzionante, No = senza, con una dichiarazione dell'amministratore (ogni anno di nuovo); finché non si sceglie nulla, non è possibile incassare. La cassa conta il fatturato dei pasti e avvisa oltre 25.000 € |
| Belgio | Fatturazione elettronica tramite Peppol: dal 1 gennaio 2026 le fatture tra imprese belghe soggette a IVA devono obbligatoriamente essere elettroniche strutturate (UBL, Peppol BIS 3); gli scontrini ai consumatori non rientrano nell'obbligo | esportazione del fatturato giornaliero in UBL secondo Peppol BIS Billing 3.0 per il software di contabilità (Esporta contabilità); e fatture da uno scontrino per clienti aziendali (Impostazioni → Fatture): UBL secondo Peppol BIS Billing 3.0 più una fattura da stampare, invio via e-mail, tramite Billit sulla rete Peppol, a un indirizzo proprio oppure download (vedi Fatture per clienti aziendali) |
| Belgio | IVA horeca dal 1 marzo 2026: pasti da asporto e bevande analcoliche 12% (al tavolo e da asporto), alcol 21%, pasti che il cliente prepara ancora da sé (fonduta, gourmet) 6% | Assistente IVA (Impostazioni → Leggi e norme): il tipo per prodotto, l'aliquota corretta subito o da una data; le descrizioni delle aliquote A/B/C sono state aggiornate |
| Paesi Bassi | Legge sull'alcol: niente alcol ai minori di 18 anni, anche nella vendita online e nella consegna (verificare l'età alla consegna) | Controllo età: prodotti con alcol; nel webshop il cliente conferma da sé 18+ (casella non preselezionata) con l'avviso che l'età sarà verificata alla consegna; "18+" su comanda, documento di consegna e scontrino |
| Paesi Bassi | Bicchieri e vaschette monouso (SUP): dal 2024 un prezzo separato e visibile per gli imballaggi monouso di plastica per asporto e consegna | Supplemento monouso per prodotto, come riga separata sullo scontrino (IVA del prodotto) e a parte nel fatturato |
| Paesi Bassi | Deposito cauzionale su lattine e bottiglie di plastica | Deposito cauzionale per prodotto (€ 0,15 / € 0,25), riga separata senza IVA per asporto e consegna, a parte nel fatturato |
| Paesi Bassi | Pagamento in contanti: dal 1 gennaio 2026 niente € 3.000 o più in contanti per beni | Avviso per asporto e consegna (anche alla cassa automatica); la conferma è possibile e viene registrata nel log |
| Paesi Bassi e Belgio | Modifica IVA: un'aliquota o un prodotto riceve una percentuale IVA diversa da una certa data | Pianifica modifica IVA: la cassa la esegue il giorno stesso (in Belgio per prodotto, le lettere A/B/C/D sono fisse) |
| Paesi Bassi | Alloggio (pernottamenti) 21% dal 1 gennaio 2026 | aliquota IVA impostabile per prodotto |
| UE | Direttiva Omnibus: un prezzo "prima" barrato può essere solo il prezzo più basso degli ultimi 30 giorni | il webshop barra solo rispetto al prezzo più basso di 30 giorni (la cassa conserva lo storico dei prezzi; le happy hour che si ripetono ogni settimana vengono conteggiate) |
| UE | European Accessibility Act (dal 28 giugno 2025): webshop accessibili (WCAG 2.1 AA) | il webshop funziona con tastiera e screen reader (link "Vai al contenuto", focus visibile, etichette) e ha una dichiarazione di accessibilità (link in fondo) |
| Paesi Bassi | XML Auditfile Financieel (XAF): lo standard dell'Amministrazione fiscale olandese (Belastingdienst) per trasferire (una parte di) una contabilità; XAF 4.0 è obbligatorio a partire dal 2027 | esportazione come XAF 4.0 (Esportazione contabilità) |
| Paesi Bassi | Sistema di cassa affidabile: conservare i dati di cassa (tutti gli scontrini, le correzioni e gli eventi) e poterli fornire in formato digitale in caso di controllo; a tal fine la Belastingdienst raccomanda l'XML Auditfile Afrekensystemen (XAA) | esportazione come XAA 3.2 (Rapporto → Fatturato per periodo → File di audit cassa), se desiderato firmata con il certificato del fornitore |
| Belgio | Registrazione delle presenze con un sistema di cassa registrato: registrare nel sistema di cassa l'inizio e la fine dell'orario di lavoro dei lavoratori | La timbratura entrata/uscita (Impostazioni → Attività; Obbligatorio = prima timbrare l'entrata) viene registrata nella scatola nera |
| Belgio | Dimona: dichiarare ogni occupazione (anche flexi-job e studenti) all'RSZ prima dell'inizio | lo fa il tuo segretariato sociale o strumento di pianificazione (es. Shyfter, Book'u, Plan-Me); HorecaPOS fornisce le ore lavorate e i ricavi (Impostazioni → Orari di lavoro → Paghe e pianificazione) |
| Paesi Bassi | Registrazione dei tempi di lavoro e di riposo (Arbeidstijdenwet, legge olandese sull'orario di lavoro) | Timbratura entrata/uscita con le ore lavorate per dipendente, modificabili dall'amministratore (con registro), e l'elenco ore per il software paghe |
| Paesi Bassi e Belgio | HACCP / sicurezza alimentare: documentare temperature (refrigerazione, congelatore, mantenimento in caldo, cottura, abbattimento, ricevimento) e pulizie; NL Hygiënecode voor de Horeca (NVWA), BE autocontrollo FAVV (guida G-023) | Registro HACCP in cassa (Impostazioni → Leggi e norme, pulsante HACCP in alto): punti di misura con limiti, attività di pulizia e controllo, azione correttiva obbligatoria in caso di scostamento, non modificabile, riepilogo con registrazioni mancate come CSV o stampa (vedi Registro HACCP) |
| Paesi Bassi e Belgio | Obbligo di conservazione (NL 7 anni, BE 10 anni) | scontrini, rapporti Z e il registro eventi si trovano nel database e nei backup; il registro eventi non può essere modificato né cancellato dalla cassa |
Leggi e norme
Impostazioni → Leggi e norme (amministratore; l'assistente IVA anche con il permesso Gestire prodotti). Tutto è disattivato di default; senza queste impostazioni la cassa funziona come sempre.
- Controllo età alcol (18+): in Prodotti spunta Contiene alcol (o usa l'assistente IVA). Per asporto e consegna con alcol compare "18+" sulla comanda, sullo scontrino e nella schermata degli ordini. Nel webshop il cliente conferma da sé di avere almeno 18 anni (la casella non è preselezionata) e vede che l'età sarà verificata alla consegna.
- Supplemento monouso (Paesi Bassi): un importo per prodotto (prezzi indicativi: bicchiere € 0,25, vaschetta pasto € 0,50, vaschetta piccola € 0,05). Per asporto e consegna la cassa aggiunge da sola una riga "Supplemento monouso" sullo scontrino (con l'IVA del prodotto); segue automaticamente i prodotti (il database ne tiene traccia, anche dopo storni, spostamenti o un diverso tipo di ordine) ed è indicata a parte nel fatturato. Al tavolo nessun supplemento. Thuisbezorgd.nl e il webshop applicano un proprio supplemento.
- Deposito cauzionale (Paesi Bassi): per prodotto (€ 0,15 lattina/bottiglia, € 0,25 bottiglia grande), riga "Deposito cauzionale" senza IVA, solo per asporto e consegna.
- Contanti per € 3.000 o più (Paesi Bassi, vietato per beni dal 1-1-2026): per asporto e consegna un avviso al pagamento e alla cassa automatica; il dipendente può confermare (ad es. catering come servizio), e ciò viene registrato nel log. Mangiare e bere al tavolo è un servizio: nessun avviso.
- Assistente IVA: il tipo per prodotto (pasto, bevanda analcolica, bevanda alcolica, alimenti senza preparazione, altro; inizialmente una stima basata sul nome e sul gruppo). La cassa mostra l'aliquota corretta al tavolo e da asporto (Belgio dal 1-3-2026: pasti e bibite 12%, anche da asporto; alcol 21%; alimenti senza preparazione 6%. Paesi Bassi: 9% e 21%) e la applica, subito o da una data.
- Pianifica modifica IVA: un prodotto verso un'altra aliquota, oppure (solo Paesi Bassi) un'aliquota con una nuova percentuale, da una data. La cassa la esegue da sola quel giorno (controllo ogni quarto d'ora e all'avvio).
Le fatture (obbligatorie tra aziende in Belgio) sono descritte in Fatture per clienti aziendali. Ancora da fare: GKS 2.0, informarsi sullo stato della certificazione (vedi docs/backlog-concurrenten.md).
Fatture per clienti aziendali
Impostazioni → Fatture (amministratore; disattivato di default): attiva Fatture per clienti aziendali (UBL / Peppol). Quando è attivo, sotto trovi Pagamento a credito, i Dati sulla fattura, i Servizi Peppol, il Collegamento bancario (con il pagamento a credito) e l'elenco di tutte le fatture. In Belgio la fatturazione elettronica tra aziende è obbligatoria dal 1-1-2026.
- Fatture per clienti aziendali: Scontrini → scegli lo scontrino → Fattura. Inserisci il cliente (o scegli un cliente precedente); la cassa crea una fattura numerata (ad es. F2026-0001, progressiva per anno), in UBL secondo Peppol BIS Billing 3.0 e come fattura da stampare o salvare in PDF. Invio via e-mail (entrambi come allegato, eventualmente una copia al commercialista), tramite Billit alla rete Peppol (
BILLIT_API_KEY,BILLIT_PARTY_ID), tramite Storecove (STORECOVE_API_KEY,STORECOVE_LEGAL_ENTITY_ID; il destinatario deriva dall'ID Peppol del cliente, ad es. 0208 → BE:EN, 0106 → NL:KVK, altrimenti via e-mail tramite Storecove) o tramite Banqup di Unifiedpost (BANQUP_CLIENT_ID,BANQUP_CLIENT_SECRET,BANQUP_SPACE_ID;BANQUP_SANDBOX=1per l'ambiente di test; Banqup verifica l'UBL e lo consegna direttamente), a un indirizzo proprio (FACTUUR_HTTP_URL, ad es. un software di contabilità o un altro servizio Peppol) oppure download. Una fattura per scontrino; lo scontrino è già pagato, quindi "quietanzata". Numero KvK/d'impresa, IBAN, ID Peppol, prefisso e termine di pagamento in Dati sulla fattura. Tutte le fatture in fondo alla scheda (permesso Fatturato per periodo). - Chiavi, secret e header non vengono mai mostrati (solo "impostato"; lasciare vuoto = mantenere, Cancella = rimuovere) e non vengono registrati nel log (solo quali campi sono cambiati). Sono salvati nel database (
vestiging.peppol_gegevens): inclusi nei backup, non nell'esportazione della configurazione.
Chiosco self-service
Gli ospiti ordinano da soli su una colonnina o un tablet, come in un fast food, e pagano alla cassa o con carta al chiosco. Le schermate d'ordine fanno parte della cassa stessa, quindi menu, prezzi, opzioni, menu combinati, happy hour, fasce orarie, foto, allergeni, lingue e scontrino arrivano dalla cassa e non vanno impostati altrove. Sul chiosco gira l'app PinPortal Kiosk 2 (Android, anche Sunmi, e Windows, Linux e macOS), che mostra la pagina e stampa lo scontrino. Disattivato per impostazione predefinita.
Attivare e configurare (amministratore): Impostazioni → Attività → Schermi e utilizzo → Chiosco self-service.
- Scegli cosa può scegliere l'ospite: Mangio qui e/o Da asporto (l'asporto usa il prezzo d'asporto e l'aliquota IVA per l'asporto, se impostati).
- Testo di benvenuto, dopo quanti secondi senza tocchi il chiosco torna all'inizio (il carrello viene svuotato) e quali gruppi di prodotti sono sul chiosco (nessuna spunta = tutti).
- Qualcos'altro?: spunta gruppi di prodotti (ad es. bevande, dessert); al carrello il chiosco propone allora alcuni prodotti di questi gruppi.
- Pagamento, per chiosco (vedi Aggiungere e collegare un chiosco):
- Alla cassa (predefinito, come il vecchio chiosco): l'ospite ordina, riceve un numero di ritiro e paga alla cassa. Al chiosco non serve un terminale POS.
- Con carta al chiosco: l'ospite paga sul terminale POS del chiosco.
- L'ospite sceglie: alla cassa o con carta. Se il chiosco non ha un terminale POS, si paga alla cassa.
- In cucina (pagando alla cassa): subito dopo l'ordine al chiosco (predefinito), oppure solo quando è stato pagato alla cassa.
- Scontrino: sulla stampante del chiosco (predefinito), sulla stampante scontrini della cassa, o nessuno scontrino (solo il numero sullo schermo). Pagando alla cassa, il chiosco stampa un foglietto con il numero e non ancora pagato; lo scontrino arriva all'incasso alla cassa.
- Stato dell'ordine sul telefono (opzionale, disattivato per impostazione predefinita): sullo scontrino del chiosco e sulla schermata finale compare un codice QR. L'ospite lo scansiona, vede il suo numero e lo stato (ordinato, in preparazione, pronto) e riceve una notifica quando l'ordine è pronto. Passa dal portale di gestione, quindi la cassa deve esservi collegata.
- Alcol e prodotti al chilo non sono mai sul chiosco: senza personale non si può controllare l'età e non c'è una bilancia.
- Lettore di codici a barre (facoltativo, di default tutto disattivato): spunta cosa può fare una scansione sul chiosco:
- un prodotto nel carrello (il codice del prodotto);
- un codice sconto;
- una carta fedeltà (l'ospite accumula punti);
- un buono regalo o carta prepagata come pagamento. Se il saldo basta, l'ordine è subito pagato. Altrimenti il buono paga una parte e l'ospite paga il resto con carta o alla cassa (in quel caso è consentito anche su un chiosco solo con carta). Dopo un pagamento parziale di questo tipo l'ospite non può più annullare; l'ordine compare in cassa come Chiosco … · numero.
Lo scanner stesso si imposta sul chiosco: nell'app PinPortal Kiosk 2 in gestione → Lettore di codici a barre (come tastiera, lo scanner integrato o una porta COM), con un test scanner. Uno scanner che funziona come tastiera funziona anche senza l'app.
- Ricarica credito (facoltativo, disattivato di default; funziona solo se il credito ricaricabile è attivo): nella schermata iniziale del chiosco compare allora Ricarica credito. L'ospite scansiona la sua tessera o il suo buono (o digita il codice), vede il saldo e sceglie un importo. Gli importi li imposti tu (da 1 a 6, di default € 10, € 20 e € 50). Si paga come impostato per il chiosco: con carta, oppure alla cassa con il numero di ritiro. Dopo l'incasso l'importo è sul saldo. Una ricarica così non va in cucina, non compare sullo schermo di chiamata e non riceve un codice QR. Il saldo massimo del credito ricaricabile vale anche qui.
- Sulla mia camera (collegamento hotel, disattivato di default; Impostazioni → Hotel → Self-service): accanto al carrello compare allora Addebita sulla mia camera. L'ospite inserisce numero di camera e cognome; se corrisponde a un ospite che alloggia ora in quella camera, l'ordine va in cucina e risulta pagato sulla camera (vedi Software alberghiero: addebitare in camera).
- Belgio (scatola nera): ciò che non è ancora stato testato con la scatola nera è disattivato automaticamente al chiosco (buono regalo o credito come pagamento, ricarica, codice sconto, menu, opzioni con sovrapprezzo, happy hour), come alla cassa.
Aggiungere e collegare un chiosco
- In Chioschi inserisci un nome (ad es. Chiosco ingresso) e scegli Aggiungi chiosco. Ricevi un codice di collegamento di 6 cifre (valido 30 minuti).
- Scegli per il chiosco come paga l'ospite: alla cassa per impostazione predefinita. Se è un chiosco con terminale POS, scegli con carta o l'ospite sceglie, e scegli il terminale POS di questo chiosco (da Impostazioni → Pagamenti).
- Apri la pagina del chiosco sul chiosco:
- nel locale: nell'app, in gestione → Vast adres, l'indirizzo indicato nell'impostazione, ad es.
http://192.168.1.20:3000/kiosk; - oppure tramite il portale di gestione (https, anche se il chiosco non è nella stessa rete): collega l'indirizzo del chiosco indicato nell'impostazione al codice chiosco dell'app, come con il vecchio chiosco.
- nel locale: nell'app, in gestione → Vast adres, l'indirizzo indicato nell'impostazione, ad es.
- Inserisci il codice di collegamento sul chiosco. Fatto: il chiosco ricorda la sua chiave. Ricollega dà un nuovo codice; Rimuovi lo scollega.
Per ogni chiosco si vede se è online.
Come ordina l'ospite
- Schermata iniziale con il testo di benvenuto; l'ospite sceglie la lingua (tutte le lingue della cassa) e tocca per ordinare.
- Mangio qui o da asporto.
- Il menu per gruppo di prodotti, con foto, prezzo (con happy hour), allergeni e cosa è esaurito. I prodotti con scelte o un menu aprono la finestra di scelta.
- Il carrello: cambiare le quantità ed eventualmente Qualcos'altro?.
- Ordina (pagamento alla cassa): l'ospite vede il suo numero di ritiro in grande sullo schermo con l'importo, riceve il foglietto e paga alla cassa. In cassa l'ordine è aperto come Chiosco Ingresso · 42 (il numero che dice l'ospite); si incassa come sempre. Poi compare come pagato sullo schermo di chiamata e va in cucina se doveva aspettare il pagamento.
- Paga con carta: la cassa invia l'importo al terminale POS di questo chiosco (lo stesso collegamento di pagamento della cassa). Se non riesce, l'ospite può riprovare o annullare (oppure, se può scegliere, pagare alla cassa). Solo quando il pagamento è riuscito, l'ordine va in cucina e viene incassato. L'ospite vede il suo numero di ritiro in grande sullo schermo e riceve lo scontrino.
- Dopo qualche secondo il chiosco torna all'inizio.
In caso di guasto: avviso e modalità di emergenza (nell'app del chiosco, gestione → Bij storing; disattivato per impostazione predefinita). Se il chiosco non raggiunge la cassa, mostra Even gesloten. Due extra:
- Teams, Slack, Discord, ntfy, Home Assistant, Make o Zapier), e un messaggio hersteld quando funziona di nuovo. Con Testmelding sturen controlli l'indirizzo.
- Modalità di emergenza: il chiosco salva un menu semplice, trasmesso dalla pagina del chiosco: prodotti senza scelte né menu combinati, con il prezzo per mangiare qui (o da asporto se è l'unica scelta).
- Se la cassa resta irraggiungibile per un po' (di default 60 secondi), l'ospite ordina da quel menu.
- L'ospite paga con carta o al banco. Il pagamento con carta è possibile solo se Pinbetaling è attivo nell'app.
- Vengono stampati due scontrini di emergenza: uno per l'ospite (N1, N2 …) e uno per banco/cucina. Vi è indicato che non sono uno scontrino fiscale.
- Quando la cassa torna, la pagina del chiosco inserisce gli ordini di emergenza in cassa come Nood N… <chiosco>. Non vanno in cucina (che aveva già lo scontrino di emergenza) e non compaiono sullo schermo di chiamata.
- Pagato con carta e stesso importo della cassa: saldato come Pagamento con carta manuale. Altrimenti (pagamento al banco o importo diverso) l'ordine resta aperto per il personale di sala.
- Tutto finisce nel registro.
- Belgio: con il sistema di cassa registrato (GKS, scatola nera) ogni vendita deve passare subito dalla cassa e dall'FDM. La modalità di emergenza probabilmente non è allora consentita; verifica prima. In Belgio l'app del chiosco la attiva solo dopo un'ulteriore conferma, e la cassa mostra un avviso presso il chiosco.
In cassa un ordine del chiosco è un ordine normale (da asporto o al tavolo, con il nome Chiosco Ingresso) a nome del dipendente Kiosk. La cassa lo crea da sé; nessuno può accedere con esso. Non disattivarlo, altrimenti il chiosco non può ordinare. Gli ordini del chiosco compaiono nei report, in Scontrini e sullo schermo di chiamata. Un ordine non completato al chiosco (non ordinato o non pagato con carta) scade da solo dopo 30 minuti.
Pagamento con carta in modalità test (Impostazioni → Pagamenti)? Allora il chiosco non incassa davvero; utile per provare. Senza internet non si può pagare con carta; il chiosco dice allora che si può ordinare al banco.
Guasto: se la cassa non è raggiungibile, l'app del chiosco mostra "Chiuso per un momento" e riprende da sola. Se il chiosco passa dal portale di gestione e cade internet, l'app può ripiegare sulla cassa nella rete locale (nell'app: gestione → Estensioni → In caso di guasto, usa la rete locale); l'indirizzo lo passa il chiosco stesso.
Disattivare: il chiosco indica che è chiuso per un momento. I chioschi e le impostazioni restano salvati. Nel registro restano attivazione/disattivazione, le impostazioni, i chioschi aggiunti e rimossi, i collegamenti e gli ordini annullati.
Menu digitale
Il menu con i prezzi su una TV (o un altro monitor con un browser), direttamente dalla cassa. Predefinito disattivato; si attiva da Impostazioni → Attività → Schermi e utilizzo → Menu digitale. Poi apri sulla TV http://<kassaserver>:3000/menubord (oppure usa il pulsante Su uno schermo separato / Su un tablet o telefono con il codice QR). Nessun accesso e nessun abbinamento.
- Per categoria i prodotti con prezzo, nell'ordine della cassa. Scegli tu quali categorie (e in che ordine), da 1 a 4 colonne, scuro o chiaro, un titolo personalizzato (vuoto = il nome dell'attività), foto dei prodotti e allergeni.
- Sempre aggiornato: il menu richiede i dati ogni 10 secondi (e subito in caso di modifica), quindi un prodotto esaurito (barrato con Esaurito, o tolto dal menu), una giacenza a zero, un happy hour (prezzo promozionale con il prezzo normale barrato, e il nome e l'orario di fine in alto) e le fasce orarie (solo ciò che è in vendita ora) vengono mostrati correttamente in automatico.
- Se non entra tutto nello schermo, le pagine si alternano (per impostazione predefinita ogni 12 secondi, regolabile da 5 a 120).
Personale e PIN
Impostazioni → Personale (solo amministratore): aggiungere dipendenti, modificare nome, ruolo e PIN, e disattivarli.
- Ruoli: cameriere (ordini, incasso, rapporto X), manager (in più sconti, resi, chiusura giornata, cassetto e registro) e amministratore (tutto, incluse tutte le Impostazioni). Questa è l'impostazione standard; cosa possono fare cameriere e manager è modificabile (vedi Permessi per ruolo).
- PIN da 4 a 8 cifre, unico tra i dipendenti attivi. I PIN sono salvati nel database solo in forma cifrata (hash) e non sono leggibili.
- Non è possibile eliminare davvero un dipendente (scontrini e registro vi fanno riferimento); disattivato = non può più accedere.
- Rimane sempre almeno un amministratore attivo.
- Ruolo diverso, nuovo PIN o disattivazione: le sessioni in corso di quel dipendente vengono terminate subito.
- Belgio: facoltativamente il numero di registro nazionale per la registrazione del personale.
- Lingua: la lingua delle schermate per questo dipendente (oppure "Lingua del dispositivo"). Dopo l'accesso la cassa è subito in quella lingua; il dipendente può anche cambiarla da sé con la bandierina in basso a destra (vedi Lingue).
- Suggerimento: sostituisci i PIN demo 1111 e 2222 prima che la cassa entri in funzione.
Accesso con badge (facoltativo)
Di default disattivato. Per attivarlo: Impostazioni → Personale, casella Accesso con badge (NFC, RFID o iButton). Serve: un lettore di badge USB che funzioni come tastiera (per badge NFC o RFID, portachiavi, braccialetti o chiavi iButton). Un lettore del genere "digita" il numero del badge e preme Invio; non servono driver né collegamenti.
- Abbinare: tocca il dipendente, poi Abbina badge e avvicina il badge al lettore. Un badge appartiene a un solo dipendente. Rimuovi badge se è stato perso.
- Accesso: nella schermata di accesso avvicina il badge al lettore. Anche il PIN continua a funzionare normalmente.
- Timbrare entrata e uscita (se attivo): nella schermata di accesso Timbra entrata / uscita e avvicina il badge al lettore.
- Il numero del badge è salvato nel database solo in forma cifrata (hash), come il PIN. I dipendenti non attivi non possono accedere nemmeno con il loro badge.
- Disattivato: accesso solo con il PIN, come sempre. I badge abbinati restano salvati.
Permessi per ruolo
Impostazioni → Permessi (solo amministratore): spunta per ogni ruolo cosa possono fare cameriere e manager. Di default tutto è esattamente come sopra (come la cassa ha sempre fatto); una casella diversa dallo standard è colorata.
| Permesso | Cameriere | Manager |
|---|---|---|
| Cancellare righe dopo l'invio dell'ordine (storno) | sì | sì |
| Applicare / rimuovere sconti | no | sì |
| Segnare un prodotto come "esaurito" | sì | sì |
| Stampare la copia di uno scontrino | sì | sì |
| Reso (nota di credito) | no | sì |
| Incassare a credito e ricevere pagamenti a credito (solo con il pagamento a credito attivo) | no | sì |
| Parziale (rapporto X) | sì | sì |
| Chiudi giornata (rapporto Z) | no | sì |
| Fatturato per periodo | no | sì |
| Gestire il cassetto | no | sì |
| Gestire buoni regalo (solo con buoni regalo con saldo) | no | sì |
| Leggere e rispondere alle recensioni (solo con la gestione recensioni attiva) | no | sì |
| Gestire carta fedeltà (solo con la carta fedeltà attiva) | no | sì |
| Consultare il registro | no | sì |
| Vedere le immagini delle telecamere (solo con le immagini delle telecamere attive) | no | sì |
| Gestire magazzino (solo con magazzino attivo) | no | sì |
| Gestire i prodotti | no | no |
| Gestire piantine sala | no | no |
| Configurare attività, pagamenti e stampanti | no | no |
| Visualizzare e modificare orari di lavoro | no | no |
- L'amministratore può sempre fare tutto. Modificare personale e permessi resta sempre riservato all'amministratore (altrimenti qualcuno potrebbe darsi più permessi).
- Pulsanti e schede non consentiti a un ruolo sono nascosti per quel ruolo; anche il server di cassa lo verifica. Se un manager riceve ad es. Gestire prodotti, vede il pulsante Impostazioni con solo la scheda Prodotti.
- Le modifiche valgono subito su tutte le casse e finiscono nel registro. Ripristina predefinito riporta tutto com'era.
Dati del locale
Impostazioni → Attività (solo amministratore): nome, indirizzo, CAP, città, telefono e partita IVA della sede. Compaiono in cima a ogni scontrino e pro forma. Qui si imposta anche il testo in fondo allo scontrino (sono ammesse più righe; vuoto = nessun testo; default "Bedankt en tot ziens!"), e sotto la lingua dello scontrino (default olandese; vedi Lingue). Un'anteprima dello scontrino si aggiorna in tempo reale. Dopo il salvataggio lo scontrino successivo usa subito i nuovi dati. Il paese e i dati fiscali (GKS) volutamente non si possono modificare qui. In Belgio la partita IVA è obbligatoria. Con la casella Arrotonda i pagamenti in contanti a 5 centesimi (disattivata di default) il totale in contanti viene arrotondato (€ 6,62 → € 6,60, € 6,63 → € 6,65); la differenza compare come "Afronding" sullo scontrino. La carta resta sempre al centesimo.
Gestire i prodotti
Accedi come amministratore e scegli Impostazioni → Prodotti.
- Aggiungere, modificare (nome, prezzo, categoria, aliquota IVA sul posto e da asporto, nome sullo scontrino, codice, esaurito) ed eliminare categorie di prodotti e prodotti. Categorie e prodotti possono avere un proprio colore; un prodotto con colore ha un pulsante colorato nella schermata ordini (testo automaticamente bianco o scuro per la leggibilità).
- Cambia l'ordine trascinando una categoria o un prodotto per ≡. Funziona con il mouse e con il dito su un tablet. Esattamente quell'ordine compare poi nella schermata ordini; le schermate di cassa aperte si aggiornano subito.
- Eliminare rimuove un prodotto dalla cassa, ma i vecchi ordini e il giornale fiscale continuano a conoscerlo. Una categoria si può eliminare solo quando è vuota.
- Opzioni: apri un prodotto o una categoria e aggiungi sotto "Opzioni" dei gruppi di opzioni, come "Cottura" (esattamente una, obbligatoria), "Salsa" (al massimo una) o "Extra" (più di una, con minimo e massimo; massimo vuoto = illimitato). Ogni scelta ha un nome e un sovrapprezzo (anche negativo, ad es. -0,50). I gruppi di opzioni di una categoria valgono per tutti i prodotti di quella categoria, in aggiunta alle opzioni proprie del prodotto. Ordine con ▲▼. Eliminare è sempre possibile: ordini e scontrini esistenti conservano le opzioni scelte. Anche il server verifica le scelte obbligatorie e il massimo.
- Foto per prodotto: vedi Foto prodotti.
- Prezzo al chilo, numero PLU e tara (solo se la bilancia è attiva): vedi Configurare la bilancia. Senza spunta un prodotto resta normalmente a pezzo.
Foto dei prodotti
Ogni prodotto può avere una foto.
- Aggiungere una foto: Impostazioni → Prodotti → scegli il prodotto → Scegli foto (su tablet o telefono anche direttamente con la fotocamera). La foto viene ridimensionata nel browser a massimo 512 × 512 pixel (JPEG, di solito 20–80 kB) e salvata subito; Altra foto la sostituisce, Elimina foto la rimuove. Nell'elenco prodotti compare una piccola foto prima del nome. Solo con il permesso Gestire prodotti; jpg, png e webp, al massimo 512 kB.
- Se mostrarle lo decide l'amministratore in Impostazioni → Attività → Foto prodotti, separatamente e di default disattivato:
- Foto prodotto sui pulsanti della schermata ordini: la foto in alto sul pulsante del prodotto, con nome e prezzo sotto.
- Foto prodotto accanto ai prodotti sul display cliente: una piccola foto prima di ogni riga sul display cliente (anche il display cliente deve essere attivo). I prodotti senza foto restano come sono; se è disattivato, tutto funziona esattamente come prima.
Lettore di codici a barre
Con un lettore di codici a barre alla cassa scansioni prodotti, codici sconto, carte fedeltà e buoni regalo. Si attiva in Impostazioni → Scanner (scheda accanto alle stampanti e alla bilancia; di default disattivato). Spunta cosa fa una scansione nella schermata ordini:
- Prodotto sullo scontrino: il prodotto con quel codice (Impostazioni → Prodotti, campo Codice; ad es. il codice a barre EAN della confezione). Con scelte, un menu o un prezzo al chilo si apre prima la finestra delle scelte o la bilancia, come quando tocchi il prodotto. Lo fa anche Scansione nella schermata ordini in Stampa etichette; quella funzione continua a funzionare come prima.
- Codice sconto sullo scontrino (se i codici sconto sono attivi).
- Carta fedeltà: il cliente con quel numero di carta viene aggiunto allo scontrino (se la carta fedeltà è attiva). Se scansioni un codice sconosciuto su uno scontrino con un cliente, la cassa chiede se è la sua nuova carta.
- Buono regalo o carta prepagata: la cassa mostra il saldo (se i buoni regalo con saldo sono attivi). Il pagamento si fa con Incassa → Buono regalo; lì puoi anche scansionare il buono.
La cassa cerca prima tra i prodotti, poi tra le carte fedeltà, i buoni regalo e i codici sconto. La scansione funziona nella schermata ordini, quando non sei in un campo di inserimento. In un campo di inserimento il codice finisce semplicemente in quel campo.
Test scanner: in Impostazioni → Scanner vedi a ogni scansione il codice e cosa ne fa la cassa, anche se lo scanner è ancora disattivato. Se non funziona:
- Imposta lo scanner su tastiera (USB-HID), con un Enter dopo il codice. Nella maggior parte degli scanner è già così.
- Uno scanner integrato (ad es. di una cassa Sunmi) si imposta su input da tastiera nelle impostazioni dello scanner del dispositivo.
- Le etichette della bilancia TS6X (peso e prezzo) le gestisce la bilancia stessa, anche con lo scanner attivo.
Sul chiosco lo scanner si imposta a parte (Impostazioni → Attività → Chiosco); vedi Chiosco self-service.
Stampa etichette
Etichette articolo con nome, prezzo e codice a barre, su una stampante per etichette (Brother, Dymo, Zebra ...) installata sul computer o sul tablet. Si attiva in Impostazioni → Attività → Stampa etichette (predefinito disattivato). Lì scegli anche il formato dell'etichetta (38 × 25, 57 × 32, 62 × 29 o 100 × 50 mm) e se stampare il prezzo e il codice a barre. Stampa di prova stampa un'etichetta di prova.
- Impostazioni → Prodotti → (prodotto) → Etichette: scegli la quantità e Stampa.
- Acquisti → (ordine ricevuto) → Stampa etichette: per ogni prodotto tante etichette quante ne sono arrivate (unità d'ordine ricevute × quantità per unità d'ordine; ingredienti esclusi). Al massimo 500 etichette alla volta.
- La cassa apre la finestra di stampa: scegli lì la stampante per etichette e il formato carta del rotolo. Ogni etichetta è una pagina.
- Il codice a barre è il codice del prodotto (Impostazioni → Prodotti): 8 o 13 cifre con una cifra di controllo corretta = EAN (12 cifre: la cifra di controllo viene aggiunta), altrimenti Code 128 (lettere, cifre e segni di punteggiatura, fino a 30 caratteri). Senza codice niente codice a barre.
- Scansione nella schermata ordini (casella, predefinito disattivato): un lettore di codici a barre che funziona come una tastiera aggiunge il prodotto con quel codice, con le scelte abituali (opzioni, bilancia, allergia). Non insieme alla bilancia TS6X, che ha le proprie etichette con peso e prezzo.
- Permesso: Gestire prodotti o Gestire magazzino.
Configurare la bilancia (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra)
Scheda dedicata Impostazioni → Bilancia (permesso Configurare attività, pagamenti e stampanti, di default solo l'amministratore; la scheda c'è sempre, anche se la bilancia è ancora disattivata). Di default disattivato: in quel caso la cassa funziona esattamente come prima. Non vedi la scheda?
Ricerca automatica. Se non è ancora configurato nulla, all'apertura di questa sezione la cassa cerca da sola (il pulsante Cerca ripete la ricerca):
- la cassa (server) gira essa stessa su una bilancia PC o IA Aclas (TS6X, TS3X, TS5EX/NX/GX, iS6X, iS2X, iR6X, Ti6X, iL8X; marca/modello del dispositivo: Windows tramite WMI, Android tramite
getprop, Linux tramite DMI) e risponde l'Aclas Scale Module? Allora quella bilancia viene impostata come Su questo dispositivo, e anche la bilancia etichettatrice; su Linux (niente Scale Module) la bilancia integrata sulla porta interna trovata (/dev/ttyS...) come "TS6X (ingebouwd)", con il modello; - c'è una OS6X su una porta COM/USB? Ogni porta viene provata a 9600, 4800, 2400 e 19200 baud: prima un breve ascolto (continuo), poi invio di
W(Toledo), altrimenti Dialog 06 (9600, 7 bit di dati, parità dispari: richiesta di stato).
Trovata = inserita nel modulo con il pulsante Attiva e usa: un tocco e funziona. (La ricerca invia una W a ogni porta COM libera; una porta occupata, ad es. dal terminale di pagamento, viene saltata.)
Tutte le bilance Aclas. Per ogni bilancia scegli il modello; la cassa sa così come può essere collegata. Ci sono due tipi:
- Su questo dispositivo (da configurare una volta): la cassa gira sulla bilancia (bilancia PC o IA). Con Windows o Android pesa tramite l'Aclas Scale Module, senza porta, velocità o protocollo; con Linux (niente Scale Module) tramite la porta interna della bilancia (di solito
/dev/ttyS0o/dev/ttyS1), con porta, velocità e protocollo. Ce n'è solo una per cassa; la ricerca la trova da sola. Una bilancia PC o IA (TS6X, iS6X ...) è sempre Su questo dispositivo: può comparire una sola volta nell'elenco e gli altri modelli PC/IA non sono più selezionabili. Una TS6X altrove nel locale può comunque stampare etichette (attiva allora solo Scansiona etichette). - Collegate (più contemporaneamente): la bilancia è collegata al server della cassa via cavo (RS232/USB), Bluetooth o rete. Quante ne servono (al massimo 8), ciascuna con un proprio nome.
Una lista, due caselle. Tutte le bilance sono in un'unica lista. Per ogni bilancia spunti cosa fa: Pesare alla cassa (la cassa chiede il peso durante l'ordine) e/o Scansiona etichette (la bilancia stampa un'etichetta con codice a barre che la cassa scansiona, e riceve i PLU dalla cassa). Una bilancia PC o IA come la TS6X fa entrambe le cose; un'etichettatrice LS solo etichette. Le etichette possono venire da una sola bilancia per locale.
| Modello | Tipo | Collegamenti | Nella cassa |
|---|---|---|---|
| OS6X | Bilancia POS | RS232, USB, Bluetooth | collegata, più contemporaneamente |
| OS2X | Bilancia POS | RS232, USB | collegata, più contemporaneamente |
| CS6X, CS3X | Bilancia registratore di cassa | RS232, USB, Ethernet, wifi | collegata, più contemporaneamente |
| TS6X, TS3X, TS5EX, TS5NX, TS5GX | Bilancia PC (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | su questo dispositivo (1x), anche come bilancia etichettatrice |
| iS6X, iS2X, iR6X, Ti6X, iL8X | Bilancia IA con riconoscimento prodotti (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | su questo dispositivo (1x), anche come bilancia etichettatrice |
| iS5X, OiT2X | Bilancia IA (solo Linux) | RS232, USB, Ethernet | collegata o come etichettatrice |
| LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NX | Bilancia etichettatrice | RS232, Ethernet, wifi | scansione etichette e PLU |
| PS1CX, PS1DX, PS6CX, PS6DX | Bilancia calcolaprezzi | RS232 | collegata, più contemporaneamente |
| PS1BX | Bilancia calcolaprezzi senza collegamento | nessuno | peso a mano |
| LH15X | Bilancia a sospensione con stampante di etichette | RS232, Ethernet, wifi | collegata o come etichettatrice |
A&D, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec e Zebra. Sono inclusi i modelli più diffusi di queste marche per cui è stabilito come la cassa comunica con loro (da testare = il protocollo non è riportato letteralmente in una fonte; la cassa sceglie l'opzione più ovvia). Tutti collegati (più di uno insieme) o come bilancia etichettatrice di cui la cassa scansiona l'etichetta:
| Marca | Modello | Tipo | Collegamento | Protocollo (di fabbrica) | Nella cassa |
|---|---|---|---|---|---|
| A&D | EK-i (tra cui EK-610i), HV-WP | Bilancia registratore di cassa (solo peso) | RS232, EK-i anche USB | Continuo (modalità stream), 2400 baud, 7E1 | collegata, più contemporaneamente |
| Adam Equipment | Swift | Bilancia calcolaprezzi | RS232, USB (opzionale) | Continuo (continuo verso PC), 9600 8N1 (da testare) | collegata, più contemporaneamente |
| Avery Berkel | FX110, FX120, FX131 (da incasso con scanner) | Bilancia registratore di cassa | RS232, FX131 anche USB | Mettler Toledo 82/7 = Toledo 8217 (la cassa invia W), 9600 baud, 7E1 | collegata, più contemporaneamente |
| Avery Berkel | FX125 | Bilancia calcolaprezzi | RS232 | Checkout-Dialog 06 (9600, 7O1) | collegata, più contemporaneamente |
| Avery Berkel | Xs, XTs, XTi | Bilancia etichettatrice | Ethernet, Wi-Fi, USB | PLU propri sulla bilancia | scansiona etichette |
| Avery Weigh-Tronix | 7820, 7829, ZP900 | Bilancia registratore di cassa | RS232, 7820 anche USB, ZP900 anche USB ed Ethernet | NCI (la cassa invia W), 9600 baud, 7E1 | collegata, più contemporaneamente |
| Balanzas Marques | BM1000P TOP | Bilancia registratore di cassa (solo peso) | RS232 | METTLER (la cassa invia W, Toledo), 9600 baud, 7E1 | collegata, più contemporaneamente |
| Balanzas Marques | BM5 Junior Tower Label, BM500 ETQ | Bilancia etichettatrice | Ethernet, USB, RS232, BM500 ETQ anche wifi | PLU propri sulla bilancia | scansiona etichette |
| Baxtran | TW, VW, XTA, XTA-P | Bilancia calcolaprezzi | RS232 | Toledo (la cassa invia W), 9600 baud, 7E1 | collegata, più contemporaneamente |
| Bizerba | CS 300 (anche da incasso) | Bilancia registratore di cassa | RS232 | Checkout-Dialog 06 (9600, 7O1) | collegata, più contemporaneamente |
| Bizerba | K-Class Flex, KH II | Bilancia etichettatrice | Ethernet | PLU propri sulla bilancia | scansiona etichette |
| Brecknell | 6702U, 6710U, 6720U | Bilancia registratore di cassa | RS232, USB (porta COM virtuale) | NCI (la cassa invia W), 9600 baud, 7E1 | collegata, più contemporaneamente |
| CAS | PD-II, PDN, PDI, PDS-B | Bilancia registratore di cassa | RS232, PDN anche USB e Bluetooth, PDI anche USB | ECR type 2 = Toledo (la cassa invia W), 9600 baud, 7E1 | collegata, più contemporaneamente |
| CAS | CL3000, CL5500, CL7200 | Bilancia etichettatrice | Ethernet, USB, RS232, CL5500 e CL7200 anche wifi | PLU propri sulla bilancia | scansiona etichette |
| Datalogic | Magellan 9300i, 9400i, 9800i (scanner con bilancia) | Bilancia registratore di cassa | RS232 (porta bilancia separata), USB | Mettler Toledo 8217 (la cassa invia W), 9600 baud, 7E1 | collegata, più contemporaneamente |
| Dibal | KS-400, D-POS 400 | Bilancia registratore di cassa | RS232, D-POS 400 anche USB | Checkout-Dialog 06 (9600, 7O1) | collegata, più contemporaneamente |
| Dibal | G-325, PI-100 | Bilancia calcolaprezzi | RS232 | Checkout-Dialog 06 (9600, 7O1) | collegata, più contemporaneamente |
| Dibal | M-500 (Mistral), D-900, CS-2200 | Bilancia etichettatrice | Ethernet, Wi-Fi, USB | PLU propri sulla bilancia | scansiona etichette |
| DIGI | DS-781 | Bilancia calcolaprezzi | RS232 | DIGI Type B (la cassa invia ENQ), 9600 8N1 | collegata, più contemporaneamente |
| DIGI | SM-120, SM-6000 | Bilancia etichettatrice | Ethernet, Wi-Fi | PLU propri sulla bilancia | scansiona etichette |
| Dini Argeo | DFW, DGT, 3590E | Bilancia registratore di cassa (solo peso) | RS232, USB, Ethernet, DFW e 3590E anche wifi | Continuo (ST,GS, 0.512,kg), 9600 8N1 | collegata, più contemporaneamente |
| Excell Precision | TPE, AM4, FD4-P, FDP4-P, GE4, GEP4 | Bilancia calcolaprezzi | RS232 | Continuo (ST,GS,+0.876kg), 9600 8N1 (tranne TPE, da testare) | collegata, più contemporaneamente |
| Gram | XFOC RS, XFOC+ RS, ZFOC RS | Bilancia calcolaprezzi | RS232, USB (cavo di Gram) | Gram (la cassa invia ENQ, poi DC1), 9600 8N1 (XFOC da testare) | collegata, più contemporaneamente |
| Ishida | Uni-3, Uni-5, Uni-7, Uni-9 | Bilancia etichettatrice | Ethernet, Wi-Fi, USB | PLU propri sulla bilancia | scansiona etichette |
| Kern & Sohn | RPB, RFC | Bilancia calcolaprezzi | RS232, USB | Checkout-Dialog 06 (Prot = DLG-06, 9600, 7O1) | collegata, più contemporaneamente |
| Kern & Sohn | RFE (prezzo), IFB, EOC | Bilancia calcolaprezzi / registratore di cassa | RS232 | Continuo, 9600 8N1 | collegata, più contemporaneamente |
| Mettler Toledo | Ariva-S | Bilancia registratore di cassa | RS232, USB (porta COM virtuale) | Toledo 8217 (la cassa invia W), 9600 baud, 7E1 | collegata, più contemporaneamente |
| Mettler Toledo | Viva | Bilancia registratore di cassa | RS232 | Toledo 8217, 9600 baud, 7E1 | collegata, più contemporaneamente |
| Mettler Toledo | bPlus, UC Evo | Bilancia etichettatrice | Ethernet, Wi-Fi | PLU propri sulla bilancia | scansiona etichette |
| Minebea Intec | Signum, Combics, Midrics, Puro | Bilancia registratore di cassa (solo peso) | RS232, USB, Signum e Combics anche Ethernet | Continuo (SBI, stampa automatica), 9600 8N1 | collegata, più contemporaneamente |
| Ohaus | Aviator 7000 | Bilancia calcolaprezzi | RS232 o USB | Checkout-Dialog 06 (9600, 7O1) | collegata, più contemporaneamente |
| Ohaus | Valor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000 | Bilancia registratore di cassa (solo peso) | RS232, USB, Ethernet | Continuo (Auto Print Continuous), 9600 8N1 | collegata, più contemporaneamente |
| Precia Molen | DP400 | Bilancia registratore di cassa | RS232, USB | Checkout-Dialog 06 (9600, 7O1) | collegata, più contemporaneamente |
| Precia Molen | DPOS CR, C 210 B, C 210 C | Bilancia calcolaprezzi | RS232 | Checkout-Dialog 06 (9600, 7O1; C 210 da testare) | collegata, più contemporaneamente |
| Precia Molen | Corail 500 | Bilancia etichettatrice | Ethernet, Wi-Fi | PLU propri sulla bilancia | scansiona etichette |
| Precisa | XB, XT, LS, LX (bilance di precisione) | Bilancia registratore di cassa (solo peso) | RS232, LS e LX anche USB | Continuo (modalità di stampa CONTINUOUS), 9600 8N1 | collegata, più contemporaneamente |
| Rice Lake | BenchPro BP-S, BenchPro BP-R | Bilancia registratore di cassa | RS232 | BP-S Toledo 8213, BP-R NCI (entrambe: la cassa invia W), 9600 baud, 7E1 (da testare) | collegata, più contemporaneamente |
| Rongta | RLS1000, RLS1100 | Bilancia etichettatrice | Ethernet, RS232, wifi | PLU propri sulla bilancia | scansiona etichette |
| Sartorius | Entris, Quintix | Bilancia registratore di cassa (solo peso) | RS232, USB | Continuo (SBI, stampa automatica), 9600 8N1 | collegata, più contemporaneamente |
| Star Micronics | mG-T12, mG-T30, mG-T60, mG-S8200 | Bilancia registratore di cassa (solo peso) | RS232, USB (porta COM virtuale) | Continuo, 9600 8N1 (da testare) | collegata, più contemporaneamente |
| T-Scale | PA10, PA15, PEA10 | Bilancia etichettatrice | Ethernet | PLU propri sulla bilancia | scansiona etichette |
| UWE | ASEP | Bilancia calcolaprezzi | RS232 | Continuo, 9600 8N1 (da testare) | collegata, più contemporaneamente |
| Wedderburn | TSDS983 | Bilancia registratore di cassa | RS232 | DIGI Type B (la cassa invia ENQ), 9600 8N1 (da testare) | collegata, più contemporaneamente |
| Wedderburn | TSDS781T, TSDS782T | Bilancia calcolaprezzi | RS232 | DIGI Type B, 9600 8N1 (da testare) | collegata, più contemporaneamente |
| Wedderburn | TSSM120 | Bilancia etichettatrice | Ethernet, RS232 | PLU propri sulla bilancia | scansiona etichette |
| Wintec | ScalePOS ACS-S60E (cassa con bilancia integrata) | Bilancia registratore di cassa | COM6 interna (Windows) o COM4 (Android) | Continuo, 9600 8N1 (da testare) | collegata |
| Zebra | MP7000, MP72 (scanner con bilancia) | Bilancia registratore di cassa | RS232 (porta AUX) | SASI = Toledo (la cassa invia W), 9600 baud, 7E1 (da testare) | collegata, più contemporaneamente |
- A&D EK-i e HV-WP: imposta la bilancia su stream (EK-i:
prt 0; di fabbrica è sul tasto PRINT) e la cassa su Continuo con 2400 baud e 7E1 (l'impostazione di fabbrica di A&D). Il messaggio èST,+00512.00 g(US= in movimento,OL= sovraccarico). - Adam Equipment Swift: imposta la bilancia su continuo verso PC (8N1); la cassa è allora su Continuo.
- Avery Berkel FX110, FX120 e FX131: sulla bilancia scegli il protocollo Mettler Toledo 82/7 e imposta la cassa su Richiesta (Toledo) con 7E1 (9600 baud). Funziona anche Dialog 06. La FX125 (con display prezzo) non ha Toledo: lì Dialog 06. La cassa lo imposta da sola quando scegli il modello.
- Avery Weigh-Tronix 7820, 7829 e ZP900 e Brecknell 6702U, 6710U e 6720U: NCI, il protocollo di Weigh-Tronix. La cassa invia
W(come con Toledo), la bilancia risponde con il peso (1.234KG) e una riga di stato, che indica se è in movimento, in sovraccarico o troppo leggera. La cassa è su Richiesta (Toledo) con 7E1 (9600 baud). L'USB funziona come porta COM virtuale. Con la ZP900, collega la cassa alla porta 2 (NCI). Con la 67xxU, sulla bilancia si può impostare anche 8213 (SCP03). - Balanzas Marques BM1000P TOP: sulla porta COM scegli il protocollo B (METTLER) e 9600 baud, 7 bit di dati, parità pari; la cassa è allora su Richiesta (Toledo) con 7E1.
- Baxtran TW, VW, XTA e XTA-P (bilance calcolaprezzo; VW e XTA-P con torretta): nel menu RS232 della bilancia scegli il protocollo Toledo, 9600 baud e 7 bit di dati con parità pari (7E1); la cassa è allora su Richiesta (Toledo) con 7E1. La cassa lo imposta da sola quando scegli il modello. Funziona anche CONT (la bilancia invia da sola): imposta allora la cassa su Continuo con la stessa velocità e gli stessi bit di dati. Collegamento con il cavo RS232 (a 9 poli) o un cavo da USB a RS232.
- Bizerba CS 300: Checkout-Dialog 06 (la specifica Bizerba): la cassa invia il prezzo al kg, la bilancia omologata calcola l'importo. Se la bilancia chiede i codici di controllo, li ricevi da Bizerba o dal fornitore.
- CAS PD-II, PDN, PDI e PDS-B (la PDS-B, tra l'altro, presso LRE): sulla bilancia scegli ECR type 2 (Toledo) e imposta la cassa su Richiesta (Toledo) con 7E1 (9600 baud).
- Datalogic Magellan 9300i, 9400i e 9800i: imposta lo Scale Interface Type della porta bilancia separata su Mettler Toledo 8217 e la cassa su Richiesta (Toledo) con 7E1.
- Dibal KS-400, D-POS 400, G-325 e PI-100: sulla bilancia scegli il protocollo Checkout_Dialog06 (protocollo 24) e 9600 baud, 7 bit di dati, parità dispari (tipo di parametro 5); la cassa è allora su Dialog 06. La D-POS 400 si collega anche via USB.
- DIGI DS-781: imposta la bilancia su Type B / comando standard (data transmission
00011); la cassa inviaENQe riceve peso netto, tara, prezzo al kg e importo. - Dini Argeo DFW, DGT e 3590E: imposta la porta seriale sull'invio continuo (9600 8N1); la cassa è allora su Continuo.
- Excell Precision TPE (e la 4ª generazione AM4, FD4-P, FDP4-P, GE4, GEP4): imposta l'uscita RS232 su continuo (9600 8N1); la cassa è allora su Continuo.
- Gram XFOC RS, XFOC+ RS e ZFOC RS: protocollo Gram (9600 8N1). La cassa invia
ENQ, la bilancia rispondeACK, la cassa inviaDC1e la bilancia invia il peso:SOH STX S/U/F teken gewicht eenheid BCC ETX EOT(S= stabile,U= in movimento,F= errore; BCC = XOR dallo stato fino all'unità inclusa). Collegamento con RS232 o con il cavo USB di Gram. - Kern & Sohn RPB e RFC: imposta sulla bilancia
Prot = DLG-06(il collegamento alla cassa è l'opzione 965-419); la cassa è allora su Dialog 06. RFE, IFB ed EOC: invio continuo (8N1), la cassa su Continuo. - Mettler Toledo Ariva/Viva: imposta la bilancia sul protocollo Toledo (8217) e la cassa su Richiesta (Toledo) con Bit di dati / parità = 7E1 (Mettler: 9600 baud, 7 bit di dati, parità pari; l'Ariva si collega anche via USB come porta COM virtuale). La cassa lo imposta da sola quando scegli il modello.
- Minebea Intec Signum, Combics, Midrics e Puro e Sartorius Entris e Quintix: SBI con stampa automatica (9600 8N1); la cassa è allora su Continuo. Il messaggio è
N + 0.512 kg; senza unità è ancora in movimento. - Ohaus Aviator 7000: nelle impostazioni della bilancia (passo 20) scegli il protocollo Dialog 06; la cassa è allora su Dialog 06. RS232 o USB, a seconda del cavo.
- Ohaus Valor 7000, Ranger 3000/4000/7000 e Defender 3000 (pesatura senza prezzo): imposta la bilancia su Auto Print Continuous (9600 baud, 8N1) e la cassa su Continuo. La bilancia invia
0.512 kg G; un?dopo il peso significa che si sta ancora muovendo. La Ranger 7000 si collega anche via Ethernet (porta TCP 9761). - Precia Molen DP400, DPOS CR e C 210 (le bilance commerciali sono di Dibal dal 2025): Dialog 06 (9600 7O1), come Dibal. Se con la C 210 non funziona, prova Richiesta (Toledo) con 7E1.
- Precisa XB, XT, LS e LX: imposta la modalità di stampa su CONTINUOUS e 9600 8N1, senza data, ora e ID sulla riga; la cassa è allora su Continuo. Senza unità il peso è ancora in movimento.
- Rice Lake BenchPro BP-S (Toledo 8213) e BP-R (NCI): la cassa è su Richiesta (Toledo) con 7E1.
- Star Micronics mG-T e mG-S8200: tramite RS232 o USB (porta COM virtuale, con il driver di Star) su Continuo.
- UWE ASEP: RS232 verso PC/cassa, la cassa su Continuo (da testare).
- Wedderburn TSDS983, TSDS781T e TSDS782T sono bilance DIGI con un proprio numero: DIGI (Type B), come la DIGI DS-781. Se non funziona, prova Richiesta (Toledo) con 7E1.
- Wintec ScalePOS ACS-S60E: la cassa gira sullo ScalePOS stesso; la bilancia integrata è su COM6 (Windows) o COM4 (Android), 9600 8N1. Scegli Continuo; se non invia nulla, Cerca trova il protocollo giusto.
- Zebra MP7000 e MP72: la porta AUX RS232 è impostata di fabbrica su SASI (9600 7E1, la cassa invia
W): la cassa su Richiesta (Toledo) con 7E1. - Le bilance etichettatrici di queste marche (Avery Berkel, Balanzas Marques, Bizerba, CAS, Dibal, DIGI, Ishida, Mettler Toledo, Precia Molen, Rongta, T-Scale, Wedderburn) sono sistemi autonomi con un proprio file PLU. Attiva Scansiona etichette per la bilancia e imposta lo stesso codice a barre della bilancia (EAN-13, inizio 20–29, PLU e peso o prezzo). I PLU si impostano sulla bilancia stessa o con il software della marca; Invia a TS6X e Scarica file PLU esistono solo per Aclas.
Lo stesso elenco è nella cassa in Impostazioni → Bilancia → Tutte le bilance (ACLAS_MODELLEN in packages/shared/src/weegschaal.ts, con la marca per modello).
Compilare il meno possibile: scegliendo un modello, la cassa prepara il resto come lo imposta la marca in fabbrica: collegamento Porta COM / USB sulla prima porta libera, 9600 baud (A&D: 2400) e il protocollo della marca (Toledo: Aclas con 8N1, e con 7E1 Avery Berkel FX, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo, Rice Lake e Zebra; Dialog 06: Avery Berkel FX125, Bizerba, Dibal, Kern & Sohn RPB/RFC, Ohaus Aviator e Precia Molen; DIGI Type B: DIGI e Wedderburn; Gram: Gram; Continuo: A&D, Adam Equipment, Dini Argeo, Excell Precision, le altre Kern & Sohn, Minebea Intec, le altre Ohaus, Precisa, Sartorius, Star Micronics, UWE e Wintec), e un nome (ad es. OS6X, OS6X 2). Una bilancia PC o IA diventa Su questo dispositivo (ad es. TS6X (ingebouwd); su Linux sulla porta interna /dev/ttyS0). Se qualcosa non va, Cerca trova porta, velocità e protocollo giusti.
Su questo dispositivo (Aclas Scale Module): la bilancia mostra il peso omologato; la cassa invia il prezzo al chilo e la tara (come pretara) e riprende l'importo calcolato dalla bilancia, come con Dialog 06.
- Android: l'app Aclas AclasScaleDriver (
com.aclas.aclasscaledriver) di solito è già sulla bilancia; altrimenti installaaclas-android/AclasScaleDriver.apk. L'app HorecaPOS comunica direttamente con il servizio di quell'app, quindi non serve nessuna libreria aggiuntiva. - Linux: Aclas non ha uno Scale Module per Linux. Scegli semplicemente il modello (ad es. TS6X): il collegamento diventa Su questo dispositivo (porta interna) su
/dev/ttyS0, 9600 baud, Toledo. La bilancia integrata di solito è su/dev/ttyS0o/dev/ttyS1; la ricerca le prova e inserisce porta, velocità e protocollo giusti. Anche qui una sola volta.
Il software Aclas è incluso nella cassa: lo Scale Module per Windows (aclas-module), AclasScaleDriver per Android (aclas-android) e l'Aclas Sync SDK per Windows e Linux (aclas-sdk). Aclas ci permette di fornirli. Gli installer per Windows e Linux li includono; niente da scaricare o installare a parte.
Bluetooth (p. es. la OS6X): associa prima la bilancia. Windows ne fa una porta COM (Impostazioni Bluetooth → Altre opzioni Bluetooth → Porte COM), Linux /dev/rfcomm0: inserisci quella porta. Nell'app Android inserisci l'indirizzo Bluetooth (00:11:22:AA:BB:CC); l'app chiede una volta l'autorizzazione per i Dispositivi nelle vicinanze e si collega via Bluetooth SPP.
Bilance IA (riconoscimento prodotti): la fotocamera riconosce il prodotto nel software Aclas sulla bilancia. La pesatura avviene tramite lo Scale Module (su questo dispositivo) o la porta RS232; le etichettatrici IA stampano dopo il riconoscimento un'etichetta con codice a barre che la cassa scansiona (come con la TS6X).
Aclas AI Recognition Plugin (bilancia IA con la cassa installata, ad es. la iS6X con Windows): il plugin di Aclas riconosce il prodotto e digita il suo codice a barre nella cassa, proprio come uno scanner (seguito da Enter); la schermata ordini aggiunge il prodotto con il peso all'ordine. Ecco come impostarlo:
- Per la bilancia attiva Scansiona etichette con lo stesso codice a barre del plugin. Consigliato: inizia con
27, PLU di 5 cifre, peso (tipo Aclas 17): la cassa calcola allora da sola con il prezzo al chilo. Va bene anche con il prezzo (tipo 12, inizia con22). - Per quella bilancia disattiva Pesare alla cassa: il plugin e lo Scale Module non possono accedere alla bilancia contemporaneamente. Il peso arriva dal codice a barre. Se il plugin risponde durante Cerca, la cassa propone questa configurazione e non avvia lo Scale Module. Senza codice di attivazione il plugin pesa e calcola l'importo, ma non riconosce i prodotti.
- Nel plugin stesso: il codice a barre in Scale and Barcode Format Settings → Default Barcode Format (tipo 17) e, nelle impostazioni della finestra, il punto in cui il plugin clicca e digita il codice. Scegli un punto vuoto della schermata ordini, non un pulsante. I nuovi prodotti il locale li insegna al plugin direttamente sulla bilancia (addestramento IA).
- Assegna un numero PLU ai prodotti pesabili e invia i PLU alla bilancia (Invia a TS6X o il file PLU); il plugin riconosce in base al numero PLU.
- La cassa lascia riconoscere il plugin solo finché la schermata ordini è aperta sulla bilancia stessa (
POST /aiplugin/resume, alla chiusura/aiplugin/suspend, porta 5003 sulla bilancia; la prima volta anche EmployeeMode: il display cliente della bilancia non mostra prodotti). Su altre casse e tablet e tramite il portale di gestione non succede nulla. - Il plugin si avvia sempre in Resume e non può comunicare il suo stato. Per questo la schermata ordini invia di nuovo resume ogni 30 secondi; se non arriva più (schermata chiusa, plugin o bilancia riavviati), entro un minuto la cassa mette il plugin su Suspend e ce lo lascia.
- Il plugin richiede un codice di attivazione di Aclas per ogni bilancia (legato al numero di serie). Funziona ora su Windows; la versione Android di Aclas seguirà (lì la cassa fa lo stesso).
Aclas OS6X (bilancia POS alla cassa, RS232/USB; le altre bilance collegate funzionano allo stesso modo):
- Una o più bilance (al massimo 8), ciascuna con un nome (ad es. Banco, Bar) e un proprio collegamento: porta COM / USB (
COM3su Windows,/dev/ttyUSB0su Linux/Android) con la velocità, oppure rete tramite un convertitore seriale-rete (indirizzo IP e porta TCP, ad es. 4001). - Protocollo: Richiesta (Toledo) = la cassa invia
We la bilancia risponde con il peso (Toledo 8217, impostazione abituale della OS6X; anche i messaggi di stato non stabile/sovraccarico/sotto zero) oppure Continuo = la bilancia invia da sola il peso di continuo (ST,GS, 0.512kg,US= non stabile) oppure Dialog 06 (omologata), vedi sotto, oppure DIGI (Type B) = la cassa inviaENQe la DIGI risponde con stato, peso netto, tara, prezzo al kg e importo (37 caratteri:<status> <toestand> CR 0<netto> CR 4<tarra> CR U<kiloprijs> CR T<bedrag> CR LF; stato bit 1 = stabile, bit 2 = sotto zero, bit 3 = sovraccarico, bit 4 = troppo leggero), oppure Gram = la cassa inviaENQ, attendeACK, inviaDC1e leggeSOH STX <S/U/F> <teken> <gewicht> <eenheid> <BCC> ETX EOT. Imposta sulla bilancia lo stesso protocollo e la stessa velocità. Bit di dati / parità: 8N1 (Aclas, Adam Equipment, DIGI, Dini Argeo, Excell Precision, Gram, Kern & Sohn, Minebea Intec, Ohaus, Precisa, Sartorius, Star Micronics, UWE, Wedderburn, Wintec) o 7E1 (A&D, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo 8217, Rice Lake, Zebra); Dialog 06 è sempre 7O1. Richiesta legge anche NCI (Avery Weigh-Tronix, Brecknell, Rice Lake BP-R): aWla bilancia rispondeLF 1.234KG CR LF S00 CR ETX; la riga di stato (S+ 2 o 3 byte) indica se è in movimento (byte 1 bit 0), troppo leggera (byte 2 bit 0) o in sovraccarico (byte 2 bit 1);^^^^^= sovraccarico,_____= troppo leggero. - Dialog 06 (Checkout-Dialog 06, il protocollo europeo per una bilancia omologata collegata a una cassa): la cassa invia il prezzo al chilo (e la tara del prodotto) alla bilancia; la bilancia pesa, calcola da sola l'importo e mostra prezzo al chilo, peso e importo sul proprio display (omologato). La cassa riprende peso e importo; nella finestra di pesatura compare "calcolato dalla bilancia". Sempre 9600 baud, 7 bit di dati, parità dispari, 1 bit di stop (la velocità nell'impostazione in questo caso non conta). Sequenza:
EOT STX 01 ESC <kiloprijs 6> ESC ETX(con tara: record03con 4 cifre in grammi) → ACK;ENQ→STX 02 ESC 3 ESC <gram 5> ESC <kiloprijs 6> ESC <bedrag 6> ETX; NAK →EOT STX 08 ETX→STX 09 ESC <code> ETX(22 = non ancora pronta, quindi riprova dopo 100 ms; 20 = in movimento; 21 = sollevare prima; 30/31 = troppo leggero; 32 = troppo pesante; 11 = prezzo non valido). Codici di controllo: molte bilance Dialog 06 chiedono di tanto in tanto (ad es. ogni 30 pesate) i codici di controllo del software di cassa (record 11 → record 10). Questi codici e il modo in cui vengono calcolati il produttore della bilancia li fornisce solo al fornitore della cassa. Inseriscili in Codici di controllo (coppie di 4 caratteri esadecimali, ad es.74AE 1B2C); la cassa li invia quando la bilancia li richiede. Se la bilancia calcola con un numero variabile (Z) e quindi i codici fissi non funzionano, la cassa lo segnala; in quel caso chiedi al fornitore di configurare la bilancia senza questo controllo, oppure usa Toledo. - Le bilance sono collegate al PC o al dispositivo su cui gira il server di cassa; tutte le casse e i tablet pesano tramite il server di cassa e scelgono nella finestra di pesatura quale bilancia usare. Prova esegue una singola pesata.
- La rete funziona ovunque.
- Consenti anche l'inserimento manuale del peso: attivo = anche con una bilancia il peso può essere digitato; senza OS6X è sempre possibile.
Scansiona etichette (casella alla bilancia: Aclas TS6X, un'altra bilancia PC o IA, la serie LS o la LH15X; bilancia + stampante di etichette, una per locale):
- Indirizzo IP: serve solo per Naar TS6X sturen. Pesare e scansionare etichette funzionano senza. Se la cassa gira sulla TS6X stessa, lascialo vuoto: la cassa invia allora a se stessa (127.0.0.1). Se la stessa bilancia pesa anche alla cassa, entrambe le caselle sono sulla stessa bilancia (la ricerca la imposta così).
- Scansiona etichette: scansionare le etichette nella schermata ordini. Imposta come appare il codice a barre, come sulla TS6X: inizia con (20–29, predefinito
28), numero di cifre del PLU (4, 5 o 6) e poi il peso in grammi o il prezzo in centesimi, più la cifra di controllo (EAN-13). Sotto l'impostazione c'è un esempio. - Numeri PLU: in Impostazioni → Prodotti un prodotto pesabile riceve un prezzo al chilo, eventualmente una tara e un numero PLU (univoco). Il numero PLU si sceglie da un elenco (Nessun PLU, prossimo libero, Altro numero…); quando spunti Prezzo al chilo il prossimo numero libero è già compilato. Serve solo per le etichette e i PLU della TS6X: senza TS6X può restare Nessun PLU.
- L'invio diretto funziona su Windows e Linux; su Android e macOS usa il file PLU. Alla prima installazione controlla i nomi dei campi del file PLU e i codici in
aclas-plu.ps1rispetto al manuale SDK della bilancia fornita (un unico punto da adattare:ACLAS_PLU_KOLOMMENinpackages/shared/src/weegschaal.ts).
Portale di gestione: il messaggio al portale ha la funzione Bilancia (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra) con acceso/spento e le bilance per modello (ad es. TS6X (op dit apparaat), 2x OS6X, PS1CX, Ariva-S, DS-781, LS6RX, 5 producten per kilo); nessun indirizzo IP, porta COM o indirizzo Bluetooth.
Metrologia legale: una bilancia usata per la vendita deve essere omologata (classe III, come la OS6X). Con Toledo/continuo la cassa calcola con il peso fornito dalla bilancia; con Dialog 06 è la bilancia omologata stessa a calcolare il prezzo.
Codice: packages/shared/src/weegschaal.ts (protocolli, etichette, file PLU), apps/pos-server/src/lib/weegschaal.ts e routes/weegschaal.ts; schermate WeegschaalInstellingen.tsx e WeegDialoog.tsx.
Thuisbezorgd.nl / Takeaway.com
Gli ordini di Thuisbezorgd.nl arrivano direttamente in cassa, senza intermediari (niente Deliverect, HubRise o simili): Just Eat Takeaway JET Connect comunica con il portale di gestione di Pin Voordeel, e la cassa recupera lì i suoi messaggi.
In Belgio la piattaforma si chiama Takeaway.com: stessa azienda (Just Eat Takeaway) e stessa integrazione. Per un locale belga, schermate, notifiche, comanda e portale di gestione mostrano ovunque Takeaway.com al posto di Thuisbezorgd.nl. Qui sotto Thuisbezorgd indica entrambi.
Perché tramite il portale? Alla cassa servono solo PORTAAL_URL e PORTAAL_SLEUTEL (vedi Portale di gestione) ed effettua solo richieste in uscita.
Configurazione (Impostazioni → Piattaforme di consegna → Thuisbezorgd.nl / Takeaway.com, permesso Imposta attività, pagamenti e stampanti; in precedenza si trovava in Impostazioni → Attività):
- Attiva Usa Thuisbezorgd (ha effetto subito, indipendentemente da Salva).
- Registrati su Thuisbezorgd. Poi il locale sceglie presso Thuisbezorgd (Partner Hub o account manager) OptimumPOS / Pin Voordeel come cassa. JET avvia quindi una sessione di onboarding; il portale individua la cassa registrata (per CAP e nome, altrimenti Pin Voordeel collega la sessione a mano nel portale), invia la configurazione e chiede il menu alla cassa. Dopo di che il collegamento è attivo.
- Spunta i prodotti ordinabili tramite Thuisbezorgd (per categoria o singolarmente), con un'eventuale descrizione per Thuisbezorgd. Il menu (prezzo, opzioni come modifier, allergeni, IVA) viene inviato automaticamente; PLU = id del prodotto/dell'opzione. Dopo una modifica al catalogo la cassa aggiorna il menu entro 30 secondi; solo "esaurito"/"di nuovo disponibile" passa tramite l'API di disponibilità.
- Orari di apertura Thuisbezorgd: separati per consegna e asporto (ad es.
16:00-22:00, più fasce separate da una virgola). Si salvano con il pulsante Salva orari di apertura qui sotto e vengono inviati a Thuisbezorgd come service times non appena l'integrazione è pronta. - Chiuso temporaneamente / Di nuovo aperto (in NL/BE riapre al più tardi la mattina successiva alle 07:00).
Ordini. Un ordine diventa un normale ordine senza tavolo (bezorgen o afhalen, nome gruppo TB <ordernummer>) con i prezzi pagati dal cliente, più costi di consegna/servizio come riga a sé e lo sconto di Thuisbezorgd come riga di sconto; se il totale comunque non torna, si aggiunge una riga "Verschil Thuisbezorgd". La comanda va subito a cucina/bar (disattivabile). La cassa conferma entro pochi secondi al portale, che lo comunica a JET; se non riesce entro 3 minuti o la cassa è offline, JET riceve "fallito" e il locale ripiega sull'Orderpad.
Pulsante Thuisbezorgd nella barra superiore (con il numero di ordini in corso): elenco, cliente e indirizzo, orario di pronto/consegna e la cronologia (track & trace): ricevuto, rider in arrivo al locale, rider al locale, in viaggio verso il cliente, consegnato (da JET), più passaggi propri (in preparazione, pronto, in viaggio/consegnato con consegna propria, ritirato). Una mappa live con il rider JET Connect non la offre alla cassa; il cliente la vede nell'app di Thuisbezorgd. Nuovo ordine, annullamento e "rider al locale" generano una barra arancione e un suono. Completa (pagato online) incassa con il metodo di pagamento online; se il cliente paga alla porta, incassa normalmente. Un annullamento da Thuisbezorgd fa decadere l'ordine e stampa una comanda "GEANNULEERD".
Codice: apps/pos-server/src/lib/thuisbezorgd.ts, routes/thuisbezorgd.ts; schermate ThuisbezorgdInstellingen.tsx e Thuisbezorgd.tsx. Lato portale: horecapos-portaal/src/thuisbezorgd.mjs (vedi README del portale).
Conteggio nel portale di gestione. Il numero di ordini Thuisbezorgd al giorno è incluso nella segnalazione al portale di gestione (verkoopTelling in lib/portaal.ts): ricevuti e non annullati, nel giorno di arrivo. Un ordine Thuisbezorgd incassato in cassa (anche con Completa (pagato online)) non viene contato una seconda volta tra asporto/consegna. I dati Thuisbezorgd si trovano nel database della cassa e quindi sono inclusi normalmente nei backup della cassa.
Webshop e ordini online
Ogni attività può avere un webshop proprio: un sito di ordinazione (e app) con la propria immagine per asporto, consegna, ordini al tavolo con un codice QR e prenotazioni, con pagamento online (MultiSafepay o Buckaroo) o pagamento al ritiro/alla consegna. Il webshop è un progetto separato, horecapos-webshop (Node.js, vedi il README lì), e gira sullo stesso server del portale di gestione.
Attivazione e configurazione avvengono nella gestione del webshop: pulsante Gestisci webshop nel portale clienti (titolare) o nell'installazione nel portale di gestione (Pin Voordeel). Lì trovi attivo/disattivato, l'indirizzo web (<zaak>.<webshopdomein> o un dominio proprio), l'immagine (colori, logo, foto di testata, carattere), orari di apertura e fasce orarie per asporto e consegna, zona di consegna (CAP, raggio o un'area sulla mappa, con costi e minimo), pagamenti, codici sconto, testi, lingue, codici QR per i tavoli, prenotazioni e l'app (installabile come PWA; un'app Android tramite una Trusted Web Activity), e le notifiche push (opzionali, disattivate per impostazione predefinita): il cliente attiva una notifica nella pagina del suo ordine e riceve una notifica push quando l'ordine è pronto o in arrivo; chi lo desidera riceve anche ogni tanto un'offerta, che il locale invia dalla gestione del webshop (scheda Notifiche push). Funziona su Android e computer (Chrome, Edge, Firefox, Samsung Internet), nell'app Android e su iPhone e iPad (iOS 16.4 o successivo) se il cliente aggiunge il webshop alla schermata Home. Non vengono inviati SMS né e-mail e non viene salvato alcun nome o numero. Dettagli nel README del webshop.
Menu. La cassa invia il menu automaticamente: tutti i prodotti attivi (non a peso), per gruppo di prodotti, con prezzo, opzioni di scelta, allergeni, esaurito e la foto del prodotto, oltre ai tavoli, ai dati dell'attività e ai canali di marketing attivi (per la casella "ricevere offerte" al pagamento, vedi Marketing via SMS ed e-mail). Ciò avviene all'avvio, appena il webshop viene attivato, entro 30 secondi da una modifica al catalogo ed entro pochi secondi da una modifica in Impostazioni → Attività, come il marketing o la carta fedeltà (oppure con Invia menu ora). Puoi escludere un prodotto dal webshop nella gestione del webshop (nascondi) o nel database con artikel.webshop = false.
Ordini. Asporto e consegna diventano un normale ordine senza tavolo (nome gruppo WEB <bestelnummer>) con i prezzi visti dal cliente, più costi di consegna e costi di transazione come righe a sé e un codice sconto come riga di sconto; se il totale non corrisponde comunque, viene aggiunta una riga "Differenza webshop". La mancia del cliente non conta come fatturato: viene aggiunta al pagamento come mancia con Completa (pagato online). Gli ordini al tavolo (codice QR) vanno sul conto aperto di quel tavolo (pagato online: come gruppo a sé a quel tavolo). La comanda va subito a cucina/bar (disattivabile nella finestra Webshop). La cassa conferma entro pochi secondi con il numero di scontrino; il cliente riceve quindi "ricevuto" e un'e-mail. Se la cassa è offline, il webshop non accetta ordini (il cliente lo vede subito) e invia un'e-mail all'attività se un ordine resta in attesa troppo a lungo. Le prenotazioni dal webshop arrivano in Prenotazioni (solo se le prenotazioni sono attive in cassa). Se è impostato un massimo per fascia oraria (Consegna e fasce orarie), contano anche gli ordini del webshop con un orario in quella fascia.
Belgio (scatola nera). Un ordine dal webshop va subito come ordine (signOrder) alla scatola nera, prima della comanda, come Invia ordine alla cassa. Se non riesce, non entra in cassa e il webshop lo rinvia più tardi. Ciò che non è ancora stato testato con la scatola nera è disattivato nel menu del webshop (buoni regalo, codici sconto, su conto, in camera, menu, opzioni con sovrapprezzo, happy hour e mancia) e viene rifiutato se un vecchio webshop lo invia comunque. Concludi controlla mancia, su conto e in camera come la cassa.
Addebito in camera (collegamento hotel, Impostazioni → Hotel → Self-service → Nel webshop): il menu riceve kamer: { maxBedrag }; il webshop invia betaling.wijze = "kamer" con kamer e achternaam. La cassa verifica l'ospite con il software alberghiero (non al tavolo, non con un buono regalo) e lo salva con l'ordine; Concludi (addebita in camera) chiude il conto sulla camera e registra lo scontrino sul conto dell'hotel. Fattura cumulativa con pagamento su conto: lo scontrino resta allora come partita aperta.
Pulsante Webshop nella barra superiore (con il numero di ordini in corso): elenco, cliente e indirizzo, orario desiderato o "il prima possibile", metodo di pagamento e la cronologia. Il cliente vede i passaggi In preparazione, Pronto e In consegna in tempo reale nel webshop (e via e-mail, se l'attività lo desidera). Incassato in cassa = Completato; Annulla storna solo le righe di quell'ordine del webshop, stampa una comanda "ANNULLATO", e il webshop rimborsa un ordine pagato online. Arrivato, no-show o annullato per una prenotazione viene anche rimandato al webshop. Un nuovo ordine o prenotazione mostra una barra arancione ed emette un suono.
Codice: apps/pos-server/src/lib/webshop.ts, routes/webshop.ts; schermata Webshop.tsx. Lato portale: horecapos-portaal/src/webshop.mjs.
Cassa e webshop allineati (ogni parte si attiva separatamente, disattivato di default; un webshop più vecchio ignora i nuovi campi). Ciò che è attivo nella cassa funziona anche nel webshop:
- Happy hour: il webshop applica lo stesso prezzo della cassa in quel momento (prezzo normale barrato e il nome dell'happy hour), anche con una stagione.
- Fasce orarie e modalità d'ordine (se sono attive): il webshop mostra solo ciò che è in vendita ora, e per asporto e consegna il prezzo e i prodotti di quella scelta (al tavolo: sul posto). Il menu riceve per prodotto
prijzen(afhalen,bezorgen) enietBij, e l'elencodagdelen. - Menu: l'ospite sceglie i piatti (fissi e a scelta, con le loro opzioni); nella cassa arriva come riga menu con i piatti sotto e il prezzo del menu ripartito (l'IVA per piatto è corretta). I piatti che appartengono solo a un menu vengono inviati come
menuArtikelen. Un vecchio webshop senza scelte: il menu arriva come prodotto normale sullo scontrino, come prima. - Magazzino esaurito = esaurito, anche le opzioni a scelta con un ingrediente finito.
- Allergeni: disattivati nella cassa = non nel webshop.
- Carta fedeltà: al pagamento l'ospite può raccogliere punti (con numero di telefono o e-mail); la cassa collega il cliente all'ordine e i punti vengono aggiunti all'incasso (il riscatto avviene nel locale). Il webshop mostra il saldo.
- Buoni regalo (Impostazioni → Attività → Buoni regalo → Vendere buoni regalo nel webshop, solo con saldo): l'ospite acquista un buono e paga online; la cassa crea il buono, subito attivo, e il codice torna al webshop tramite il portale (stato ed e-mail). Se è attivo anche Buono regalo come metodo di pagamento, per l'asporto l'ospite può scegliere "con un buono regalo nel locale".
- Codici sconto (Impostazioni → Codici sconto, con l'interruttore in Attività): per codice alla cassa e/o nel webshop; gli utilizzi valgono per entrambi insieme.
- Pausa e affollato: pulsante Webshop nella barra superiore: Metti in pausa il webshop (con un testo per l'ospite) e Affollato (minuti in più). Arriva al webshop in pochi secondi.
- Prenotazione online con le regole della cassa (Impostazioni → Attività → Prenotazioni): massimo persone, giorni in anticipo, fascia oraria, preavviso minimo e gli orari per giorno della settimana.
- Consegna e fasce orarie: vedi Il webshop segue la cassa in Consegna e fasce orarie.
- All-you-can-eat al tavolo (Impostazioni → Attività → All-you-can-eat → Anche negli ordini al tavolo tramite il codice QR): se al tavolo è in corso una formula, l'ospite vede i piatti compresi come Incluso per € 0, con i giri, il massimo a persona, l'attesa e il limite di tempo. Il resto lo paga normalmente; tutto va sul conto del tavolo. Se lo stato al tavolo è appena cambiato, la cassa rifiuta l'ordine e l'ospite ordina di nuovo.
- A credito (Impostazioni → Fatture → Pagamento a credito → Anche nel webshop): vedi Nel webshop in Pagamento a credito.
- Online in lista d'attesa (Impostazioni → Attività → Lista d'attesa): vedi Online in lista d'attesa in Lista d'attesa per clienti senza prenotazione.
- Upselling: "Qualcos'altro?" (facoltativo, di default disattivato; Impostazioni → Attività → Incassa → Upselling nel webshop): scegli le categorie (ad es. bevande, salse, dessert) e quanti suggerimenti. Nel webshop, nel carrello e al pagamento compaiono allora prodotti di quelle categorie che non sono ancora nel carrello (solo ciò che è in vendita in quel momento, non esaurito e senza scelte obbligatorie); l'ospite li aggiunge con un tocco. Nessuna categoria scelta = disattivato, come prima. Il chiosco ha un proprio upselling (vedi Chiosco self-service).
Per questo il menu per il webshop ha versie: 2 con i campi menuArtikelen, allergenenAan, happyhours, menus, klantenkaart, cadeaubon, kortingscodes, pauze, drukteMin, volgt, bezetting, reserveren.online, ayce, opRekening, wachtlijst e upsell. La conferma al portale contiene inoltre cadeaubonnen (codici), klant (punti) e plek (lista d'attesa).
Conteggio nel portale di gestione. Asporto e consegna tramite il webshop vengono contati a parte (webshop, webshopGeannuleerd in verkoopTelling), nel giorno di arrivo, e non una seconda volta tra asporto/consegna. Gli ordini al tavolo vengono contati normalmente come tavolo.
Pagamenti con carta e terminali
Impostazioni → Pagamenti (solo amministratore):
- Terminali: per ogni terminale un nome, l'ID terminale e la propria chiave API da PinPortal (Klant → Bewerk klant → Overige → API Keys). Dopo il salvataggio della chiave resta visibile solo la parte finale; non torna mai al browser. Con Verifica connessione controlli chiave e terminale.
- Modalità test: simula un terminale (riuscito dopo ±7 s; un importo che termina con 13 centesimi viene rifiutato). Utile per fare prove senza terminale di pagamento.
Se c'è almeno un terminale con chiave API (o la modalità test è attiva), Incassa → Carta / Bancontact avvia automaticamente il pagamento sul terminale, per l'importo calcolato dal server.
Finché il collegamento è attivo, il server accetta "carta" solo con un pagamento riuscito sul terminale per esattamente quell'ordine e quell'importo. Le richieste vengono inviate, come nell'SDK PHP ufficiale, come normale modulo, con l'API di riserva (api-backup.pinvandaag.com) se l'API principale non risponde. Ogni risposta dell'API compare con [pin] nella finestra del server, utile in caso di guasti. Un pagamento riuscito non ancora elaborato (ad es. tablet spento) viene ritrovato al successivo incasso di quell'ordine.
Mancia (carta, contanti e buono regalo)
Nella schermata di incasso, per ogni metodo di pagamento, c'è una fila di pulsanti mancia: Nessuno, 5%, 10%, 15% (arrotondato per eccesso a 10 centesimi), Arrotondamento (all'euro intero successivo) e Altro importo. Con la carta il cliente paga importo + mancia in un'unica volta sul terminale; in contanti la mancia rientra nel resto e nel cassetto. Sullo scontrino compare l'importo pagato con carta con sotto "di cui mancia"; il TOTALE e l'IVA restano invariati, perché la mancia non è un ricavo. Nel rapporto X/Z la mancia compare per metodo di pagamento e come "Totale mance".
L'amministratore configura i pulsanti mancia in Impostazioni → Attività → Mancia: attivo/disattivato, quali percentuali (al massimo 4, ad es. "5, 10, 15"), se c'è il pulsante "Arrotondamento" e con quali metodi di pagamento (carta, contanti, buono regalo) è possibile la mancia. "Nessuno" e "Altro importo" ci sono sempre.
"Arrotonda a …" c'è sempre, con ogni metodo di pagamento, anche se i pulsanti mancia sono disattivati (nessuna impostazione): il cliente arrotonda da sé il conto per eccesso e la differenza è mancia. Ci sono pulsanti con l'euro intero successivo e i successivi importi tondi (ad es. € 28,00 → 29, 30, 40; € 44,00 → 45, 50, 60) e Altro totale per digitare tu il totale. Toccare di nuovo il pulsante scelto = non arrotondare. Massimo € 500 di mancia (stesso limite del server di cassa).
Nessuna connessione internet
La cassa funziona nella rete locale e non ha bisogno di internet; solo i pagamenti con carta tramite il collegamento sì. Se il locale non ha internet, nella barra superiore compare Nessuna connessione internet · carta manuale (controllato ogni minuto). Nella schermata di incasso compare allora, e anche dopo un avvio non riuscito sul terminale, il pulsante Già pagato sul terminale: fai pagare l'importo sul terminale stesso e registralo così.
Piantine e tavoli
Impostazioni → Piantine sala (solo amministratore):
- Aggiungere piantine (ad es. Sala, Terrazza, Veranda), rinominarle, eliminarle e cambiarne l'ordine con ◀ ▶.
- Aggiungi tavoli con i pulsanti sopra la griglia (rotondo, quadrato, lungo, tavolo alto) e trascinali al loro posto con il mouse o con il dito. L'angolino blu di un tavolo selezionato lo ingrandisce o rimpicciolisce.
- Per ogni tavolo imposta nome/numero, numero di persone (le sedie intorno al tavolo si adeguano) e forma; duplicalo o eliminalo.
- Con la tastiera: le frecce spostano (Shift = passo più grande), Canc elimina.
- Le modifiche valgono solo dopo Salva; "Annulla" riporta tutto com'era.
- Un tavolo o una piantina con un ordine aperto non può essere eliminato. I tavoli eliminati restano conservati nei vecchi ordini.
Trasferire la configurazione a un secondo locale
Impostazioni → Importa/esporta (solo l'amministratore). Se hai configurato completamente un locale, esporta la configurazione in un file .json e importalo nella cassa del secondo locale. Selezionabile per sezione:
- Prodotti: categorie, prodotti, prezzi (anche per modalità d'ordine), IVA, opzioni, menu, happy hour (con stagione), fasce orarie, allergeni, ingredienti/ricette, carte timbri, le formule all-you-can-eat e le foto dei prodotti.
- Piantine sala: sale e tavoli.
- Altre impostazioni: tutte le opzioni dell'attività, stampanti (senza indirizzo IP), permessi per ruolo e contabilità.
Non vengono mai trasferiti: nome, indirizzo, CAP, città, telefono, e-mail, partita IVA e riga di chiusura dello scontrino del locale, l'indirizzo e-mail per il rapporto Z, i terminali di pagamento e le loro chiavi, personale e PIN, e tutti i ricavi, scontrini, clienti e giacenze di magazzino.
L'importazione è fortemente protetta: un grande avviso rosso, una casella "Ho capito...", di nuovo il PIN personale dell'amministratore, nessun ordine aperto, lo stesso paese (aliquote IVA) e prima un backup automatico. L'importazione avviene in un'unica transazione: se qualcosa va storto, non cambia nulla. Prodotti, categorie, ingredienti e tavoli esistenti non vengono cancellati ma tolti dalla cassa (come con Elimina), così vecchi scontrini e rapporti restano corretti.
Importa da un'altra cassa
Cambiare cassa senza ridigitare tutto. Sempre disponibile (senza interruttore): in Impostazioni → Importa/esporta (solo l'amministratore) c'è la sezione Importa da un'altra cassa.
- Cosa: prodotti (nome, prezzo IVA incl., IVA, gruppo, codice/PLU, magazzino) o clienti della carta fedeltà (nome, telefono, e-mail, punti, indirizzo, CAP, città; nome e cognome vengono uniti).
- File: un'esportazione della tua cassa precedente (Dobizzz/DoPos, Lightspeed, MplusKASSA, unTill, Tebi ...) o un tuo elenco: CSV (; , tab o |; UTF-8 o Excel olandese) oppure Excel (.xlsx), il primo foglio, con i nomi delle colonne nella prima riga. Un vecchio file .xls va prima salvato come .xlsx o CSV.
- Anteprima: la cassa riconosce le colonne dal nome (Omschrijving, Verkoopprijs incl. BTW, BTW %, Omzetgroep, Artikelnummer, GSM, Spaarpunten ...) e mostra le prime 10 righe. Se una colonna non è giusta, sceglila tu. Non cambia nulla finché non tocchi Importa.
- Prodotti: prezzi come 3,50, € 3,50 o 1.234,50; IVA come 21, 9%, 0,09, alta o bassa (sconosciuta o vuota: l'aliquota che scegli, per impostazione predefinita la più alta). Le categorie che non esistono ancora vengono create (senza gruppo: "Importato").
- Magazzino (colonna Voorraad, Stock, Aantal ...): se Gestione magazzino è attiva (Impostazioni → Attività), il prodotto gestisce il magazzino e la giacenza diventa quella quantità (un conteggio nello storico del magazzino, motivo "Importato"). Vuoto: la giacenza resta com'è.
- File di esempio (CSV): un elenco da compilare da sé (Naam;Productgroep;Prijs;Btw;Voorraad;Code), per esempio in Excel.
- Clienti: i punti vengono aggiunti come correzione "Importato da un'altra cassa" (visibile nella cronologia). Il consenso per SMS o e-mail non viene trasferito (GDPR): devi richiederlo. Attiva prima la carta fedeltà.
- I prodotti esistenti (stesso codice o, senza codice, stesso nome) e i clienti esistenti (stesso telefono o e-mail) vengono saltati, oppure aggiornati se lo spunti (per i prodotti nome, prezzo, IVA, gruppo e magazzino). Le righe doppie nel file vengono prese una volta sola.
- Alla fine: quanti nuovi, aggiornati e saltati, con per ogni riga cosa non andava (es. nessun prezzo). Al massimo 5000 righe alla volta. Nel registro compare come "Configurazione importata".
Lingue (42, tra cui turco, arabo, darija, berbero, polacco, bulgaro, ungherese, russo, serbo, albanese, persiano, tigrino, amarico, somalo, papiamento, sranan tongo, hindi, urdu, indonesiano, vietnamita, siriaco-aramaico, cinese e ucraino)
Accanto al pulsante © in basso a destra, su ogni schermata c'è un pulsante con la lingua (ad es. NL e la bandierina). Toccalo per il menu di scelta: le lingue sono in ordine alfabetico, con il nome nella lingua stessa prima della bandiera: Bahasa Indonesia (indonesiano), Čeština (ceco), Darija (arabo marocchino in alfabeto latino), Deutsch, English, Español, Français, Hrvatski (croato), Italiano, Kurdî (Kurmancî), Latviešu (lettone), Lietuvių (lituano), Magyar (ungherese), Nederlands, Papiamentu (papiamento), Polski, Português, Română, Shqip (albanese), Slovenčina (slovacco), Soomaali (somalo), Sranantongo, Srpski (serbo, in alfabeto latino), Tarifit (berbero rifano), Tiếng Việt (vietnamita), Türkçe, poi in alfabeto cirillico Български (bulgaro), Русский (russo) e Українська (ucraino), poi le lingue in alfabeto arabo: اردو (urdu), الدارجة (darija), العربية (arabo), دری (dari), فارسی (persiano, farsi), پښتو (pashto) e کوردی (سۆرانی) (curdo sorani), poi in alfabeto siriaco ܣܘܪܝܝܐ (siriaco-aramaico, Suryoyo), in devanagari हिन्दी (hindi), in alfabeto ge'ez ትግርኛ (tigrino) e አማርኛ (amarico), in tifinagh ⵜⴰⵎⴰⵣⵉⵖⵜ (tamazight, berbero), e per ultimo 中文(简体)(cinese, scrittura semplificata). Tutte le schermate, i pulsanti, i messaggi e i messaggi di errore del server di cassa vengono tradotti.
- Per dipendente: la lingua scelta viene salvata per il dipendente connesso (
gebruiker.taal). Se qualcuno accede con un'altra lingua, la cassa cambia subito lingua. Sul dispositivo stesso viene ricordata l'ultima lingua usata, così anche la schermata del PIN è già in quella lingua. Se scegli una lingua (nella schermata del PIN o da connesso) e accedi (di nuovo) entro 10 minuti, quella scelta ha la precedenza e diventa la lingua di quel dipendente. Il cambio ricarica la schermata; resti connesso e il conto aperto resta aperto. - Prima volta su un dispositivo: se su un tablet o un PC non è ancora impostata una lingua, la cassa si avvia nella lingua scelta durante l'installazione. Se non è stata scelta alcuna lingua, usa quella del dispositivo stesso (browser o sistema operativo, anche nell'app Android) e, se non è tra quelle disponibili, l'olandese. Poi ogni dispositivo ricorda la propria scelta.
- Europa orientale: polacco, ceco, slovacco, ungherese, rumeno, bulgaro, croato (anche per il bosniaco), lituano, lettone, ucraino e russo: le lingue della maggior parte dei lavoratori migranti dall'Europa centrale e orientale nei Paesi Bassi e in Belgio.
- Balcani: serbo (in alfabeto latino, come lo scrive la maggior parte dei serbi nei Paesi Bassi e in Belgio; anche per il montenegrino) e albanese (Albania, Kosovo e Macedonia del Nord).
- Corno d'Africa: tigrino (Eritrea) e amarico (Etiopia), entrambi in alfabeto ge'ez, e somalo (in alfabeto latino).
- Iran: persiano (farsi). Un dispositivo in persiano dell'Afghanistan (fa-AF) riceve il dari, gli altri il farsi.
- Caraibi olandesi e Suriname: papiamento (Papiamentu, grafia di Curaçao e Bonaire; anche per Aruba) e sranan tongo.
- Asia: hindi (devanagari; anche per il sarnami hindustani), urdu (da destra a sinistra), indonesiano e vietnamita (alfabeto latino, anche sullo scontrino).
- Marocchino: darija (arabo marocchino, la lingua parlata) in alfabeto arabo e in alfabeto latino (come lo scrivono nelle chat molti olandesi di origine marocchina), accanto all'arabo standard. Berbero: tarifit (rifano, in alfabeto latino; la maggior parte degli olandesi di origine marocchina viene dal Rif) e tamazight standard marocchino in alfabeto tifinagh.
- Da destra a sinistra: arabo (arabo standard), urdu, darija in alfabeto arabo, dari e pashto (Afghanistan), persiano (farsi, Iran), curdo sorani (Iraq/Iran) e siriaco-aramaico (Suryoyo, in alfabeto siriaco). Importi, codici e tasti numerici restano da sinistra a destra. Il curdo kurmanci (Turchia/Siria) è in alfabeto latino.
- Comanda (cucina/bar): di default nella lingua del dipendente che passa l'ordine. Per ogni stampante si può anche impostare una lingua fissa (ad es. quella del cuoco) in Impostazioni → Stampanti → Lingua della comanda, in alfabeto latino: Nederlands, Čeština, Darija, Deutsch, English, Español, Français, Hrvatski, Italiano, Kurdî, Latviešu, Lietuvių, Magyar, Papiamentu, Polski, Português, Română, Shqip, Slovenčina, Soomaali, Sranantongo, Srpski, Tarifit, Tiếng Việt, Bahasa Indonesia o Türkçe. Bulgaro, russo e ucraino escono sulla comanda in traslitterazione latina (la stampante di scontrini non conosce il cirillico). Alfabeto arabo, siriaco, devanagari, ge'ez e tifinagh e cinese non sono possibili su una stampante di scontrini: il darija esce allora in alfabeto latino, il tamazight come tarifit e il resto in olandese. I testi fissi (TAFEL, Gang, WACHT op afroep, AFROEP GANG, LATER GEPRINT, Afhalen, Balie) vengono tradotti; nomi dei prodotti e note restano come sono stati inseriti. Le stampanti impostate sull'olandese seguono il dipendente.
- Scontrino (per tutti i clienti): di default in olandese, indipendentemente dalla lingua delle schermate. Un'altra lingua si sceglie in Impostazioni → Attività → Lingua dello scontrino (subito sotto il testo in fondo allo scontrino), solo lingue in alfabeto latino. Vale anche per pro forma, scontrino di reso, copia, buono regalo e scontrino via e-mail. Gli importi, i codici IVA, la partita IVA dell'attività e le righe fiscali (Belgio) restano uguali; un testo personalizzato in fondo allo scontrino resta come lo scrive l'attività.
- Prodotti, categorie e opzioni si chiamano come li inserisce il locale; non vengono tradotti.
- La lingua per dipendente si imposta anche in Impostazioni → Personale.
- Introduzione e manuale sono disponibili anche in tutte queste lingue. Con il pulsante © si aprono nella lingua della cassa; in alto scegli un'altra lingua con le bandiere (questo non cambia nulla nella cassa).
Per gli sviluppatori: ogni testo visibile è nel codice come vt('Nederlandse tekst') (apps/pos-web/lib/i18n.ts); il testo olandese è la chiave. Le traduzioni si trovano in apps/pos-web/lib/vertalingen/<taal>.ts. Se manca una traduzione, la cassa mostra l'olandese; il test i18n (pos-web) verifica che ogni testo sia tradotto in ogni lingua e che i segnaposto {0} corrispondano. I messaggi del server di cassa restano in olandese e vengono tradotti nel browser (anche con {0}, ad es. un nome di prodotto nel messaggio).
Configurare le stampanti
Una cassa nuova non ha stampanti. Accedi come amministratore (demo: 1111) e scegli Impostazioni nella barra superiore.
- Stampanti: aggiungi tante stampanti quante ne ha il locale (ad es. cassa, cucina, bar, pizza), ognuna con una connessione (di solito la rete: indirizzo IP e porta 9100) e larghezza carta. Con Stampa di prova verifichi che funzioni. In alto scegli quale stampante stampa scontrino e pro forma (e apre il cassetto). Per ogni stampante scegli anche la lingua della comanda (vedi Lingue); lo scontrino resta in olandese.
- Connessione per stampante:
- Rete (indirizzo IP): indirizzo IP e porta (di solito 9100). Ha sempre funzionato così e continua a funzionare così: le stampanti esistenti sono impostate automaticamente su rete.
- USB: su Linux il dispositivo, ad esempio
/dev/usb/lp0. Su Android la stampante USB collegata al dispositivo (cavo OTG; vuoto = la prima stampante USB). Su Windows e macOS scegli Stampante di sistema. - Seriale (COM / ttyUSB): una porta COM (Windows),
/dev/ttyUSB0o/dev/ttyS0(Linux, Android) o/dev/cu.…(macOS), con la velocità (di solito 9600, 19200 o 38400 baud). Anche per una stampante Bluetooth che Windows o Linux associa come porta COM o/dev/rfcomm0. - Bluetooth: nell'app HorecaPOS su Android, con l'indirizzo Bluetooth della stampante associata (ad es. una stampante di scontrini portatile). Associa prima la stampante nelle impostazioni Bluetooth di Android.
- Stampante di sistema (Windows / CUPS): la stampante come la conosce Windows o CUPS (Linux, macOS), con il suo driver o come Generic / Text Only. Lo scontrino viene inviato grezzo (RAW) alla stampante, senza formattazione da parte del driver.
- Integrata (Sunmi, iMin ...): la stampante dentro una cassa Android.
- Cerca mostra le stampanti e le porte che la cassa vede. Scegline una e l'indirizzo viene compilato.
- Protocollo: ESC/POS (quasi tutte le stampanti di scontrini, anche le stampanti Star in modalità ESC/POS) o Star (Star Line Mode). Con Star la cassa converte da sola lo scontrino; lo scontrino appare uguale.
- Schermo di servizio con stampante propria: uno schermo di servizio Android con l'app HorecaPOS (ad es. un palmare con una stampante Bluetooth portatile, o un Sunmi come schermo di servizio) può stampare da solo. Registralo sul dispositivo stesso (Impostazioni → Stampanti → Schermi di servizio con stampante propria) e scegli Collegata a nella stampante. Lo schermo di servizio preleva i suoi scontrini dalla cassa; lascia l'app aperta su di esso. Se non riesce (app chiusa, fuori dalla portata del wifi), la comanda finisce nella coda di stampa, come per una stampante di rete spenta. Annulla registrazione dispositivo riporta le stampanti sulla cassa stessa.
- Stampante per categoria / prodotto: scegli per ogni categoria di articoli su quale stampante esce la comanda. Per singolo prodotto puoi sovrascriverlo con una stampante propria o "nessuna comanda".
In stampa i prodotti uguali vengono raggruppati: due volte 1x Cola diventa 2x Cola, sulla comanda e sullo scontrino. Si raggruppano solo prodotti con le stesse opzioni e la stessa nota.
L'installer Linux aggiunge l'utente della cassa ai gruppi lp e dialout, così la cassa può usare le stampanti USB e seriali.
Serve aiuto?
Optimum POS · 085 560 00 60 · support@optimumpos.nl · lun–ven 9:00–20:00, sab–dom 14:00–20:00