Manual HorecaPOS
Acest manual are trei părți: mai întâi pentru personal (ospătari), apoi pentru manager și în final pentru administrator. Fiecare parte se bazează pe cea anterioară: un manager poate face tot ce pot face ospătarii, iar administratorul poate face totul.
Ce are voie să facă exact rolul dvs. setează administratorul la Setări → Drepturi. Dacă nu vedeți un buton, rolul dvs. nu are (încă) dreptul respectiv.
Acest manual se găsește și în casa de marcat: atingeți butonul © din dreapta jos pe orice ecran și alegeți Manual, sau deschideți http://<kassa-pc>:3000/handleiding. Vedeți și introducerea și documentația API.
Partea 1 · Personal
Primii pași
Autentificare. Deschideți casa de marcat pe casă, tabletă sau telefon și introduceți codul PIN (4 până la 8 cifre). Apoi vedeți planul sălii.
Deschiderea unei mese. Atingeți o masă. O masă liberă primește o comandă nouă; la o masă ocupată continuați comanda existentă. Sus comutați între săli (de exemplu Sală și Terasă). La tejghea folosiți Vânzare rapidă, iar pentru comenzile la pachet La pachet.
Comandă. Alegeți o categorie de produse și atingeți produsele. Acestea apar pe bonul din stânga. Dacă doriți, alegeți mai întâi felul (1 = imediat, 2 și 3 așteaptă până le apelați). Atingeți Trimite comanda: bonurile de bucătărie pleacă la bucătărie și la bar. Cât timp nu ați atins Trimite comanda, puteți șterge liniștit rânduri.
Încasare. Atingeți Încasare, alegeți Card / Bancontact, Numerar sau Card cadou, eventual un bacșiș, și confirmați. La plata cu cardul, plata pornește automat pe terminalul de plată. Bonul se tipărește; îl puteți trimite și prin e-mail.
Deconectare. Deconectați-vă când ați terminat, ca nimeni altcineva să nu lucreze sub numele dvs. După 8 ore sunteți deconectat automat.
Fără internet? Casa de marcat continuă să funcționeze. Dacă sus apare Fără internet · card manual, introduceți suma direct pe terminalul de plată și alegeți în ecranul de încasare Plătit deja pe terminal.
Mai multe grupuri la o masă
La o masă pot sta mai multe grupuri, fiecare cu nota proprie și bonul propriu.
- Atingeți o masă: liberă = comandă nouă; un grup = direct acel grup; mai multe grupuri = alegeți mai întâi, sau + Grup nou (numele poate rămâne gol).
- În ecranul de comandă, sus se află bara de grupuri: comutare între grupuri, + Grup, Nume grup (ex. "Popescu") și Împarte / mută.
- Împarte / mută: alegeți pentru fiecare rând câte bucăți se mută (la 3× Bere blondă ex. 1) și în ce grup, sau creați un grup nou. Așa mutați ceva aflat pe nota greșită sau împărțiți ulterior "fiecare își plătește partea". Când un grup rămâne gol, dispare.
- Mai multe părți deodată: cu + Încă o parte pregătești o parte și o alegi pe următoarea (de ex. peștele și un Dry Martini la masa 2, restul la masa 35). O parte poate merge și la + Altă masă (acolo ca grup nou). Cu Mutare totul se mută deodată. ½ împarte un rând în două, inclusiv o jumătate de sticlă (0,667 devine 2 × 0,3335).
- Unește: tot de la una sau mai multe alte mese (sau grupuri de la această masă) pe această notă, deodată.
- Belgia: împărțirea sau unirea deodată este la cutia neagră o singură schimbare de masă, așa cum cere SPF Finanțe (UC242, UC251, UC252, UC4119bis). Dacă după comandă se șterge ceva sau se dă reducere pe un rând deja comandat, aceasta merge cu următorul mesaj al mesei respective (comandă, notă provizorie, schimbare de masă), altfel cu vânzarea: rândul vechi negativ și cel nou pozitiv (UC226, UC4102, UC4104, UC4107, UC4110).
- Pe ecranul meselor, o bulină portocalie arată câte grupuri sunt; suma este totalul tuturor grupurilor.
- Bonul fiscal și bonul de bucătărie afișează "Masa 5 - grup 2" sau "Masa 5 - Popescu".
Împărțirea notei la încasare
Încasarea funcționează ca întotdeauna: Totul deodată. În ecranul de încasare nota poate fi acum și împărțită, cu butoanele de sub Înapoi și Încasează (astfel acestea rămân mereu vizibile, fără derulare):
- Împarte în mod egal: alege cu − și + la câte persoane (implicit numărul de clienți, sau 2 dacă casa nu înregistrează persoanele). Ecranul arată suma per persoană; fiecare își plătește partea cu cardul, numerar sau card cadou (cu bacșiș, dacă dorește). După fiecare parte se numără invers ("încă 3 persoane"); ultimul plătește exact restul.
- Sumă personalizată: cineva plătește o sumă fixă (ex. € 20); restul rămâne deschis.
- Pe produs…: deschide Împarte / mută pentru a muta produse pe o notă separată și a o încasa separat (ca mai sus).
O plată parțială înregistrează doar plata; nota rămâne deschisă, iar în ecranul de comandă apare "deja plătit … · rest de plată …". Bonul (cu toate plățile pe el) vine la ultima plată, ca la o încasare obișnuită. Plata cu cardul prin integrare se face exact pentru suma parțială. Dacă s-a plătit deja o parte, nu se mai pot muta rânduri în alt grup și nu se mai pot adăuga reduceri; ștergerea este posibilă doar dacă restul de plată este suficient. Fiecare plată parțială apare în jurnal.
Vânzare rapidă și la pachet (fără masă)
În dreapta sus pe ecranul meselor se află Vânzare rapidă și La pachet. Ambele deschid imediat o comandă fără masă. Vânzarea rapidă este vânzarea la tejghea (TVA pentru consum pe loc); La pachet folosește cota TVA pentru la pachet a fiecărui produs. Cu "Nume client" adăugați un nume; acesta apare pe bon ("La pachet – Popescu") și în partea de sus a bonului de bucătărie. Comenzile deschise fără masă apar sub butoanele sălilor ("Fără masă: La pachet #12 – Popescu"), ca să le regăsiți. Dacă vă întoarceți fără să vindeți nimic, comanda goală dispare de la sine.
Ambele butoane pot fi activate sau dezactivate pentru fiecare local în Setări → Local, imediat sub tema luminoasă/întunecată (implicit pornit). Dezactivat = buton ascuns; comenzile fără masă deja deschise rămân vizibile.
Livrare și intervale orare
Comenzi pe care le preluați chiar la casă, de exemplu telefonic sau la tejghea, cu aceleași reguli ca în magazinul online: zone de livrare și un număr maxim de comenzi pe interval orar. Se activează la Setări → Local → Livrare și intervale orare, imediat sub butoanele Vânzare rapidă și La pachet (implicit oprit).
- Butonul Livrare pe ecranul meselor (lângă La pachet): introduceți numele, telefonul și adresa (cu Introducere rapidă a adresei activată: căutare după codul poștal și număr). Casa caută zona de livrare și afișează taxa de livrare, minimul și "gratuit de la". Dacă adresa se află în afara zonelor, comanda nu este posibilă.
- Zone de livrare: după codul poștal (intervale și coduri individuale, de ex.
5000-5049, 5051, 5052 AB), într-o rază în km de local (în linie dreaptă) sau o zonă pe hartă pe care o desenați singuri. Raza și zona funcționează doar cu adrese din Țările de Jos (locație prin PDOK). Pentru fiecare zonă: taxă de livrare, minim, gratuit de la și minute suplimentare; se aplică prima zonă potrivită de sus, deci tipurile se pot combina (de ex. întâi câteva coduri poștale, apoi o zonă pe hartă, apoi o rază pentru rest). Nicio zonă setată = livrare oriunde, fără taxe sau minim. Zonele magazinului online le setați separat (administrarea magazinului online). - Zonă pe hartă: la o zonă de livrare alegeți tipul Zonă pe hartă și apoi Desenare pe hartă. Faceți clic pe hartă pentru a pune puncte (cel puțin 3); trageți un punct pentru a-l muta, faceți clic pe un punct pentru a-l elimina și trageți cerculețul de la mijlocul unei laturi pentru un punct intermediar. Harta arată și zonele cu rază și localul. Plăcile hărții provin de la OpenStreetMap, deci harta necesită internet; livrarea în sine nu (cu excepția căutării adresei). Dacă adresa nu poate fi căutată, casa afișează acest lucru în loc de "în afara zonelor de livrare".
- Taxa de livrare apare pe comandă ca rândul "Bezorgkosten" și se recalculează după fiecare modificare (gratuit de la, fără produse = fără taxă), atâta timp cât nu s-a plătit nimic. Sub minim nu se poate încasa; ecranul comenzii arată cât mai lipsește, cu butonul Totuși la pachet (taxa de livrare și minimul nu se mai aplică).
- Ora: Cât mai repede (acum + timpul de livrare, plus minutele suplimentare ale zonei) sau un interval orar de azi. Dacă aveți program setat la Thuisbezorgd, acesta se aplică și aici.
- Maxim pe interval orar (0 = fără maxim; interval orar de 5 până la 60 minute): pentru La pachet și Livrare împreună; se iau în calcul și comenzile din magazinul online aflate în casă. Dacă există un maxim, și La pachet cere o oră, iar intervalele pline nu pot fi alese. Două case simultan pentru ultimul loc: îl primește doar una.
- Pe bonul de bucătărie apar adresa, numele, telefonul și ora; în "Fără masă" și în partea de sus a bonului de bucătărie de ex. "Livrare – 18:30 Popescu".
Extinderi (totul implicit oprit; fără aceste setări funcționează exact ca mai sus):
- Program propriu pentru la pachet și livrare (pe zi a săptămânii, de ex.
16:00-21:00sau11:30-14:00, 17:00-22:00; după miezul nopții este permis:17:00-01:00; gol = închis în ziua respectivă). Oprit = ca înainte (orele de la Thuisbezorgd, dacă există, altfel toată ziua). - Zile închise (de ex.
25-12-2026, 26-12-2026): în aceste zile nu există la pachet sau livrare. - Comandă în avans: între 0 (doar azi, ca înainte) și 14 zile. În fereastra Livrare/La pachet alegeți mai întâi ziua; o zi ulterioară apare pe bonul de bucătărie înaintea orei.
- Aglomerat: atâtea minute în plus la "cât mai repede" (casă și magazin online). Se poate seta rapid și cu butonul Magazin online din bara de sus.
- Adrese din Belgia (cod poștal din 4 cifre): la o rază sau o zonă pe hartă, casa de marcat caută locația prin OpenStreetMap (Nominatim; sunt necesare strada și localitatea).
- Magazinul online urmează casa de marcat: casa de marcat are prioritate. Magazinul online folosește atunci zonele de livrare, timpul de livrare și de preluare, intervalul orar, maximul pe interval orar, programul (dacă este setat aici), zilele închise și zilele în avans ale casei de marcat și include în intervalul orar comenzile preluate la casă. Oprit = magazinul online are propriile setări (administrarea magazinului online), ca înainte. Pornirea sau oprirea opțiunilor la pachet/livrare rămâne în magazinul online.
Cod: lib/bezorgen.ts, routes/bezorgen.ts, BezorgDialoog.tsx, BezorgInstellingen.tsx, BezorgKaart.tsx și lib/kaart.ts (harta, fără pachet suplimentar; același cod se află în magazinul online ca public/kaart.js).
Telefonie: recunoașterea clientului la o comandă telefonică
Setări → Telefonie (implicit oprit; oprirea păstrează totul). Două comutatoare separate:
- Căutarea clientului după numărul de telefon la livrare și la pachet: când introduci numărul în ecranul de livrare, casa arată clientul cu adresa și comenzile anterioare; Preia datele completează numele, e-mailul și adresa. Funcționează și fără centrală telefonică.
- Identificarea apelantului: când sună un client, centrala telefonică (sau telefonul de birou, FRITZ!Box, modemul ori telefonul Android) transmite numărul. Pe ecrane apare o notificare cu cine sună: nume, adresă, ultimele comenzi (cu preparatele și suma, inclusiv din magazinul online, Thuisbezorgd și platformele de livrare), totalul și o rezervare. Cu Preia comandă cu livrare sau Preia comandă la pachet se deschide ecranul de livrare cu totul deja completat (cu Livrare și intervale orare activate); comanda este legată de apel, iar notificarea dispare de pe toate ecranele. Butonul 📞 din bara de sus: apelurile din ultimele 24 ore. Se poate dezactiva pe fiecare ecran (Afișează notificări pe acest ecran).
Se caută în cardul de fidelitate, în comenzile cu livrare și la pachet ale casei, în magazinul online, Thuisbezorgd, platformele de livrare și rezervări. Numerele sunt uniformizate (+31 6 1234 5678, 0031612345678 și 06-12345678 sunt același număr; și numerele belgiene).
Cum ajunge numărul (se pot folosi mai multe simultan; același apel contează o singură dată):
| Sursă | Pentru | Configurare |
|---|---|---|
| Webhook / action URL | 3CX (integrare CRM), Aircall, Voys / VoIPGRID, Yeastar seria P, telefoane cu action URL la un apel primit (Fanvil, Grandstream, Mitel 6800/6900, Snom, Yealink: funcționează cu orice centrală și operator), servicii de integrare (Zapier, Make, n8n, Power Automate) | adresa din Setări → Telefonie (/api/telefonie/oproep?sleutel=...&nummer=...), GET sau POST, JSON, formular sau query; și prin portal: https://<portaal>/telefonie/<kassa-id>/oproep?sleutel=... |
| Asterisk (AMI) | Asterisk, FreePBX, Issabel, VitalPBX, Grandstream UCM | adresă, port (5038; Grandstream UCM 7777), utilizator AMI și parolă (drepturi call) |
| FRITZ!Box | FRITZ!Box cu telefonie | adresă (fritz.box) și portul 1012; activează o dată callmonitor cu #96*5* |
| Modem USB caller ID | linie fixă analogică cu afișarea numărului | port serial (COM3, /dev/ttyACM0), baud și comandă de inițializare (implicit AT+VCID=1) |
| Telefon Android | telefonul integrat al unui telefon Android al localului | aplicația HorecaPOS pe acel telefon, Setări → Telefonie → Asociază acest telefon (Android 10+: alege aplicația ca aplicație de identificare a apelantului) |
Răspunsul conține apelantul, și ca contact (firstname, lastname, phone, email, address) pentru un șablon CRM 3CX. Apelurile efectuate și cele interne nu sunt afișate; Doar aceste linii limitează la anumite linii sau telefoane. Apelurile sunt șterse după perioada de păstrare (implicit 30 zile, GDPR). Apel de test simulează apelul unui număr.
Cod: apps/pos-server/src/lib/telefonie.ts, routes/telefonie.ts, packages/shared/src/telefonie.ts; ecrane Telefonie.tsx, BezorgDialoog.tsx; Android android-app/native/java/Beller*.java. Jurnal: Telefonie.
Curieri proprii: curse, predarea banilor și urmărire comenzi (track & trace)
Pentru localuri cu curieri proprii. Porniți-o din Setări → Local → Livrare → Curieri proprii (implicit oprită). Curierul nu are nevoie de aplicație: folosește o pagină în browserul propriului telefon (cine vrea folosește aplicația Optimum Bezorger: vezi Aplicația pentru curieri mai jos).
Crearea unei curse. În casă există butonul Curse (cu numărul de livrări care trebuie să plece, plus cursele aflate pe drum).
- La Gata de livrare bifați comenzile care pleacă. Acestea sunt comenzile de livrare din casă, din magazinul online și de la Thuisbezorgd (doar livrare proprie; cele cu un curier Thuisbezorgd nu).
- Alegeți curierul (un angajat) și banii de rest pe care îi ia (implicit suma din setare) și atingeți Creați cursa.
- Apare un cod QR. Curierul îl scanează cu propriul telefon și vede pentru fiecare adresă numele, adresa cu un buton Rută (navigare), Sună, observația, ora dorită și ce are de încasat. Există un calculator de rest (clientul dă € 50 → rest € 31,50). Nu este nevoie de autentificare. Partajați linkul doar cu curierul: cine îl are vede adresele acestei curse. Cu Cod QR pentru curier creați un link nou; cel vechi nu mai funcționează.
- Atingeți Plecare când curierul pleacă. Banii de rest ies din sertar (ieșire de numerar, cu motivul). Clientul primește un mesaj că comanda este pe drum:
- pentru o comandă din casă prin SMS și/sau e-mail, dacă Mesaje către client este activat (vezi Livrare și intervale orare);
- pentru magazinul online conform setărilor acestuia (e-mail, SMS sau notificare push);
- pentru Thuisbezorgd prin Thuisbezorgd.
Dacă cursa nu a plecat încă, mai poate fi anulată.
- Pe drum, curierul atinge la fiecare adresă Livrat, numerar, Livrat, card (un terminal de plată propriu) sau Livrat (deja plătit). Casa vede imediat. Dacă curierul nu poate raporta, se poate face și din casă. Întors în local, curierul atinge M-am întors în local.
Predarea banilor. După cursă atingeți Încasare (drept Gestionare sertar de bani):
- Pentru fiecare comandă alegeți numerar, card la ușă, deja plătit sau nelivrat (înapoi). Ce a raportat curierul este deja completat.
- Casa încasează fiecare comandă cu sumă restantă, fără bon fiscal nou (clientul are deja bonul; retipărirea se face la Bonuri). O comandă nelivrată iese de pe cursă și rămâne deschisă, ca să poată pleca pe o cursă următoare.
- Vedeți ce se așteaptă: banii de rest plus ce s-a încasat în numerar. Introduceți ce predă curierul sau numărați pe bancnote și monede (Numărare pe bancnote și monede). Casa arată dacă suma este corectă sau cât este în plus ori lipsă.
- Banii de rest se întorc în sertar (intrare de numerar). Diferența apare la cursă și în jurnal și apare și ca diferență de casă în raportul Z.
Urmărire comenzi (track & trace) (se activează separat în setare). La pe drum clientul primește un link către o pagină de urmărire pe portal. Linkul este în SMS sau e-mail, iar în magazinul online pe pagina de stare (Urmărește-ți curierul). Pe pagina de urmărire apar:
- dacă comanda se pregătește, este pe drum sau a fost livrată;
- ora estimată: de la locația curierului prin adresele care urmează înainte, altfel ora dorită;
- câte adrese mai sunt înainte (fără a afișa alte adrese);
- cu Curierul live pe hartă și curierul, localul și propria adresă pe o hartă (OpenStreetMap). Curierul activează singur partajarea locației pe telefon (Partajează-mi locația). Locația se transmite doar cât timp pagina este deschisă; pagina ține ecranul pornit.
Paginile sunt în limba telefonului (toate limbile portalului). În casă vedeți la cursă când a fost transmisă ultima dată locația (cu un link către hartă).
Confidențialitate. Portalul păstrează datele unei curse (nume, adrese, numere de telefon, locația) doar cât timp cursa este în desfășurare. La încasare totul se șterge, altfel după 24 ore. Clientul vede doar propria comandă. Locația curierului este vizibilă doar în timpul cursei și nu mai este vizibilă după ce curierul s-a întors.
Planificarea curselor (opțional)
Activați-o la Setări → Local → Livrare → Planificarea curselor (implicit oprită; funcționează cu curieri proprii). În fereastra Curse apare atunci butonul Propune curse. Casa grupează în curse comenzile care mai trebuie să plece:
- comenzile apropiate între ele și ale căror ore dorite se încadrează în intervalul de timp (implicit 30 minute) merg împreună;
- până la numărul maxim de adrese pe cursă (implicit 4), atât timp cât cursa (dus, toate adresele și înapoi la local) nu durează mai mult decât maximul (implicit 45 minute);
- pentru fiecare cursă cea mai bună ordine, distanța (km), timpul de deplasare dus-întors și pentru fiecare adresă sosirea estimată la plecare acum. Dacă aceasta este după ora dorită, apare mai târziu decât s-a cerut.
Cu Folosiți această cursă bifați acele comenzi, în acea ordine; alegeți curierul și atingeți Creați cursa. La o cursă care nu a plecat încă, Cea mai bună ordine pune adresele în cea mai rapidă ordine (și pe telefonul curierului). La fiecare cursă apar distanța și timpul de deplasare.
Setări: adrese pe cursă, cât poate dura o cursă, intervalul orar, viteza curierului (bicicletă ~15, scuter ~25, mașină ~35 km/h în oraș) și minutele pe adresă (parcare, sunat la ușă, încasare; implicit 2). Aceste valori le poate seta și managerul: în fereastra Curse cu butonul Setare planificarea curselor (dreptul Setare planificarea curselor, implicit activat pentru manager; se poate modifica la Setări → Drepturi). Activarea sau dezactivarea planificării curselor și serviciul de rute (adresă, cheie API) rămân la administrator.
Distanță și timp de deplasare, ales de administrator:
- Estimare (implicit): în linie dreaptă înmulțit cu 1,35 (factor de ocolire), cu viteza curierului. Funcționează fără internet și fără cont.
- OSRM: rute pe drum printr-un server OSRM. Completați adresa (
https://, sauhttp://în rețeaua proprie). Serverul demo public (https://router.project-osrm.org) este doar pentru uz ocazional; pentru uz zilnic instalați un server OSRM propriu sau alegeți un furnizor. - OpenRouteService: rute pe drum cu o cheie API proprie (se creează gratuit pe openrouteservice.org, cu o limită pe zi). Adresa este implicit
https://api.openrouteservice.orgși poate fi schimbată cu un server propriu. Cheia rămâne pe casă; ecranele arată doar că este completată.
Cu Testare încercați serviciul. Dacă serviciul nu funcționează, planificarea revine la estimare și spune acest lucru. O adresă a cărei locație nu este cunoscută (fără cod poștal și număr valid) apare în propunere la fără locație cunoscută și nu este planificată. Exportul de configurare include setările, dar nu și cheia.
Cod: lib/ritplanning.ts.
Aplicația pentru curieri (opțional)
Porniți-o din Setări → Local → Livrare → Aplicația pentru curieri (implicit oprită; funcționează cu curieri proprii și portalul de administrare). Fiecare curier își asociază atunci propriul telefon o singură dată, în loc să scaneze un cod QR la fiecare cursă:
- La Telefoane asociate alegeți curierul (un angajat), eventual numele telefonului, și atingeți Asociază telefonul.
- Apare un cod QR. Curierul îl scanează în aplicația Optimum Bezorger (butonul Asociază) sau cu camera telefonului: atunci pagina se deschide în browser. Funcționează și fără aplicație și poate fi pusă pe ecranul de pornire.
- Asocierea rămâne valabilă până o revocați; telefonul nu mai vede atunci imediat nimic. O asociere nouă pentru același angajat o înlocuiește pe cea veche (de exemplu la un telefon nou).
În aplicație sau pe pagină apar toate cursele proprii (fiecare cursă pe care casa o creează pentru acest curier), cu aceleași butoane ca la o cursă: Traseu, Sună, de încasat cu calculator de rest, Livrat și M-am întors în local. Se pot porni separat:
- Preluarea singur a comenzilor: curierul vede livrările care încă trebuie puse într-o cursă, bifează ce ia și atinge Iau cu mine. Casa creează cursa (sau le adaugă dacă acel curier are deja o cursă care nu a plecat); restul standard merge cu el. Ce a luat deja altcineva nu mai poate fi luat.
- Plecarea singur: Plecare în aplicație face același lucru ca în casă (rest din sertar, clienții primesc mesaj).
- Hartă live: la Curse se află butonul Hartă cu localul, toți curierii care sunt la lucru și adresele care încă trebuie livrate. Curierul pornește și oprește singur La lucru. Aplicația transmite locația și cu ecranul stins (Android: o notificare în bară cât timp partajarea este pornită); pagina web doar cât timp este deschisă. Fără această setare locația este partajată doar în timpul unei curse cu track & trace.
Aplicația pentru Android este în Google Play și pe pagina de descărcare a portalului (/download/). O versiune pentru iPhone este gata, dar va apărea abia când există un cont de dezvoltator Apple; până atunci iPhone-urile folosesc pagina web. La o cursă preluată de curier singur apare preluat singur în aplicație.
Cod: lib/bezorgersapp.ts, în portal src/volgen.mjs, iar aplicația în repo-ul horecapos-bezorger.
În jurnal apare cine a creat o cursă, a trimis-o la drum, a raportat-o ca livrată și a încasat-o, cu sumele. Dezactivare: fără butonul Curse; cursele și setările rămân salvate.
Pe portal: /bezorger/<sleutel> și /volg/<code>. Cod: lib/bezorgers.ts, routes/bezorgers.ts, Bezorgers.tsx și în portal src/volgen.mjs.
Notificare la timp de pregătire prea lung
O comandă la pachet sau cu livrare gata mai târziu decât s-a promis: casa observă, anunță și poate trimite imediat scuze clientului, eventual cu un voucher de credit. Activați la Setări → Local → Livrare → Notificare la timp de pregătire prea lung (implicit oprit).
- Ce comenzi: la pachet și cu livrare cu oră promisă, din casă (livrare și intervale orare), din magazinul online și de la Thuisbezorgd.nl / Takeaway.com.
- Întârziere: la atâtea minute (implicit 10) după ora promisă încă nu este gata sau pe drum. Gata sau pe drum înseamnă: totul gata pe ecranul bucătăriei, statusul gata sau pe drum în magazinul online sau la Thuisbezorgd, mesajul ✉ Gata / ✉ Pe drum trimis clientului sau achitată. Casa verifică în fiecare minut.
- Notificare: butonul Întârziere din bara de sus cu numărul de comenzi (cu sunet la una nouă), cu ora promisă și minutele de întârziere pentru fiecare comandă. O comandă dispare singură când este gata sau pe drum, ori cu Rezolvat; dedesubt apar cele din ultimele 24 ore, cu ora la care au fost gata. Totul este înregistrat în jurnal.
- Magazin online: pagina de status a clientului arată că durează mai mult, cu noua oră estimată.
- La Thuisbezorgd nu este posibil (clientul aparține Thuisbezorgd): acolo doar notificarea. Se poate folosi un text propriu;
{naam},{zaak},{code},{korting}și{geldig}se completează automat. - Voucher de credit (doar cu Coduri de reducere activat): odată cu scuzele, un cod de reducere personal pentru următoarea comandă (de ex.
SORRY-7K4Q2M), o sumă sau un procent, de folosit o singură dată, valabil un număr de zile, la casă și în magazinul online. Codurile nu apar în lista de la Coduri de reducere. Dacă trimiterea eșuează, codul expiră. Cu butonul din casă doar cu dreptul Acordă reducere. - Oprit: notificările și codurile emise se păstrează (și în backup); setarea este inclusă în exportul de configurare.
Cod: lib/telaat.ts, routes/telaat.ts, TeLaat.tsx și packages/shared/src/telaat.ts.
Butonul Trimite comanda: ce face și când ai nevoie de el
Atingerea unui produs și atingerea butonului Trimite comanda sunt doi pași diferiți:
- Atingerea unui produs îl adaugă imediat pe notă (în lista din stânga), ca nou. Doar tu îl vezi: bucătăria și barul încă nu știu nimic. Un rând nou este o ciornă: îl poți încă șterge sau îi poți schimba cantitatea ori opțiunile, fără stornare.
- Trimite comanda trimite toate rândurile noi deodată: bonurile merg la imprimantele din bucătărie și de la bar (și la ecranul de bucătărie), iar rândurile trec apoi în starea comandat. După aceea le poți șterge doar printr-o Stornare (dreptul stornare). Pe buton apare câte rânduri noi sunt pregătite, de ex. Trimite comanda (3); dacă nu există rânduri noi, butonul este gri.
De ce doi pași? La masă preiei toată comanda (băuturi, aperitiv, fel principal), o mai ajustezi dacă oaspetele se răzgândește și apoi o trimiți deodată la bucătărie, cu un singur bon pe stație în loc de un bon pe produs. Astfel bucătăria poate începe mult înainte de plată.
Ce se mai întâmplă la Trimite comanda:
- Feluri: felul 1 merge imediat la bucătărie; felurile 2, 3 și 4 sunt trimise cu AȘTEAPTĂ, iar bucătăria începe abia când chemi acel fel (vezi Feluri).
- Runde: fiecare Trimite comanda este o rundă; pe asta se bazează ↻ Încă o rundă.
- Stocul se scade și o pompă de bere dozată este deblocată.
- All-you-can-eat: dacă e prea mult, prea devreme sau prea târziu pentru formulă, casa întreabă mai întâi dacă e totuși permis.
- Belgia (GKS 2.0): rândurile merg mai întâi ca pro forma la cutia neagră; dacă nu reușește, nu se trimite nimic la bucătărie și rămân noi.
- Fără conexiune: comanda este păstrată și pleacă la bucătărie imediat ce revine conexiunea. Imprimantă oprită: comanda trece totuși, bonul intră în coada de imprimare (vezi Imprimantă de bucătărie oprită sau fără ecran de bucătărie).
Poți și încasa direct. Dacă atingi Încasare cât timp pe notă mai sunt rânduri noi, casa le comandă mai întâi automat, ca bucătăria și barul să primească mereu bonul. La bar sau la pachet nu trebuie deci să atingi mai întâi Trimite comanda: atingi produsele și direct Încasare. Dacă această comandă automată nu reușește (fără conexiune, regulă all-you-can-eat, cutie neagră), ecranul de încasare rămâne închis și vezi de ce.
Preferi să nu primească barul un bon când încasezi imediat? La Setări → Local → Comandă și încasare bifează Încasare directă fără bon de preparare. Atunci la bucătărie și la bar ajunge doar ce trimiți cu Trimite comanda; ce încasezi imediat nu primește bon de preparare.
Buton Încasare mare sau mic
Cu bifa Buton "Încasare" mare, ecranul de comandă afișează un buton Încasare mare imediat sub produsele comandate: lat, înalt și cu suma pe el, ca să-l apeși repede. Dacă o parte din notă a fost deja plătită, butonul arată suma rămasă. Butonul mic de jos de lângă Trimite comanda dispare atunci.
Cu butonul mare, și butoanele de pe ecranul de încasare sunt mari: Încasare (la Card, Card cadou și celelalte metode de plată), iar la Numerar Numerar exact și Încasare sunt late și înalte, ușor de apăsat, chiar și cu degetele murdare (de exemplu la o măcelărie). Metodele de plată sunt puțin mai mari, iar butoanele de bacșiș puțin mai mici, ca totul să rămână pe ecran.
La o instalare nouă bifa este oprită: atunci butonul mic jos lângă Trimite comanda și un ecran de încasare cu butoane obișnuite. Preferați mare? În Setări → Local, imediat sub tema luminoasă/întunecată, bifați Buton "Încasare" mare. O casă care era deja în folosință își păstrează setarea de dinainte. Alegerea se aplică tuturor caselor și tabletelor localului.
Marcarea unui produs ca „epuizat”
Oricine poate, în ecranul de comandă, să țină apăsat un produs (sau să facă clic dreapta pe el) și să aleagă Epuizat. Produsul devine gri și nu mai poate fi comandat pe nicio casă. În același mod îl readuceți cu Din nou disponibil. Fiecare modificare apare în jurnal. Administratorul poate face acest lucru în continuare și la Setări → Produse. Și serverul casei refuză un produs marcat ca "epuizat" ("Cola" este epuizat), deci și de pe o tabletă care nu primise încă modificarea sau de la comenzi salvate offline; tableta afișează atunci "Nu s-a putut trimite".
Ecran bucătărie (KDS)
Pe lângă (nu în locul) imprimantelor de bonuri de bucătărie, bucătăria sau barul poate folosi un ecran. Deschideți pe o tabletă/un PC din bucătărie http://<kassaserver>:3000/keuken, autentificați-vă cu un cod PIN și alegeți stația: acestea au aceleași nume ca imprimantele (bucătărie, bar, ...), deci pe ecran apare exact ce ar fi pe acel bon de bucătărie. "Tot" afișează toate stațiile.
- Un bon pe comandă, cele mai vechi primele, cu masa/la pachet, numărul și de cât timp așteaptă (portocaliu după 10, roșu după 20 minute).
- Felurile apar separat; un fel care nu a fost încă apelat apare gri ca "AȘTEAPTĂ apelarea". Stornările apar tăiate.
- Atingeți un rând pentru a-l marca gata, sau Gata pentru tot bonul. Ospătarul primește atunci în bara de sus "Bucătărie: Masa 5 este gata". Cu Setări → Local → Ecran bucătărie → Sunet pentru personal (implicit oprit) casa emite și un bip ("ding-dong", fără fișier audio). Browserul permite sunetul doar după prima atingere a ecranului; porniți volumul tabletei.
- Readucere arată ce a fost anunțat gata în ultima oră; ce a fost atins din greșeală poate fi readus astfel.
Ecranul se actualizează singur imediat. Bonurile de bucătărie se tipăresc în continuare; cine nu folosește ecranul nu observă nimic.
Ecran bucătărie: trimitere, ordine și fel
Setări → Imprimante → Ecran bucătărie. Fiecare parte se activează separat, implicit oprită; la oprire se păstrează totul.
- Trimiterea între stații, de exemplu rece → cald → pass. Pentru fiecare stație setezi o stație următoare fixă; pe bon apare atunci un buton → cald (și mereu Trimite la… pentru a alege altă stație). Se trimit doar rândurile deschise ale acelei stații. O stație nu are nevoie de imprimantă: introdu stații precum pass la Stații fără imprimantă. Gata (și notificarea către ospătar) apare abia la ultima stație. La "Toate", un rând trimis arată unde se află acum. Fiecare pas apare la rând și în jurnal.
- Reordonare: trage bonurile (mouse) sau mută-le cu ◀ ▶ (ecran tactil). Ordinea se aplică pe stație și pentru toate ecranele acelei stații; bonurile noi ajung la final.
- Felul următor de pe ecranul bucătăriei: la un bon cu un fel în așteptare apare Cere felul 2. Ospătarul primește atunci "Bucătăria cere felul 2 pentru Masa 5" (cu sunet) și apelează ca de obicei; pe ecranul bucătăriei apare "Felul 2 cerut · n min" până când felul este apelat. Sau alege Apelează: atunci ecranul bucătăriei apelează singur felul, cu bonul de lucru "APELARE FEL 2", la fel ca butonul din casă.
Imprimantă de bucătărie oprită sau fără ecran de bucătărie
Casa de marcat funcționează mereu, chiar și când imprimanta din bucătărie sau de la bar este oprită (sau s-a terminat hârtia, sau cablul s-a desprins) și chiar și fără ecran de bucătărie:
- Comanda merge întotdeauna. Rândurile apar imediat ca comandat, nota este corectă și încasarea se poate face normal. Imprimantele sunt accesate simultan și fiecare imprimantă primește cel mult aproximativ 4 secunde: o imprimantă oprită nu le face pe celelalte (nici pe ospătari) să aștepte mult.
- Coadă de tipărire. Un bon de bucătărie care nu a putut fi tipărit intră în coada de tipărire. Serverul casei încearcă din nou la fiecare 30 secunde, timp de un sfert de oră; imediat ce imprimanta funcționează din nou, bonul iese, cu TIPĂRIT ULTERIOR în partea de sus. Dacă un bon următor reușește din nou pe acea imprimantă, bonurile în așteptare urmează imediat.
- După un sfert de oră reîncercarea automată se oprește; Tipărește din nou acum este încă posibil.
- Ecran bucătărie. Dacă comanda apare pe ecranul de bucătărie, bucătăria o vede acolo și când imprimanta este oprită. Cine nu folosește ecran de bucătărie nu pierde nimic: casa nu așteaptă nicăieri "Gata" de la bucătărie.
- Coada există doar în memoria serverului casei (după o repornire este goală).
- La fel și bonul fiscal: dacă nu reușește, încasarea s-a făcut totuși (casa anunță "tipărirea a eșuat") și puteți tipări mai târziu o copie la Bonuri.
Feluri (aperitiv, fel principal ...)
Butoanele de fel apar doar când sunt necesare: imediat ce pe comandă există un meniu (produs compus) sau când există deja ceva în felul 2 până la 4. La produsele obișnuite, cum ar fi o cola, nu le vedeți și totul merge direct la bucătărie. Nu este nimic de setat.
Sub lista de comandă se află Fel 1 2 3 4. Implicit este activ felul 1 și totul funcționează ca întotdeauna: "Trimite comanda" trimite totul imediat la bucătărie, fără titluri de fel pe bonul de bucătărie. Dacă alegeți felul 2 (sau mai mare) înainte de a atinge produsele, atunci:
- acestea ajung la "Trimite comanda" deja în bucătărie, sub "-- Felul 2 · AȘTEAPTĂ apelarea --", ca bucătăria să se poată pregăti;
- în lista de comandă apare "Felul 2 · așteaptă" cu un buton Apelează;
- la Apelează, bucătăria primește un bon " APELARE FELUL 2 " cu ce trebuie preparat acum.
Felul 1 pleacă întotdeauna imediat. Dacă felul 2 a fost deja chemat, un preparat comandat ulterior în felul 2 pleacă și el imediat.
Alergeni pe produs
Implicit dezactivat: atunci alergenii nu apar nicăieri. Activare prin Setări → Local → Introducere și afișare alergeni pe produs.
- Setări → Produse: la fiecare produs bifați cei 14 alergeni UE (gluten, crustacee, ouă, pește, arahide, soia, lapte, nuci, țelină, muștar, semințe de susan, sulfiți, lupin, moluște). În lista de produse, abrevierile apar după nume.
- Ecranul de comandă: pe fiecare buton de produs apar mic abrevierile (ex.
Gl Me), iar butonul ⚠ Alergeni din bara de grupuri arată pentru fiecare produs din categoria aleasă alergenii scriși complet, cu explicația abrevierilor. - Modificările alergenilor apar în jurnal (vechi → nou). Dacă setarea este dezactivată, alergenii introduși anterior se păstrează.
All-you-can-eat
Implicit dezactivat. Se pornește la Setări → Local → All-you-can-eat (doar administratorul). Creați unul sau mai multe pachete, ex. Pește, Carne și Sushi, fiecare cu:
- un nume (apare pe bon: "Pește adult", "Pește copil");
- un preț per adult și per copil (cu TVA inclus) și cota TVA (implicit NL
LAAG, BEB); - preparatele incluse (€ 0): categorii de produse întregi și/sau produse individuale (și din alte categorii, ex. cartofi prăjiți la Pește și la Carne);
- o limită de timp în minute (0 = fără);
- runde: cel mult un anumit număr de preparate de persoană pe rundă (0 = nelimitat) și cel puțin un anumit număr de minute între două runde (0 = fără);
- un supliment de risipă pe bucată (0 = fără).
Cu ↑ ↓ stabiliți ordinea. Aceasta contează când un preparat aparține mai multor pachete: se socotește atunci la pachetul cel mai de sus ales de grup. Șterge elimină un pachet pentru mesele noi; mesele în curs își păstrează rândurile de preț (acolo se pot reduce persoanele, dar nu se pot adăuga).
La masă:
- Pe ecranul de comenzi, deasupra bonului, se află + All-you-can-eat. Alege pentru fiecare pachet numărul de adulți și copii; se poate combina (de ex. 2× Pește și 2× Carne). Prețul apare ca linii pe notă; acestea nu merg la bucătărie. Numărul de persoane al grupului devine totalul participanților (dacă casa înregistrează persoanele).
- Bara arată pentru fiecare pachet: persoanele, timpul rămas (roșu când timpul a expirat), ce rundă este, cu maximul, și cât mai durează până la runda următoare. Preparatele incluse apar pe butoane ca AYCE și pe bon cu eticheta AYCE la € 0. Tot ce nu aparține niciunui pachet ales (băuturi, deserturi ...) se plătește normal.
- Trimite comanda: fiecare "Trimite comanda" cu preparate gratuite este o rundă, pe pachet (doar pachetele din care fac parte preparatele). Ce a fost introdus offline și trimis mai târziu nu este blocat.
- Modifică: ajustarea numărului pe pachet. Mai puține persoane se socotește ca stornare (dreptul "stornare"). Setarea unui pachet la 0 (sau Oprește pentru tot) este posibilă cât timp nu există încă preparate din acel pachet pe notă.
- Supliment (doar dacă un pachet ales are supliment de risipă): alegeți cantitatea (și pachetul, dacă sunt mai multe); "Supliment risipă × cantitate" apare pe notă.
- Încasarea, împărțirea, reducerile și bonul funcționează ca întotdeauna: prețurile pachetelor, suplimentul și băuturile sunt rânduri obișnuite, cu TVA-ul lor propriu.
- Dacă administratorul dezactivează all-you-can-eat în timp ce unele grupuri sunt în desfășurare, preparatele introduse ulterior costă din nou prețul obișnuit; ce este deja pe notă rămâne.
- În magazinul online (opțional, implicit dezactivat): cu Și la comanda de la masă prin codul QR (magazin online), clientul care comandă la o masă cu un pachet vede preparatele incluse ca Inclus pentru € 0, cu starea sus (persoane, rundă, timp). O comandă este o rundă, cu aceleași reguli ca la Trimite comanda; prea mult, prea devreme sau prea târziu, magazinul online refuză imediat. Băuturile și alte preparate clientul le plătește normal; totul ajunge pe nota mesei. Dezactivat = magazinul online aplică prețurile obișnuite, ca până acum.
Carduri cadou
Două comutatoare la Setări → Local → Carduri cadou:
- Card cadou ca metodă de plată la încasare: implicit pornit, ca întotdeauna. Oprit = butonul Card cadou nu apare la încasare (nici la rambursare prin la un retur), iar serverul casei refuză plata cu card cadou.
- Vânzare carduri cadou cu sold: implicit oprit. Pornit:
- Pe ecranul de comandă apare butonul Card cadou: alegeți suma (€ 10, 25, 50, 100 sau altă sumă) și lăsați casa să genereze un cod, sau scanați codul unui card pretipărit. Cardul apare ca rând pe notă (cod TVA BON: fără vânzări, fără TVA, nu merge în bucătărie). Tot acolo puteți și verifica soldul pentru un client.
- După încasare cardul este activ, iar imprimanta de bonuri tipărește un card cadou cu suma, codul și un cod QR.
- Utilizare: la încasare alegeți Card cadou și scanați sau introduceți codul (butonul Sold afișează soldul). Suma se scade din sold. Dacă soldul este mai mic decât nota, se scade tot soldul ca plată parțială, iar restul se plătește cu cardul sau numerar. Soldul poate fi folosit în tranșe.
- Cod lăsat gol = card cadou fără cod, ca înainte (de ex. un voucher vechi pe hârtie).
- Raport → Carduri cadou (dreptul Gestionare carduri cadou, implicit manager și administrator): căutare după cod, credit neutilizat, istoric pe card, blocare (pierdut/furat) și corectare sold cu un motiv. Acestea se înregistrează în jurnal.
- Rapoarte: cardurile cadou vândute nu contează ca vânzări și apar separat (Carduri cadou vândute); banii primiți apar însă la metodele de plată. Ce se plătește cu un card cadou este vânzare obișnuită (cu TVA) la metoda de plată Card cadou.
- Contabilitate: cardurile vândute merg în credit, iar cele utilizate în debit în contul Carduri cadou (creditul clienților).
- Un card cadou vândut poate fi returnat prin Bonuri → Retur, atâta timp cât nu a fost folosit (sold = valoare). După retur cardul este anulat (sold 0, blocat; apare în istoricul cardului). Dacă a fost deja folosit (parțial), setați soldul la 0 la Raport → Carduri cadou și rambursați restul separat. Reducerea pe un card cadou nu este posibilă.
Sold reîncărcabil (opțional)
Pentru cluburi, cantine sportive, centre de tineret și evenimente: un card cadou cu sold devine un card reîncărcabil. Se activează la Setări → Local → Sold reîncărcabil, sub cardurile cadou (implicit oprit; funcționează doar dacă Vânzare carduri cadou cu sold este pornit).
- Card sau brățară: vindeți un card cadou cu Card pretipărit și scanați cardul (un cititor NFC/RFID care funcționează ca tastatură sau un cod de bare). Numărul cardului devine atunci codul; cu el clientul plătește ca și cu un card cadou.
- Reîncărcare: ecranul de comandă → Card cadou → Reîncarcă soldul: scanați cardul cadou sau cardul și introduceți suma. Aceasta apare ca rând pe notă (cod TVA BON: fără vânzări, fără TVA, la fel ca un card cadou vândut) și după încasare este în sold. În istoricul cardului apare Reîncărcat.
- Sold maxim per card cadou sau card (implicit € 500, se poate seta până la € 5.000).
- Rambursează soldul rămas (bifă, implicit oprit; dreptul Gestionare sertar de bani): după Verifică soldul apare Rambursează soldul rămas. Soldul ajunge la € 0, iar suma apare ca bani din sertar în raportul X și Z (Sold rambursat …).
- O reîncărcare poate fi anulată prin Bonuri → Retur atâta timp cât soldul este încă cel puțin acea sumă; cardul cadou sau cardul rămâne valabil.
- Reîncărcare la chioșc (opțional): vedeți Chioșc self-service.
Tichete de masă
Doar pentru localuri din Belgia, implicit oprit: Setări → Local → Încasare → Tichete de masă. Tichetele de masă sunt un beneficiu salarial: angajatorul le încarcă pe un card al angajatului (Edenred, Monizze sau Pluxee). Clientul plătește cu ele pe terminalul de plată obișnuit; nu este nevoie de nicio conexiune cu emitenții.
- Pornit: la încasare apare butonul Tichet de masă. Alegeți emitentul (doar emitenții acceptați de local) și lăsați clientul să țină cardul lângă terminalul de plată, la fel ca la plata cu cardul. Fără integrarea terminalului: clientul plătește direct pe terminalul de plată, iar dumneavoastră atingeți Încasare.
- Fără bacșiș și fără rest la tichetele de masă. Dacă soldul nu ajunge, clientul plătește restul altfel (nota rămâne deschisă până când totul este plătit).
- Doar pentru anumite categorii (opțional, de ex. mâncare, dar nu alcool): atunci cu tichete de masă se poate plăti cel mult suma acestor produse de pe notă. Ecranul de încasare arată cât; restul îl plătește clientul altfel.
- Pe bonul fiscal: Tichet de masă Pluxee (cu emitentul la final).
- Raport Z și raport X: câte un rând separat pentru fiecare emitent (Tichet de masă Edenred, … Monizze, … Pluxee).
- Contabilitate: câte un cont contabil separat pentru fiecare emitent (Tichete de masă Pluxee (de încasat) etc., implicit 416100, 416200 și 416300), deoarece banii vin de la emitent, nu de la banca terminalului de plată.
- Necesar: un contract cu fiecare emitent ale cărui tichete le acceptați și un terminal de plată care acceptă aceste carduri (întrebați furnizorul terminalului de plată).
Valută străină
Încasare în numerar într-o altă monedă, de ex. turiști britanici sau americani, sau în zona de graniță cu franci elvețieni. Implicit oprit: Setări → Local → Încasare → Valută străină. Adăugați monedele (CHF, CZK, DKK, GBP, HUF, NOK, PLN, SEK, TRY, USD) cu un curs pentru fiecare monedă: câți euro calculați pentru 1 unitate (de ex. 1 GBP = € 1,15).
- Introdus manual: un curs fix; ajustați-l dumneavoastră când se schimbă.
- Live (BCE): cursul zilnic al Băncii Centrale Europene (cursuri de referință, în fiecare zi lucrătoare în jurul orei 16:00; gratuit, fără cont). Cu un adaos în procente (0-20) cursul scade cu atât, astfel încât localul nu plătește singur schimbul. Casa de marcat preia singură cursurile dacă sunt mai vechi de 6 ore; Actualizează acum le preia imediat. Fără internet rămâne ultimul curs.
- Pornit: la încasare apare butonul Valută străină. Alegeți moneda; casa arată cât înseamnă în acea monedă. Introduceți cât dă clientul: casa convertește și dă restul în euro. Dacă clientul nu vrea rest, bifați Restul este bacșiș: restul apare ca bacșiș pe bon, în Belgia în acea monedă (GKS 2.0, UC296).
- Dacă clientul dă mai puțin decât întreaga sumă, este o parte; restul îl plătește altfel.
- Pe bonul fiscal: moneda, suma și cursul, precum și restul în euro.
- Raport X și Z: câte un rând separat pentru fiecare monedă (Valută străină GBP, în euro), iar la sertarul de bani ce se află în sertar în acea monedă. Restul în euro se scade din banii așteptați în sertar; monedele străine le numărați separat.
- Contabilitate: contează ca numerar (casă), în euro.
Butoane suplimentare la comandă și încasare
Butoane pentru ce nu are nevoie orice local. Totul este oprit implicit; se pornește per buton la Setări → Local → Comandă și încasare (dreptul Setarea localului, plăților și imprimantelor). Oprit = butonul nu apare nicăieri în casă, iar serverul casei refuză operația. În Olanda totul funcționează fără cutia neagră; în Belgia un buton funcționează abia după ce funcția a fost testată cu cutia neagră (la buton scrie dacă nu este încă cazul).
La deschiderea unei mese:
- Înregistrează numărul de persoane: întrebarea "Câte persoane?" la o masă liberă, persoanele pe planul sălii și pe ecranul de comenzi, și clienții în rapoarte. Vezi Numărul de persoane.
La comandă (ecranul de comandă, pentru ce atingeți după aceea):
- Cumulare produse identice (fără buton, implicit activat): dacă atingi din nou același produs (aceleași opțiuni, încă necomandat), cantitatea crește în loc să apară un rând nou: 4 Cola pe un rând cu prețul înmulțit cu 4. Cu − se scade din nou unul, chiar dacă a fost deja comandat (stornare a unuia). Cu o observație, un loc sau la pachet rămâne un rând separat; ce a fost deja comandat rămâne un rând separat (o rundă nouă).
- − și + (înaintea prețului pe fiecare rând): − scade unul, + adaugă unul (același produs, opțiuni și observație; dacă Cumulare produse identice este oprit, un rând nou). Încă necomandat și la 0: rândul dispare. Deja comandat: unul în minus este o stornare, rândul rămâne tăiat (pentru bucătărie și rapoarte); unul în plus devine un rând nou care trebuie încă comandat. Atingerea prețului în sine nu mai șterge nimic. La un meniu doar −.
- La pachet (doar la local): clientul ia acest produs cu el, de ex. o sticlă de apă sau un desert. Acel rând primește TVA-ul pentru la pachet (în Belgia eticheta C), restul notei TVA-ul pentru la local. Pe bon apare pachet la rând.
- Loc (la o masă): atingeți repetat pentru locul 1, 2, 3 ...; rândurile primesc acel număr de loc (și pe bonul de bucătărie). În Belgia fiecare rând merge cu centrul de cost al locului (CHAIR, UC4123) la cutia neagră. Încă o dată după locul 12 = din nou fără loc.
- Preluare retur: următorul produs se adaugă cu -1, de ex. o sticlă sau un pahar gol (garanție). Se poate doar la produsele cu Returnabil (garanție) (Setări → Produse). Dacă întreaga notă este negativă (doar garanție returnată, fără vânzare), Încasare devine o rambursare: numerar înapoi sau cu cardul (returnat chiar pe terminal). În Belgia ca rambursare (REFUND, UC4108 și UC4114).
- Valorifică SPV: clientul plătește un produs sau meniu cu un single purpose voucher (un voucher pentru exact acel produs, de ex. "1 menu all-in"). Atingeți Valorifică SPV și apoi produsul pe bon: acesta se adaugă cu -1 (același preț și TVA, la un meniu cu componentele), cu SPV alături. Nu merge la bucătărie; se poate elimina normal. Un produs-voucher îl vindeți în avans ca produs obișnuit; bifați la Setări → Produse SPV (voucher). În Belgia rândul merge la vânzare ca VOUCHER la cutia neagră (UC271).
- Decontează avansul: vedeți mai jos.
- Preț liber (fără buton, per produs): la un produs cu Preț liber casa cere prețul, de ex. meniul zilei sau un avans.
La încasare:
- Încasare directă fără bon de preparare (nu este un buton): implicit, Încasare trimite mai întâi ce nu a fost încă comandat, astfel încât bucătăria și barul primesc întotdeauna bonul lor (vezi Butonul Trimite comanda). Activat: ce încasezi imediat fără să atingi mai întâi Trimite comanda nu primește bon de preparare, de ex. la bar, unde iei singur. Ce a fost deja comandat nu se schimbă.
- Încasare separată (la o masă, la Împarte nota): alegeți ce plătește acum un client, și o parte dintr-un rând (½ pentru o jumătate de sticlă). Aceasta devine o parte proprie pe care o încasați imediat; restul rămâne pe nota de plată, fără a împărți mai întâi nota sau a o muta în alt grup. Reducerea procentuală pe tot bonul se aplică proporțional. Înapoi fără plată = totul din nou pe nota de plată. În Belgia vânzarea rămâne pe locul mesei, fără schimbare de masă (UC4103bis, UC4104).
- Clientul a plecat fără să plătească (dreptul Închidere fără plată, implicit doar manager și administrator): nota este închisă ca vânzare fără plată, cu un motiv în jurnal. În raportul X și Z și în situația zilnică apare ca Neplătit (clientul a plecat); în registrul contabil la irecuperabil (implicit 4985 / 643000). În Belgia o vânzare fără plată (UC4109).
Ulterior (Bonuri):
- Corectează prețul (dreptul Corectarea prețului unui bon, implicit doar manager și administrator): prețul unui bon încasat nu era corect, de ex. 50% reducere în loc de 5%. Casa creează un bon nou fără masă cu rândurile bonului vechi returnate (negativ, la ce s-a plătit atunci) și aceleași produse din nou la prețul normal. Dați acolo reducerea corectă și încasați diferența (sau rambursați dacă prețul nou este mai mic). Bonul vechi rămâne cum era; o singură dată pe bon și nu dacă s-a returnat deja ceva. În Belgia rândurile vechi merg ca CORRECTION (UC4116).
Cod: apps/pos-server/src/lib/kassaopties.ts, routes/kassaopties.ts; ecran KassaOpties.tsx. Jurnal: Setare modificată, SPV valorificat, Corectare bon, Neplătit.
Decontează avansul
Un avans (plată în avans, de ex. pentru o petrecere sau o rezervare) îl vindeți ca produs obișnuit cu Avans pornit (Setări → Produse; are întotdeauna preț liber). Creați câte unul pe cotă de TVA dacă avansul trebuie pe cote (de ex. Avans mâncare și Avans băuturi), sau un singur produs dacă este o parte din ofertă. Clientul plătește avansul dinainte și primește un bon.
Activare: Setări → Local → Comandă și încasare → Decontează avansul (implicit oprit). La încasarea finală atingeți în ecranul de comandă Decontează avansul și introduceți numărul bonului avansului. Casa pune rândurile de avans ale acelui bon cu cantitate negativă pe notă (același produs, preț și TVA). Ce a fost deja decontat nu se mai poate deconta încă o dată. Dacă avansul este mai mare decât nota, clientul primește diferența înapoi (rambursare). În Belgia rândurile decontate merg ca rambursare (REFUND) la cutia neagră (UC4110, UC4111, UC4113). Jurnal: Avans decontat.
Bon prin e-mail
Implicit oprit. Se activează la Setări → Local → Bon și prin e-mail.
SMTP_HOST=smtp.voorbeeld.nl
SMTP_PORT=587
SMTP_GEBRUIKER=kassa@voorbeeld.nl
SMTP_WACHTWOORD=...
SMTP_AFZENDER=bon@voorbeeld.nl
Reporniți casa după completare. Apoi la Încasare apare câmpul Trimite bonul și pe e-mail (opțional): gol = doar tipărire, ca întotdeauna; o adresă de e-mail completată = același bon (cu detalierea TVA și rândurile fiscale) se trimite și prin e-mail clientului, cu numele localului ca expeditor.
- Adresa de e-mail nu este stocată; în jurnal apare doar „bonul N trimis la a***@domein.nl” și dacă a reușit.
- Dacă trimiterea e-mailului eșuează (de ex. date de autentificare greșite), bonul este totuși încasat și tipărit; mesajul spune ce nu a mers.
- Nu la o plată parțială (împărțirea notei): bonul vine la ultima plată, deci acolo introduceți adresa.
- Trimitere ulterioară: la Bonuri fiecare bon are butonul E-mail (dreptul Tipărire copie bon). Acesta trimite bonul cu mențiunea COPIE, la fel ca o copie tipărită (în Belgia înregistrat ca copie).
- Nu sunt necesare pachete suplimentare: casa comunică direct cu serverul de e-mail (STARTTLS pe 587, TLS pe 465).
Rezervări
Se activează la Setări → Local → Rezervări (implicit oprit). Tot acolo setați cu câte minute înainte apare o masă rezervată pe plan (implicit 60) și durata implicită a unei rezervări (implicit 120 minute).
- Butonul Rezervări din bara de sus: prezentare pe zi (◀ ▶), cu numărul de rezervări, persoane și neprezentări. + Rezervare nouă: nume, telefon, e-mail, persoane, dată, oră, durată, masă (se poate și mai târziu) și observație. Rezervările le face personalul; rezervarea online nu există (încă).
- Dacă există deja o rezervare la aceeași masă în acel interval, casa vă anunță; „Salvare oricum” este posibil.
- Confirmare prin e-mail (bifă, sau ulterior „E-mail”) dacă există o adresă de e-mail și un server de e-mail (
SMTP_HOST, vezi Bon prin e-mail). - Pe plan, o masă liberă rezervată apare mov cu „R 19:30 Jansen (4)”. Atingeți-o: „Jansen a sosit” deschide masa cu 4 persoane și „Jansen” ca nume de grup; „Alți clienți” o deschide normal.
- În prezentare: Sosit (deschide masa; fără masă alegeți mai întâi una), Modificare, Neprezentare, Anulare și Restaurează. Totul se înregistrează în jurnal.
- Rezervări de pe platforme online: vezi Platforme de rezervări mai jos.
Integrarea casei cu TheFork: masa se deschide la sosire, nota de plată se trimite înapoi
Cu POS-API de la TheFork, casa lucrează împreună cu TheFork Manager (implicit oprit), pe lângă preluarea rezervărilor de mai sus. Activare la Setări → Platforme de rezervări → Integrarea casei cu TheFork; funcționează prin portalul de administrare.
- Dacă un client este pus în TheFork Manager pe Sosit sau La masă, în casă se deschide masa cu același nume, cu numărul de persoane și o observație: nume, alergii și dietă, avans, ofertă/reducere și puncte de fidelitate (Yums). Dacă pe acea masă există deja o comandă deschisă, aceasta este legată. Nicio masă cu acel nume: apare o notificare, iar în Platforme alegeți masa.
- După încasare, nota de plată merge la TheFork (total și rânduri cu nume, grupă de produse, cantitate și sumă); TheFork pune apoi rezervarea pe Plecat. La plata împărțită, o singură notă cu totalul. Dacă nu reușește, casa reîncearcă la fiecare sfert de oră (două zile), sau cu Retrimitere în Platforme.
- Asociere: casa afișează un cod de asociere; introduceți-l în TheFork Manager (Integrări → casă). ID-ul restaurantului la TheFork (Customer-id) îl completează administratorul, sau vine automat la prima comandă.
- Bife: deschidere automată a mesei, nume, alergii și avans ca observație, nota de plată către TheFork.
- Condiție: Pin Voordeel are cheia API de la TheFork (doar pentru parteneri) și a înregistrat casa acolo ca POS (buton în portalul de administrare); TheFork activează integrarea după o sesiune de test.
Documentația TheFork: https://docs.thefork.io/POS-API/introduction
Listă de așteptare pentru clienții fără rezervare
Pentru clienții fără rezervare care așteaptă o masă. Se pornește la Setări → Local → Listă de așteptare (fără rezervare) (implicit oprit). Vizibilă doar dacă SMS-ul prin CM.com este configurat; altfel lista de așteptare nu apare nicăieri în casă (nici măcar în setări). Funcționează separat de rezervări: și când acestea sunt oprite. Tot acolo este și textul SMS-ului (gol = "Hallo {naam}, uw tafel bij {zaak} is klaar. Wilt u zich melden bij de bediening?"; {naam}, {zaak} și {personen} se completează).
- Butonul Listă de așteptare în bara de sus, cu numărul celor care așteaptă (portocaliu când așteaptă cineva). + Pe lista de așteptare: nume, telefon (pentru SMS), persoane, timpul de așteptare comunicat și o dorință (terasă, scaun pentru copii).
- Lista este în ordinea sosirii, cu cât așteaptă fiecare (cu roșu când durează mai mult decât s-a spus), iar sus numărul celor care așteaptă, al persoanelor și timpul mediu de așteptare de azi.
- Dacă SMS-ul nu reușește, apare motivul. Se poate trimite SMS din nou.
- Așază: alege masa; casa o deschide cu numărul de persoane (dacă casa înregistrează persoanele) și cu numele ca nume de grup (la fel ca la o rezervare care sosește).
- Plecat (a plecat sau a renunțat) și Restaurează. Sub listă apare cine a fost așezat sau a plecat azi, cu cât a așteptat.
- Confidențialitate: numerele de telefon se șterg după o zi; cine mai este pe listă după 12 ore iese automat. Adăugarea, chemarea (doar cu ultimele 3 cifre ale numărului) și așezarea apar în jurnal.
- De ce nu la Rezervări? O rezervare este pentru mai târziu (dată, oră, masă dinainte); lista de așteptare este pentru acum (ordine, așteptare, SMS când masa e liberă). De aceea un comutator și un buton separate, cu același "deschide masa" ca la o rezervare.
- Online pe lista de așteptare (opțional, implicit dezactivat; doar cu magazinul online): cu Clienții se pot înscrie și singuri prin magazinul online, în magazinul online apare Listă de așteptare (și există un cod QR pentru ușă, în administrarea magazinului online la Mese și QR). Clientul completează numele, telefonul, numărul de persoane și o dorință și își vede locul în timp real. În casă apare în listă cu online; chemarea, așezarea și plecat funcționează ca întotdeauna, iar clientul vede totul și pe telefon (tot acolo se poate retrage).
Card de fidelitate / puncte
Se activează la Setări → Local → Card de fidelitate / puncte (implicit oprit, atunci nu se vede nimic nicăieri). Tot acolo setați: puncte pe euro (0 = doar carduri cu ștampile), după câte puncte se acordă o recompensă și câți euro reducere reprezintă acea recompensă.
- La casă, deasupra bonului apare „+ Card de fidelitate”: căutați clientul după nume sau număr de telefon, sau creați un client nou (nume, opțional telefon și e-mail). Apoi numele cu soldul de puncte apare pe bon.
- Utilizare: cu suficiente puncte „Folosește 100 puncte: € 5 reducere”; la un card cu ștampile complet „Cafea gratuită” (cafeaua trebuie să fie pe bon). Aceasta devine un rând de reducere; oricine îl poate elimina din nou.
- Punctele și ștampilele se adaugă și se scad abia la încasare: punctele pe suma după reducere (fără carduri cadou vândute), ștampilele pe bucată dintr-un produs cu card cu ștampile (produsul gratuit nu se socotește).
- Pe bonul fiscal: acumulat, folosit, sold și stadiul cardurilor cu ștampile.
- Raport → Clienți (dreptul Gestionare card de fidelitate): căutare clienți, modificare date, corectare puncte (cu motiv), istoric și ștergere (GDPR: numele, telefonul și e-mailul dispar; istoricul rămâne anonim). Jos sunt cardurile cu ștampile pe produs (de ex. 10 cafele = 1 gratuită).
- Un retur nu anulează automat punctele acumulate; corectați-le la nevoie la Raport → Clienți.
- Card de fidelitate cu număr (opțional): la Raport → Clienți → (client) introduceți numărul cardului (sau scanați cardul în acel câmp). Cu scanerul de coduri de bare, scanarea acelui card asociază clientul la bon, la casă și pe chioșc. Puteți căuta după numărul cardului și la + Card de fidelitate.
Profil client: VIP, cerințe alimentare și preferințe (opțional)
Se activează la Setări → Local → Profil client, sub cardul de fidelitate (implicit oprit; funcționează doar dacă cardul de fidelitate este pornit). Apoi:
- Pe ecranul de comandă, sub clientul asociat apare "+ Profil client": bifați VIP, alegeți cerințele alimentare (vegetarian, vegan, pescetarian, halal, cușer) și alergiile (cei 14 alergeni) și tastați preferințele (de ex. "masă fixă la fereastră", cel mult 300 caractere). Apoi apar la client pe ecranul de comandă, alergiile cu roșu. Se pot modifica și la Raport → Clienți → (client) → Profil client.
- Dacă atingeți un produs cu un alergen al clientului (vezi Alergeni pe produs), casa întreabă mai întâi dacă trebuie adăugat totuși. Contează doar ce este completat la produs; în caz de îndoială, întrebați întotdeauna bucătăria.
- Un VIP primește o ★ pe planul de sală: la o notă deschisă și la rezervarea afișată a acelui client. Când sosesc clienții unei rezervări, casa asociază clientul rezervării la notă.
- Cerințele alimentare și alergiile (și VIP) apar pe bonul de bucătărie pentru bucătărie și bar:
GAST: VIP · Vegetarisch · allergie: Noten. - Cerințele alimentare și alergiile sunt date privind sănătatea: completați-le doar cu acordul clientului. În jurnal apare doar faptul că profilul a fost modificat, nu cerințele în sine. Ștergerea clientului șterge și profilul clientului.
Favorite / butoane rapide
Implicit oprit. Setări → Local → Favorite / butoane rapide:
- Cele mai vândute: la începutul barei de grupuri butonul ★ Favorite cu cele 12 produse cele mai vândute în ultimele 14 zile (actualizat automat). Ecranul de comandă se deschide pe favorite.
- Alegere proprie: pe ecranul de comandă țineți apăsat lung un produs (sau clic dreapta) și alegeți ★ Favorit (buton rapid); încă o dată = eliminare. Dreptul Gestionare produse. Toate casele îl văd imediat.
- Introducerea, opțiunile, meniurile, happy hour și „epuizat” funcționează la favorite exact ca în grupurile obișnuite.
Încă o rundă
Pe ecranul de comandă apare butonul ↻ Încă o rundă (imediat ce există ceva pe notă, chiar dacă nu a fost încă comandat). O atingere adaugă din nou ultima rundă (tot ce a plecat deodată cu „Trimite comanda”, sau ce tocmai ați atins) ca rânduri noi; apoi pur și simplu Trimite comanda. Prețurile sunt cele actuale (inclusiv happy hour).
- Apăsare lungă (sau clic dreapta): alegeți singur. Cu ◀ ▶ răsfoiți rundele anterioare, pe produs pornit/oprit (de ex. debifați mâncarea) și cantitatea cu − / +. Opțiunile și observațiile se preiau.
- Produsele epuizate și meniurile nu se preiau (meniurile le introduceți separat). Funcționează și fără conexiune.
- Rândurile se adaugă așa cum apar pe notă: cu Cumulare produse identice activat, un rând pe produs (2 Cola); dezactivat, fiecare rând separat (2 ori 1 Cola).
Timpul la masă pe planul sălii
Pe fiecare masă ocupată apare ⏱ 45m · 12m: de cât timp este ocupată masa și cu cât timp în urmă s-a introdus ultima dată ceva (țineți apăsat pe masă sau treceți cu mouse-ul peste ea pentru orele exacte). Dacă un timp nu s-a comandat nimic, masa primește un chenar portocaliu: treceți pe la ea. Câte minute setați la Setări → Local → Timp la masă (implicit 20, 0 = fără chenar portocaliu). Dacă încă nu s-a introdus nimic, se socotește de la deschiderea mesei.
Dacă la o masă stau mai multe grupuri (note proprii), apare câte un rând pe grup, de ex. G1 ⏱ 50m · 12m și Jansen ⏱ 10m (numele grupului, altfel numărul grupului). Un grup inactiv prea mult timp primește o etichetă portocalie, iar masa un chenar portocaliu.
Mutarea întregii mese
În ecranul de comandă există Mută masa. Alege sala (de ex. Terasă) și o masă: toate grupurile mesei se mută, fiecare cu nota sa. Dacă alegi o masă ocupată, mesele se unesc (grupurile se adaugă). Dacă vrei să muți doar o parte, folosește ca înainte Împarte / mută. Dacă totul trebuie pe o singură notă, folosește Unește.
Lucru offline (tabletă fără Wi-Fi)
Dacă se pierde conexiunea dintre o tabletă și serverul casei (wifi pe terasă, server oprit pentru scurt timp), apare o bară galbenă, iar tableta lucrează mai departe cu ultimele mese, produse și comenzi deschise salvate:
- deschiderea meselor, introducerea produselor și Trimite comanda sunt salvate pe tabletă (chiar și dacă repornește) și apar în lista de comandă cu chenar punctat („netrimis încă”);
- imediat ce conexiunea revine, totul merge în ordine la server și abia atunci bonul de bucătărie ajunge în bucătărie. Fiecare pachet are o cheie, deci nimic nu ajunge dublu. Dacă între timp altcineva a deschis masa, produsele se adaugă la acea comandă;
- încasarea, reducerea, împărțirea etc. sunt posibile doar cu conexiune; „Încasare” așteaptă până când tot ce ține de acea masă a fost trimis.
Număr de persoane
Opțional și implicit dezactivat: Setări → Local → Comenzi și plată → Înregistrează numărul de persoane. Dezactivat = cât mai puține atingeri: o masă liberă se deschide cu o singură atingere, persoanele nu apar nicăieri, iar raportul, panoul și rezumatul zilei nu arată clienți și nici cheltuiala per client.
Activat: când atingi o masă liberă, casa întreabă câte persoane sunt (butoane mari 1-8, sau tastare; "Omite" = 1). Pe planul sălii, la o masă ocupată apare "3/4 pers." (persoane/locuri, galben dacă stau mai mulți oameni decât locuri). Pe ecranul de comenzi îl modifici cu butonul "3 pers." din bara grupurilor; la mai multe grupuri, masa adună toate grupurile.
Fără persoane totul funcționează în continuare: Împarte în mod egal la plată începe de la 2, all-you-can-eat cere singur numărul de adulți și copii, iar rezervările și lista de așteptare își păstrează propriul număr de persoane (masa se deschide atunci fără persoane).
Înregistrare HACCP
Orice unitate HoReCa trebuie să monitorizeze și să documenteze siguranța alimentară: în Țările de Jos conform Hygiënecode voor de Horeca (Codul de igienă pentru HoReCa, controlat de NVWA), în Belgia conform autocontrolului FAVV (ghidul G-023). Activează Înregistrare HACCP în Setări → Legi și reglementări (implicit dezactivat).
- Puncte de măsurare (administrator): ex. cameră frigorifică, congelator, menținere la cald, temperatura la miez după preparare, răcire rapidă și recepția mărfurilor, cu un minim și/sau maxim în °C și cât de des (zilnic, de două ori pe zi, săptămânal sau la utilizare). Adaugă lista standard creează un punct de plecare (răcire până la 7 °C, în Belgia până la 4 °C; congelator până la -18 °C; menținere la cald de la 60 °C; preparare termică de la 75 °C).
- Curățenie și control: sarcini pe zi, săptămână (eventual într-o zi fixă) sau lună, cu spațiu și instrucțiuni, ex. dezinfectarea tocătoarelor, filtre de grăsime, controlul dăunătorilor, verificarea termometrului.
- Înregistrare (oricine este autentificat): butonul HACCP din bara de sus, cu numărul celor care mai sunt deschise azi. Introdu temperatura sau bifează o sarcină (Făcut sau Nereușit). Dacă o temperatură iese din limite, trebuie adăugată o acțiune corectivă (ex. "ușă închisă, produs aruncat"). Înregistrările nu pot fi modificate; o greșeală se corectează cu o înregistrare nouă.
- Raport (dreptul Vânzări pe perioadă): pentru fiecare perioadă toate înregistrările, numărul de abateri și înregistrările omise pe zi; ca CSV (Excel) sau pentru tipărire / salvare ca PDF în vederea unui control.
Sistem de dozare și debitmetre
Fiecare turnare raportată de un calculator de dozare sau debitmetru ajunge pe notă, astfel încât nimic nu se "scurge". Activează-l la Setări → Sistem de dozare (implicit oprit).
- Surse (administrator): computerul de dozare sau sistemul de debitmetre. Alege marca; casa completează o presetare. Din Țările de Jos și Belgia: Van Duijnen Horeca (automatizare de dozare, Dashbar), Beconet (Multi-Tap), TapSystems, Horecatechniek Nederland, Heineken SmartDispense, WeissBeerger / AB InBev și BarTrack; de asemenea Gruber, Addimat, WMF / Hogatron (E-Protokoll), Drinkotec (ex-Hartec), , Berg, Easybar, Azbar, Scanabar, PourMyBeer, iPourIt, BeerBoard, US BeerSAVER, Bevchek, Capton/BarVision, Kegtron, Kegbot Kegboard, un "robinet inteligent" sau un sistem propriu. Conectarea se poate face în cinci moduri (Kegboard: vezi Turnare dozată și Kegboard mai jos):
- Câmpuri:
kraan(sautap,plu),ml(saucl,liter,volumecueenheid) sauporties,id(aceeași turnare de două ori = înregistrată o dată),tijdstip,tafel,bediening; o turnare, o listă sau{ "taps": [...] }. - Rețea (TCP): casa se conectează la calculatorul de dozare (adresă și port) sau ascultă singură pe un port.
- Port serial: port COM sau USB-serial, 1200–115200 baud, 8N1, 7E1 sau 7O1.
- La rețea și serial setezi formatul mesajului (un mesaj pe linie sau STX … ETX cu eventuală verificare XOR și ACK/NAK înapoi) și modelul unui mesaj, cu părțile
kraansaupluși eventualml,cl,liter,porties,tafel,bedieningșiid(ex.kraan;mlsau doar un PLU pe pahar). Furnizorii dau formatul exact doar instalatorilor; întreabă furnizorul calculatorului de dozare. Turnare de test trimite o turnare așa cum ar face-o calculatorul de dozare.
- Câmpuri:
- Robinete (administrator): pentru fiecare robinet sau PLU, produsul și cum ajunge pe notă: per pahar (pahar în ml; o turnare de 520 ml cu pahare de 250 ml = 2 pahare; de la 50% contează un pahar) sau per litru (prețul produsului este prețul pe litru; pe notă ex. "Pils 0,33 l" pentru suma corectă).
- Pe notă: dacă calculatorul de dozare raportează o masă, turnarea ajunge imediat pe comanda deschisă a acelei mese. Altfel apare la Turnat: în ecranul de comandă apare bara "… turnări fără notă"; alege turnările și atinge Pe această notă. Liniile sunt imediat comandate (nu mai pleacă bon de lucru la bar) și stocul se scade. Butonul Turnat din bara de sus arată tot ce nu are încă notă.
- Respingere (drept Stornare): clătire, spargere, degustare, personal, gratuit sau altele (cu explicație); se înregistrează în jurnal. Prea puțin pentru un pahar (ex. clătire) trebuie respins.
- Prezentare (drept Vânzări pe perioadă): pe robinet, turnat, pe notă, respins (pe motiv), anulat și încă deschis, în litri, cu procentul vândut, și ca CSV.
- Turnările raportate nu pot fi modificate (doar procesate).
Turnare dozată și Kegboard
Cu turnarea dozată, un robinet se deschide doar după ce paharul a fost înregistrat la casă, și numai pentru acea cantitate. Astfel nu se toarnă nimic ce nu e pe bon. Funcționează doar dacă sistemul de dozare este pornit și se activează pe fiecare robinet (implicit oprit).
- Pe robinet (administrator, Setări → Sistem de dozare → Robinete): bifează Turnare dozată și alege cât timp poate rămâne robinetul deschis după înregistrare (10–600 secunde, implicit 120). La Kegboard completezi și releul (electrovalva). Turnarea dozată funcționează doar pe pahar.
- Înregistrare: la Trimite comanda (sau la Încasare directă) casa creează pentru fiecare linie de pe bon cu acel produs o eliberare (număr de pahare × pahar în ml) și o trimite computerului de dozare. Turnarea care sosește după aceea aparține acelei linii. Deci nu mai apare încă o dată pe bon și nici la Turnat. O turnare fără eliberare apare normal la Turnat.
- Stornare a liniei înainte de turnare: robinetul se închide din nou. O eliberare care nu a fost turnată la timp expiră; robinetul nu se mai deschide niciodată ulterior.
- Eliberări în ecranul de comandă (o bară deasupra bonului): vezi ce este în curs, Oprește și Eliberează din nou. Poți elibera din nou doar dacă nu s-a turnat încă nimic, deci nu se eliberează niciodată ceva în plus. Eliberare de test (administrator) eliberează un pahar fără bon; aceasta apare în jurnal.
- Cum ajunge eliberarea la computerul de dozare:
- Kegboard (Kegbot, open source, ESP32 cu debitmetre și electrovalve; protocol complet public): casa dă un grant pentru robinetele cu acel produs, releele și cantitatea. Placa închide singură robinetul când cantitatea este atinsă sau timpul a expirat.
- Rețea/serial: o comandă de eliberare configurabilă cu
{kraan},{ml},{porties},{sec}și{id}(de ex.V{kraan};{ml}), trimisă în formatul de mesaj al sursei (linie sau STX … ETX cu XOR). Opțional există o comandă de oprire. Comanda exactă o oferă furnizorul.
- Conectare Kegboard: la + Sursă alegeți marca Kegbot Kegboard. Placa se anunță la sursă; faceți clic pe Permite (sau Refuză). Placa primește apoi o singură dată o cheie proprie, pe care casa o păstrează doar ca hash. Alt dispozitiv sau o cheie greșită nu schimbă nimic la o placă conectată; dacă placa și-a pierdut cheia, folosiți mai întâi Deconectează. Sursa afișează firmware-ul, contoarele și releele plăcii. Robinetele sunt numerele contoarelor (0, 1 …). Un card prezentat la placă este refuzat: plata se face la casă. Dacă sistemul de dozare este oprit, placa își păstrează mesajele și le trimite mai târziu.
- La sursă setați după câte secunde fără debit se închide robinetul (5–300, implicit 30). Pentru fiecare robinet completați numărul contorului, releul (electrovalva) și cât timp poate rămâne robinetul deschis după înregistrare.
Control muzică de la casă
Personalul controlează muzica de pe ecranul tactil al casei, astfel încât nu mai este nevoie de un ecran separat la bar. Activați funcția la Setări → Local → Ecrane și utilizare → Control muzică de la casă (implicit dezactivat). Apare atunci butonul Muzică în bara de sus: pentru fiecare sursă (de ex. Bar și Terasă) Redare, Pauză, Următoarea, Anterioara, Mai tare, Mai încet și un glisor pentru volum, cu ce se redă acum. Înapoi la casă închide panoul. La dezactivare, sursele rămân salvate.
- Coada de redare (Sonos, Bluesound și VLC): lista de așteptare cu ce se redă acum. Atingeți o piesă pentru a o reda; cu Editează eliminați piese (✕), le mutați mai sus sau mai jos (↑ ↓; Sonos și Bluesound) sau goliți coada de redare. Cu Alege altă muzică redați un favorit Sonos (de ex. un post de radio sau un canal Tunify) sau o listă de redare Sonos, ori o presetare BluOS.
- Pe un ecran separat: același control și coada de redare mare la
http://<kassaserver>:3000/muziek, de ex. pe un al doilea monitor lângă casă sau pe o tabletă la bar (dacă sunteți deja autentificat pe același dispozitiv, altfel cu un cod PIN). - Pe o tabletă sau un telefon: un cod QR cu adresa acelui ecran separat în rețeaua localului. Un angajat îl scanează cu propria tabletă sau propriul telefon (în rețeaua wifi a localului) și se autentifică cu propriul cod PIN; cu Deconectare se închide din nou. Vezi Al doilea ecran pe o tabletă sau un telefon.
Administratorul adaugă sursele cu + Sursă de muzică, alege cum este conectată fiecare și o verifică cu Testare:
- Soundtrack (soundtrack.io): prin API-ul public, cu un token API (solicitat de la Soundtrack) și o zonă audio (Încarcă zonele). Redare, pauză, următoarea, volum și ce se redă.
- Sonos: adresa IP a boxei (la un grup: boxa care conduce grupul). Funcționează cu tot ce se redă pe Sonos, de ex. Tunify, Spotify sau radio.
- Bluesound (BluOS): adresa IP a playerului; funcționează și cu tot ce se redă pe el, de ex. Tunify.
- VLC pe calculatorul de muzică: interfața web activată (Unelte → Preferințe → Arată toate → Interfață → Interfețe principale: Web, cu o parolă la Lua); adresa IP (eventual cu
:poort, implicit 8080) și parola. - Calculator de muzică propriu (adrese web): pentru un calculator sau un dispozitiv de muzică cu câte o adresă web pentru fiecare buton; GET sau POST și
{volume}(0-100) în adresă pentru volum. Fără adresă pentru Mai tare/Mai încet, casa setează volumul pas cu pas. - Web player-ul serviciului de muzică: adresa web a web player-ului sau a paginii de control (de ex. web player-ul Tunify sau Media Tools) se deschide în casă la butonul Muzică; dacă serviciul nu poate fi afișat în alt ecran, folosiți Deschide într-o fereastră separată.
Casa comunică de pe server cu playerele, deci acestea trebuie să fie în aceeași rețea cu casa (Soundtrack prin internet). Controlul îl poate folosi oricine este autentificat; configurarea necesită dreptul Setare local, plăți și imprimante. Tokenul și parola nu mai apar niciodată pe ecran și nici în jurnal; în jurnal apare doar configurarea (activat/dezactivat, surse), nu fiecare apăsare de buton. Exportul configurației include doar activat/dezactivat (sursele aparțin unui singur local).
Al doilea ecran pe o tabletă sau un telefon
Muzica și camerele pot fi afișate și pe tableta sau telefonul unui angajat, ca al doilea ecran lângă casă. În fereastra Muzică sau Camere se află butonul Pe o tabletă sau un telefon: acesta afișează un cod QR cu adresa, de ex. http://192.168.1.20:3000/muziek sau .../camera.
- Conectați tableta sau telefonul la rețeaua wifi a localului.
- Scanați codul QR cu camera (sau introduceți adresa în browser).
- Autentificați-vă cu propriul cod PIN. Vedeți doar ce aveți voie: muzica toată lumea, camerele doar cu dreptul Vizualizare imagini camere.
- Gata: Deconectare în dreapta sus. Dacă autentificarea a expirat (de ex. tableta a stat nefolosită o noapte), ecranul cere din nou codul PIN.
Sfat: puneți pagina pe ecranul de pornire al tabletei (în browser: Adăugați pe ecranul de pornire), astfel se deschide ca o aplicație.
De aceea casa solicită adresa IP a PC-ului casei în rețea (dacă PC-ul are mai multe, de ex. wifi și cablu, alegeți rețeaua). Pe portalul de administrare (casă la distanță) este adresa portalului. Codul QR îl generează casa însăși, fără internet.
Asocierea tabletelor: cu un singur buton pe tabletă (opțional)
Și mai simplu: asociază o tabletă o singură dată, iar casa trimite muzica sau camerele pe acea tabletă cu un singur buton. Activează la Setări → Local → Ecrane și utilizare → Tablete ca al doilea ecran (implicit dezactivat).
- Pe tabletă: deschide
http://<kassaserver>:3000/tablet(la setare apare Pe o tabletă sau un telefon cu codul QR), conectează-te cu un cod PIN și dă-i tabletei un nume, de ex. Tabletă Bar. Asociază. - Pe casă: în fereastra Muzică sau Camere apare acum butonul Către Tabletă Bar (cu un punct verde dacă tableta este pornită). Atinge-l: tableta deschide automat acel ecran. La muzică se transmite și sursa aleasă (de ex. Terasă).
- Pe tabletă: Închide revine la așteptare; Dezasociază această tabletă elimină asocierea.
Lasă pagina deschisă pe tabletă; dacă tableta este oprită sau în repaus, deschide ecranul imediat ce pornește din nou. Tableta rămâne conectată ca angajatul care s-a conectat pe ea: trimiterea și vizualizarea camerelor sunt posibile doar cu dreptul Vizualizare imagini camere. Administratorul vede la setare ce tablete sunt asociate și dacă sunt pornite și le poate redenumi sau elimina. Tableta păstrează o cheie proprie; casa păstrează din ea doar un hash. La dezactivare, tabletele asociate rămân salvate. În jurnal apare cine a asociat, a redenumit sau a eliminat o tabletă.
Ecran de apelare pentru comenzi la pachet
Un ecran pentru clienți cu În preparare în stânga și Gata în dreapta, cu numere mari, ca la un fast-food sau o gustărie. Îl porniți din Setări → Local → Ecrane și utilizare → Ecran de apelare pentru comenzi la pachet (implicit oprit).
Nu este nevoie de asociere: deschideți pe un televizor cu browser (smart TV, stick sau mini-PC), o tabletă sau un al doilea monitor adresa casei de marcat cu /oproep, de ex. http://192.168.1.20:3000/oproep. La setare și în fereastra Cheamă găsiți butoanele Pe un ecran separat și Pe o tabletă sau un telefon (cod QR cu adresa). Nu este nevoie de autentificare: ecranul afișează doar numere. Atingeți ecranul o dată, apoi browserul poate reda sunet.
Ce apare pe ecran:
- comenzile la pachet din casa de marcat, din magazinul online și de la Thuisbezorgd (și, la dorință, comenzile la tejghea fără masă, la vânzarea rapidă), din ultimele 12 ore;
- imediat ce ceva a fost trimis la bucătărie sau la bar (sau comanda online este pe în preparare): numărul apare la În preparare;
- Gata se setează automat când ecranul bucătărie marchează toată comanda ca gata sau când comanda online este pe gata. Numărul clipește scurt și ecranul face ding-dong;
- un număr gata rămâne afișat atâtea minute cât este setat (implicit 10) sau până la Ridicat;
- comenzile de la chioșc (vezi Chioșc self-service) apar mereu imediat ce sunt plătite sau urmează să fie plătite la casă, și la "mănânc aici", cu numărul de ridicare de pe bonul lor;
- opțional și comenzile pentru curierii Thuisbezorgd, Uber Eats, Deliveroo și HubRise (bifa Și comenzile pentru curieri …): cu numărul de comandă al platformei și numele platformei dedesubt, ca să vadă curierul când e gata comanda. Ridicată anunță atunci și platforma că a luat-o curierul (ca în fereastra platformei).
Numărul: la magazinul online, Thuisbezorgd și platformele de livrare, numărul de comandă pe care clientul sau curierul îl are deja; altfel numărul de ridicare (1 până la 999). Este tipărit mare pe bon, cu explicația că numărul apare pe ecran când comanda e gata (în limba bonului).
Opțional (oprit implicit, în setare):
- Anunță numărul cu voce: la un nou număr gata, ecranul spune de ex. "Nummer 42…" în limba aleasă (neerlandeză, engleză, germană, franceză, spaniolă, italiană, portugheză, poloneză, turcă sau arabă). Vocea vine din browserul ecranului și sună diferit pe fiecare aparat; atinge ecranul o dată după deschidere. După sonerie, dacă și sunetul e pornit.
- Starea comenzii pe telefon: sub numărul de ridicare de pe bon apare un cod QR. Oaspetele îl scanează, își vede numărul și starea (comandată, în pregătire, gata, ridicată) și primește o notificare când comanda e gata. Funcționează prin portalul de administrare, deci casa trebuie să fie conectată la el. Nu pentru magazinul online și Thuisbezorgd (au starea lor) și nu pentru chioșc (are setarea lui).
În casa de marcat există butonul Cheamă (cu numărul de comenzi încă în preparare):
- Gata marchează manual un număr ca gata (fără ecran bucătărie sau dacă e mai rapid). La o comandă din magazinul online sau de la Thuisbezorgd se actualizează și starea, deci clientul primește și el un mesaj.
- Înapoi îl mută din nou la În preparare.
- Ridicat îl scoate de pe ecran (cu Anulează).
La setare alegeți și dacă prenumele apare lângă număr (implicit nu, pentru confidențialitate) și dacă ecranul emite sunet. La dezactivare: fără butonul Cheamă și fără număr de ridicare pe bon; setările rămân salvate. În jurnal apare cine a marcat manual ceva ca gata, înapoi sau ridicat.
Pontaj intrare/ieșire
Implicit pontajul este oprit: atunci nu apare nicăieri în casă (niciun buton în bara de sus, nimic pe ecranul de autentificare, nicio filă Program de lucru). Activați-l la Setări → Local, la Pontaj intrare/ieșire personal:
- Oprit: nu se folosește. Dacă oprești pontajul mai târziu, nu mai apare nicăieri, dar orele deja pontate rămân salvate (nu se șterge nimic); dacă îl pornești din nou, ele sunt din nou acolo.
- Pornit: angajații se pot ponta la intrare și ieșire. După autentificare casa întreabă dacă doriți să vă pontați (Nu acum este permis). În bara de sus apare apoi Pontare intrare sau Pontat 17:02; atingeți pentru pontarea la ieșire.
- Obligatoriu: după autentificare vă pontați mai întâi, altfel nu puteți folosi casa. Pontarea la ieșire vă deconectează imediat.
Cine nu folosește casa (de ex. bucătăria) se pontează pe ecranul de autentificare: atingeți Pontare intrare / ieșire și introduceți PIN-ul. Comută între intrare și ieșire, fără autentificare.
Când pontajul este pornit, administratorul vede la Setări → Program de lucru:
- cine este pontat acum (și poate ponta la ieșire pe cineva care a uitat);
- orele lucrate pe angajat pe perioadă, cu toate turele, și o descărcare CSV (orele și ca număr zecimal pentru salarizare);
- modificarea sau adăugarea turelor (atingeți o tură sau + Adăugare tură). Fiecare modificare se înregistrează în jurnal cu orele vechi și noi.
În Belgia fiecare pontare la intrare și ieșire este raportată și la cutia neagră. Dacă aceasta nu poate fi accesată, pontajul nu are loc (la fel ca încasarea). Dacă aceasta respectă exact înregistrarea belgiană a personalului urmează să fie confirmat.
Cântărire și etichete (cântar)
Dacă cântarul este pornit (Setări → Cântar), produsele pot avea un preț pe kilogram. Toate celelalte produse rămân la bucată.
- Cântărire: atinge un produs cu preț pe kilogram (butonul arată de ex.
12,95/kg). Fereastra Cântărire arată live greutatea de pe cântar (de ex. un Aclas OS6X sau cântarul pe care rulează chiar casa); verde = stabil. Pune produsul pe cântar și atinge Adaugă imediat ce greutatea e stabilă. Prețul este preț pe kg × greutate (rotunjit la cent); recipientul (tara) produsului se scade automat. Dacă produsul are opțiuni, acestea urmează. - Mai multe cântare: dacă sunt mai multe cântare, alege sus în fereastră pe care cântărești. Fiecare casă/tabletă își amintește alegerea.
- Manual: fără cântar (sau dacă este permis manual), tastați greutatea:
0,512sau1,2înseamnă kilograme,512sau512 gînseamnă grame. - Eticheta de la TS6X: scanați codul de bare al etichetei cu scannerul de coduri de bare pe ecranul de comandă (scanați pur și simplu, nu trebuie să fie nimic deschis), sau atingeți Etichetă și scanați sau tastați cele 13 cifre. Produsul (PLU) și greutatea provin de pe etichetă. Dacă pe etichetă există un preț, casa încasează exact acel preț.
- Pe ecran, pe bonul fiscal și pe ecranul clientului apare și greutatea, de ex.
Gehakt 6,63cu dedesubt0,512 kg x € 12,95/kg; pe bonul de bucătărie0,512 kg Gehakt. Împărțirea, mutarea și returul se fac în kilograme. - Un produs cântărit este posibil doar cu conexiune la serverul casei (greutatea vine prin serverul casei).
Uber Eats, Deliveroo și HubRise
Pe lângă Thuisbezorgd.nl / Takeaway.com, în casă intră și comenzi de la Uber Eats (Țările de Jos și Belgia), Deliveroo (doar Belgia; Deliveroo a plecat din Țările de Jos la sfârșitul lui 2022) și tot ce este pe HubRise (printre altele Uber Eats, Deliveroo, Just Eat/Takeaway.com și aplicații de comandă mai mici). Fiecare platformă se activează separat la Setări → Platforme de livrare (implicit oprit; oprirea păstrează totul). Fila arată pentru fiecare platformă în ce țări funcționează și avertizează dacă nu funcționează în țara localului.
- Activați, apoi Autentificare la Uber Eats și conectare magazin (localul se autentifică cu propriul cont Uber Eats). Dacă contul are mai multe magazine, completați ID-ul magazinului (store id) și autentificați-vă din nou. Pentru aceasta, Uber Eats trebuie mai întâi să aprobe Pin Voordeel ca partener.
- Deliveroo: direct, prin portal. Completați site-id-ul (location id) și ID-ul mărcii (brand id). Fără tabletă (implicit): casa acceptă sau refuză; cu tabletă: localul acceptă pe tabletă, iar portalul raportează doar dacă comanda este în casă.
- HubRise: casa preia singură comenzile (la fiecare 20 secunde, fără portal).
- Pe platformă: acceptare automată, bonul de bucătărie imediat la bucătărie/bar și (Uber Eats, Deliveroo) trimitere automată a meniului după o modificare și Trimite meniul acum. În meniu sunt produsele bifate la Produse în meniul Uber Eats și Deliveroo, cu opțiuni; starea epuizat se transmite și ea.
Comenzi. O comandă devine o comandă obișnuită (bezorgen sau afhalen, nume de grup <platform> <nummer>) cu prețurile platformei: produse recunoscute după ID (din meniu), cod sau număr PLU, necunoscut = un rând separat cu prețul platformei (și o notificare); costuri de livrare, suplimente și reducere ca rânduri proprii; dacă totalul tot nu se potrivește, un rând "Diferență". Bonul de bucătărie merge imediat la bucătărie/bar. Butonul Platforme din bara de sus (cu numărul de comenzi în curs; portocaliu dacă e ceva de acceptat): acceptare sau refuz (cu motiv), în preparare, gata, în drum, livrată sau ridicată, anulare și Finalizare (plătit online). Ce cunoaște platforma se trimite înapoi (Uber Eats: acceptare, refuz, anulare; Deliveroo: acceptare, refuz, în preparare, gata, ridicată; HubRise: toate stările). Dacă localul livrează singur (livrare proprie), comanda apare și la Curse, iar plecarea și livrarea ajung automat la platformă. O anulare din partea platformei face comanda să expire. Dacă casa nu este conectată la portal mai mult de 2 minute, portalul refuză o comandă nouă de la Uber Eats și îi comunică Deliveroo (cu tabletă) că nu a reușit, ca localul să vadă pe tabletă.
Cod: apps/pos-server/src/lib/bezorgplatforms.ts, routes/bezorgplatforms.ts; ecrane Bezorgplatforms.tsx. Partea de portal: horecapos-portaal/src/platforms.mjs. Jurnal: Platforme de livrare (pornit/oprit, setări, comenzi). Totul este inclus în copiile de siguranță ale casei.
Platformele mai mici din Țările de Jos și Belgia (Homie, Hebtrek, sneleten.nl, Bistroo ...) nu au o integrare publică de casă; dacă sunt pe HubRise, funcționează prin HubRise. În rest: vedeți backlogul.
Automat de numerar (sistem închis de gestionare a numerarului)
Implicit oprit: numerarul funcționează ca întotdeauna. La un sistem închis de gestionare a numerarului, personalul nu atinge numerarul: clientul sau angajatul introduce banii în automat, care îi numără, verifică dacă există bani falși și dă restul.
- Automate cu care casa comunică direct:
- CashDro (3, 4+, 5, 7, S Compact; NuKassa, KluisKassa): prin rețea (web service). Pe CashDro activați Web Integration și creați un utilizator propriu pentru casă.
- Cashmatic (SelfPay 460/860/1060; în Belgia Xpos): prin rețea (portul 50301) cu un utilizator al Cashmatic.
- Azkoyen Cashlogy (POS1000, POS1500): prin CashlogyConnector pe un PC cu Windows lângă automat (portul 8092).
- CashKeeper: prin CKMonitor pe un PC cu Windows (portul 16501).
- Glory CASHINFINITY (CI-5, CI-10, CI-10X; și prin Cikam): prin controlerul (FCC) automatului. Încă în beta: lăsați prima integrare să fie verificată de Glory sau de dealerul dvs.
- Extern: alt software comandă automatul și comunică cu casa (cum ar fi Cikam, ImaCash pentru 25 mărci, software-ul CashGuard/StrongPoint (Merlin), PayComplete (SUZOHAPP), Gunnebo SafePay sau mărci franceze precum CashMag).
- Automat de test: fără hardware, pentru exersare sau demonstrație. Cu Testează conexiunea verificați adresa și autentificarea. Puneți automatul în rețeaua proprie (niciodată expus la internet) și folosiți un utilizator propriu pentru casă, nu un administrator.
- Încasare cu Numerar: Plată la automatul de numerar pornește plata pentru sumă (numerar rotunjit, dacă este activat, plus bacșiș; la împărțirea notei, partea respectivă). Ecranul arată ce s-a introdus și ce se returnează; casa încasează abia când automatul raportează gata. Anulare = automatul returnează banii. Dacă automatul nu a putut da tot restul (prea puține monede), se afișează cât trebuie dat din sertarul de bani. O plată reușită care nu a fost încă încasată (de ex. tableta s-a oprit) este regăsită la comanda respectivă.
- Numerar doar prin automat (implicit pornit): atunci serverul casei acceptă numerar doar cu o plată reușită la automat pentru exact acea comandă și acea sumă. Oprit = și numerar obișnuit în sertar.
- Sertar de bani (Raport → Sertar de bani, dreptul Gestionare sertar de bani): Solicitare stare (pe monedă și bancnotă, la Cashmatic, Cashlogy, Glory și automatul de test), Eliberare bani cu motiv (de ex. mărunțiș pentru sertar), Alimentare și Retragere surplus (restul pentru mărunțiș rămâne; la Cashmatic). Așteptat în sertarul de bani nu include banii din automat (aceștia apar separat dedesubt: În automatul de numerar), dar include restul care a trebuit dat din sertar.
Butonul ©
În dreapta jos pe fiecare ecran (PIN, plan, comandă și bucătărie) există un mic buton ©. Acesta deschide datele OptimumPOS: logo, adresă, telefon, e-mail și site web. Pictograma este stocată local în aplicație, deci funcționează și fără internet. Aceeași pictogramă este și pictograma aplicației (filă și ecran de pornire).
Partea 2 · Manager
Primii pași
Implicit un manager poate face tot ce poate face un ospătar și, în plus, printre altele, să acorde reduceri, să facă retururi, să închidă ziua, să gestioneze sertarul de bani și să vadă jurnalul și stocul. Acestea se află mai ales la butonul Raport:
- Situație intermediară (X): vânzările de până acum, fără a închide ziua.
- Sertar de bani: fond inițial, bani în/din sertar și deschiderea sertarului.
- Închidere zi (Z): la sfârșitul zilei; apoi începe o zi nouă.
- Rapoarte Z anterioare, Vânzări pe perioadă și Panou de control.
- Jurnal, Carduri cadou și Clienți.
Stoc
Implicit oprit. Se activează la Setări → Local → Urmărire stoc. Oprit = nu apare nicăieri în casă.
- Pe produs alegeți la Setări → Produse → (produs) → Stoc:
- Nu: ca întotdeauna;
- Pe produs: fiecare vânzare scade 1 (de ex. sticle, doze), cu un nivel de alertă pentru „aproape epuizat”;
- Prin ingrediente: o rețetă, de ex. hamburger = 1 chiflă + 150 g carne + 1 felie de brânză. Fiecare vânzare scade ingredientele.
- Setări → Stoc (dreptul Gestionare stoc, implicit manager și administrator):
- Produse și Ingrediente: nivelul, cu epuizat / aproape epuizat; filtrul „doar (aproape) epuizate” și export în CSV.
- Pe produs sau ingredient înregistrați Recepție (+) (livrare), Inventar (=) (cantitatea numărată devine noul nivel) sau Scoatere din stoc (−) (spargere, expirat; motiv obligatoriu).
- Creați ingrediente cu unitate (buc, g, kg, ml, cl, l, porție, sticlă, butoi) și nivel de alertă.
- Istoric: toate mișcările (vânzare, stornare, recepție, inventar, scoatere din stoc) cu cine și când. Acțiunile de gestionare se înregistrează și în jurnal.
- Scăderea are loc la Trimite comanda (sau la încasare pentru ce s-a încasat direct). O stornare adaugă înapoi. Împărțirea și mutarea nu scad de două ori. La meniuri se scad preparatele, nu rândul de meniu. Retururile (notă de credit) nu adaugă înapoi (ce se returnează de obicei nu mai poate fi vândut); înregistrați-l eventual ca recepție.
- Dacă stocul este epuizat (sau un ingredient nu mai ajunge pentru încă o dată), produsul devine automat epuizat pe toate casele. Când este aproape epuizat, pe butonul produsului apare încă N. După o recepție sau un inventar poate fi comandat imediat din nou. Și serverul casei refuză atunci produsul („Pils” este epuizat (stoc 0)), deci și de pe o tabletă care încă nu știa asta.
- Stocul poate scădea sub 0 (de ex. două tablete simultan sau comandă offline); inventarul îl corectează din nou.
- Listă de comandă: Setări → Stoc → Listă de comandă. Pe produs (pe produs) și pe ingredient setați, pe lângă nivelul de alertă, și completare până la și furnizorul. Pe lista de comandă apare tot ce este la sau sub nivelul de alertă (fără nivel de alertă: la 0), pe furnizor, cu propunerea completare până la − nivel. Cantitățile pot fi modificate și bifate/debifate. Apoi Tipărire (imprimantă de bonuri), Copiere (pentru e-mail sau WhatsApp), Export (CSV), iar după livrare Livrat: înregistrare ca recepție (înregistrează totul deodată). Cu bifa de sus vedeți și ce nu este încă epuizat, pentru a comanda în plus.
- Opțiuni: la un grup de opțiuni (Setări → Produse → Opțiuni) există butonul Stoc. Indicați pe opțiune ingredientele pe bucată, de ex. Extra brânză = 1 felie de brânză, Cartofi prăjiți = 150 g cartofi prăjiți. Când opțiunea este aleasă, ingredientele se scad pe bucată (chiar dacă produsul în sine nu are stoc urmărit; la stornare revin). Dacă un ingredient este epuizat, opțiunea apare pe casă ca (epuizat) și nu poate fi aleasă.
Comenzi la furnizori
Implicit oprit. Se activează la Setări → Stoc → Comenzi la furnizori (doar cu Urmărire stoc pornit). Oprit = lista de comandă funcționează ca întotdeauna.
- Furnizori (fila Furnizori): alegeți unul din listă sau creați un furnizor propriu. Lista conține angrosiști și cash & carry (Sligro, Sligro-ISPC/Sligro-M, HANOS, Makro, De Kweker, Horeca Totaal, Van Zon, zegro, Lekkerland), foodservice (Bidfood și Bidfood Belgium, Solucious, Chefs Culinar, Java, Q-Food, Agora Culinair, VHC Jongens/Kreko/Actifood, Hocras, Van Hoeckel ...), angrosiști de băuturi (De Klok, Henk Smit, Horesca, De Monnik, Hansen, Dranken Geers ...), berării și băuturi răcoritoare (Heineken prin Sligro, AB InBev/BEES, Alken-Maes, Haacht, Duvel Moortgat, Martens, Coca-Cola, Spadel, Grolsch, Bavaria), furnizori de produse proaspete (Van Gelder, Driessen, FiliusKaas, Bakkers Brigade, Rungis ...), non-food (Bunzl, Takeaware, Supplierz), magazinul online de vinuri Vinify.nl și platforme de comenzi (Apicbase, Exact Horeko, Growzer, inOne, Cuisin.io, OrderXL). Apar doar furnizorii din țara localului. Când alegeți unul, modul de comandă, fișierul și coloanele sunt deja setate corect; la fiecare furnizor scrie cum se comandă acolo.
- Pe furnizor: număr de client, comandă prin:
- E-mail: comanda ca e-mail (cu tabel) la adresa de e-mail pentru comenzi, opțional cu o copie, cu lista de comandă ca atașament: CSV, Excel, CSV pentru Care4Fresh (mulți angrosiști de produse proaspete), UBL 2.1 Order (Peppol BIS Order), EANCOM ORDERS (D96A în Țările de Jos, D01B/HO2C în Belgia) sau cXML. Răspunsurile ajung la adresa de e-mail a localului.
- Fișier: casa creează fișierul, dvs. îl încărcați în magazinul online al furnizorului (de ex. Bunzl Snel bestellen:
artikel;aantal, Takeaware:SKU,Quantity). Separatorul, rândul de antet și coloanele se pot configura (artikel,ean,omschrijving,aantal,eenheid,prijs,totaal; cuartikel=SKUdați antetului un nume propriu). - Integrare (cXML): un cXML OrderRequest cu număr de client și secret partajat către adresa de comenzi a furnizorului, așa cum îl trimit sistemele de achiziții către Sligro, HANOS și Bidfood. Adresa, numărul de client și secretul le primiți de la furnizor (Sligro: koppelingen@sligro.nl). Secretul nu se mai afișează niciodată pe ecran.
- La ambele integrări se pot folosi și un nume de utilizator și o parolă (Basic) și antete suplimentare (unul pe rând, de ex.
X-Api-Key: ...). - Încărcare (SFTP/FTPS): casa de marcat pune singură fișierul (EANCOM, UBL, CSV, Excel ...) într-un folder de pe serverul furnizorului, așa cum mulți angrosiști primesc comenzile EDI. SFTP (SSH), FTPS (explicit pe portul 21 sau implicit pe portul 990) sau, doar în rețeaua proprie, FTP. Autentificare cu parolă sau cu cheie SSH (OpenSSH, PEM sau PuTTY .ppk; ed25519, ECDSA sau RSA). Creează cheie generează o pereche de chei în casa de marcat; cheia publică o trimiteți furnizorului. Testează conexiunea se autentifică și caută folderul. Amprenta serverului SFTP este înregistrată la prima conexiune și apoi verificată (un alt server nu primește parola); la FTPS cu certificat propriu fixați amprenta certificatului. Nu este nevoie de software suplimentar.
- Tipărire: comanda la imprimanta de bonuri, pentru a o transmite telefonic.
- Parolele, cheile, tokenurile și antetele nu se mai afișează niciodată pe ecran (lăsat gol = se păstrează, Șterge = eliminare).
- Solicită integrarea: la un furnizor, casa de marcat redactează un e-mail pentru o integrare (cXML, EDI prin SFTP/FTPS, UBL/Peppol sau API-ul propriu al furnizorului) cu datele localului (nume, adresă, cod de TVA, număr de client, GLN) și ce este necesar; la EDI, cu cheia publică. Modificați și trimiteți; o copie și răspunsurile ajung la adresa de e-mail a localului. Data cererii este afișată la furnizor. La Sligro merge la koppelingen@sligro.nl, altfel completați adresa account managerului dvs.
- Un furnizor propriu (care nu este în listă) poate face totul, cu excepția a ceea ce trebuie să ofere furnizorul însuși: e-mailul, fișierul și tipărirea funcționează întotdeauna; o integrare sau o încărcare doar cu datele acelui furnizor.
- Zile de comandă și livrare: zilele de comandă, ora limită, termenul de livrare (data de livrare dorită pe comandă) și o sumă minimă de comandă. Automat: în zilele de comandă, de la acea oră, casa de marcat pregătește singură o comandă ca ciornă (dvs. o verificați) sau o trimite imediat (prin e-mail, încărcare sau integrare; sub suma minimă de comandă doar o pregătește ca ciornă). O dată pe zi pentru fiecare furnizor.
- Pe produs (Setări → Produse → (produs) → Stoc, la Pe produs) și pe ingredient: Comandă la (furnizorul), codul de comandă la acel furnizor, EAN, per ambalaj (ladă de 24 = 24), numele ambalajului și prețul de achiziție per ambalaj. Nivelul de alertă este momentul în care trebuie comandat; completare până la indică cât trebuie să existe atunci.
- Comenzi de achiziție (fila Comenzi de achiziție):
- Propunere de comandă pe furnizor: tot ce este la nivelul de alertă sau sub acesta. Ce este deja comandat și încă nu a sosit (pe drum) se ia în calcul, ca să nu comandați nimic de două ori. Propunere = completare până la − nivel − pe drum (fără completare până la: până la nivelul de alertă), rotunjit în sus la ambalaje întregi. Ajustați cantitățile și Creează comanda.
- O comandă este mai întâi pregătită: cantitățile, rândurile separate (fără produs, de ex. șervețele), observația și data de livrare se mai pot modifica. Apoi Trimite (în modul furnizorului sau, o dată, altfel). Dacă nu reușește (de ex. furnizorul refuză), apare motivul și puteți încerca din nou.
- Primit: pe fiecare rând cantitatea primită (deja completată cu cantitatea comandată); stocul crește pe ambalaje (2 lăzi de 24 = 48), cu comanda în istoric.
- Fiecare fișier (CSV, Excel, UBL, EANCOM, cXML) se poate descărca și separat.
- Trimiterea, eșecul, primirea și anularea se înregistrează în jurnal. Lista de comandă obișnuită continuă să funcționeze; dacă un produs are un furnizor din listă, apare acolo sub numele acestuia.
Gestionarea recenziilor
Citește și răspunde la recenziile de pe Google și Trustpilot direct din casă. Se activează în Setări → Puncte și recenzii → Gestionarea recenziilor (implicit oprit, atunci nu se vede nimic nicăieri). Citire și răspuns în Raport → Recenzii (dreptul Citire și răspuns la recenzii, implicit și pentru manager). Dacă dezactivezi funcția, conexiunile și recenziile rămân salvate.
- Apoi fiecare unitate doar atinge Conectare la Google și se conectează cu propriul cont Google al profilului companiei. O cheie Places poate fi configurată și central (costurile sunt atunci suportate de furnizor). Trustpilot este pentru fiecare unitate în parte: fiecare unitate are propriul cont Trustpilot Business (API-ul face parte dintr-un abonament plătit), din care provin cheia, secretul și business user ID. În casa de marcat, la fiecare variantă scrie "Cine se ocupă?".
- Aplicația furnizorului (prin portalul clienților): dacă aplicația Google și/sau aplicația Trustpilot a furnizorului se află în portalul clienților (vezi README-ul horecapos-portaal, "Reviews: apps van de leverancier"), administratorul alege la Autentificare și chei Aplicația furnizorului (implicit la o conexiune nouă, dacă portalul are aplicația). Localul apasă Conectare la Google sau Conectează-te cu Trustpilot și se conectează cu propriul cont; casa așteaptă singură finalizarea autentificării (la fiecare 3 secunde, cel mult 15 minute) și preia o singură dată tokens de la portal. Reînnoirea se face tot prin portal. În casă nu e nevoie de client-ID, secret sau cheie API; la Trustpilot e nevoie de domeniu și, pentru răspunsuri, de business user ID. Trustpilot public citește atunci prin cheia portalului. Necesită
PORTAAL_URLșiPORTAAL_SLEUTEL. Aplicație proprie sau cheie API funcționează în continuare ca mai jos. - Ale cui sunt recenziile: rămân pe profilul de companie Google și pe pagina Trustpilot proprii ale localului, iar casa le păstrează doar în propria bază de date a casei. Răspunsurile apar sub numele localului. Portalul doar transmite autentificarea (în memorie, cel mult 15 minute, poate fi preluată o singură dată) și nu păstrează recenzii sau tokens; numele aplicației furnizorului apare doar pe ecranul de consimțământ.
- Înscrie-te singur: la fiecare platformă există un link pentru a-ți crea singur un profil de companie Google (business.google.com/create) sau un cont Trustpilot Business (business.trustpilot.com), iar la Trustpilot și unul către abonamente (business.trustpilot.com/plans). Înscrierea și plata se fac pe platforma însăși; pentru asta nu există API.
- Apoi Conectare la Google și autentifică-te cu contul care administrează profilul de companie. O singură locație în profil = aleasă imediat; mai multe = alegere în casă.
- Google Places (doar citire): cu Place ID-ul și o cheie API pentru Places API (sau
GOOGLE_PLACES_API_KEY): media, numărul de recenzii și cele mai relevante 5 recenzii. Astfel nu se poate răspunde. - Trustpilot Business (citire și răspuns): cheia API și secretul API ale unei aplicații din Trustpilot Business (Integrations → API; sau
TRUSTPILOT_API_KEYșiTRUSTPILOT_API_SECRET), domeniul localului (casa caută singură business unit-ul) și, pentru răspunsuri, business user ID-ul celui care răspunde. - Trustpilot public (doar citire): doar cheia API.
- Casa preia la fiecare 30 minute (și imediat după conectare; Preia acum). Adresa de e-mail și numărul comenzii oaspetelui (pe care le transmite Trustpilot) nu sunt păstrate de casă.
- Raport → Recenzii: media, numărul pe stele, fără răspuns și necitite; filtrare după platformă, stele, fără răspuns și necitite. Pentru fiecare recenzie Răspunde (cel mult 4000 caractere; îl poate citi oricine), Modifică răspunsul, Șterge răspunsul și Citit. O recenzie nouă sau modificată este necitită. În jurnal apar review_beantwoord și review_antwoord_weg.
- La deconectare, recenziile preluate se păstrează.
Marketing prin SMS și e-mail
Mesaje către clienții cu card de fidelitate care și-au dat acordul. Fără card de fidelitate nu se poate activa niciunul.
- Acord per client și per canal: la un client nou, la casa de marcat, există bifele "Clientul dorește promoții prin SMS" și "... prin e-mail" (implicit debifate). La Raport → Clienți vedeți și modificați acordul (cu data la care a fost dat) și ziua de naștere (doar ziua și luna). Dezabonare: debifați și salvați.
- Meniu actualizat imediat: dacă activați sau dezactivați marketingul sau cardul de fidelitate, casa trimite din nou meniul către magazinul online în câteva secunde (doar dacă s-a schimbat ceva), astfel încât bifa apare sau dispare imediat.
- Acord prin magazinul online: dacă localul are magazin online, la plată apare bifa "Vreau să primesc oferte prin e-mail/SMS" (doar canalele activate; implicit nebifată). Când sosește o astfel de comandă, casa caută clientul după numărul de telefon (altfel după adresa de e-mail), îl creează dacă este nevoie și salvează acordul cu data. Un număr sau o adresă lipsă la un client existent se completează; în jurnal apare klant_toestemming cu sursa webshop.
- Raport → Marketing (dreptul Gestionare card de fidelitate): sus vedeți câți clienți și-au dat acordul pentru SMS și câți pentru e-mail.
- Promoții (o singură dată): nume, SMS sau e-mail, (subiect,) text cu
{naam},{zaak}și{punten}și, opțional, doar clienții care nu au mai venit de ceva vreme sau au minimum atâtea puncte. Vizualizează arată la câți clienți ajunge, mesajul așa cum îl primește clientul și numărul de SMS-uri per client. Trimite test la propriul număr sau adresă. Apoi Trimite: casa de marcat trimite în fundal (maximum 1000 odată) și numără ce s-a trimis și ce a eșuat. Nimeni nu primește aceeași promoție de două ori; dacă casa de marcat se oprește la jumătate, Continuă trimiterea reia de la cei care nu au primit încă nimic. - Trimitere prin Mailchimp sau Klaviyo (cu o conexiune la o listă aleasă, vezi mai jos): la o promoție prin e-mail alegeți la Trimitere prin casa de marcat (serverul de e-mail propriu, ca mai sus) sau Mailchimp ori Klaviyo. Atunci casa de marcat actualizează mai întâi lista (dezabonări, puncte) și creează acolo o campanie exact pentru clienții aleși care sunt în listă (Mailchimp: un grup fix în audience; Klaviyo: o listă proprie pentru promoție), apoi o trimite cu expeditorul implicit al audience-ului sau al contului.
{naam}și{punten}sunt completate de Mailchimp/Klaviyo pentru fiecare client; dedesubt apare linkul de dezabonare al serviciului. Fără limita de 1000 pe trimitere și fără cod de reducere personal ({code}). Dacă nu reușește, promoția rămâne ciornă, cu mesajul alături. Fila Marketing există și când doar integrarea este activă (atunci doar promoții prin Mailchimp/Klaviyo; Trimite test funcționează cu serverul de e-mail al casei de marcat). Mesajele automate le trimite întotdeauna casa de marcat; în Mailchimp/Klaviyo le creați ca Customer Journey sau Flow. Cheia Klaviyo: și drepturi de scriere pentru Campaigns și Templates (cine s-a autentificat deja: autentificare din nou). - Ca notificare push prin magazinul online (dacă în administrarea magazinului online sunt pornite Notificări push cu oferte): la Trimite prin alegeți Notificare push (magazinul online ca aplicație), cu un titlu (maximum 60 caractere) și un text scurt (maximum 200 caractere; se completează doar
{zaak}, deoarece magazinul online nu știe cine este clientul). Casa de marcat trimite promoția prin portalul de administrare către magazinul online, iar acesta o trimite clienților care activează acolo Oferte ca notificare; atingerea deschide meniul magazinului online. După câteva secunde, la promoție apare câte au ajuns. Maximum 3 pe zi, împreună cu ce trimite localul din administrarea magazinului online; altfel promoția rămâne ciornă, cu motivul alăturat. Fila Marketing apare și dacă doar aceasta este activată (fără card de fidelitate sau marketing prin e-mail). Fără cod de reducere sau selecție (zile, puncte); pentru test: activați Oferte ca notificare în magazinul online pe propriul telefon. - Automat: un mesaj de ziua de naștere (de ziua de naștere, o dată pe an) și "Ne lipsiți" (după atâtea zile fără vizită, o dată de fiecare dată când clientul lipsește). Activat/dezactivat per mesaj; pleacă doar în timpul zilei (10:00–20:00).
- Cod de reducere personal (opțional, per mesaj sau promoție; doar dacă Coduri de reducere este activat la Setări → Local): fiecare client primește propriul cod, de ex.
TERUG-7K4Q2M(zi de naștereJARIG-…, promoțieACTIE-…), în procente sau ca sumă fixă, opțional cu o valoare minimă a comenzii, de folosință unică, valabil numărul de zile setat după trimitere (implicit 30) și la casă și/sau în magazinul online. Puneți{code}și{geldig}în text unde doriți; altfel casa pune sub mesaj "Uw kortingscode: … (10% korting, aan de kassa of in de webshop, geldig t/m …)". Vizualizează și Trimite test arată un cod de exemplu (TERUG-VOORBEELD, nu funcționează). Dacă trimiterea eșuează, codul nu este creat. La promoție se vede câte coduri au fost emise și folosite. - Dezabonarea apare sub fiecare mesaj: la SMS "Dezabonare? Sunați la ... sau spuneți-ne la următoarea vizită", la e-mail un link de dezabonare către adresa de e-mail a localului (inclusiv butonul Dezabonare din Gmail și Outlook). Un răspuns la e-mail ajunge la local.
- Confidențialitate (GDPR): doar clienți cu acord și cu număr sau adresă; în jurnal nu apar numere sau adrese, doar câte s-au trimis și câte au eșuat per promoție. Dacă ștergeți un client, dispare și din lista de trimitere.
- Costuri: SMS-urile merg prin propriul cont CM.com (peste 160 caractere = mai multe SMS-uri per client). Gmail și alte servere de e-mail au o limită zilnică; la mulți clienți trimiteți pe părți.
Bacșiș pe angajat
La Setări → Local → Bacșiș (doar dacă „Afișare butoane bacșiș la încasare” este pornit) alegeți cum apare bacșișul pe angajat în situația intermediară (X), în raportul Z (bon și e-mail) și în Vânzări pe perioadă (și în CSV):
| Opțiune | Împărțire |
|---|---|
| Oprit (implicit) | doar totalul bacșișului, ca întotdeauna |
| Fiecare bacșișul propriu | bacșișul notelor pe care angajatul le-a încasat personal |
| Fond comun după ore | tot bacșișul la un loc, după orele pontate în acea perioadă (necesită pontaj intrare/ieșire; nimeni pontat = egal) |
| Fond comun egal | tot bacșișul la un loc, egal între cei pontați (fără pontaj: cei care au introdus sau încasat ceva) |
Cenții rămași merg la cei mai apropiați de următorul cent, astfel încât totalul să fie mereu corect. Este o prezentare: casa nu plătește nimic (se poate face cu „Bani din sertar”). Rapoartele Z vechi rămân neschimbate.
Raport Z prin e-mail
Introduceți o singură dată la Setări → Local → Trimitere raport Z prin e-mail la adresa de e-mail a administratorului (mai multe adrese: separate prin virgulă, max. 3). După Închidere zi raportul Z este trimis automat la acea adresă, pe lângă bonul tipărit. Gol = fără e-mail, ca întotdeauna.
- Trimiterea se face în fundal, astfel încât un server de e-mail lent să nu întârzie închiderea zilei.
- A eșuat sau este nevoie din nou: Raport → Rapoarte Z anterioare → (raport) → Retrimitere e-mail (cu mențiunea COPIE).
Rezumatul zilei (opțional)
Dacă există o adresă la Trimitere raport Z prin e-mail la, sub ea apare bifa Cu un scurt rezumat al zilei la începutul e-mailului (implicit oprit). Pornit = la începutul e-mailului cu raportul Z câteva rânduri pe înțelesul tuturor, doar din datele proprii ale casei (fără AI, nimic nu iese în afară):
- vânzări, bonuri și clienți și cheltuiala per bon, față de aceeași perioadă cu o săptămână înainte (în procente); dacă atunci nu a fost nimic, se menționează;
- primele 5 cele mai vândute produse și ce iese în evidență: produse din care s-au vândut cu cel puțin 3 mai multe sau mai puține decât săptămâna trecută;
- numărul de stornări (față de săptămâna trecută) și ora de vârf (bonuri și vânzări).
Raportul Z în sine (bonul și e-mailul) rămâne exact la fel. Previzualizare pentru azi arată rezumatul de la ultima închidere de zi până acum. Rezumatul este în neerlandeză, la fel ca e-mailul cu raportul Z.
Panou de control
Fila Panou de control din Raport (dreptul Vânzări pe perioadă), doar citire:
- Vânzări pe oră ca grafic: ziua aleasă (albastru) lângă aceeași zi de săptămâna trecută (gri). Ziua de azi este comparată cu săptămâna trecută până la aceeași oră, astfel încât procentul să fie corect. Cu ◀ ▶ sau cu data alegeți o altă zi.
- Casete: vânzări (± % față de săptămâna trecută), bonuri și medie pe bon, cheltuiala medie pe client (doar la local; la pachet/livrare nu se socotesc) pentru acea zi și pentru perioada aleasă.
- Top 10 produse și orele de vârf în ultimele 7, 28 sau 90 zile. Orele de vârf sunt o hartă termică zi a săptămânii × oră (vânzări medii pe zi deschisă) cu cele trei ore cele mai aglomerate deasupra, utilă pentru programul de lucru.
Cardurile cadou vândute nu contează ca vânzări, reducerile și antetele de meniu nu apar în top 10 (ca în celelalte rapoarte). O zi durează de la 00:00 la 24:00.
Rapoarte suplimentare
Trei file suplimentare în Raport, fiecare activabilă separat din Setări → Local → Administrare și rapoarte → Rapoarte suplimentare (implicit oprit: atunci fila lipsește). Necesită același drept ca Vânzări pe perioadă și sunt doar pentru citire. Perioadă: săptămâna aceasta, săptămâna trecută, luna aceasta, luna trecută, ultimele 90 zile, anul acesta sau la alegere (cel mult puțin peste un an).
- Menu engineering: pentru fiecare produs, cât de des a fost vândut (cota din toate bucățile vândute) față de cât aduce pe bucată (marjă = prețul de vânzare fără TVA minus costul). Fiecare produs primește o încadrare: Stea (popular și marjă mare: lăsați-l așa), Cal de povară (popular, marjă mică: creșteți puțin prețul sau reduceți costul), Enigmă (vândut puțin, marjă mare: puneți-l mai bine în evidență) și Câine (vândut puțin, marjă mică: scoateți-l din meniu sau înlocuiți-l). Popular = cel puțin 70% dintr-o cotă egală; marjă mare = cel puțin marja medie pe bucată vândută. Costul vine din Apicbase (Setări → Rețete), altfel din prețul de achiziție al produsului (prețul de achiziție pe ambalaj împărțit la numărul de bucăți pe ambalaj), altfel din rețeta cu ingrediente care au preț de achiziție (Stoc). Produsele fără cost apar separat, jos. Opțional pe categorie (
?groep=). - Promoții și coduri: pe cod de reducere, pe acțiune din Marketing (codurile personale împreună) și pe happy hour: de câte ori a fost folosit (bonuri; la un happy hour și bucățile), câtă reducere, vânzările și media pe bon.
- Pierderi: ce s-a scos din stoc (Setări → Stoc, Scoatere din stoc (−)), pe motiv (majusculele și spațiile nu contează) și pe produs sau ingredient, cu valoarea la cost; și ce s-a anulat după ce fusese deja trimis la bucătărie sau la bar, cu valoarea de vânzare și de cost.
Reduceri
Un manager sau administrator vede pe ecranul de comandă, lângă total, butonul % Reducere:
- pe întregul bon sau pe un singur rând;
- ca procent (10, 15, 20, 25, 50, 100% = gratuit, sau introdus manual) sau ca sumă fixă;
- întotdeauna cu un motiv (Personal, Client fidel, Reclamație, Promoție, Consum propriu sau text propriu).
Reducerea apare ca rând separat pe bon („Reducere 10%”, cu motivul dedesubt) cu aceeași cotă de TVA, astfel încât totalul și detalierea TVA să fie corecte. Pe întregul bon reducerea este împărțită pe cote de TVA. Eliminare: atingeți suma rândului de reducere. Dacă un rând cu reducere proprie este anulat, reducerea dispare odată cu el. Dacă eliminați un produs de pe un bon cu reducere procentuală pe tot bonul, casa recalculează reducerea pentru ce rămâne (în Belgia UC226); o sumă fixă rămâne și la încasare se împarte din nou pe rânduri. Dacă din cauza reducerii de 100% nu mai este nimic de plată, închideți cu „Închide (nimic de plată)”. Reducerile apar în jurnal, iar în raportul X/Z și în prezentarea pe perioadă ca „din care reducere”. La returul unui bon cu reducere, reducerea se preia proporțional.
Coduri de reducere (opțional)
Coduri cu reducere la întregul bon, de exemplu pentru o promoție (ZOMER10). Se pornesc la Setări → Local → Coduri de reducere (implicit oprit); codurile se creează la Setări → Coduri de reducere (dreptul Gestionare produse):
- reducere în procente sau o sumă fixă, eventual cu o valoare minimă a comenzii, valabil de la/până la și număr maxim de utilizări (gol = nelimitat);
- pentru fiecare cod: la casă și/sau în magazinul online (casa de marcat trimite codurile împreună cu meniul; utilizarea se numără împreună pentru casă și magazinul online).
Pe ecranul de comandă se află butonul Cod de reducere (oricine poate introduce un cod; codul a fost creat în prealabil de local). Reducerea apare pe bon ca linia "Cod de reducere CODE", împărțită pe cotele de TVA; un singur cod pe bon și nu după ce s-a plătit deja (parțial). Dacă linia este ștearsă sau comanda este anulată, utilizarea nu se mai numără. Ștergerea unui cod folosit îl dezactivează (rapoartele rămân corecte). Totul apare în jurnal (Cod de reducere). Cod: lib/kortingscodes.ts, routes/kortingscodes.ts, Kortingscodebeheer.tsx, KortingscodeDialoog.tsx.
Nu apar în lista de la Setări → Coduri de reducere (numărul pe promoție da, la Raport → Marketing) și sunt transmise magazinului online cât timp sunt valabile și nefolosite.
Rapoarte și închidere de zi
Butonul Raport din bara de sus:
- Situație intermediară (X): vânzări, TVA, metode de plată, pe grup și sertarul de bani de la ultima închidere de zi. Se poate și tipări. Nu închide nimic.
- Închidere zi (Z) (manager sau administrator): numărarea sertarului de bani (se afișează diferența față de fondul inițial + numerar), introducerea fondului inițial pentru ziua următoare, închiderea. Raportul Z primește un număr consecutiv, este salvat și tipărit pe imprimanta de bonuri. Nu este posibil cât timp există comenzi deschise. Opțional: Numărare pe monede și bancnote (ajutor la numărare) completează suma numărată pentru dvs.; numărătoarea pe monede/bancnote apare atunci și pe raportul Z. Introducerea manuală a totalului funcționează ca întotdeauna.
- Sertar de bani (manager sau administrator, opțional):
- Bani din sertar (depunere la bancă, cheltuială, bacșiș plătit) sau bani în sertar (rest) cu sumă și motiv. Sertarul se deschide și se tipărește un bon cu rând pentru semnătură, de păstrat lângă bani (se poate dezactiva). Se include în așteptat în sertar și apare pe rând în raportul X și Z.
- Introducerea sau corectarea fondului inițial de azi (de obicei îl introduceți la închiderea zilei pentru ziua următoare).
- Deschidere sertar fără vânzare, cu motiv.
- Totul se înregistrează în jurnal. Dacă nu folosiți acest lucru, închiderea zilei funcționează exact ca înainte (fond inițial + numerar = așteptat în sertar).
- Sub vânzări apare numărul de clienți (persoanele din comenzile încasate) și media pe client, și pe raportul X/Z tipărit.
- Vânzări pe perioadă (manager sau administrator): azi, ieri, săptămâna aceasta/trecută, luna aceasta/trecută, anul acesta sau interval ales manual. Afișează vânzări, TVA, metode de plată, bacșiș, clienți, grupuri de produse, pe zi și pe angajat. Cu Export (Excel/CSV) obțineți un fișier pentru contabil (punct și virgulă și virgulă zecimală, se deschide direct în Excel olandez).
- Rapoarte Z anterioare: listă cu vânzări și diferență de casă; deschidere și tipărirea unei copii (cu „COPIE” pe ea).
Export pentru contabilitate
Raport → Vânzări pe perioadă → Export contabilitate (jurnal) (dreptul Vânzări pe perioadă) creează un CSV cu o înregistrare în jurnal pe zi, gata de importat în e-Boekhouden, Exact, SnelStart, Twinfield etc. (prin importul lor CSV sau de note contabile), sau unul dintre formatele de mai jos (UBL, XAF și formate gata pregătite pentru 14 programe).
Pe zi un singur document (KASSA-JJJJMMDD) care se închide întotdeauna (debit = credit):
| Parte | Ce |
|---|---|
| Debit | încasări pe metodă de plată (numerar, card, card cadou, online, altele), inclusiv bacșiș |
| Credit | vânzări pe cotă de TVA (fără TVA) și TVA de plată pe cotă |
| Credit | bacșiș (de plătit personalului, nu sunt vânzări) |
| +/- | diferență de rotunjire (rotunjirea numerarului la 5 cenți) |
| +/- | bani în/din sertar (gestiunea casei) în contrapartidă cu conturi de tranzit, și diferența de casă din raportul Z |
Retururile și reducerile sunt deja incluse în bonuri și reduc vânzările. Coloane: Datum; Boekstuk; Dagboek; Rekening; Omschrijving; Debet; Credit; Btw-code; Btw-% (punct și virgulă, virgulă zecimală). După descărcare casa anunță dacă există zile care nu se închid sau au o diferență mai mare decât rotunjirea.
Lângă buton alegeți formatul (alegerea este reținută în browser). Același jurnal, dar formatat astfel încât programul să-l poată citi direct. Lista arată doar formatele pentru țara localului (Setări → Local), mai întâi standardele (CSV, UBL, XAF), apoi programele în ordine alfabetică:
| Format | Fișier | Importul în program |
|---|---|---|
| General (CSV) | journaal_…csv | orice program cu import CSV/de note contabile (asocierea coloanelor) |
| UBL 2.1 / Peppol (XML), NL și BE | journaal_…_ubl.xml (mai multe zile: .zip) | pe zi o factură "încasări zilnice" către Kassaverkopen (deja achitată) conform Peppol BIS Billing 3.0, cu un rând pe cotă de TVA și contul de venituri în AccountingCost; doar vânzări și TVA (metodele de plată, bacșișul, rotunjirea, sertarul și diferența de casă nu aparțin unei facturi). Pentru încărcare printre altele în Adsolut, Billit, BUNNI, DigiBoox, Expert/M, Moneybird, Popsy, Rompslomp, Storecove și TriFact365; nu pentru trimitere prin rețeaua Peppol. Numele, codul de TVA și adresa provin din Setări → Local |
| XML Auditfile Financieel (XAF 4.0), NL | journaal_…_xaf.xaf | fișierul de audit al administrației fiscale olandeze (Belastingdienst) (XSD XmlAuditfileFinancieel4.0): un singur fișier pentru perioadă, registrul general, codurile de TVA, perioadele și pe zi o notă contabilă; poate fi citit printre altele în Caseware, Exact Reeleezee și Visma Cash |
| AccountView (XML), NL | journaal_…_accountview.xml | Înregistrări XML (VFPData, câte un transact pe fiecare rând de înregistrare cu dj_code, period, inv_date, inv_nr, acct_nr, trn_desc și amount: debit pozitiv, credit negativ), câte un document pe zi în jurnalul de note contabile; se încarcă printr-o definiție de import (Document → Importeren → Importdefinitie aanmaken, tip XML), numele câmpurilor sunt chiar cele din AccountView, deci le asociați o singură dată 1-la-1. Cereți verificarea primului import |
| AFAS Profit (XML) | journaal_…_afas.xml | XML pentru UpdateConnector FiEntries (mișcări financiare), o înregistrare pe zi cu an, perioadă, administrație și jurnal; în Profit se încarcă prin Importare → XML; introduceți numărul administrației (implicit 1) |
| Asperion (CSV), NL | journaal_…_asperion.csv | format FMUTA (Extra → Import financiële mutaties), pe zi un rând de antet și rândurile de înregistrare; definiția de import o configurează Asperion prin helpdesk |
| Raport zilnic (HTML), NL și BE | journaal_…_dagstaat.html | raport zilnic lizibil pe zi (vânzări pe cotă de TVA, metode de plată, bacșiș, diferență de casă) și totaluri; de tipărit ca PDF sau de trimis prin e-mail, pentru programele fără import (Accountable, Dext, Dexxter, Jortt, Kleisteen, MoneyMonk) |
| e-Boekhouden.nl (CSV) | journaal_…_eboekhouden.csv | Dată; Document; Descriere; Cont contabil; Sumă (debit pozitiv, credit negativ); cod TVA GEEN (TVA-ul este deja în conturile de TVA); Import → Mișcări, tip notă contabilă |
| Exact Online (XML) | journaal_…_exact.xml | eExact-XML (subiect GLTransactions): pe zi o notă contabilă (tip 90) în jurnal; Import/export → Import XML |
| InformerOnline (TXT), NL | journaal_…_informer.txt | note contabile separate prin tabulatori (Geavanceerd → Memoriaal → uploaden); jurnalul trebuie să fie un număr 1–99 (altfel 90) |
| KING ERP (XML), NL | journaal_…_king.xml | KING_JOURNAAL: un lot de înregistrări (nedefinitiv) cu o înregistrare în jurnal pe zi |
| KOMAS (CSV), NL | journaal_…_komas.csv | format liber KOMAS (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag |
| Odoo (CSV), NL și BE | journaal_…_odoo.csv | Contabilitate → Journal Entries → Import records; jurnalul și contul după nume sau cod |
| Sage BOB 50 (Excel), BE | journaal_…_bob.xlsx | Importation de données externes → Opérations diverses (coloanele se asociază o singură dată) |
| SAP Business One (ZIP), NL și BE | journaal_…_sapb1.zip | Data Transfer Workbench, Journal Entries: JournalEntries.csv și JournalEntries_Lines.csv |
| SnelStart (CSV) | journaal_…_snelstart.csv | Dată; Document; Descriere; Cont contabil; Debit; Credit (zz-ll-aaaa, virgulă zecimală, fără BOM); import de note contabile, jurnalul îl alegeți la import |
| Twinfield (XML) | journaal_…_twinfield.xml | tranzacții de jurnal ca ciornă (destiny="temporary"), contabilul le înregistrează definitiv; introduceți codul administrației (gol = administrația în care importați) |
| Winbooks (CSV), BE | journaal_…_winbooks.csv | K_DOC.CSV, pe zi un document în jurnal (Winbooks numerotează singur) |
| Yuki (XML) | journaal_…_yuki.xml | Journal-XML (GeneralJournal), o notă contabilă pe zi, aceeași structură ca la conectarea directă; ID-ul administrației este opțional |
Prezentare: ce program de contabilitate în ce mod
Pe segmente, în ordine alfabetică. NL/BE = țara în care funcționează programul: la Setări → Contabilitate → Program de contabilitate vedeți doar programele pentru țara localului (programele olandeze nu funcționează în Belgia și invers). Live = casa de marcat înregistrează singură în fiecare zi (se alege la Setări → Contabilitate → Program de contabilitate); la cerere = există un API, dar acesta necesită mai întâi o înregistrare ca partener sau aprobarea furnizorului (anunțați-ne). Fișier = formatul de la Export contabilitate. Unde sunt posibile ambele, le puteți folosi pe amândouă. Lista se află în packages/shared/src/boekhoudcatalogus.ts și apare și la Setări → Contabilitate.
| Program | NL | BE | Live | Fișier | Observație |
|---|---|---|---|---|---|
| IMM-uri și liber-profesioniști | |||||
| Accountable | – | ✓ | – | Raport zilnic (HTML, pentru PDF sau e-mail) | |
| AccountView (Visma) | ✓ | – | la cerere | AccountView (XML), General (CSV) | Fișier: înregistrări XML pentru o definiție de import (Document → Importeren); și CSV-ul general se poate încărca printr-o definiție de import. Live prin API-ul AccountView.Net, la cerere la AccountView. |
| Acumulus | ✓ | – | ✓ | – | Live ca factură de vânzare achitată pe zi, cu un rând pe cotă de TVA. |
| AFAS Profit | ✓ | – | ✓ | AFAS Profit (XML) | |
| Asperion | ✓ | – | la cerere | Asperion (CSV) | Live după înregistrarea ca partener API la Asperion. |
| Billit | – | ✓ | la cerere | UBL 2.1 / Peppol (XML) | Încărcare UBL prin Fast input; live după aprobarea de către Billit. |
| BUNNI | ✓ | – | – | UBL 2.1 / Peppol (XML) | Încă nu există documentație API publică. |
| Dexxter | – | ✓ | – | Raport zilnic (HTML, pentru PDF sau e-mail) | |
| DigiBoox (Visma DigiBTW) | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| e-Boekhouden.nl | ✓ | – | – | e-Boekhouden.nl (CSV) | Și pentru foștii clienți Ficsus. |
| Exact Online | ✓ | ✓ | ✓ | Exact Online (XML) | |
| Exact Reeleezee | ✓ | – | – | XML Auditfile Financieel (XAF 4.0) | |
| Horus | – | ✓ | ✓ | – | |
| InformerOnline | ✓ | – | – | InformerOnline (TXT) | |
| Jortt | ✓ | – | – | Raport zilnic (HTML, pentru PDF sau e-mail) | Fără import: înregistrați vânzările zilei ca venit, cu raportul zilnic ca anexă. |
| KING | ✓ | – | la cerere | KING ERP (XML) | Live după înregistrarea ca partener la KING Software. |
| Kleisteen | ✓ | – | – | Raport zilnic (HTML, pentru PDF sau e-mail) | |
| KOMAS (Adfinis) | ✓ | – | – | KOMAS (CSV) | |
| Minox | ✓ | – | la cerere | – | Live după o conectare de parteneriat prin Minox. |
| Moneybird | ✓ | – | ✓ | UBL 2.1 / Peppol (XML) | |
| MoneyMonk | ✓ | – | – | Raport zilnic (HTML, pentru PDF sau e-mail) | MoneyMonk va primi în 2026 un API pentru conectări. |
| Octopus | – | ✓ | la cerere | – | Live după solicitarea unui software house ID la Octopus. |
| Popsy / Allegro | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Rompslomp | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| Sage BOB 50 | – | ✓ | – | Sage BOB 50 (Excel) | |
| Silvasoft | ✓ | ✓ | ✓ | – | Live ca înregistrare de vânzare pe zi, cu un rând pe cotă de TVA; metodele de plată, bacșișul și diferența de casă nu sunt transferate. |
| SnelStart | ✓ | – | ✓ | SnelStart (CSV) | |
| Twinfield | ✓ | – | ✓ | Twinfield (XML) | |
| Visma Cash | ✓ | – | la cerere | XML Auditfile Financieel (XAF 4.0) | API cu o cheie din CASHWeb; formatul înregistrărilor contabile este încă în curs de confirmare. |
| Visma eAccounting | ✓ | – | la cerere | – | Live după aprobarea de către Visma (înregistrare ca partener). |
| Winbooks | – | ✓ | la cerere | Winbooks (CSV) | |
| Wolters Kluwer Adsolut | – | ✓ | la cerere | UBL 2.1 / Peppol (XML) | UBL cu contul de venituri pe fiecare rând; activați în Adsolut "grootboekrekening verwerken bij verkopen". |
| Wolters Kluwer Expert/M | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Yuki | ✓ | ✓ | ✓ | Yuki (XML) | |
| Internațional | |||||
| QuickBooks Online | ✓ | ✓ | ✓ | CSV general | Fără ediție olandeză sau belgiană: verificați setările de TVA. |
| Xero | ✓ | ✓ | ✓ | CSV general | |
| Zoho Books | ✓ | ✓ | ✓ | CSV general | |
| Enterprise și lanțuri | |||||
| Exact Globe+ | ✓ | ✓ | – | Exact Online (XML) | Același XML ca Exact Online; cereți verificarea primului import. |
| Microsoft Dynamics 365 Business Central | ✓ | ✓ | ✓ | – | |
| Odoo | ✓ | ✓ | ✓ | Odoo (CSV) | |
| Oracle NetSuite | ✓ | ✓ | la cerere | CSV general | |
| SAP Business One | ✓ | ✓ | ✓ | SAP Business One (ZIP) | |
| Unit4 ERPx | ✓ | ✓ | – | CSV general | |
| Platforme și agregatoare | |||||
| Apicbase | ✓ | ✓ | la cerere | – | Vânzări pe bon pentru stoc și food cost: integrare la Setări → Rețete (nu ca program de contabilitate). |
| Caseware | ✓ | ✓ | – | XML Auditfile Financieel (XAF 4.0) | |
| Combidesk | ✓ | – | la cerere | – | Combidesk construiește și administrează singur conectarea (printre altele către Exact, Moneybird, SnelStart și Twinfield); la cerere, ca partener. |
| Dext | ✓ | ✓ | – | Raport zilnic (HTML, pentru PDF sau e-mail) | Trimiteți raportul zilnic (PDF) prin e-mail la adresa dvs. Dext. |
| Jamix | ✓ | ✓ | la cerere | – | Vânzări pentru stoc și food cost prin interfața JAPI a Jamix; soluție personalizată la cerere, la Jamix. |
| Omniboost | ✓ | ✓ | la cerere | – | Prin programul de parteneriat Omniboost se conectează mai departe la multe sisteme de contabilitate și hoteliere. |
| Storecove (Peppol) | ✓ | ✓ | la cerere | UBL 2.1 / Peppol (XML) | |
| TriFact365 | ✓ | – | – | UBL 2.1 / Peppol (XML), Raport zilnic (HTML, pentru PDF sau e-mail) | |
| Orice alt program | ✓ | ✓ | – | CSV general, UBL sau XAF (NL) |
Lăsați contabilul să verifice primul import. Formatarea se află în packages/shared/src/journaalexport.ts (cu teste).
Setări → Contabilitate (dreptul Setare local, plăți și imprimante): codul de jurnal (implicit MEM) și contul contabil pe fiecare componentă. Gol = cont exemplu (NL: 8000/8010/8020 vânzări, 1500/1510 TVA, 1000 casă, 1100 card; BE: 7000xx vânzări, 451000 TVA, 570000 casă). Lăsați contabilul să completeze conturile reale.
Conectare cu un program de contabilitate
Conectări live cu Acumulus, AFAS Profit, Microsoft Dynamics 365 Business Central, Exact Online, Horus, Moneybird, Odoo, QuickBooks Online, SAP Business One, Silvasoft, SnelStart, Twinfield, Xero, Yuki și Zoho Books. După fiecare zi, casa de marcat înregistrează același jurnal ca exportul de mai sus (vânzări și TVA pe cote, metode de plată, bacșiș, rotunjire, sertar și diferență de casă) ca notă contabilă în programul ales, cu jurnalul și conturile contabile de la Setări → Contabilitate. Este activ întotdeauna cel mult un program.
- Lista este împărțită pe segmente (IMM-uri și liber-profesioniști, internațional, enterprise și lanțuri) și arată doar programele care funcționează în țara localului; serverul refuză un program dintr-o altă țară (400) și nu înregistrează cu el (409). Imediat dedesubt, administratorul primește exact câmpurile acelui program; conectarea și lista zilelor înregistrate se află sub conturile contabile, iar dedesubt prezentarea tuturor programelor pentru această țară. Dacă la actualizare erau active două (într-o versiune mai veche era posibil), Exact Online rămâne activ, iar celălalt program se oprește.
| Program | Țară | Conectare cu | Ce înregistrează casa de marcat |
|---|---|---|---|
| Acumulus | NL | codul de contract, utilizatorul și parola unui utilizator API | pe zi o factură de vânzare achitată cu un rând pe cotă de TVA; erorile le trimite Acumulus prin e-mail la ACUMULUS_FOUTMAIL |
| AFAS Profit | NL | mediu, token, administrație | notă contabilă (FiEntries) |
| Business Central | NL, BE | tenantul, mediul, compania, ID-ul de client și secretul unei aplicații Microsoft Entra (API.ReadWrite.All) | rânduri în jurnalul general cu codul din Jurnal |
| Exact Online | NL, BE | autentificare (OAuth, aplicație proprie: vezi Exact Online mai jos; Belgia: start.exactonline.be) | notă contabilă în jurnal (ex. 90) |
| Horus | BE | autentificare (OAuth, aplicația de mai jos), opțional dosar | operațiune diversă |
| Moneybird | NL | token API, opțional administrație | notă contabilă (general journal document) |
| Odoo | NL, BE | adresă, bază de date, utilizator, cheie API | înregistrare în jurnalul cu codul scurt (ex. MISC) |
| QuickBooks Online | NL, BE | autentificare (OAuth, aplicația de mai jos; QUICKBOOKS_OMGEVING) | journal entry; conturi după număr |
| SAP Business One | NL, BE | adresa Service Layer, bază de date, utilizator, parolă | înregistrare în jurnal (JournalEntries) |
| Silvasoft | NL, BE | utilizator și cheie API | înregistrare de vânzare pe relația Kassaverkopen, un rând pe cotă de TVA (metodele de plată, bacșișul și diferența de casă nu sunt transferate) |
| SnelStart | NL | cheie de conectare și cheie de abonament | notă contabilă |
| Twinfield | NL | autentificare (OAuth, aplicația de mai jos), opțional birou | tranzacție în jurnal |
| Xero | NL, BE | autentificare (OAuth, aplicația de mai jos), opțional organizație | manual journal; conturi după cod |
| Yuki | NL, BE | cheie API, opțional administrație | notă contabilă (GeneralJournal) |
| Zoho Books | NL, BE | autentificare (OAuth, aplicația de mai jos; implicit centrul de date european), opțional organizație | înregistrare în jurnal; conturi după cod |
- OAuth (Horus, QuickBooks, Twinfield, Xero, Zoho): o singură dată înregistrați o aplicație la program.
- Pentru unele programe, câmpurile API nu pot fi confirmate integral din documentația publică (printre altele Horus, Zoho Books, semnul la Business Central și structura la SAP Business One): cereți întotdeauna contabilului să verifice prima înregistrare.
- Exact Online: înregistrează jurnalul ca notă contabilă în administrația aleasă.
- Se alege la Setări → Contabilitate → Program de contabilitate → Exact Online (implicit Oprit). Belgia: casa de marcat folosește automat
start.exactonline.be. - Setări → Contabilitate → Exact Online: Conectare la Exact Online deschide autentificarea în Exact; apoi apare la ce administrație este conectată casa de marcat. La Jurnal introduceți codul unui jurnal de note contabile din Exact (de ex.
90) și asigurați-vă că există conturile contabile în Exact. - Când: imediat după Închidere zi și apoi în fiecare oră, pentru toate zilele trecute (până ieri inclusiv) de la Înregistrare de la (implicit ziua conectării; zilele anterioare le are deja contabilul). Fiecare zi o singură dată; zilele fără vânzări sunt sărite. Înregistrează acum merge oricând.
- Erorile (un cont nu există în Exact, ziua nu se închide, nu există internet) apar cu motivul la ziua respectivă; casa de marcat încearcă din nou mai târziu, iar zilele următoare așteaptă până reușește (așa ordinea rămâne corectă). În jurnal: "exact_geboekt".
- TVA-ul este pe conturile contabile de TVA (fără cod de TVA, ca în export). Lăsați contabilul să verifice primele înregistrări.
- Exact: o conexiune funcționează cât timp casa de marcat o folosește (la fiecare 10 minute un token nou, de fiecare dată un nou refresh token). Dacă este revocată sau nefolosită prea mult timp, casa de marcat cere Reconectare. Disociază șterge tokenurile; ce s-a înregistrat rămâne.
- Se alege la Setări → Contabilitate → Program de contabilitate → Exact Online (implicit Oprit). Belgia: casa de marcat folosește automat
- AFAS Profit: numărul mediului (de ex.
12345; producție, test sau acceptanță), tokenul unui app-connector cu UpdateConnector FiEntries și numărul administrației (implicit 1). Jurnal = codul unui jurnal de note contabile din AFAS (de ex.90). - Jurnal = numărul sau numele unui jurnal de note contabile; dacă există un singur jurnal de note contabile, casa de marcat îl folosește pe acela. Conturile contabile trebuie să fie numere.
- Twinfield: autentificare cu OAuth. Fără această aplicație casa de marcat nu se poate conecta. Casa de marcat caută clusterul și administrația (gol = prima); jurnal = codul unui jurnal de note contabile (ex.
MEMO). Înregistrează definitiv (destiny="final"). - Yuki: cheia API a administrației (Yuki → Setări → Servicii web); administrație goală = prima pentru acea cheie. Înregistrează o notă contabilă (GeneralJournal); Yuki nu folosește cod de jurnal.
- Când: imediat după Închidere zi și în fiecare oră, pentru toate zilele trecute de la Înregistrare de la (implicit ziua conectării; la alt program, din nou de la acea zi). Fiecare zi o singură dată per program; zilele fără vânzări sunt sărite; la o eroare, motivul apare la acea zi, iar zilele următoare așteaptă. Înregistrează acum este oricând posibil. În jurnal: "boekhoudpakket_geboekt".
- Cheile și tokenurile nu apar niciodată pe ecran (lăsați gol la reconectare = se păstrează). Pe copia casei de marcat din portal nu se înregistrează nimic.
Fișier de audit casă (XAA)
Pentru localurile din Țările de Jos, la Raport → Vânzări pe perioadă, lângă exportul contabil, se află butonul Fișier de audit casă (XAA): XML Auditfile Afrekensystemen 3.2 al administrației fiscale olandeze (Belastingdienst) și al XML Platform (SRA) pentru perioada aleasă (cel mult puțin peste un an; drept Vânzări pe perioadă). Acesta este fișierul pe care Belastingdienst îl recomandă pentru furnizarea datelor unei case de marcat la un control sau contabilului; regulile se află în Handreiking voor een betrouwbaar afrekensysteem (Ghid pentru un sistem de încasare fiabil) (docs/xaa).
În fișier (auditfile_kassa_<van>_tm_<tot>.xml, schema docs/xaa/XmlAuditfileAfrekensystemen3.2.xsd):
- date de bază: localul (nume, cod TVA, adresă), codurile TVA, toți angajații (cu rol și data creării; plus
SYSTEEMpentru ce face casa de marcat singură, cum ar fi magazinul online și conexiunile) și toate articolele cu grupa lor; - evenimente: tot ce apare în jurnal în perioada respectivă (autentificare și deconectare, sertar de bani deschis, închidere de zi, setări și prețuri modificate, stornare, reducere, retur, copie bon, pontaj intrare/ieșire ...) și deschiderea zilei de casă cu fondul de casă inițial, fiecare cu codul Belastingdienst (18001 autentificare, 18003 sertar, 18006 modificare instalație, 18008 raport Z, altfel 18999);
- tranzacții de casă: fiecare bon (vânzare, retur și proforma, cu numărul bonului, angajatul și starea fiscală dacă aceasta nu este în regulă) cu toate rândurile (articol, grupă, cantitate, preț, TVA; de asemenea reduceri, carduri cadou, titluri de meniu și rânduri anulate înainte de plată, acestea cu suma 0), TVA pe cotă, rotunjirea, plățile pe metodă de plată (numerar, card, card cadou, online; bacșișul separat) și banii introduși în sertarul de bani sau scoși din acesta.
Sumele sunt pozitive cu C (vânzare, încasare) sau D (retur, plată); orele sunt în ora Țărilor de Jos, cu decalaj (offset). Toate cheile sunt id-urile din baza de date fără cratime, deci pot fi regăsite în casa de marcat.
Semnare (capitolul 6 din specificație): dacă Optimum POS a configurat un certificat, fișierul de audit vine semnat într-un plic (XML Signature) și fișierul se numește …_ondertekend.xml; altfel este un fișier de audit simplu, iar casa de marcat semnalează acest lucru la descărcare.
Plata pe factură
Clienții business (o firmă care ia prânzul în fiecare săptămână, un hotel, o asociație) cumpără pe factură și plătesc mai târziu. Activați la Setări → Facturi → Plata pe factură (doar cu Facturi activat; implicit dezactivat).
- Clienți: la Raport → Pe factură înregistrați clienții business cu datele pentru factură (nume, adresă, cod TVA, număr KvK / număr de întreprindere, Peppol-ID, e-mail), opțional o limită (cât poate fi neachitat cel mult) și un termen de plată propriu (altfel cel de la facturi), precum și dacă factura se trimite imediat.
- Încasare: metoda de plată Pe factură, alegeți clientul (cu ce este deja neachitat și limita). Bonul este o vânzare obișnuită: vânzări și TVA în ziua respectivă, în Belgia normal prin cutia neagră, pe bon „Pe factură”. Casa creează imediat factura (UBL/Peppol și pentru tipărire) cu suma rămasă de achitat și scadența și o trimite cum este setat la facturi (e-mail, Peppol prin Billit/Storecove/Banqup sau adresa proprie). Pe factură este o singură sumă pentru restul notei (o parte se poate plăti mai întâi altfel), fără bacșiș; un card cadou nu se poate vinde pe factură. Peste limită casa refuză.
- Plată: clientul plătește în local numerar, cu cardul sau cu un card cadou (Raport → Pe factură → Plată primită; și parțial). Nu este o vânzare nouă și nici un bon nou: numerarul apare ca bani în sertar (sertarul se deschide), totul apare în X și Z la Încasat pe factură. Când totul este achitat, factura apare „achitat”. Plata online nu face parte din aceasta.
- Transfer: dacă la Date pe factură există un IBAN, acesta apare pe factură (și în UBL), cu "Puteți plăti și în local". Dacă clientul a făcut transferul, îl înregistrați cu Plată primită → Transfer bancar: nu în sertar, dar în X și Z la Încasat pe factură. Fără IBAN apare "De plătit în local". În Belgia, pe factură și în UBL apare o comunicare structurată (+++123/4567/89012+++, din numărul facturii), pe care banca o transmite mai departe.
- Bancă: alocarea transferurilor fără retastare, vezi mai jos.
- Sold (bani în avans): la Raport → Pe factură → Încarcă sold puneți bani în avans în contul unui client, numerar (sertarul se deschide) sau cu cardul, de ex. pentru o serie de prânzuri. La următoarea vânzare pe factură soldul se scade mai întâi din factură; dacă factura este mai mare, restul rămâne deschis. Soldul apare la client (sold € ...), în X și Z la Încasat pe factură (Sold depus, Cu soldul clientului) și în registrul contabil ca încasat în avans (implicit 1640 / 460000). În Belgia depunerea merge ca bani intrați (signMoneyInOut) la cutia neagră (UC4100).
- Factură centralizatoare (per client, implicit oprit): cu O factură pentru toate bonurile clientul nu primește încă factură la o vânzare pe factură. Bonul rămâne deschis la client (Bonuri încă nefacturate, contează la limită) și poate fi deja plătit. Cu Creează factura centralizatoare (de ex. la sfârșitul lunii) toate bonurile deschise ajung pe o singură factură, fiecare rând cu numărul bonului în față; ce e deja plătit apare ca plătit. Un retur în cont apare ca rânduri negative. Oprit = ca întotdeauna, o factură pe vânzare. În Belgia o singură factură cu toate bonurile la cutia neagră (signInvoice, UC4121 și UC4122).
- Belgia: dacă clientul plătește mai târziu o vânzare pe factură (numerar, card, card cadou sau transfer), casa raportează aceasta ca corecție de plată pe bon: de la creditul clientului la metoda reală de plată (signPaymentCorrection, UC4118).
- Prezentare: facturile neachitate cu scadența (restanțele cu roșu), pentru fiecare client facturile și plățile. La Setări → Facturi o coloană Neachitat.
- Contabilitate: în jurnal vânzarea pe factură merge la Clienți (creanțe) (implicit 1300 în Țările de Jos, 400000 în Belgia; se setează la Setări → Contabilitate), iar plata din casă, card, card cadou sau bancă (implicit 1050 / 550000) la creanțe. XAA: metoda de plată „Pe factură”.
- Drept: Încasare pe factură și primire plăți pe factură (implicit ospătar nu, manager da). Totul apare în jurnal.
- Dezactivat: clienții, facturile și plățile se păstrează (și în backup); comutatorul este inclus în exportul configurației, clienții nu (aceștia aparțin unui singur local).
- În magazinul online (opțional, implicit dezactivat): cu Și în magazinul online, clienții business comandă online pe factură (ridicare și livrare). La Raport → Pe factură creați pentru fiecare client un cod de client și i-l dați; casa păstrează doar o versiune criptată, deci îl vedeți o singură dată. Cod de client nou = cel vechi nu mai funcționează; Șterge codul de client = acel client nu mai poate comanda online pe factură. Magazinul online respectă limita. În fereastra Magazin online finalizați o astfel de comandă cu Finalizare (pe factură): încasare pe factură, cu factura imediat.
Bancă: alocarea transferurilor
La Raport → Pe factură → Bancă, casa caută pentru fiecare încasare factura cu plata pe factură aferentă:
- Importă extras de cont: fișierul din internet banking, ca CAMT.053 (XML, toate băncile din Țările de Jos și Belgia), MT940 (.sta/.940) sau CODA (.cod, Belgia). Doar încasări; importarea de două ori a aceluiași extras nu creează rânduri duble.
- Căutare: după numărul facturii sau comunicarea structurată din descriere (sigur), altfel după sumă (și nume): atunci este o propunere. Fiecare rând îl puteți aloca (la propunere sau la altă factură), ignora sau mai târziu aloca totuși. Alocare = Transfer bancar la data bancară, niciodată mai mult decât suma deschisă; nu în sertar.
- Conexiune bancară (PSD2, opțional): la Setări → Facturi → Conexiune bancară, casa preia singură în fiecare oră încasările prin Enable Banking (bănci din Țările de Jos, Belgia și restul Europei). Alegeți banca și autentificați-vă la bancă (cont de firmă); consimțământul este valabil 180 de zile, apoi reconectați. Deconectarea retrage consimțământul; încasările rămân. Fără contract cu Enable Banking, funcționează doar pentru propriile conturi (restricted production).
- Alocare automată (implicit oprită): o încasare care aparține sigur unei facturi este alocată imediat de casă (și la import).
- Drept: alocarea cu Încasare pe factură și primire plăți pe factură; configurarea conexiunii bancare cu Setare local, plăți și imprimante. Importul, conectarea, preluarea și alocarea apar în jurnal.
- Oprit: cu plata pe factură oprită, casa nu preia nimic; încasările și conexiunea rămân păstrate (și în backup).
Imagini de la camere în casă
Toate imaginile camerelor localului pe o singură pagină, fără ecran sau aplicație separată. Activați la Setări → Local → Ecrane și utilizare → Imagini de la camere în casă (implicit dezactivat). Atunci butonul Camere apare în bara de sus pentru cine are dreptul Vizualizare imagini camere (implicit manager și administrator; la Setări → Drepturi se poate activa și pentru ospătari). Toate camerele sunt afișate una lângă alta; atingeți o cameră pentru imagine mare. La dezactivare, sistemele de camere rămân salvate.
Și ca ecran separat: Pe un ecran separat deschide http://<kassaserver>:3000/camera (de ex. un monitor în spatele barului), iar Pe o tabletă sau un telefon afișează un cod QR: un angajat îl scanează cu propria tabletă sau propriul telefon și se autentifică cu propriul cod PIN (și acolo doar cu dreptul Vizualizare imagini camere). Pe un ecran îngust camerele sunt afișate una sub alta. Vezi Al doilea ecran pe o tabletă sau un telefon.
Administratorul adaugă sistemele de camere cu + Sistem de camere, le testează cu Testare și alege pentru fiecare cameră numele și dacă apare pe pagină:
- Hikvision, Dahua, Axis și Reolink: o cameră sau un recorder (NVR) în rețea: adresa IP (eventual cu
:poort), un utilizator (de preferat doar cu vizualizare) și canalele, de ex.1-8sau1,3,5. Autentificare cu Basic sau Digest; este permis https cu certificat propriu. - Synology Surveillance Station: adresa NAS-ului (port implicit 5000, cu https 5001) și un utilizator; Preia camerele preia camerele cu numele lor.
- UniFi Protect: adresa consolei (https) și un cont local; Preia camerele.
- ONVIF: orice cameră sau recorder cu ONVIF (de ex. Hanwha, Bosch, Uniview, Annke); Preia camerele caută adresa imaginii pentru fiecare sursă video.
- Adresă web proprie: o imagine (JPEG), un flux MJPEG sau o adresă
rtsp://. - Pagina web a sistemului de camere (de ex. Frigate, Blue Iris sau go2rtc): se deschide în casă la butonul Camere (sau într-o fereastră separată).
Fără ffmpeg: imaginea.
Confidențialitate: casa preia imaginile de la sistemul de camere și doar le transmite mai departe; nu se salvează nimic (fără înregistrări, fără cache). Utilizatorii și parolele rămân pe server și nu apar niciodată pe ecran sau în jurnal. În jurnal apare cine a vizualizat camerele. Imaginile în sine sunt cerute de pagină cu o cheie (valabilă 12 ore, cât timp angajatul este autentificat), deoarece o imagine din browser nu poate trimite un token. Exportul configurației include doar activat/dezactivat.
Jurnalul acțiunilor sensibile
Raport → Jurnal (manager sau administrator) arată cine a făcut ce și când.
- Alegeți o perioadă (azi, ieri, săptămâna aceasta, luna aceasta/trecută sau interval ales manual), ce doriți să vedeți (implicit Acțiuni sensibile, sau de ex. doar stornări și reduceri, sau Tot) și eventual un singur angajat.
- Sus, pe angajat: numărul și suma stornărilor (șterse după comandă), reducerilor și retururilor, și de câte ori s-a deschis sertarul fără vânzare, bani din sertar, bonuri copie, proforme și plăți manuale cu cardul. Atingeți un nume pentru a vedea doar acel angajat. De asemenea, de câte ori s-a introdus un PIN greșit.
- Dedesubt fiecare acțiune cu ora, cine, ce și o descriere lizibilă (de ex. „2x Cola șters după comandă € 5,60 · masa 4 · motiv: clientul nu a mai vrut”).
- Descarcă (CSV) pentru Excel.
Ce se înregistrează: stornări, reduceri (și anularea lor), retururi, copii de bonuri, facturi pro forma, plăți manuale cu cardul, deschiderea sertarului, bani introduși/scoși din sertar, fond de casă, închiderea zilei, mutarea de articole sau mese, închiderea comenzilor goale, modificarea prețului/numelui/TVA-ului produselor, produse noi sau șterse, modificări la personal și setări, ajustarea orelor de lucru, autentificare și deconectare, coduri PIN greșite și pontare la intrare și ieșire. Cu plata pe cont, în plus: clienți, vânzări și plăți pe cont, importul extraselor bancare, conexiunea bancară și preluarea de la bancă. Cu notificarea la timp de pregătire prea lung: comenzile întârziate și scuzele trimise. Cu Mailchimp sau Klaviyo: conectarea, alegerea listei, deconectarea și dezabonările de acolo. Cu controlul muzicii: activarea/dezactivarea și adăugarea, modificarea și eliminarea surselor de muzică. Cu imaginile camerelor: cine a vizualizat camerele (cel mult o dată la jumătate de oră per angajat), activarea/dezactivarea și sistemele de camere. Cu semnalarea: fiecare semnal, rezolvarea lui și activarea și dezactivarea.
Semnalare: fraudă și abateri
Setări → Semnalare. Două părți, fiecare activabilă separat și dezactivată implicit; dezactivarea păstrează toate semnalele și setările. Poate configura cine are dreptul Configurare semnalare (implicit managerul și administratorul); semnalele le poate vedea și rezolva cine poate vedea jurnalul. Casa verifică la fiecare 5 minute (și cu Verifică acum); nu pe casa-umbră.
Semnalarea fraudelor și furturilor (per angajat, pe zi de lucru de la 05:00), fiecare regulă activată separat cu propria limită:
- stornări după proformă: șterse după ce oaspetele a văzut deja nota;
- stornări, reduceri și retururi: de la un anumit număr de ori sau în total de la o sumă (0 = nu după sumă);
- sertar deschis fără vânzare (butonul Deschide sertarul);
- notă deschisă mult timp: comandat, dar după un număr de minute încă neachitat.
Notificări la abateri, comparate cu aceeași zi a săptămânii și aceeași oră din ultimele săptămâni (implicit 4; zilele fără vânzări nu se iau în calcul, cel puțin două zile de comparație):
- vânzări până acum mai mici (și/sau mai mari) decât de obicei cu mai mult decât marja, doar de la vânzări normale de o sumă stabilită;
- timp de bucătărie (de la trimiterea notei la bucătărie până la gata pe ecranul de bucătărie) în ultima oră peste marjă sau peste un număr fix de minute;
- stornări astăzi peste marjă, doar de la un număr minim.
Fiecare semnal vine o singură dată (per regulă, angajat și zi; timpul de bucătărie cel mult o dată pe oră) și merge la:
- casă: butonul Semnale (n) din bara de sus cu semnalele din ultima zi, săptămână sau 30 de zile; Rezolvat cu o notă. Celelalte ecrane primesc doar o avertizare fără nume;
- notificare push cu ntfy (aplicație gratuită; ntfy.sh sau un server propriu, topic și eventual un token), Pushover (API-token al aplicației și user key) sau Telegram (tokenul botului și chat-id);
Pentru fiecare canal există un buton Mesaj de test. Tokenurile și cheile rămân pe casă (ecranele văd doar dacă sunt completate). Un semnal nu este o dovadă: verifică nota și jurnalul și discută cu angajatul.
Bonuri: copie și retur (bon de credit)
Butonul Bonuri din bara de sus:
- Lista bonurilor de la ultima închidere de zi sau din ultimele 7 zile; un bon mai vechi îl căutați după număr.
- Tipărește copie: același bon cu „COPIE” pe el (în Belgia cu blocul FDM al bonului original). Se înregistrează în jurnal.
- Retur / notă de credit (manager sau administrator): alegeți pe rând câte bucăți se returnează, un motiv și cum se rambursează banii (numerar, card, card cadou, altele). Bonul vechi rămâne neatins: se adaugă o notă de credit nouă cu număr propriu în jurnal (tip ticket
retour, sume negative, în Belgia ca NR către FDM). Nu se poate returna niciodată mai mult decât s-a vândut. În raportul X și Z returul contează ca vânzări negative. - La CCV sau alt terminal: rambursați mai întâi pe terminal și apoi bifați „Rambursat deja pe terminal”.
- Numerar cu rotunjire la 5 cenți: suma de restituit este și ea rotunjită.
- Înapoi pe factură (vânzare pe factură): dacă bonul era pe factura unui client business, alegeți Pe factură. Suma se scade din factura deschisă și casa creează imediat o notă de credit (în UBL un CreditNote, tip 381, cu o referință la factură; în Belgia semnată cu signInvoice, UC4122). Mai mult decât este deschis pe factură nu poate reveni pe factură; rambursați restul în numerar sau cu cardul. Nota de credit apare la Facturi și o trimiteți ca pe o factură.
Sertar de bani cu senzor și sertar pe angajat
Implicit oprit. Se configurează la Setări → Plăți → Sertar de bani.
- Senzor: multe sertare raportează prin imprimanta de bonuri dacă sunt deschise sau închise (ESC/POS
DLE EOT 1, portul DK pinul 3). Acest lucru este posibil doar cu o imprimantă de bonuri în rețea. Atingeți Măsurare: sertar închis și Măsurare: sertar deschis; dacă există o diferență, preluați setarea corectă (înalt = deschis sau jos = deschis). Nicio diferență = acest sertar (sau cablu) nu are senzor. Niciun răspuns de la imprimantă = necunoscut, niciodată "închis".- Fără încasare cât timp sertarul este deschis: serverul casei refuză atunci o nouă încasare cu mesajul "Sertarul de bani este încă deschis".
- Sertar propriu pe angajat: o imprimantă de bonuri poate deschide două sertare (sertarul 1 și sertarul 2). Alegeți pentru fiecare angajat sertarul său; casa deschide atunci, la încasarea în numerar, la bani în/din sertar și la Deschidere sertar, sertarul angajatului autentificat. La Raport → Sertar de bani apare atunci Sertar pe angajat: fondul de casă inițial pe angajat, numerar (fără automatul de numerar), așteptat, Numărare și diferența pe persoană (în jurnal ca
ladetelling). Închiderea de zi obișnuită rămâne neschimbată. - Test sertar 1 și Test sertar 2 deschid sertarul pentru verificare.
- Deschidere sertar fără vânzare se înregistrează întotdeauna (cu motiv) în jurnal și în fișierul de audit casă (XAA), așa cum cere administrația fiscală olandeză (Belastingdienst) (excepții precum "no sale").
Partea 3 · Administrator
Primii pași
Instalare. Instalați HorecaPOS cu programul de instalare pentru sistemul dvs., disponibil pe pagina de descărcări OptimumPOS: Android (aplicație), Windows (program de instalare), macOS (program de instalare pentru Mac cu Apple Silicon și Intel), Linux (program de instalare grafic sau pachetul .deb ori .rpm), Raspberry Pi (program de instalare grafic sau .deb pentru un Raspberry Pi 3, 4 sau 5 cu Raspberry Pi OS pe 64 de biți) și Chromebook (aplicația Android din Google Play). Alegeți pentru toți utilizatorii pentru un server de casă la care se conectează tabletele și ecranul din bucătărie, sau doar pentru mine pentru o singură casă pe acel dispozitiv. Programul instalează tot ce este necesar, inclusiv baza de date, și face o copie de rezervă în fiecare noapte. Pentru actualizare, instalați noua versiune: datele dvs. rămân. Programul de instalare pornește în limba computerului tău (altfel în engleză); pe Windows și Linux poți alege altă limbă pe primul ecran. Casa pornește apoi imediat în acea limbă. Pachetele .deb și .rpm și aplicația Android urmează limba sistemului, altfel neerlandeza.
Administratorul configurează casa prin Setări. Acolo există file precum Local, Personal, Drepturi, Program de lucru, Produse, Happy hour, Stoc, Planuri de sală, Plăți, Imprimante, Contabilitate, Backupuri, Import/export și Bază de date. Ce file vede și un manager depinde de drepturi.
Bază de date. În Setări → Bază de date (doar administratorul) alegeți între MySQL / MariaDB, baza de date integrată și PostgreSQL; la schimbare, toate datele sunt preluate (vedeți Bază de date). Dacă Optimum POS a setat deja o adresă fixă la instalare, se aplică acea adresă și nu există câmpuri de completat. Altfel, completați singur Server, Port, Bază de date, Utilizator și Parolă. Casa le salvează singură, apoi le afișează din nou completate și le puteți modifica oricând cu Modificați datele MySQL/MariaDB sau Modificați datele PostgreSQL. A lăsa parola goală înseamnă: se păstrează parola salvată (pentru același utilizator). Programul de instalare și o actualizare nu schimbă nimic la DATABASE_URL sau la baza de date aleasă.
Contabilitate
Tot ce ține de contabilitate se află la Setări → Contabilitate. Completați împreună cu contabilul dvs. jurnalul și conturile contabile. Dacă doriți ca casa de marcat să înregistreze singură vânzările zilei în fiecare zi, alegeți programul sus, la Program de contabilitate, inclusiv Exact Online: vedeți doar programele care funcționează în țara localului dvs. Imediat dedesubt completați datele acelui program și vă conectați. La programele în care vă autentificați (cum ar fi Exact Online, Twinfield sau Xero), completați mai întâi aplicația: ID-ul de client și secretul de client. Dacă Optimum POS a setat fix programul sau o valoare la instalare, nu vedeți acea alegere sau acel câmp. Tot acolo se află și o prezentare a tuturor programelor: care pot fi conectate live și care primesc un fișier. Un fișier îl creați la Raport → Vânzări pe perioadă → Export contabilitate: alegeți formatul programului dvs. sau UBL (Peppol), XAF ori un raport zilnic. Cereți întotdeauna contabilului să verifice prima înregistrare sau primul import.
Pentru un local din Țările de Jos există acolo și Fișier de audit casă (XAA): XML Auditfile Afrekensystemen al Belastingdienst cu toate bonurile, rândurile, plățile și evenimentele casei de marcat pentru perioada aleasă. Îl dați contabilului dumneavoastră sau, la un control, Belastingdienst.
Salarizare și planificare
Dacă personalul dvs. folosește pontajul intrare/ieșire, la Setări → Program de lucru, jos, se află Salarizare și planificare, în două blocuri. La Salarizare alegeți programul de salarizare sau (în Belgia) secretariatul social și introduceți pentru fiecare angajat numărul său de marcă din acel program. Apoi creați pentru o perioadă fișierul cu orele lucrate și vânzările pe angajat și îl importați în programul de salarizare. La Planificarea personalului alegeți sistemul de planificare: la Deputy, Dyflexis și Shiftbase vânzările merg automat în fiecare oră, la celelalte creați un fișier de vânzări. Astfel vedeți în planificare costurile salariale alături de vânzări. Dacă lucrați fără pontaj intrare/ieșire, puteți totuși trimite vânzările către planificare: în acest caz se află jos la Setări → Contabilitate, la Vânzări către planificare. Dacă Optimum POS a setat ceva fix la instalare, nu vedeți acea opțiune sau acel câmp.
Backupuri
Casa face automat în fiecare noapte un backup și întotdeauna înainte de o actualizare. La Setări → Backupuri vedeți toate backupurile (când, de cine sau automat, dimensiune) și cu Creează backup faceți unul manual. Dacă ultimul backup este mai vechi de două zile, apare un avertisment roșu: contactați atunci Optimum POS.
Restaurarea se face cu butonul Restaurează de la un backup. Tot ce s-a întâmplat după acel backup se pierde. Trebuie să bifați acest lucru și să introduceți din nou propriul PIN. Casa face mai întâi un backup de siguranță al stării actuale și apoi deconectează pe toată lumea. În Belgia acest lucru nu este posibil din casă (contoarele cutiei negre continuă); acolo o face Optimum POS.
Bază de date
În Setări → Bază de date (doar administratorul) vedeți unde își păstrează casa datele. Sus este baza de date actuală, cu programul, versiunea, tabelele, rândurile și adresa sau dosarul. Pentru personal și tablete, casa funcționează la fel cu orice bază de date. Pe Windows, macOS, Linux și Raspberry Pi alegeți dintre trei baze de date:
- MySQL / MariaDB: un program de baze de date separat (MySQL 8.0 sau mai nou, MariaDB 10.6 sau mai nou), de exemplu pe un server sau NAS pe care îl aveți deja. Toate datele sunt atunci în tabele obișnuite în MySQL sau MariaDB, lizibile pentru propriul program de raportare sau BI. Casa calculează exact ca și cu PostgreSQL.
- Integrată (PGlite): face parte din casa însăși, nu trebuie instalat nimic. Cea mai bună alegere pentru majoritatea localurilor și baza de date pe Android și Chromebook.
- PostgreSQL: un program de baze de date separat, pe PC-ul casei sau în altă parte din rețea.
Când MySQL sau MariaDB? Dacă localul are deja un server MySQL sau MariaDB, dacă administratorul IT lucrează cu el sau dacă vreți să citiți datele în propriile rapoarte, în Excel sau într-un program BI. Dacă nu sunteți sigur, alegeți integrata: funcționează imediat.
Ce trebuie pentru MySQL sau MariaDB?
- MySQL 8.0 sau mai nou ori MariaDB 10.6 sau mai nou, accesibil de pe serverul casei.
- O bază de date proprie pentru casă (sau pentru casele unui lanț), cu setul de caractere utf8mb4.
- Un utilizator de bază de date care are voie să creeze, să modifice, să redenumească și să șteargă tabele în acea bază de date (CREATE, ALTER, DROP, INDEX, SELECT, INSERT, UPDATE, DELETE), de exemplu așa:
CREATE DATABASE horecapos CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'horecapos'@'localhost' IDENTIFIED BY 'wachtwoord';
GRANT ALL PRIVILEGES ON horecapos.* TO 'horecapos'@'localhost';
Dacă MySQL sau MariaDB rulează pe alt calculator, puneți în ultimele două rânduri adresa IP a serverului casei în locul lui localhost.
Migrarea la MySQL / MariaDB:
- La Adresa MySQL/MariaDB completați câmpurile: Server (implicit localhost), Port (implicit 3306), Bază de date (implicit horecapos), Utilizator și Parolă; la fel pentru MariaDB. Dacă adresa este deja setată, câmpurile sunt deja completate; dacă lăsați parola goală, rămâne parola salvată (pentru același utilizator). Casa salvează singură adresa; dacă Optimum POS a setat deja o adresă fixă, se aplică acea adresă și nu există câmpuri. Dacă casa funcționează deja pe MySQL/MariaDB, modificați datele ulterior cu Modificați datele MySQL/MariaDB. O conexiune criptată v-o configurează Optimum POS.
- Atingeți Testează conexiunea: vedeți programul și versiunea sau de ce nu merge.
- Atingeți Migrează la MySQL/MariaDB, bifați că ați înțeles și introduceți propriul PIN.
Migrarea funcționează în orice direcție între cele trei baze de date, iar toate datele se mută:
- Casa nu primește cereri pentru scurt timp (de obicei sub un minut); apoi tabletele continuă singure.
- Întâi casa face un backup al stării actuale (în Setări → Backupuri).
- Totul trece în noua bază de date, iar casa numără pe fiecare tabel dacă totul este acolo exact.
- Abia când totul se potrivește, casa continuă pe noua bază de date. Angajații conectați rămân conectați.
Dacă ceva nu reușește, nu se schimbă nimic și casa lucrează mai departe pe vechea bază de date. Vechea bază rămâne, deci vă puteți întoarce oricând. Datele de casă care erau deja în noua bază MySQL/MariaDB sau PostgreSQL sunt înlocuite. Merge și în Belgia: contoarele cutiei negre se mută exact.
Backupurile și restaurarea funcționează la fel cu toate cele trei baze de date (Setări → Backupuri). Un backup dintr-o bază de date se poate restaura în oricare alta, inclusiv un backup din PostgreSQL în MySQL sau MariaDB.
Ce se află în MySQL sau MariaDB? Fiecare tabel al casei, cu același nume și aceleași coloane (orele în UTC). Fiecare tabel primește în plus coloana-cheie _hp_sleutel, iar în tabelele auxiliare _horecapos_stand, _horecapos_kolom, _horecapos_reeks și _horecapos_wijziging (jurnalul modificărilor, păstrat 14 zile) casa ține starea, tipurile de coloane, contoarele și modificările. Alte programe citesc datele; scriu doar casele.
Cum funcționează: casa calculează într-o copie de lucru rapidă pe serverul casei și scrie fiecare modificare în MySQL/MariaDB în același pas. Dacă nu reușește, modificarea nu se face și casa afișează o eroare; de aceea păstrați MySQL/MariaDB accesibil. La pornire, casa citește totul din MySQL/MariaDB.
Mai multe case pe o bază de date. Ca la PostgreSQL, mai multe case pot folosi aceeași bază de date MySQL/MariaDB, de exemplu fiecare local al unui lanț cu propriul server de casă. Modificările se fac una după alta și fiecare casă preia mai întâi ce au făcut celelalte, astfel încât nu se pierde nimic la modificări simultane. Dacă o casă restaurează un backup sau o casă cu o versiune mai nouă actualizează baza de date, celelalte case recitesc singure totul; de aceea actualizați toate casele deodată. O casă oprită mai mult de 14 zile recitește totul la pornire.
La instalare alegeți și baza de date: MySQL / MariaDB, integrată (recomandat) sau PostgreSQL cu adresa. Dacă nu este accesibilă, casa se instalează cu baza de date integrată; puteți migra apoi aici. La o actualizare alegerea rămâne.
Conectarea tabletelor și ecranelor
- Deschideți pe fiecare tabletă/casă adresa serverului casei, de ex.
http://192.168.1.20:3000, și puneți-o ca scurtătură pe ecranul de pornire (Chrome: Adăugați pe ecranul de pornire). - Ecran bucătărie:
http://192.168.1.20:3000/keuken. - Ecran client (orientat spre client, opțional):
http://192.168.1.20:3000/klantscherm, vezi Ecran client. - Ecranele găsesc singure serverul casei (aceeași adresă, portul 4000).
Ecran client
Un ecran la casă orientat spre client. Clientul vede aproximativ ce s-a comandat și foarte clar suma și modul de plată. Nu are comenzi: ecranul doar urmărește ce face casa. Implicit oprit; se activează la Setări → Local → Ecran client. Pe un PC de casă cu două ecrane, casa îl activează automat prima dată; dacă îl oprești după aceea, rămâne oprit. Fără ecran client (oprit sau nu există unul) totul funcționează exact ca întotdeauna: casa trimite imaginea în fundal, iar o eroare sau un ecran lipsă nu este observat niciodată de personal.
Ce vede clientul:
- Repaus (nimeni nu încasează): numele localului și un text de bun venit propriu (Setări → Local; gol = „Bun venit”).
- Comandă: produsele cu cantitate și sumă (rânduri identice împreună, un meniu ca un singur rând cu componentele scris mic dedesubt, reducerea ca un singur rând) și totalul mare. Ce s-a plătit deja la încasarea împărțită apare dedesubt. Cu Setări → Local → Fotografii produse → pe ecranul client apare câte o fotografie mică la fiecare produs.
- Încasare: metoda de plată (Card, Numerar, Card cadou), bacșișul și, mare, De plată. Numerar: ce dă clientul și ce primește rest, imediat ce s-a introdus în casă. Card: „Urmați instrucțiunile de pe terminalul de plată”.
- Mulțumim: după încasare câteva secunde „Mulțumim!” cu suma plătită (numerar: restul primit de client), apoi din nou ecranul de repaus.
Conectare, în două moduri (ambele se setează pe dispozitivul însuși):
- Al doilea monitor la PC-ul de casă (Windows, Linux/Raspberry Pi, macOS): automat. La autentificare și după instalare, casa afișează ecranul client pe tot ecranul pe cel mai mic ecran care nu este cel principal (la dimensiuni egale, pe cel mai din dreapta); pe Windows, întotdeauna pe alt ecran decât cel al casei (casa se află pe ecranul tactil și se deschide și singură la pornire). Dimensiunea și poziția vin de la sistem, deci funcționează orice format. Fără al doilea ecran nu se întâmplă nimic. Pe Windows, un ecran client închis revine de la sine; pe Linux și macOS, comanda rapidă HorecaPOS ecran client din meniu îl repune la locul lui. Pe Windows se deschide în modul chioșc al Chrome (sau Edge): pe tot ecranul, fără bară de titlu și fără bara de activități (închidere cu Alt+F4). Urmează casa de pe același PC fără cod de asociere.
- În orice browser, apăsarea lungă nu deschide nicăieri meniul browserului și nu apare nicio întrebare pentru traducerea paginii.
- Casa închisă = ecranul client închis. Dacă software-ul casei se oprește (Repornire, o actualizare, casa oprită sau eliminată), ecranul client se închide și el după puțin peste 10 secunde; când casa funcționează din nou, revine singur. Pe Windows se închide și dacă închizi doar fereastra casei. Sub Wayland (Linux), casa nu poate închide singură fereastra.
- Ecranul client închis din greșeală? Pe Windows revine singur după câteva secunde, atâta timp cât casa este deschisă și al doilea ecran este conectat.
- Întotdeauna un singur ecran client. Pe Windows, ecranul client apare doar în modul chioșc pe al doilea ecran. Un ecran client în fereastra casei (de ex. restaurat de Edge după o pană de curent sau deschis cu butonul din casă) se închide singur în câteva secunde; locul lui îl ia atunci ecranul client corect.
- Nimeni conectat = doar mesajul de bun venit. Dacă casa este pe ecranul codului PIN (inclusiv după o repornire sau deconectare), ecranul client afișează doar textul de bun venit, niciodată nota de plată anterioară.
- Pe Windows, deschiderea automată poate fi dezactivată și cu bifa Deschide automat ecranul client ... din programul de instalare.
- Pe Linux, casa mută fereastra cu wmctrl (inclus în pachet). Sub Wayland (de ex. Raspberry Pi OS cu labwc) nu se poate: mutați atunci o dată singur ecranul client pe al doilea ecran (browserul reține acest lucru) sau alegeți X11 în raspi-config. Pe macOS, Mac-ul cere prima dată permisiunea la Accesibilitate.
- Manual: Setări → Local → Ecran client → Deschide ecranul client (al doilea monitor). În Chrome și Edge (și pe un Chromebook), butonul mută imediat fereastra pe ecranul client (prima dată browserul cere permisiunea); un clic pe ecranul client îl trece pe tot ecranul. În alte browsere: trageți și apăsați F11.
- Casă Android cu ecran client integrat (de ex. Sunmi D2/T2) sau un monitor prin HDMI/USB-C: tot automat. Imediat ce aplicația este pe o casă, ecranul client apare pe al doilea ecran; conectarea și deconectarea funcționează pe loc.
- Sunmi T1 mini / T2 mini cu afișajul mic de text (2 rânduri): aplicația afișează acolo automat suma: Total, De plată, la numerar Rest, după plată Mulțumim! și în repaus numele localului. Ecranul client trebuie să fie pornit.
- iPad (ecran de operare) cu un ecran extern prin HDMI/USB-C sau AirPlay: aplicația pune automat ecranul client pe acel ecran (pregătit; aplicația iOS nu a fost încă lansată).
- Chromebook: ca ecran de operare în Chrome, butonul Deschide ecranul client (al doilea monitor) funcționează ca mai sus. În aplicația Android, ecranul client apare automat pe al doilea ecran imediat ce ChromeOS transmite acel ecran aplicațiilor Android; dacă nu o face, folosiți un dispozitiv separat cu cod de asociere.
- Dispozitiv separat (tabletă sau PC propriu lângă casă): deschideți
http://<kassaserver>:3000/klantscherm. Ecranul afișează în dreapta jos un cod de asociere de 6 caractere. Introduceți-l pe casă la Setări → Local → Ecran client → Asociază. Disociază readuce ecranul la codul de asociere. Asocierea se salvează pe casă (în browserul acelei case), deci fiecare casă poate avea propriul ecran client.
Ecranul client nu cere PIN (nu există nimic de operat) și afișează doar imaginea casei cu care este asociat. Imaginea există doar în memoria serverului casei; după o repornire ecranul este gol până la următoarea modificare. Setarea (pornit/oprit și textul de bun venit) este inclusă în backup și în Import/export (Alte setări).
Bon digital prin QR (opțional)
Implicit oprit. Se activează din Setări → Local → Bucătărie și ecran client → Bon digital (opțiunea apare când ecranul client este salvat ca pornit). După plată, la Mulțumim! apare un cod QR; acesta rămâne atunci afișat 45 secunde în loc de câteva secunde. Clientul îl scanează cu propriul telefon și vede bonul exact ca pe bonul de hârtie (același text, la o casă belgiană și cu blocul FDM). Pe telefon poate tipări bonul, îl poate salva ca PDF sau descărca ca fișier text.
- Funcționează prin portalul de administrare:
https://kassa.<portaal>/__bon/<kassa>/<sleutel>. Casa trebuie deci să fie conectată la portal; altfel nu apare niciun cod QR și nu se schimbă nimic. - Cheia este aleatorie și imposibil de ghicit și funcționează 30 zile. După aceea casa o șterge automat. Portalul nu păstrează nimic.
- Funcționează cu un al doilea monitor și cu un ecran client separat. Bonul pe hârtie și bonul prin e-mail funcționează în continuare normal.
Ecran client în repaus: prezentare de diapozitive (opțional)
Implicit oprit. Se activează din Setări → Local → Bucătărie și ecran client → Ecran client în repaus. Dacă pe ecranul client nu este nicio notă, diapozitivele se succed (implicit la fiecare 8 secunde, reglabil de la 4 la 60):
- Promoții: happy hour-urile (dacă happy hour este pornit), cu reducerea, zilele și orele și produsele sau grupele; cele active acum apar primele, cu "Acum!".
- Produse evidențiate (cel mult 12, de exemplu noutăți în meniu), cu preț și (dacă fotografiile produselor pe ecranul client sunt pornite) fotografia. Un produs epuizat este sărit de ecran.
- Cardul de puncte: puncte per euro, recompensa și cardurile cu ștampile (doar dacă cardul de fidelitate este pornit).
- Texte proprii: cel mult 5, fiecare pe propriul diapozitiv (de exemplu "Din vineri, nou: meniul nostru de vară").
Fără diapozitive, ecranul client afișează ecranul de bun venit, ca întotdeauna.
Happy hour
Implicit oprit. Se activează la Setări → Local → Utilizare happy hour; apoi apare fila Setări → Happy hour.
- Pe happy hour: nume (apare pe bon), zile, de la–până la (poate trece de miezul nopții, de ex. 23:00–01:00), reducere în % sau un preț fix, și pentru ce grupuri de produse și/sau produse individuale.
- În acel interval casa aplică automat la introducere prețul de happy hour (niciodată mai scump decât normal; la un preț fix opțiunile se adaugă normal). Pe butonul produsului prețul vechi apare tăiat, cu prețul nou și HH; în comandă și pe bon apare numele happy hour-ului. Ce a fost deja introdus își păstrează prețul.
- Oferta zilei: bifați Toată ziua (00:00–24:00) și alegeți ziua (zilele), de ex. în fiecare marți coaste de porc la preț fix.
- Sezon: bifați Doar într-un sezon (în fiecare an) și alegeți de la și până la (zi și lună, de ex. 1 iunie – 31 august; se poate și peste Anul Nou, de ex. 1 decembrie – 28 februarie). În afara sezonului happy hour-ul nu se aplică.
- Modificările se înregistrează în jurnal.
Perioade de meniu și sezoane
Implicit oprit. Se activează la Setări → Local → Perioade de meniu și tip de comandă → Sortiment pe perioade de meniu și sezoane; apoi apare fila Setări → Perioade de meniu. Dacă îl opriți, toate produsele se vând din nou mereu, iar perioadele de meniu rămân salvate.
- Pentru fiecare perioadă de meniu: nume (de ex. Mic dejun, Prânz, Cină, Meniu de vară), zile, de la–până la (poate trece de miezul nopții; Toată ziua = 00:00–24:00), opțional un sezon (în fiecare an, zi și lună) și ce categorii și/sau produse individuale fac parte din ea.
- Produsele și categoriile care sunt în una sau mai multe perioade de meniu se vând doar cât timp una dintre aceste perioade este în desfășurare; ce nu este în nicio perioadă se vinde mereu. Ecranul de comandă arată doar ce se vinde acum și se schimbă singur când o perioadă începe sau se termină; serverul refuză restul ("nu se vinde acum, doar la Mic dejun").
- Magazinul online afișează și calculează același sortiment (la momentul comenzii).
- Un alt preț într-o anumită zi sau într-un sezon este un happy hour (oferta zilei, vezi mai sus).
- Meniu pe locație: fiecare casă (unitate) are propriile produse, perioade de meniu și prețuri.
- Modificările se înregistrează în jurnal.
Sortiment și prețuri pe tip de comandă
Implicit oprit. Se activează la Setări → Local → Perioade de meniu și tip de comandă → Sortiment și prețuri pe tip de comandă. Dacă îl opriți, peste tot se aplică din nou prețul obișnuit și totul se vinde peste tot; prețurile introduse rămân salvate.
- La Setări → Produse, pentru fiecare produs: Preț la pachet și Preț la livrare (gol = prețul obișnuit) și Vândut pentru (la local, la pachet, livrare; cel puțin unul). O categorie are și ea Vândut pentru, pentru toate produsele din ea.
- La o comandă la pachet sau cu livrare, ecranul de comandă arată prețul acelui tip de comandă și doar ce se vinde acolo; serverul calculează acel preț și refuză restul. Happy hour-ul, meniurile și opțiunile se calculează cu acel preț.
- Cota de TVA pentru la pachet (la produs) este separată de aceasta, ca întotdeauna.
- La ridicare și livrare, magazinul online afișează prețurile și produsele acelei alegeri (la schimbare pagina meniului se reîncarcă), iar la masă pe cele pentru la local.
- Exportul și importul configurației (Setări → Import/export) includ prețurile pe tip de comandă, "vândut pentru", perioadele de meniu și sezonul happy hour-urilor.
Meniuri
Implicit oprit. Se activează la Setări → Local → Utilizare meniuri.
- Un meniu este un produs obișnuit (cu prețul meniului) la care setați componentele la Setări → Produse → (produs) → Meniu:
- fix: întotdeauna acest produs (de ex. „Băutură: Vinul casei”);
- la alegere: alegeți 1 (sau mai multe) dintr-un grup de produse, eventual limitat la anumite produse (de ex. „Fel principal: alegeți 1 din Feluri principale”).
- Pe componentă felul (1 = imediat, 2/3 = așteaptă apelarea).
- Când introduceți meniul, alegeți preparatele pe fiecare componentă. Pe preparat (inclusiv cele fixe) puteți alege opțiunile ca la un produs individual (mod de gătire, extra brânză; opțiunile obligatorii trebuie alese) și o observație. Suplimentul opțiunilor se adaugă la prețul meniului. Meniul apare ca un singur rând cu preparatele (și opțiunile lor) dedesubt.
- Preparatele merg ca rânduri separate la bucătărie/bar (bon de bucătărie și ecran bucătărie), în felul lor. Rândul de meniu în sine nu.
- Pentru TVA, prețul meniului este împărțit între componente proporțional cu prețul lor normal, astfel încât mâncarea și băutura să aibă fiecare cota corectă. Pe bon apare meniul cu prețul total și preparatele dedesubt.
- Dacă meniul are el însuși opțiuni (de ex. mărime), le alegeți în partea de sus a ferestrei meniului. Ele apar la rândul de meniu pe bon și la fiecare preparat din meniu pe bonul de bucătărie și pe ecranul bucătăriei ca „(meniu)”.
- Eliminarea/stornarea se face pe întregul meniu (atingeți rândul de meniu).
- Împarte / mută: alegeți rândul de meniu; preparatele se mută odată cu el. La 2× același meniu puteți muta și 1 (antetul și preparatele se împart).
- Fără conexiune puteți introduce meniuri normal; ele sunt salvate pe tabletă și trimise imediat ce conexiunea revine (ca produsele individuale).
- Happy hour se poate aplica și unui meniu.
Rețete și cost (Apicbase)
Integrare cu Apicbase (rețete, cost, stoc și achiziții) prin Generic POS API de la Apicbase (implicit oprit, fiecare parte se pornește sau se oprește separat). Se configurează la Setări → Rețete (dreptul Setare local, plăți și imprimante). Casa comunică singură cu Apicbase (doar trafic de ieșire, fără portal).
- Conectare (totul completat de administrator), în unul din trei moduri:
- Lipește tokenul: în Apicbase Library Settings → API Settings → New token → Service Account Token (scope-uri accounts, library, sales); se lipesc access token și refresh token;
- Autentificare cu API-app proprie a localului (client-id și client secret din API Settings): Autentificare în Apicbase și se lipește codul pe care îl afișează apoi Apicbase;
- Un token expirat (după 7 zile) este reînnoit automat de casă cu refresh token.
- Outlet: Preia outleturile și alege outletul acestui local. Casa setează acolo POS-ul pe Generic POS API cu un location-id propriu (editabil; implicit
HORECAPOS-…, unic pentru fiecare casă). - Pornit, cu bife:
- Produse, grupe și opțiuni către Apicbase: grupe de produse, produse (PLU = numărul PLU al produsului, altfel codul, altfel id-ul), opțiuni ca modifiers, cu preț și TVA. Automat după fiecare modificare (după un minut) și zilnic. În Apicbase legi apoi fiecare produs din casă de o rețetă;
- Fiecare bon încasat către Apicbase: cele mai vechi întâi, cel mult 100 odată, în sfertul de oră de după încasare (și la fiecare 5 minute). Reducerea se repartizează pe linii; sumele libere, suprataxa pentru ambalaj de unică folosință și garanția apar ca produs separat în Apicbase; produsele cântărite ca 1 bucată cu suma totală. Dacă nu reușește, casa se oprește (Apicbase vrea bonurile în ordine) și reîncearcă mai târziu: încasarea nu este afectată. La pornire alegi de la ce zi (implicit de acum);
- Preia costul pe porție (la fiecare 6 ore): pentru fiecare rețetă legată, food cost (ingrediente și pierderi), cu costurile de personal, prețul de vânzare și marja conform Apicbase. Calculat după cel mai ieftin furnizor, ultimul preț comandat sau valoarea medie a stocului;
- Preia prețul de vânzare din Apicbase (oprit implicit): setează prețul de vânzare al produselor legate în casă (apare în jurnal).
- Jos: Cost pe produs cu cost, cost cu personal, preț în casă, cost % și marjă. Butoane Trimite catalogul acum, Trimite bonurile acum și Preia costurile acum.
Cod: apps/pos-server/src/lib/apicbase.ts, routes/apicbase.ts; ecran Apicbase.tsx. Jurnal: Apicbase. Condiție: modulul API al Apicbase. Pentru aplicația Pin Voordeel pentru toți clienții: parteneriat și certificare la Apicbase (vezi backlogul). Documentație: https://developers.apicbase.com/docs/generic-pos-api-guide
Software hotelier: pune pe cameră
Pentru un restaurant sau bar la un hotel: nota de plată pusă pe camera unui oaspete. Implicit oprit: Setări → Hotel (dreptul Setarea localului, plăților și imprimantelor).
- O singură listă cu tot software-ul hotelier (Software-ul hotelier al hotelului). Conexiuni integrate:
- Mews (Connector API: client token și access token, serviciul restaurantului și, pentru fiecare cotă de TVA, codul de TVA din Mews), apaleo (aplicație proprie cu client ID și client secret, property ID; pentru fiecare cotă de TVA, eventual tipul de TVA) și Cloudbeds (cheie API și property ID), fiecare cu un mediu de test și unul real;
- Oracle OPERA Cloud (OHIP), protel (protel I/O), RoomRaccoon, Booking Experts, Amadeus (XMLPOS), VIPS, Stayntouch, Clock PMS+, Guestline (Rezlynx), Hotelogix, eviivo, Little Hotelier, Shiji și Infor HMS (Databridge). După alegere apar exact câmpurile care țin de acel software hotelier (chei, ID-ul hotelului, eventual adresa API-ului lor și, pentru fiecare cotă de TVA, codul lor), cu o scurtă explicație despre ce trebuie cerut furnizorului. Aceste conexiuni sunt construite după documentația furnizorilor; cereți furnizorului să confirme conexiunea și încercați mai întâi cu Testează conexiunea și un singur bon;
- un demo (patru apartamente, camerele 4–7) pentru încercare;
- Sirvoy, ca integrare parțială și doar cu Sirvoy Pro. Sirvoy nu are API prin care o casă să adauge ceva la o rezervare, nici printr-un fișier (importul CSV creează doar rezervări noi). Astfel casa cunoaște oaspeții (cameră, nume, sosire, plecare): căutarea la În cameră și autoservirea la chioșc și în magazinul online funcționează normal. Bonul nu ajunge singur în Sirvoy: după încasare apare la Setări → Hotel sub De introdus în Sirvoy, cu camera, oaspetele, numărul bonului și suma pe cote de TVA. Hotelul îl adaugă manual ca extra la rezervare și dă clic pe Este introdus (înapoi cu Totuși nu încă). Necesar:
- de preferință o casă conectată la portalul de administrare: atunci adresa trece prin portal (
https://<portaal>/hotel/<kassa-id>/sirvoy?sleutel=...) și în hotel nu trebuie deschis niciun port. Altfel, casa însăși trebuie să fie accesibilă de pe internet prin https (domeniu propriu cu certificat sau redirecționare de porturi; Sirvoy cere TLS 1.2 sau mai nou) și introduceți acea adresă; - Adresa este afișată o singură dată; casa păstrează doar hash-ul. Crearea unei adrese noi = cea veche nu mai funcționează;
- de preferință o casă conectată la portalul de administrare: atunci adresa trece prin portal (
Sirvoy trimite ceva doar când se schimbă o rezervare: rezervările de dinainte de conectare casa le cunoaște abia după o modificare în Sirvoy. Mesajele pot sosi în altă ordine; un mesaj mai vechi (generatedAt) decât ce are deja casa este sărit. La hotel = neanulată și fără check-out, cu check-in făcut sau sosire azi sau mai devreme, și plecare azi sau mai târziu. Testează conexiunea arată câte rezervări au sosit.
Tot software-ul hotelier se vinde în Țările de Jos și/sau Belgia. Testează conexiunea verifică datele. Codul fiecărei conexiuni: apps/pos-server/src/lib/pms/<naam>.ts.
- Autoservire (implicit oprită): oaspetele hotelului își trece singur comanda pe cameră, la chioșc și/sau în magazinul online (ridicare și livrare, nu la comanda la masă). Introduce numărul camerei și numele de familie; casa verifică în software-ul hotelier dacă acel oaspete stă acum în camera respectivă. Cu o limită pe comandă (implicit € 150), iar după 5 încercări greșite într-un sfert de oră trebuie mai întâi să meargă la recepție. Mesajul nu spune niciodată cine stă într-o cameră.
- Încasare: dacă integrarea este pornită, există metoda de plată În cameră. Căutați oaspetele după nume sau numărul camerei (doar oaspeții care stau acum la hotel) și atingeți Pune pe camera .... Casa înregistrează bonul pe cote de TVA în nota de hotel a oaspetelui; oaspetele plătește la check-out.
- Belgia: dacă comanda este deja la masă la cutia neagră, ea trece mai întâi de la masă la cameră (signCostCenterChange la ROOM, UC4101); bonul merge ca credit de cameră (ROOM_CREDIT) la cutia neagră.
- Dacă înregistrarea în software-ul hotelier nu reușește (fără internet), vânzarea există totuși, iar înregistrarea apare ca Eșuat la Setări → Hotel, cu Din nou.
- Rapoarte și contabilitate: În cameră (hotel) este o metodă de plată proprie în raportul X și Z, în situația zilnică și în fișierul de audit (XAA).
Cod: apps/pos-server/src/lib/hotel.ts, routes/hotel.ts, conexiunile în lib/pms/, catalog packages/shared/src/hotelcatalogus.ts; ecran Hotel.tsx. Jurnal: Hotel. Secretele (tokenurile) sunt doar în baza de date, niciodată pe ecran.
Gestionarea vinurilor cu Vinify
Setări → Gestionare vinuri (implicit oprit; oprirea păstrează totul). Vinify ține evidența pivniței, a listei de vinuri și a stocului și este sursa principală a vinurilor. Conform cerințelor POS ale Vinify, casa oferă un API prin care Vinify:
Se autentifică, prin toate cele trei metode pe care le cunoaște Vinify (administratorul activează care):
- ID API și cheie API (
X-Api-IdșiX-Api-Key, sauAuthorization: Bearer <id>:<sleutel>); - Cheie API și secret API cu o semnătură:
X-Api-Key,X-TimestampșiX-Signature= hex HMAC-SHA256(secret,<timestamp>\n<METHODE>\n<pad met query>\n<sha256 van de body>), cel mult 5 minute vechime.
Cheia și secretul sunt create de casă (afișate o singură dată); ecranele arată doar dacă sunt completate. Accesibil prin portal la https://<portaal>/vinify/<kassa-id>/... (fără port deschis în local; adresa este în Setări → Gestionare vinuri). Ce produse sunt vinuri: ce creează Vinify, plus grupele pe care le bifați. Dacă Vinify oferă o adresă la care să fie trimise vânzările, casa le trimite și singură (push, cu un token): după fiecare bon încasat și la fiecare 5 minute ce nu a reușit încă. Vinify activează integrarea cu HorecaPOS (hello@vinify.no). Totul în jurnal. A nu se confunda cu Vinify.nl, un magazin online de vinuri: acesta apare la furnizori (Comenzi la furnizori).
Introducere rapidă a adresei cu cod poștal și număr
Se activează la Setări → Local → Introducere rapidă a adresei (implicit oprit; doar pentru un local din Țările de Jos). Introduceți codul poștal și numărul (și cu literă sau adaos, de ex. 12A sau 12-1) și atingeți Caută adresa: strada, numărul, codul poștal și localitatea se completează. Dacă la acel număr sunt mai multe adrese (12, 12A, 12B), o alegeți pe cea corectă. Apoi puteți modifica totul în continuare.
- La datele localului (Setări → Local, deasupra adresei).
- La un client cu card de fidelitate: la casa de marcat, la un client nou, și la Raport → Clienți. Clienții primesc pentru asta o adresă (opțională): stradă și număr, cod poștal și localitate.
- Adresele vin din Locatieserver de la PDOK, gratuit (adresele oficiale din Țările de Jos, BAG): nu e nevoie de cont sau cheie, doar de internet. Fără internet sau pentru o adresă din Belgia, introduceți pur și simplu adresa singur.
Notificare la o versiune nouă
Se activează la Setări → Local → Notificare actualizare (implicit oprit).
- Casă actualizată: dacă serverul casei a fost actualizat în timp ce o tabletă are încă ecranele vechi deschise, sus apare „Casa a fost actualizată (versiunea …)” cu Reîmprospătează. Tableta verifică la fiecare 5 minute, când ecranul redevine vizibil și după o repornire a serverului.
- Actualizare disponibilă: dacă casa este asociată cu portalul de administrare (
PORTAAL_URL/PORTAAL_SLEUTEL) și acolo este completatNIEUWSTE_VERSIE, cine poate gestiona setările vede „Actualizare disponibilă: versiunea …” (cu explicația dinUPDATE_NOTITIE). Mai târziu ascunde mesajul pe acea tabletă până la o versiune mai nouă. Actualizarea se face ca întotdeauna cuscripts\windows\update.cmd(vezi Actualizare).
Platforme de rezervări
Rezervările de la TheFork, Formitable, Zenchef, Resengo (doar Belgia), OpenTable (doar Țările de Jos), PlanPanther, RestoManager și Aqqo (doar Țările de Jos) ajung automat în casa de marcat și pe planul sălii. Se activează din Setări → Platforme de rezervări (implicit dezactivat). Funcționează doar dacă Rezervările sunt activate.
- Țara localului: poți alege doar platforme care funcționează în țara localului (Resengo doar în Belgia, OpenTable și Aqqo doar în Țările de Jos). Serverul verifică și el acest lucru.
- Mai multe platforme simultan: poți conecta mai multe platforme în paralel, de exemplu TheFork și Formitable. Două platforme nu primesc niciodată aceeași masă în același interval orar; a doua rezervare intră atunci fără masă.
- + Conectează platformă: alege platforma și completează datele. Secretele (Client secret, cheia de callback) nu apar niciodată în prezentare; gol = se păstrează, Șterge = se elimină.
- TheFork (API B2B public): Restaurant-UUID, Client ID și Client Secret (se solicită de la TheFork). Dacă anulează casa de marcat, se anulează și la TheFork.
- Formitable, Zenchef, Resengo, OpenTable, PlanPanther, RestoManager, Aqqo: API-ul lor este doar pentru parteneri sau nu este public (PlanPanther, RestoManager și Aqqo: o conectare cu casa de marcat se face de comun acord cu ei). Evenimentele Formitable (
booking.created,.changed,.canceled,.checkin,.checkout) sunt recunoscute. - Pe planul sălii: dacă o masă din casa de marcat are același nume ca masa de pe platformă și este liberă în acel interval, rezervarea ajunge la acea masă; altfel rămâne fără masă (alege-o la sosire). O rezervare care sosește din nou este actualizată, nu dublată. În prezentare apare "via TheFork".
- Stare: dacă platforma anulează sau raportează un no-show, casa de marcat preia asta. Ce este deja sosit în casa de marcat rămâne sosit.
- Raportare înapoi (no-show-uri înapoi): completează un URL de callback (de exemplu al serviciului tău de integrare). Casa de marcat trimite fiecare modificare din casa de marcat (sosit, no-show, anulat, achitat cu sumă) ca JSON:
{ platform, id, status, statusEn, bedrag, valuta, tafel, tijdstip, gemeldOp }(suma în cenți, doar la achitat), cuAuthorization: Bearer <terugmeld-sleutel>dacă ai completat-o. Dacă nu reușește, casa de marcat reîncearcă în fiecare minut și eroarea apare la platformă. Ce a venit de la platforma însăși nu este trimis înapoi. - Rezervare de test: creează o rezervare așa cum ar trimite-o platforma.
- Ștergere: conexiunea și cheia dispar; rezervările rămân.
- Toate modificările sunt în jurnal (fără secrete).
Programe de fidelitate și recenzii
Două comutatoare separate în Setări → Puncte și recenzii (ambele implicit oprite, atunci nu se vede nimic nicăieri). Dacă le oprești, setările și ce s-a întâmplat deja rămân păstrate.
Program de fidelitate al altei platforme: clientul adună puncte la Joyn (Belgia) și/sau Piggy (Leat; Țările de Jos și Belgia). Este independent de cardul de fidelitate propriu al casei de marcat; acesta poate funcționa în paralel.
- Mai multe simultan: în Belgia, Piggy și Joyn pot fi active împreună, fiecare cu datele proprii (alege platforma, completează, Salvează; Modificare și Șterge pentru fiecare platformă). Clientul primește pentru fiecare program un cod QR propriu pe bon, un link propriu în bonul trimis pe e-mail și un buton propriu în magazinul online și adună puncte în fiecare program o dată pe comandă. Ce era deja configurat continuă să funcționeze.
- Cod QR pe bon: după încasare, sub bon apare un cod QR cu "Scanează și adună puncte la ...". În bonul trimis pe e-mail există un link, iar în magazinul online (ridicare și livrare) un buton pe pagina comenzii și un link în e-mailul de confirmare. O comandă aduce puncte o singură dată: bonul, e-mailul și magazinul online folosesc același cod unic (numărul comenzii). "Cod QR pe bonul tipărit" poate fi oprit; e-mailul și magazinul online primesc în continuare linkul.
- Piggy, metoda "Cod QR și link": completează adresa portalului tău Piggy pentru clienți, Shop UUID și Account secret (Piggy Business Dashboard). Funcționează fără internet: casa de marcat creează singură linkul.
- Piggy, metoda "Acordare imediată": completează în plus un personal access token (Piggy → Marketplace → Private App). Dacă casa de marcat trimite bonul pe e-mail și clientul cu acea adresă este deja membru, casa acordă punctele imediat; pe bon apare atunci "Puncte acordate la Piggy". Casa de marcat nu creează niciodată un membru nou; nu e membru (sau nu are e-mail) = codul QR.
- Joyn, metoda "Cod QR și link": cu partner key, shop reference și shared secret de la Joyn (se solicită la api-integration@joyn.be). Funcționează fără internet. Codul QR este valabil 2 ore.
- Joyn, metoda "Prin API-ul Joyn": cu shop API key (activează conectarea în portalul de comercianți Joyn). La încasare, casa de marcat cere un cod de puncte de la Joyn. Folosirea punctelor se face ca de obicei pe Joyn-iPad.
- Creează link de probă: verifică dacă datele sunt corecte (un link de € 10; deschide-l doar ca să te uiți).
- Se pot alege doar platformele din țara localului; datele secrete sunt doar în baza de date și nu apar niciodată pe ecran (lasă gol = păstrează).
Cere recenzii: după vizită, un singur e-mail cu un buton către Google și/sau Trustpilot.
- Câteva ore mai târziu (configurabil, implicit 3) clientul primește e-mailul, în limba bonului.
- Magazin online: la ridicare și livrare, magazinul online trimite singur e-mailul, la câteva ore după ce comanda a fost finalizată în casa de marcat, în limba clientului.
- Google: lipește linkul de recenzie din profilul companiei tale (Google → profilul companiei → Cere recenzii,
https://g.page/r/.../review) sau completează Place ID. - Trustpilot: completează domeniul localului tău (butonul duce la
trustpilot.com/evaluate/<domein>). Dacă ai la Trustpilot o adresă de invitație (Automatic Feedback Service,...@invite.trustpilot.com), completeaz-o și pe aceasta: e-mailul merge atunci în copie ascunsă (BCC) la Trustpilot, cu numele, adresa de e-mail și numărul bonului invizibile, iar Trustpilot trimite singur invitația (atunci fără buton Trustpilot propriu). Doar Trustpilot cu adresă de invitație: casa de marcat trimite e-mail doar către Trustpilot. - Nu prea des: același client (adresă de e-mail) primește cel mult o cerere pe perioadă (implicit 90 zile; 0 = de fiecare dată). Pentru asta casa de marcat păstrează doar un hash al adresei; adresa de e-mail în sine se șterge imediat ce e-mailul a fost trimis (dacă nu reușește, după trei încercări, altfel după 14 zile).
- Cod QR pe bon (opțional): și un cod QR pentru recenzie sub bonul tipărit.
- Previzualizare e-mail și Șterge e-mailurile în așteptare (adresele dispar atunci imediat). Jurnalul afișează review_gevraagd cu a***@domeniu.ro.
- Google și Trustpilot interzic recompensarea unei recenzii și solicitarea doar clienților mulțumiți ("review gating"). De aceea casa de marcat îi întreabă pe toți la fel și nu oferă nimic în schimbul unei recenzii.
- Citirea și răspunsul la recenzii din casă: vezi Gestionarea recenziilor mai jos.
Integrare cu Mailchimp și Klaviyo
Clienții cu card de fidelitate în propriul program de e-mail: la Setări → Local → Mailchimp și Klaviyo (sub marketingul prin SMS și e-mail). Nu există comutator: fără o integrare cu o listă aleasă nu se întâmplă nimic.
- Conectare: cu o cheie API (Mailchimp: Profiel → Extra → API keys; Klaviyo: o cheie privată
pk_…cu drepturi de scriere pentru Lists, Profiles, Subscriptions, Events, Campaigns și Templates). Secretul de client și cheia nu mai sunt afișate niciodată (lăsat gol = se păstrează). Apoi alegeți lista (Mailchimp: audience). - Clienți: cine și-a dat acordul pentru e-mail ajunge în listă (abonat), cu prenume, nume, telefon, zi de naștere și puncte de fidelitate (Mailchimp: câmpul
PUNTEN, creat de casa de marcat; Klaviyo: proprietateapunten). Acord retras, adresă de e-mail schimbată sau client șters: dezabonat. Se retrimite doar ce s-a schimbat. Cu o integrare, casa de marcat (și bifa "oferte" din magazinul online) cere și acordul pentru e-mail la un client nou, iar acesta poate fi modificat la Raport → Clienți, chiar și fără marketingul prin e-mail propriu. - Dezabonare: cine se dezabonează în Mailchimp sau Klaviyo nu mai are acord pentru e-mail nici în casa de marcat (jurnal: "dezabonat în Mailchimp"). Pe cei care s-au dezabonat singuri, casa de marcat nu îi reabonează.
- Comenzi: fiecare bon achitat al unui client din listă este trimis ca eveniment (Mailchimp:
bestelling, cu suma, numărul bonului și cantitatea; Klaviyo:Placed Order, cu valoarea în euro). Cu acestea creați în programul de e-mail e-mailuri automate, de ex. după prima comandă sau când cineva nu a mai venit de o lună. Bonurile de dinainte de alegerea listei nu sunt trimise. - Promoții: la Raport → Marketing puteți trimite o promoție și prin Mailchimp sau Klaviyo (vezi Marketing prin SMS și e-mail); casa de marcat creează atunci campania acolo și o trimite.
- Actualizare: la fiecare 5 minute sau cu Actualizează acum. Deconectare: dispare din casa de marcat; în Mailchimp și Klaviyo rămâne totul. Cheile sunt stocate în baza de date (incluse în backup, dar nu în exportul configurației).
Cod: lib/mailinglijst.ts, routes/mailinglijst.ts și MailingKoppelingen.tsx.
BI și export de date
Datele de vânzări către Power BI, Looker Studio, Excel, Google Sheets, Tableau, Qlik Sense, Metabase, un serviciu BI (de exemplu YourBI, BI4Horeca sau Moore DRV) sau un depozit de date propriu. Se activează din Setări → BI și export de date (implicit oprit). Doar citire: printr-o integrare nu se poate modifica nimic în casă. Fără date ale clienților.
- Date: bonuri (inclusiv bonuri de credit), produse vândute (rânduri de bon), plăți, încasări pe zi, încasări pe oră, stornări, produse, angajați (fără PIN) și ore lucrate. Sume în euro cu punct ca separator zecimal, ore în ora locală a localului.
- + Integrare: alegeți programul și modul. Fiecare program suportă unul sau mai multe moduri; puteți avea mai multe integrări în același timp (și pentru același program).
- Programul preia singur datele (API): casa oferă o singură dată o cheie doar pentru citire. Perioadă cu
?van=&tot=(AAAA-LL-ZZ) sau o adresă fixă cu?periode=(vandaag, gisteren, 7d, 30d, 90d, 365d, week, maand, vorigemaand, jaar); cel mult 366 zile, cel mult 200.000 rânduri. Cheia înAuthorization: Bearer,X-Sleutelsau?sleutel=. - Prin portal: dacă casa este conectată la portalul clientului, aceeași adresă funcționează și din afara localului, fără a deschide un port:
https://<portaal>/bi/<kassa-id>/<gegevens>?periode=90d&formaat=csv&sleutel=.... Astfel serviciul Power BI actualizează datele după program (fără gateway), iar Google Sheets le poate prelua cu=IMPORTDATA("...")(și sursa pentru Looker Studio). Casa afișează adresa la integrare. - Prezentare de lanț prin portalul clienților (mai multe localuri): o adresă și o cheie pentru toate casele tale împreună. În fiecare casă care trebuie să participe, activează Prezentare de lanț prin portalul clienților (sub comutatorul BI) și creează o cheie în portalul clienților la Casele mele → BI pentru toate localurile tale. Apoi:
https://<portaal>/bi/keten/<gegevens>?periode=90d&formaat=csv&sleutel=hpk_.... Portalul preia datele de la fiecare casă și le combină, cukassaIdșizaakpe fiecare rând. Casele care sunt offline sau nu participă apar înontbrekend(JSON) și în antetulX-Ontbrekend. Casa în sine nu are nevoie de o cheie proprie pentru asta; dezactivarea în casă sau în portalul clienților o oprește. - Cu un token, acesta este trimis ca
Authorization: Bearerși există o semnătură înX-HorecaPOS-Handtekening(sha256=HMAC al conținutului). Dacă nu reușește, casa reîncearcă în fiecare minut; nimic nu se trimite de două ori. Cu începând cu trimite și bonuri mai vechi. - Casa livrează fișiere: zilnic (la o oră stabilită, pentru ziua precedentă; zilele ratate sunt recuperate) sau din oră în oră (azi până acum), ca CSV (virgulă sau punct și virgulă pentru Excel olandez) sau JSON, într-un folder pe calculatorul casei (de exemplu un folder OneDrive sau SharePoint pentru Power BI sau Excel), pe un server FTP(S) sau SFTP ori prin e-mail. Nume de fișiere:
horecapos_<gegevens>_<datum>.csv. - Trimite test (push) și Exportă acum (fișier) la integrare.
- Descărcare manuală: alegeți datele, perioada și formatul.
- Șablon Power BI (
.pbit): un raport gata făcut pentru Power BI Desktop, cu Descărcare șablon Power BI la BI și export de date. Creați mai întâi o conexiune API (Power BI). În model: un tabel pe set de date cu tipurile corecte, un calendar (an, lună, săptămână, zi a săptămânii), relații (dată → calendar, rânduri de bon → produse, ore lucrate → angajați) și măsuri (vânzări cu și fără TVA, TVA, bacșiș, bonuri, clienți, medie pe bon și pe client, cantitate vândută, vânzări produse, plătit, storno-uri, ore lucrate, vânzări pe oră lucrată). Trei pagini: Prezentare generală (indicatori-cheie, vânzări pe zi, zi a săptămânii și oră, metode de plată), Produse (pe grupă și pe produs) și Personal (ore și vânzări pe angajat). Prin portal, serviciul Power BI îl actualizează și după program. - Secretele (token, parolă, cheie) nu apar niciodată în prezentare; gol = se păstrează, Șterge = se elimină. Totul apare în jurnal (fără secrete).
Salarizare și planificare
Cu Pontaj intrare/ieșire pornit (Setări → Local), la Setări → Program de lucru, jos, se află Salarizare și planificare (dreptul Gestionare setări), în două blocuri separate. Dacă pontajul este oprit, nu există ore: atunci doar blocul Planificarea personalului (vânzările, live sau ca fișier de vânzări) se află jos la Setări → Contabilitate, sub titlul Vânzări către planificare:
- Salarizare (payroll): alegeți programul de salarizare sau (Belgia) secretariatul social, completați câmpurile acestuia și, pentru fiecare angajat, numărul de marcă din acel program. Apoi creați pentru o perioadă fișierul cu orele lucrate (ture închise, pe angajat pe ziua pontării la intrare) și vânzările pe angajat (fără TVA, ce a încasat el/ea): gata de import pentru Loket.nl (Variabele gegevens, total pe angajat pe perioadă, rând de antet
aanslnr;persnr;ploeg;<looncomponent>) și SD Worx Belgia (Tijdsregistratie, poziții fixe, pe angajat pe zi), altfel lista de ore (CSV: Datum; Personeelsnummer; Naam; Uren; Omzet excl. btw). Angajații fără număr de marcă nu apar în fișierul pentru Loket sau SD Worx; casa de marcat arată cine sunt. - Planificarea personalului (WFM): alegeți sistemul de planificare. O nouă trimitere suprascrie datele. În plus, lista de vânzări (CSV pe zi și oră, fără și cu TVA) și pentru Strobbo fișierul Excel pentru Importeer omzet.
- Doar programele care funcționează în țara localului, pe grupe și în ordine alfabetică; serverul refuză un program din altă țară (400).
- Cheile și token-urile nu apar niciodată pe ecran.
- Afectează contabilitatea: costurile salariale le înregistrează în contabilitate programul de salarizare, vânzările le înregistrează casa de marcat (Setări → Contabilitate). AFAS Payroll și Exact Online Loon se află în același mediu ca și contabilitatea din AFAS și Exact.
- Pe copia casei de marcat din portal acest lucru nu este posibil (îl face casa de marcat din local).
- La o serie de programe API-ul nu este public sau este doar pentru parteneri (printre altele Loket, Nmbrs, Nostradamus, Employes, Shyfter, Planday, Eitje): acestea apar la cerere; până atunci, fișierul. Structura pentru SD Worx și Strobbo provine din documentația lor: cereți verificarea primului import.
| Program | NL | BE | Live | Fișier | Observație |
|---|---|---|---|---|---|
| Software de salarizare și furnizori de servicii de salarizare | |||||
| ADP | ✓ | ✓ | la cerere | Listă de ore pe angajat și zi (CSV) | Conectare prin ADP (la cerere); până atunci, lista de ore pe angajat și zi. |
| AFAS Payroll | ✓ | – | la cerere | Listă de ore pe angajat și zi (CSV) | Salarizare în AFAS Profit (același mediu ca și contabilitatea în AFAS); conectare la cerere, până atunci lista de ore. |
| BCS HR | ✓ | – | la cerere | Listă de ore pe angajat și zi (CSV) | Conectare prin BCS (la cerere); până atunci, lista de ore. |
| Buddee | ✓ | – | la cerere | Listă de ore pe angajat și zi (CSV) | Software de resurse umane și salarizare; conectare la cerere, până atunci, lista de ore pe angajat și zi. |
| Employes | ✓ | – | la cerere | Listă de ore pe angajat și zi (CSV) | Employes are un API pentru orele lucrate (token-ul clientului); conectarea urmează după o înțelegere cu Employes. Până atunci, lista de ore. |
| Exact Online Loon | ✓ | – | la cerere | Listă de ore pe angajat și zi (CSV) | Salarizare în Exact Online (același mediu ca și contabilitatea în Exact); conectare la cerere, până atunci lista de ore. |
| Humanwave | ✓ | – | la cerere | Listă de ore pe angajat și zi (CSV) | Conectare prin Humanwave (la cerere); până atunci, lista de ore. |
| Loket.nl | ✓ | – | la cerere | Loket.nl Variabele gegevens (CSV), Listă de ore pe angajat și zi (CSV) | Fișier pentru Werkgever → Collectieve mutaties → Importeren → Variabele gegevens (ore pe angajat pentru perioada respectivă). Live prin API-ul Loket după înregistrarea la Loket. |
| Nmbrs | ✓ | – | la cerere | Listă de ore pe angajat și zi (CSV) | Listă de ore pe angajat și zi, de preluat în Nmbrs. Live prin API-ul Nmbrs după înregistrarea unei aplicații la Nmbrs. |
| Salar (Van Winckel) | ✓ | – | – | Listă de ore pe angajat și zi (CSV) | Listă de ore pe angajat și zi pentru biroul de contabilitate; formatul de import al Salar nu este public. |
| Secretariate sociale | |||||
| Acerta | – | ✓ | la cerere | Listă de ore pe angajat și zi (CSV) | Secretariat social: structura fișierului de prestații o primiți de la Acerta; până atunci, lista de ore. |
| Group S | – | ✓ | la cerere | Listă de ore pe angajat și zi (CSV) | Secretariat social: structura fișierului de prestații o primiți de la Group S; până atunci, lista de ore. |
| Liantis | – | ✓ | la cerere | Listă de ore pe angajat și zi (CSV) | Secretariat social cu un API pe care Liantis îl deschide pentru fiecare companie; până atunci, lista de ore. |
| Partena Professional | – | ✓ | la cerere | Listă de ore pe angajat și zi (CSV) | Secretariat social: structura fișierului de prestații o primiți de la Partena; până atunci, lista de ore. |
| SD Worx | ✓ | ✓ | – | SD Worx Tijdsregistratie (TXT), Listă de ore pe angajat și zi (CSV) | Belgia: fișierul Tijdsregistratie (poziții fixe, pe angajat pe zi) pentru "Tijdsregistratie importeren". Țările de Jos: lista de ore. |
| Securex | – | ✓ | la cerere | Listă de ore pe angajat și zi (CSV) | Secretariat social: conectările se fac prin parteneri; până atunci, lista de ore. |
| Planificare și evidența orelor | |||||
| Book'u | – | ✓ | la cerere | Vânzări pe zi și oră (CSV) | Book'u face declarațiile Dimona; o conectare cu casa de marcat se face la cerere. Până atunci, lista de vânzări. |
| Deputy | ✓ | ✓ | ✓ | Vânzări pe zi și oră (CSV) | Live: vânzările pe oră merg în fiecare oră către Deputy (Sales). Un token permanent îl creați în Deputy, la conexiunile API. |
| Dyflexis | ✓ | – | ✓ | Vânzări pe zi și oră (CSV) | Live: vânzările pe oră merg în fiecare oră către Dyflexis (information streams). Token-ul API îl primiți prin Dyflexis. |
| Eitje | ✓ | – | la cerere | Vânzări pe zi și oră (CSV) | Eitje se conectează prin programul său de parteneri; până atunci, lista de vânzări pe zi și oră. |
| Exact Horeko | ✓ | – | la cerere | Vânzări pe zi și oră (CSV) | Conectare prin Horeko (la cerere); până atunci, lista de vânzări. |
| Fooks | ✓ | – | la cerere | Vânzări pe zi și oră (CSV) | Fooks construiește singur conectările cu casele de marcat; până atunci, lista de vânzări pe zi și oră. |
| L1NDA | ✓ | – | la cerere | Vânzări pe zi și oră (CSV) | L1NDA construiește conectări cu casele de marcat împreună cu parteneri; până atunci, lista de vânzări pe zi și oră. |
| Mr. Einstein | ✓ | – | la cerere | Vânzări pe zi și oră (CSV) | Resurse umane, program de lucru și costuri salariale pentru horeca; Mr. Einstein construiește conectări cu casele de marcat împreună cu furnizorul casei de marcat (cerere prin mreinstein.nl/contact). Până atunci, lista de vânzări pe zi și oră. |
| Nostradamus | ✓ | ✓ | la cerere | Vânzări pe zi și oră (CSV) | Nostradamus preia vânzările prin propria interfață pentru case de marcat (token API și domeniul localului, la cerere la Nostradamus); până atunci, lista vânzărilor pe zi și oră. |
| Plan-Me | – | ✓ | la cerere | Vânzări pe zi și oră (CSV) | Plan-Me face declarațiile Dimona; o conectare cu casa de marcat se face la cerere. Până atunci, lista de vânzări. |
| Planday | ✓ | ✓ | la cerere | Vânzări pe zi și oră (CSV) | Planday are un API deschis pentru sistemele de casă de marcat; conectarea urmează după o înțelegere. Până atunci, lista de vânzări. |
| Shiftbase | ✓ | – | ✓ | Vânzări pe zi și oră (CSV) | Live: vânzările pe zi merg în fiecare oră în jurnalul departamentului din Shiftbase. Cheia API o creați în Shiftbase, la App center. |
| Shyfter | – | ✓ | la cerere | Vânzări pe zi și oră (CSV) | Shyfter face declarațiile Dimona și primește vânzările pe zi prin API-ul său; conectarea urmează după o înțelegere cu Shyfter. Până atunci, lista de vânzări. |
| Strobbo | ✓ | ✓ | – | Import vânzări Strobbo (Excel), Vânzări pe zi și oră (CSV) | Fișier Excel pentru Planning → € → Importeer omzet (vânzări pe zi pe loc de muncă). |
| Tamigo | ✓ | ✓ | la cerere | Vânzări pe zi și oră (CSV) | Conectare prin Tamigo (la cerere); până atunci, lista de vânzări. |
| Werktijden.nl | ✓ | – | – | Vânzări pe zi și oră (CSV), Listă de ore pe angajat și zi (CSV) | Werktijden.nl înregistrează singur orele și (încă) nu primește vânzări prin API-ul său; listele servesc pentru comparație. |
| XPS Logic | ✓ | – | la cerere | Vânzări pe zi și oră (CSV) | XPS Logic se adresează personalului flexibil și temporar; o conectare se face la cerere. Până atunci, lista de vânzări. |
Cerințe legale în Belgia și Țările de Jos
Ce cere legea și ce face HorecaPOS în acest sens (cereți contabilului să confirme ce se aplică localului dvs.):
| Țară | Cerință | HorecaPOS |
|---|---|---|
| Belgia | Sistem de casă de marcat înregistrat (GKS 2.0) cu cutie neagră pentru localurile horeca care trebuie să îl respecte (printre altele la vânzări din mese de peste € 25.000 pe an, fără TVA) | conectare cu cutia neagră (FDM), datele obligatorii pe bon și contoarele la raportul Z (țara Belgia la Setări → Local, FDM_API_KEY și FDM_TERMINAL_ID); sus la Setări → Local alegeți dacă localul este obligat la GKS: Da = încasare doar cu o cutie neagră funcțională, Nu = fără, cu o declarație a administratorului (în fiecare an din nou); cât timp nu s-a ales nimic, nu se poate încasa. Casa numără vânzările din mâncare și avertizează peste 25.000 € |
| Belgia | Facturare electronică prin Peppol: din 1 ianuarie 2026, facturile între companiile belgiene plătitoare de TVA trebuie să fie obligatoriu electronice structurate (UBL, Peppol BIS 3); bonurile de casă către consumatori nu intră sub această obligație | export al vânzărilor zilnice ca UBL conform Peppol BIS Billing 3.0 pentru programul de contabilitate (Export contabilitate); și facturi pe baza unui bon pentru clienți persoane juridice (Setări → Facturi): UBL conform Peppol BIS Billing 3.0 plus o factură de tipărit, trimitere prin e-mail, prin Billit în rețeaua Peppol, la o adresă proprie sau descărcare (vezi Facturi pentru clienți persoane juridice) |
| Belgia | TVA horeca din 1 martie 2026: mâncare la pachet și băuturi fără alcool 12% (la local și la pachet), alcool 21%, mâncăruri pe care clientul le prepară singur (fondue, gourmet) 6% | Asistent TVA (Setări → Legi și reglementări): pentru fiecare produs tipul, cota corectă imediat sau de la o dată; descrierile cotelor A/B/C au fost actualizate |
| Țările de Jos | Alcoholwet: fără alcool pentru tinerii sub 18 ani, nici la vânzarea online și livrare (verificarea vârstei la predare) | Verificare vârstă: produse cu alcool; în magazinul online clientul confirmă singur 18+ (căsuță nebifată în prealabil), cu mesajul că vârsta se verifică la predare; "18+" pe bonul de lucru, bonul de livrare și bonul fiscal |
| Țările de Jos | Pahare și caserole de unică folosință (SUP): din 2024 un preț separat și vizibil pentru ambalajele de plastic de unică folosință la pachet și livrare | Taxă ambalaj per produs, ca linie separată pe bon (TVA-ul produsului) și separat în vânzări |
| Țările de Jos | Garanție pe doze și sticle de plastic | Garanție per produs (€ 0,15 / € 0,25), linie separată fără TVA la pachet și livrare, separat în vânzări |
| Țările de Jos | Plata în numerar: din 1 ianuarie 2026 nu se mai acceptă € 3.000 sau mai mult în numerar pentru bunuri | Avertizare la pachet și livrare (și la automatul de numerar); se poate confirma, se înregistrează în jurnal |
| Țările de Jos și Belgia | Modificare TVA: o cotă sau un produs primește de la o anumită dată alt procent de TVA | Programare modificare TVA: casa o execută chiar în ziua respectivă (în Belgia per produs, literele A/B/C/D sunt fixe) |
| Țările de Jos | Cazare (înnoptări) 21% din 1 ianuarie 2026 | cotă de TVA configurabilă per produs |
| UE | Directiva Omnibus: un preț tăiat "de la" poate fi doar cel mai mic preț din ultimele 30 zile | magazinul online taie prețul doar față de cel mai mic preț din 30 zile (casa păstrează istoricul prețurilor; happy hour-urile care revin săptămânal sunt luate în calcul) |
| UE | European Accessibility Act (din 28 iunie 2025): magazine online accesibile (WCAG 2.1 AA) | magazinul online funcționează cu tastatura și cititorul de ecran (link "Salt la conținut", focus vizibil, etichete) și are o declarație de accesibilitate (link în subsol) |
| Țările de Jos | XML Auditfile Financieel (XAF): standardul administrației fiscale olandeze (Belastingdienst) pentru transferul (unei părți din) contabilitate; XAF 4.0 este obligatoriu din 2027 | export ca XAF 4.0 (Export contabilitate) |
| Țările de Jos | Sistem de încasare fiabil: păstrarea datelor casei de marcat (toate bonurile, corecțiile și evenimentele) și posibilitatea de a le furniza digital la un control; pentru aceasta, Belastingdienst recomandă XML Auditfile Afrekensystemen (XAA) | export ca XAA 3.2 (Raport → Vânzări pe perioadă → Fișier de audit casă), opțional semnat cu certificatul furnizorului |
| Belgia | Înregistrarea prezenței la un sistem de casă de marcat înregistrat: înregistrarea începutului și sfârșitului timpului de lucru al angajaților în sistemul de casă de marcat | Pontajul intrare/ieșire (Setări → Local; Obligatoriu = mai întâi pontare intrare) este înregistrat în cutia neagră |
| Belgia | Dimona: fiecare angajare (inclusiv flexi-jobs și studenți) se declară la RSZ înainte de începere | acest lucru îl face secretariatul social sau instrumentul de planificare (ex. Shyfter, Book'u, Plan-Me); HorecaPOS furnizează orele lucrate și vânzările (Setări → Program de lucru → Salarizare și planificare) |
| Țările de Jos | Evidența timpului de lucru și de odihnă (Legea privind timpul de lucru, Arbeidstijdenwet) | Pontaj intrare/ieșire cu orele lucrate pe angajat, modificabile de administrator (cu jurnal), și lista de ore pentru programul de salarizare |
| Țările de Jos și Belgia | HACCP / siguranță alimentară: înregistrarea temperaturilor (răcire, congelator, menținere la cald, preparare termică, răcire rapidă, recepție) și a curățeniei; NL Hygiënecode voor de Horeca (NVWA), BE autocontrol FAVV (ghidul G-023) | Înregistrare HACCP în casă (Setări → Legi și reglementări, butonul HACCP sus): puncte de măsurare cu limite, sarcini de curățenie și control, acțiune corectivă obligatorie la o abatere, nemodificabile, raport cu înregistrările omise ca CSV sau tipărit (vezi Înregistrare HACCP) |
| Țările de Jos și Belgia | Obligația de păstrare (NL 7 ani, BE 10 ani) | bonurile, rapoartele Z și jurnalul de evenimente se află în baza de date și în copiile de rezervă; jurnalul de evenimente nu poate fi modificat sau șters din casa de marcat |
Legi și reglementări
Setări → Legi și reglementări (administrator; asistentul TVA și cu dreptul Gestionare produse). Totul este dezactivat implicit; fără aceste setări casa funcționează ca întotdeauna.
- Verificare vârstă alcool (18+): la Produse bifați Conține alcool (sau folosiți asistentul TVA). La pachet și livrare cu alcool apare "18+" pe bonul de lucru, pe bonul fiscal și în ecranul de comenzi. În magazinul online clientul confirmă singur că are 18 ani sau mai mult (căsuța nu este bifată în prealabil) și vede că vârsta se verifică la predare.
- Taxă ambalaj (Țările de Jos): o sumă per produs (prețuri orientative: pahar € 0,25, caserolă pentru masă € 0,50, caserolă mică € 0,05). La pachet și livrare casa adaugă singură pe bon o linie "Taxă ambalaj" (cu TVA-ul produsului); aceasta urmează automat produsele (baza de date o păstrează, și după anulare, mutare sau alt tip de comandă) și apare separat în vânzări. La local nu se aplică taxa. Thuisbezorgd.nl și magazinul online percep propria taxă.
- Garanție (Țările de Jos): per produs (€ 0,15 doză/sticlă, € 0,25 sticlă mare), linie "Garanție" fără TVA, doar la pachet și livrare.
- Numerar € 3.000 sau mai mult (Țările de Jos, interzis pentru bunuri din 1-1-2026): la pachet și livrare apare un mesaj la încasare și la automatul de numerar; angajatul poate confirma (de ex. catering ca serviciu), iar acest lucru se înregistrează în jurnal. Mâncarea și băutura la local sunt un serviciu: fără mesaj.
- Asistent TVA: pentru fiecare produs tipul (masă, băutură fără alcool, băutură cu alcool, alimente fără preparare, altele; la început o estimare pe baza numelui și a grupei). Casa afișează cota corectă la local și la pachet (Belgia din 1-3-2026: mâncare și răcoritoare 12%, și la pachet; alcool 21%; alimente fără preparare 6%. Țările de Jos: 9% și 21%) și o aplică, imediat sau de la o dată.
- Programare modificare TVA: un produs la altă cotă sau (doar în Țările de Jos) o cotă cu un procent nou, de la o anumită dată. Casa o execută singură în ziua respectivă (verificare la fiecare sfert de oră și la pornire).
Facturile (obligatorii în Belgia între firme) se găsesc la Facturi pentru clienți persoane juridice. De făcut: GKS 2.0, de întrebat cum stă certificarea (vezi docs/backlog-concurrenten.md).
Facturi pentru clienți persoane juridice
Setări → Facturi (administrator; implicit dezactivat): activați Facturi pentru clienți persoane juridice (UBL / Peppol). Dedesubt apar, când este activat, Plata pe factură, Date pe factură, Servicii Peppol, Conexiune bancară (cu plata pe factură) și lista cu toate facturile. În Belgia, facturarea electronică între firme este obligatorie din 1-1-2026.
- Facturi pentru clienți business: Bonuri → alege bonul → Factură. Completează clientul (sau alege unul anterior); casa creează o factură numerotată (de ex. F2026-0001, crescător pe an), ca UBL conform Peppol BIS Billing 3.0 și ca factură de tipărit sau de salvat ca PDF. Trimitere prin e-mail (ambele ca atașament, opțional o copie către contabil), prin Billit către rețeaua Peppol (
BILLIT_API_KEY,BILLIT_PARTY_ID), prin Storecove (STORECOVE_API_KEY,STORECOVE_LEGAL_ENTITY_ID; destinatarul rezultă din Peppol-ID-ul clientului, de ex. 0208 → BE:EN, 0106 → NL:KVK, altfel prin e-mail via Storecove) sau prin Banqup de la Unifiedpost (BANQUP_CLIENT_ID,BANQUP_CLIENT_SECRET,BANQUP_SPACE_ID;BANQUP_SANDBOX=1pentru mediul de test; Banqup verifică UBL-ul și îl livrează singur), către o adresă proprie (FACTUUR_HTTP_URL, de ex. un program de contabilitate sau alt serviciu Peppol) sau descărcare. O factură per bon; bonul este deja plătit, deci "achitat". Număr KvK/de întreprindere, IBAN, Peppol-ID, prefix și termen de plată la Date pe factură. Toate facturile în partea de jos a filei (drept Vânzări pe perioadă). - Cheile, secretele și antetele nu sunt afișate niciodată (doar "completat"; lăsați gol = se păstrează, Șterge = eliminat) și nu sunt trecute în jurnal (doar ce câmpuri s-au modificat). Sunt stocate în baza de date (
vestiging.peppol_gegevens): incluse în backupuri, dar nu în exportul configurației.
Chioșc self-service
Oaspeții comandă singuri la un totem sau o tabletă, ca la un fast-food, și plătesc la casă sau cu cardul la chioșc. Ecranele de comandă fac parte din casa de marcat însăși, așa că meniul, prețurile, opțiunile, meniurile, happy hours, intervalele zilei, fotografiile, alergenii, limbile și bonul vin din casă și nu trebuie configurate în altă parte. Pe chioșc rulează aplicația PinPortal Kiosk 2 (Android, inclusiv Sunmi, și Windows, Linux și macOS), care afișează pagina și tipărește bonul. Oprit implicit.
Pornire și configurare (administrator): Setări → Local → Ecrane și utilizare → Chioșc self-service.
- Alege ce poate alege clientul: Mănânc aici și/sau La pachet (la pachet folosește prețul la pachet și cota TVA pentru la pachet, dacă sunt setate).
- Textul de bun venit, după câte secunde fără atingere revine chioșcul la început (coșul se golește) și ce grupe de produse sunt pe chioșc (nimic bifat = toate).
- Mai dorești ceva?: bifează grupe de produse (de ex. băuturi, deserturi); la coș chioșcul propune atunci câteva produse din ele.
- Plata, pentru fiecare chioșc (vezi Adăugarea și conectarea unui chioșc):
- La casă (implicit, ca la vechiul chioșc): oaspetele comandă, primește un număr de ridicare și plătește la casă. Nu e nevoie de terminal de plată la chioșc.
- Cu cardul la chioșc: oaspetele plătește la terminalul de plată de lângă chioșc.
- Oaspetele alege: la casă sau cu cardul. Dacă chioșcul nu are terminal de plată, se plătește la casă.
- La bucătărie (la plata la casă): imediat după comanda la chioșc (implicit), sau abia după ce s-a plătit la casă.
- Bon: la imprimanta chioșcului (implicit), la imprimanta de bonuri a casei, sau fără bon (doar numărul pe ecran). La plata la casă, chioșcul tipărește un bilet cu numărul și neplătit încă; bonul fiscal vine la încasarea la casă.
- Starea comenzii pe telefon (opțional, oprit implicit): pe bonul chioșcului și pe ecranul final apare un cod QR. Oaspetele îl scanează, își vede numărul și starea (comandată, în pregătire, gata) și primește o notificare când comanda e gata. Funcționează prin portalul de administrare, deci casa trebuie să fie conectată la el.
- Alcoolul și produsele la kilogram nu sunt niciodată pe chioșc: fără personal nu se poate verifica vârsta și nu există cântar.
- Scaner de coduri de bare (opțional, implicit totul oprit): bifați ce are voie să facă o scanare pe chioșc:
- un produs în coș (codul produsului);
- un cod de reducere;
- un card de fidelitate (oaspetele strânge puncte);
- un card cadou sau card preplătit ca plată. Dacă soldul ajunge, comanda este plătită imediat. Altfel cardul plătește o parte, iar oaspetele plătește restul cu cardul sau la casă (lucru permis atunci și pe un chioșc doar cu plată cu cardul). După o astfel de plată parțială, oaspetele nu mai poate anula; comanda apare în casă ca Chioșc … · număr.
Scanerul propriu-zis se setează pe chioșc: în aplicația PinPortal Kiosk 2, la administrare → Scaner de coduri de bare (ca tastatură, scanerul încorporat sau un port COM), cu un test scaner. Un scaner care funcționează ca tastatură merge și fără aplicație.
- Reîncarcă soldul (opțional, implicit oprit; funcționează doar dacă Sold reîncărcabil este pornit): pe ecranul de start al chioșcului apare atunci Reîncarcă soldul. Oaspetele își scanează cardul sau cardul cadou (sau tastează codul), vede soldul și alege o sumă. Sumele le setați dumneavoastră (de la 1 la 6, implicit € 10, € 20 și € 50). Plata se face cum este setat la chioșc: cu cardul sau la casă cu numărul de ridicare. După încasare, suma este în sold. O astfel de reîncărcare nu merge la bucătărie, nu apare pe ecranul de apelare și nu primește cod QR. Și aici se aplică soldul maxim din setarea Sold reîncărcabil.
- Pe camera mea (conexiune hotel, implicit oprită; Setări → Hotel → Autoservire): la coș apare atunci Trece pe camera mea. Oaspetele hotelului introduce numărul camerei și numele de familie; dacă se potrivește cu un oaspete care stă acum în acea cameră, comanda merge la bucătărie și apare plătită pe cameră (vezi Software hotelier: pune pe cameră).
- Belgia (cutia neagră): ce nu a fost încă testat cu cutia neagră este oprit automat la chioșc (card cadou sau credit ca plată, reîncărcare, cod de reducere, meniuri, opțiuni cu supliment de preț, happy hour), la fel ca la casă.
Adăugarea și conectarea unui chioșc
- La Chioșcuri introdu un nume (de ex. Chioșc intrare) și alege Adaugă chioșc. Primești un cod de conectare de 6 cifre (valabil 30 minute).
- Alege la chioșc cum plătește oaspetele: implicit la casă. Dacă e un chioșc cu terminal de plată, alege cu cardul sau oaspetele alege și alege terminalul de plată al acestui chioșc (din Setări → Plăți).
- Deschide pe chioșc pagina chioșcului:
- în local: în aplicație, la administrare → Vast adres, adresa afișată la setare, de ex.
http://192.168.1.20:3000/kiosk; - sau prin portalul de administrare (https, și dacă chioșcul nu e în aceeași rețea): asociază adresa chioșcului afișată la setare cu codul de chioșc al aplicației, ca la vechiul chioșc.
- în local: în aplicație, la administrare → Vast adres, adresa afișată la setare, de ex.
- Introdu codul de conectare pe chioșc. Gata: chioșcul își ține minte propria cheie. Conectează din nou dă un cod nou; Elimină îl deconectează.
La fiecare chioșc se vede dacă este online.
Cum comandă clientul
- Ecran de start cu textul de bun venit; clientul își alege limba (toate limbile casei) și atinge pentru a comanda.
- Mănânc aici sau la pachet.
- Meniul pe grupe de produse, cu fotografii, prețul (cu happy hour), alergeni și ce s-a epuizat. Produsele cu opțiuni sau un meniu deschid fereastra de alegere.
- Coșul: modificarea cantităților și eventual Mai dorești ceva?.
- Comandă (plata la casă): oaspetele își vede numărul de ridicare mare pe ecran împreună cu suma, primește biletul și plătește la casă. În casă comanda este deschisă ca Chioșc Intrare · 42 (numărul spus de oaspete); se încasează ca de obicei. Apoi apare ca plătită pe ecranul de apel și merge la bucătărie dacă asta trebuia să se întâmple abia după plată.
- Plata cu cardul: casa trimite suma la terminalul de plată al acestui chioșc (aceeași conexiune de plată ca la casă). Dacă nu reușește, oaspetele poate încerca din nou sau anula (sau, dacă poate alege, plăti totuși la casă). Abia după ce plata a reușit, comanda merge la bucătărie și este încasată. Oaspetele își vede numărul de ridicare mare pe ecran și primește bonul.
- După câteva secunde, chioșcul revine la început.
La defecțiune: notificare și mod de urgență (în aplicația chioșcului, administrare → Bij storing; implicit dezactivat). Dacă chioșcul nu poate ajunge la casă, afișează Even gesloten. Două extra:
- Teams, Slack, Discord, ntfy, Home Assistant, Make sau Zapier), și un mesaj hersteld când funcționează din nou. Cu Testmelding sturen verifici adresa.
- Mod de urgență: chioșcul salvează un meniu simplu, transmis de pagina chioșcului: produse fără opțiuni sau meniuri, cu prețul pentru consum pe loc (sau la pachet, dacă aceasta e singura opțiune).
- Dacă casa lipsește o vreme (implicit 60 secunde), oaspetele comandă din acest meniu.
- Oaspetele plătește cu cardul sau la tejghea. Plata cu cardul e posibilă doar dacă Pinbetaling este activat în aplicație.
- Se tipăresc două bonuri de urgență: unul pentru oaspete (N1, N2 …) și unul pentru tejghea/bucătărie. Pe ele scrie că nu sunt bon fiscal.
- Când casa revine, pagina chioșcului pune comenzile de urgență în casă ca Nood N… <chioșc>. Ele nu merg la bucătărie (care avea deja bonul de urgență) și nu apar pe ecranul de apelare.
- Plătit cu cardul și aceeași sumă ca în casă: încasat ca Plată card manuală. Altfel (plata la tejghea sau o altă sumă), comanda rămâne deschisă pentru ospătari.
- Totul apare în jurnal.
- Belgia: cu sistemul de casă de marcat înregistrat (GKS, cutie neagră), fiecare vânzare trebuie să treacă imediat prin casă și prin FDM. Modul de urgență probabil nu este permis atunci; verifică mai întâi. În Belgia, aplicația chioșcului îl activează doar după o confirmare suplimentară, iar casa afișează un avertisment la chioșc.
În casă, o comandă de la chioșc este o comandă obișnuită (la pachet sau pe loc, cu numele Chioșc Intrare) pe numele angajatului Kiosk. Casa îl creează singură; nimeni nu se poate autentifica cu el. Nu-l seta ca inactiv, altfel chioșcul nu poate comanda. Comenzile de la chioșc apar în rapoarte, în Bonuri și pe ecranul de apel. O comandă nefinalizată la chioșc (necomandată sau neplătită cu cardul) expiră singură după 30 minute.
Plata cu cardul în mod test (Setări → Plăți)? Atunci chioșcul nu încasează cu adevărat; util pentru probă. Fără internet nu se poate plăti cu cardul; chioșcul spune atunci că se poate comanda la tejghea.
Defecțiune: dacă nu se poate ajunge la casă, aplicația chioșcului afișează "Închis temporar" și continuă singură. Dacă chioșcul rulează prin portalul de administrare și cade internetul, aplicația poate trece pe casa din rețeaua locală (în aplicație: administrare → Extensii → La defecțiune, folosește rețeaua locală); adresa o transmite chiar chioșcul.
Oprire: chioșcul arată că este închis pentru moment. Chioșcurile și setările rămân salvate. În jurnal apar pornirea/oprirea, setările, chioșcurile adăugate și eliminate, conectările și comenzile anulate.
Panou de meniu digital
Meniul cu prețuri pe un televizor (sau alt monitor cu browser), direct din casă. Implicit oprit; se activează din Setări → Local → Ecrane și utilizare → Panou de meniu digital. Apoi deschideți pe televizor http://<kassaserver>:3000/menubord (sau butonul Pe un ecran separat / Pe o tabletă sau un telefon cu codul QR). Fără autentificare și fără asociere.
- Pe categorie, produsele cu preț, în ordinea din casă. Alegeți ce categorii (și în ce ordine), 1 până la 4 coloane, întunecat sau luminos, un antet propriu (gol = numele localului), fotografiile produselor și alergenii.
- Mereu corect: panoul cere meniul la fiecare 10 secunde (și imediat la o modificare), așa că un produs epuizat (tăiat cu Epuizat sau scos de pe panou), un stoc gol, un happy hour (preț promoțional cu prețul normal tăiat, iar sus numele și ora de sfârșit) și perioadele de meniu (doar ce se vinde acum) apar singure corect.
- Dacă nu încape totul pe ecran, paginile se succed (implicit la fiecare 12 secunde, reglabil de la 5 la 120).
Personal și coduri PIN
Setări → Personal (doar administratorul): adăugare angajați, modificare nume, rol și PIN, și dezactivare.
- Roluri: ospătar (comandă, încasare, raport X), manager (în plus reducere, retur, închidere zi, sertar de bani și jurnal) și administrator (tot, inclusiv toate Setările). Aceasta este configurația implicită; ce pot ospătarul și managerul se poate ajusta (vezi Drepturi pe rol).
- PIN de 4 până la 8 cifre, unic între angajații activi. PIN-urile sunt stocate doar criptat (hash) în baza de date și nu pot fi citite înapoi.
- Ștergerea definitivă nu este posibilă (bonurile și jurnalul fac referire la angajat); inactiv = nu se mai poate autentifica.
- Rămâne întotdeauna cel puțin un administrator activ.
- Alt rol, PIN nou sau inactiv: sesiunile în curs ale acelui angajat se încheie imediat.
- Belgia: opțional numărul de registru național pentru înregistrarea personalului.
- Limbă: limba ecranelor pentru acest angajat (sau "Limba dispozitivului"). După autentificare, casa este imediat în acea limbă; angajatul o poate schimba și singur cu steguțul din dreapta jos (vezi Limbi).
- Sfat: înlocuiți PIN-urile demo 1111 și 2222 înainte ca sistemul să intre în funcțiune.
Autentificare cu card (opțional)
Implicit oprit. Pornire: Setări → Personal, bifa Autentificare cu card (NFC, RFID sau iButton). Necesar: un cititor de carduri USB care funcționează ca o tastatură (pentru carduri NFC sau RFID, breloace, brățări sau chei iButton). Un astfel de cititor "tastează" numărul cardului și apasă Enter; nu este nevoie de driver sau de integrare.
- Asociere: atingeți angajatul, apoi Asociază card și țineți cardul lângă cititor. Un card aparține unui singur angajat. Elimină cardul dacă s-a pierdut.
- Autentificare: pe ecranul de autentificare țineți cardul lângă cititor. Codul PIN funcționează în continuare normal.
- Pontare la intrare și ieșire (dacă este pornită): pe ecranul de autentificare Pontare intrare / ieșire și cardul lângă cititor.
- Numărul cardului este stocat în baza de date doar criptat (hash), la fel ca codul PIN. Angajații inactivi nu se pot autentifica nici cu cardul.
- Oprit: autentificare doar cu codul PIN, ca întotdeauna. Cardurile asociate rămân salvate.
Drepturi pe rol
Setări → Drepturi (doar administratorul): bifați pe rol ce pot ospătarul și managerul. Implicit totul este exact ca mai sus (cum a funcționat casa întotdeauna); o căsuță care diferă este colorată.
| Drept | Ospătar | Manager |
|---|---|---|
| Ștergere rânduri după comandă (stornare) | da | da |
| Acordare reducere / eliminare reducere | nu | da |
| Marcare produs ca „epuizat” | da | da |
| Tipărire copie bon | da | da |
| Retur (notă de credit) | nu | da |
| Încasare pe factură și primire plăți pe factură (doar cu plata pe factură activată) | nu | da |
| Situație intermediară (raport X) | da | da |
| Închidere zi (raport Z) | nu | da |
| Vânzări pe perioadă | nu | da |
| Gestionare sertar de bani | nu | da |
| Gestionare carduri cadou (doar cu carduri cadou cu sold) | nu | da |
| Citire și răspuns la recenzii (doar cu gestionarea recenziilor activată) | nu | da |
| Gestionare card de fidelitate (doar cu cardul de fidelitate activat) | nu | da |
| Vizualizare jurnal | nu | da |
| Vizualizare imagini camere (doar cu imaginile camerelor activate) | nu | da |
| Gestionare stoc (doar cu stocul pornit) | nu | da |
| Gestionarea produselor | nu | nu |
| Gestionare planuri de sală | nu | nu |
| Setare local, plăți și imprimante | nu | nu |
| Vizualizare și ajustare program de lucru | nu | nu |
- Administratorul poate face întotdeauna totul. Modificarea personalului și a drepturilor rămâne întotdeauna doar pentru administrator (altfel cineva și-ar putea acorda singur mai multe drepturi).
- Butoanele și filele pe care un rol nu are voie să le folosească sunt ascunse pentru acel rol; serverul casei verifică și el. Dacă un manager primește de ex. Gestionare produse, vede butonul Setări doar cu fila Produse.
- Modificările se aplică imediat pe toate casele și se înregistrează în jurnal. Revenire la implicit readuce totul la cum era.
Datele localului
Setări → Local (doar administratorul): numele, adresa, codul poștal, localitatea, telefonul și codul de TVA al unității. Acestea apar în partea de sus a fiecărui bon fiscal și a fiecărei proforme. Tot aici se setează textul de la finalul bonului (sunt permise mai multe rânduri; gol = fără text; implicit „Mulțumim și la revedere!”), iar dedesubt limba bonului fiscal (implicit neerlandeză; vezi Limbi). O previzualizare a bonului se actualizează live. După salvare, următorul bon folosește imediat noile date. Țara și datele fiscale (GKS) nu pot fi modificate aici, în mod intenționat. În Belgia codul de TVA este obligatoriu. Cu bifa Rotunjire plăți în numerar la 5 cenți (implicit oprit), la numerar totalul se rotunjește (€ 6,62 → € 6,60, € 6,63 → € 6,65); diferența apare ca „Rotunjire” pe bon. Cardul rămâne întotdeauna exact la cent.
Gestionarea produselor
Autentificați-vă ca administrator și alegeți Setări → Produse.
- Adăugare, modificare (nume, preț, grup, cotă TVA la local și la pachet, nume pe bon, cod, epuizat) și ștergere grupuri de produse și produse. Grupurile și produsele pot primi o culoare proprie; un produs cu culoare primește un buton colorat pe ecranul de comandă (text automat alb sau închis pentru lizibilitate).
- Schimbați ordinea trăgând un grup sau un produs de ≡. Funcționează cu mouse-ul și cu degetul pe tabletă. Exact această ordine apare apoi pe ecranul de comandă; ecranele de casă deschise se actualizează imediat.
- Ștergerea scoate un produs din casă, dar comenzile vechi și jurnalul fiscal continuă să cunoască produsul. Un grup poate fi șters doar dacă este gol.
- Opțiuni: deschideți un produs sau un grup de produse și adăugați la „Opțiuni” grupuri de opțiuni, cum ar fi „Mod de gătire” (exact una, obligatoriu), „Sos” (cel mult una) sau „Extra” (mai multe, cu minim și maxim; maxim gol = nelimitat). Fiecare opțiune are un nume și un supliment de preț (poate fi negativ, de ex. -0,50). Grupurile de opțiuni ale unui grup de produse se aplică tuturor produselor din acel grup, pe lângă opțiunile proprii ale produsului. Ordine cu ▲▼. Ștergerea este posibilă oricând: comenzile și bonurile existente păstrează singure opțiunile alese. Serverul verifică și el opțiunile obligatorii și maximul.
- Fotografie pe produs: vezi Fotografii produse.
- Preț pe kilogram, număr PLU și tara (doar dacă cântarul este pornit): vezi Configurare cântar. Fără bifă, un produs rămâne la bucată.
Fotografii produse
Fiecare produs poate primi o fotografie.
- Setare fotografie: Setări → Produse → alegeți produsul → Alege fotografia (pe o tabletă sau un telefon se poate și direct cu camera). Fotografia este micșorată în browser la cel mult 512 × 512 pixeli (JPEG, de obicei 20–80 kB) și salvată imediat; Altă fotografie o înlocuiește, Șterge fotografia o elimină. În lista de produse apare o fotografie mică înaintea numelui. Doar cu dreptul Gestionare produse; jpg, png și webp, cel mult 512 kB.
- Afișarea o alege administratorul la Setări → Local → Fotografii produse, independent una de alta și implicit oprit:
- Fotografie produs pe butoanele ecranului de comandă: fotografia în partea de sus a butonului produsului, cu numele și prețul dedesubt.
- Fotografie produs la produsele de pe ecranul client: o fotografie mică înaintea fiecărui rând de pe ecranul client (ecranul client în sine trebuie să fie și el pornit). Produsele fără fotografie rămân neschimbate; dacă este oprit, totul funcționează exact ca înainte.
Scaner de coduri de bare
Cu un scaner de coduri de bare la casă scanați produse, coduri de reducere, carduri de fidelitate și carduri cadou. Se activează la Setări → Scaner (filă lângă imprimante și cântar; implicit oprit). Bifați ce face o scanare pe ecranul de comandă:
- Produs pe bon: produsul cu acel cod (Setări → Produse, câmpul Cod; de ex. codul de bare EAN de pe ambalaj). La opțiuni, un meniu sau un preț pe kilogram se deschide întâi fereastra de opțiuni sau cântarul, la fel ca la atingere. Același lucru îl face și Scanarea pe ecranul de comandă de la Tipărire etichete; aceasta funcționează în continuare ca înainte.
- Cod de reducere pe bon (dacă codurile de reducere sunt pornite).
- Card de fidelitate: clientul cu acel număr de card ajunge pe bon (dacă cardul de fidelitate este pornit). Dacă scanați un cod necunoscut pe un bon cu client, casa întreabă dacă este noul lui card.
- Card cadou sau card preplătit: casa afișează soldul (dacă cardurile cadou cu sold sunt pornite). Plata se face la Încasare → Card cadou; acolo puteți scana și cardul.
Casa caută întâi în produse, apoi în cardurile de fidelitate, cardurile cadou și codurile de reducere. Scanarea funcționează pe ecranul de comandă, când nu sunteți într-un câmp de introducere. Într-un câmp de introducere, codul ajunge pur și simplu în acel câmp.
Test scaner: la Setări → Scaner vedeți la fiecare scanare codul și ce face casa cu el, chiar dacă scanerul este încă oprit. Dacă nu funcționează:
- Setați scanerul pe tastatură (USB-HID), cu un Enter după cod. La majoritatea scanerelor este deja așa.
- Un scaner încorporat (de ex. al unei case Sunmi) se setează pe introducere de la tastatură în setările scanerului dispozitivului.
- Etichetele cântarului TS6X (greutate și preț) le gestionează cântarul însuși, și cu scanerul pornit.
Pe chioșc scanerul se setează separat (Setări → Local → Chioșc); vedeți Chioșc self-service.
Tipărire etichete
Etichete de produs cu numele, prețul și un cod de bare, pe o imprimantă de etichete (Brother, Dymo, Zebra ...) instalată pe calculator sau tabletă. Se activează la Setări → Local → Tipărire etichete (implicit oprit). Acolo alegeți și formatul etichetei (38 × 25, 57 × 32, 62 × 29 sau 100 × 50 mm) și dacă prețul și codul de bare apar pe ea. Tipărire probă tipărește o etichetă de probă.
- Setări → Produse → (produs) → Etichete: alegeți numărul și Tipărire.
- Achiziții → (comandă primită) → Tipărire etichete: pentru fiecare produs atâtea etichete câte au sosit (unități de comandă primite × cantitatea per unitate de comandă; fără ingrediente). Cel mult 500 de etichete o dată.
- Casa deschide dialogul de tipărire: alegeți acolo imprimanta de etichete și formatul hârtiei de pe rolă. Fiecare etichetă este o pagină.
- Codul de bare este codul produsului (Setări → Produse): 8 sau 13 cifre cu o cifră de control corectă = EAN (12 cifre: cifra de control se adaugă), altfel Code 128 (litere, cifre și semne de punctuație, până la 30 caractere). Fără cod nu există cod de bare.
- Scanarea pe ecranul de comandă (bifă, implicit oprită): un scaner de coduri de bare care funcționează ca o tastatură adaugă produsul cu acel cod, cu alegerile obișnuite (opțiuni, cântar, alergie). Nu împreună cu cântarul TS6X, care are propriile etichete cu greutate și preț.
- Drept: Gestionare produse sau Gestionare stoc.
Configurarea cântarului (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)
Filă proprie Setări → Cântar (dreptul Setare local, plăți și imprimante, implicit doar administratorul; fila există întotdeauna, chiar dacă cântarul este încă oprit). Implicit oprit: atunci casa funcționează exact ca înainte. Nu vedeți fila?
Căutare automată. Dacă încă nu este nimic configurat, casa caută automat la deschiderea acestei secțiuni (butonul Căutare o face din nou):
- casa (serverul) rulează chiar pe un cântar PC sau AI Aclas (TS6X, TS3X, TS5EX/NX/GX, iS6X, iS2X, iR6X, Ti6X, iL8X; marca/modelul dispozitivului: Windows prin WMI, Android prin
getprop, Linux prin DMI) și răspunde Aclas Scale Module? Atunci acel cântar este configurat ca Pe acest dispozitiv, la fel și cântarul de etichete; pe Linux (fără Scale Module), cântarul integrat pe portul intern găsit (/dev/ttyS...) ca "TS6X (ingebouwd)", cu modelul; - există un OS6X conectat la un port COM/USB? Fiecare port este încercat cu 9600, 4800, 2400 și 19200 baud: mai întâi ascultare scurtă (continuu), apoi trimitere
W(Toledo), altfel Dialog 06 (9600, 7 biți de date, paritate impară: interogare status).
Găsit = completat în formular cu butonul Activare și utilizare: o atingere și funcționează. (Căutarea trimite un W la fiecare port COM liber; un port ocupat, de ex. de terminalul de plată, este sărit.)
Toate cântarele Aclas. Pentru fiecare cântar alegi modelul; casa știe atunci cum poate fi conectat. Există două tipuri:
- Pe acest dispozitiv (se configurează o dată): casa rulează pe cântar (cântar PC sau AI). Cu Windows sau Android cântărește prin Aclas Scale Module, fără port, viteză sau protocol; cu Linux (fără Scale Module) prin portul intern al cântarului (de obicei
/dev/ttyS0sau/dev/ttyS1), cu port, viteză și protocol. Există unul singur per casă; căutarea îl găsește automat. Un cântar PC sau AI (TS6X, iS6X ...) este mereu Pe acest dispozitiv: poate apărea o singură dată în listă, iar celelalte modele PC/AI nu mai pot fi alese. Un TS6X în altă parte a localului poate totuși tipări etichete (activați atunci doar Scanare etichete). - Conectate (mai multe simultan): cântarul este legat la serverul casei prin cablu (RS232/USB), Bluetooth sau rețea. Câte sunt necesare (cel mult 8), fiecare cu numele său.
O listă, două bife. Toate cântarele sunt într-o singură listă. Pentru fiecare cântar bifezi ce face: Cântărire la casă (casa cere greutatea la comandă) și/sau Scanează etichete (cântarul tipărește o etichetă cu cod de bare pe care casa o scanează și primește PLU-urile de la casă). Un cântar PC sau AI precum TS6X le face pe amândouă; un cântar cu etichete LS doar etichete. Etichetele pot veni de la un singur cântar per local.
| Model | Tip | Conexiuni | În casă |
|---|---|---|---|
| OS6X | Cântar POS | RS232, USB, Bluetooth | conectat, mai multe simultan |
| OS2X | Cântar POS | RS232, USB | conectat, mai multe simultan |
| CS6X, CS3X | Cântar casă de marcat | RS232, USB, Ethernet, wifi | conectat, mai multe simultan |
| TS6X, TS3X, TS5EX, TS5NX, TS5GX | Cântar PC (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | pe acest dispozitiv (1x), și ca cântar de etichete |
| iS6X, iS2X, iR6X, Ti6X, iL8X | Cântar AI cu recunoaștere produse (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | pe acest dispozitiv (1x), și ca cântar de etichete |
| iS5X, OiT2X | Cântar AI (doar Linux) | RS232, USB, Ethernet | conectat sau ca cântar cu etichete |
| LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NX | Cântar cu etichete | RS232, Ethernet, wifi | scanare etichete și PLU |
| PS1CX, PS1DX, PS6CX, PS6DX | Cântar cu calcul de preț | RS232 | conectat, mai multe simultan |
| PS1BX | Cântar cu calcul de preț fără conexiune | niciuna | greutate manual |
| LH15X | Cântar suspendat cu imprimantă de etichete | RS232, Ethernet, wifi | conectat sau ca cântar cu etichete |
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 și Zebra. Sunt incluse modelele uzuale ale acestor mărci pentru care se știe cum comunică casa cu ele (de testat = protocolul nu apare textual în nicio sursă; casa alege varianta cea mai probabilă). Toate conectate (mai multe deodată) sau ca cântar de etichete a cărui etichetă o scanează casa:
| Marcă | Model | Tip | Conexiune | Protocol (din fabrică) | În casă |
|---|---|---|---|---|---|
| A&D | EK-i (printre altele EK-610i), HV-WP | Cântar casă de marcat (doar greutate) | RS232, EK-i și USB | Continuu (modul stream), 2400 baud, 7E1 | conectat, mai multe simultan |
| Adam Equipment | Swift | Cântar cu calcul de preț | RS232, USB (opțional) | Continuu (continuu către PC), 9600 8N1 (de testat) | conectat, mai multe simultan |
| Avery Berkel | FX110, FX120, FX131 (încorporat, cu scanner) | Cântar casă de marcat | RS232, FX131 și USB | Mettler Toledo 82/7 = Toledo 8217 (casa trimite W), 9600 baud, 7E1 | conectat, mai multe simultan |
| Avery Berkel | FX125 | Cântar cu calcul de preț | RS232 | Checkout-Dialog 06 (9600, 7O1) | conectat, mai multe simultan |
| Avery Berkel | Xs, XTs, XTi | Cântar cu etichete | Ethernet, Wi-Fi, USB | PLU proprii pe cântar | scanare etichete |
| Avery Weigh-Tronix | 7820, 7829, ZP900 | Cântar casă de marcat | RS232, 7820 și USB, ZP900 și USB și Ethernet | NCI (casa trimite W), 9600 baud, 7E1 | conectat, mai multe simultan |
| Balanzas Marques | BM1000P TOP | Cântar casă de marcat (doar greutate) | RS232 | METTLER (casa trimite W, Toledo), 9600 baud, 7E1 | conectat, mai multe simultan |
| Balanzas Marques | BM5 Junior Tower Label, BM500 ETQ | Cântar cu etichete | Ethernet, USB, RS232, BM500 ETQ și wifi | PLU proprii pe cântar | scanare etichete |
| Baxtran | TW, VW, XTA, XTA-P | Cântar cu calcul de preț | RS232 | Toledo (casa trimite W), 9600 baud, 7E1 | conectat, mai multe simultan |
| Bizerba | CS 300 (și încorporat) | Cântar casă de marcat | RS232 | Checkout-Dialog 06 (9600, 7O1) | conectat, mai multe simultan |
| Bizerba | K-Class Flex, KH II | Cântar cu etichete | Ethernet | PLU proprii pe cântar | scanare etichete |
| Brecknell | 6702U, 6710U, 6720U | Cântar casă de marcat | RS232, USB (port COM virtual) | NCI (casa trimite W), 9600 baud, 7E1 | conectat, mai multe simultan |
| CAS | PD-II, PDN, PDI, PDS-B | Cântar casă de marcat | RS232, PDN și USB și Bluetooth, PDI și USB | ECR type 2 = Toledo (casa trimite W), 9600 baud, 7E1 | conectat, mai multe simultan |
| CAS | CL3000, CL5500, CL7200 | Cântar cu etichete | Ethernet, USB, RS232, CL5500 și CL7200 și wifi | PLU proprii pe cântar | scanare etichete |
| Datalogic | Magellan 9300i, 9400i, 9800i (scaner cu cântar) | Cântar casă de marcat | RS232 (port separat pentru cântar), USB | Mettler Toledo 8217 (casa trimite W), 9600 baud, 7E1 | conectat, mai multe simultan |
| Dibal | KS-400, D-POS 400 | Cântar casă de marcat | RS232, D-POS 400 și USB | Checkout-Dialog 06 (9600, 7O1) | conectat, mai multe simultan |
| Dibal | G-325, PI-100 | Cântar cu calcul de preț | RS232 | Checkout-Dialog 06 (9600, 7O1) | conectat, mai multe simultan |
| Dibal | M-500 (Mistral), D-900, CS-2200 | Cântar cu etichete | Ethernet, Wi-Fi, USB | PLU proprii pe cântar | scanare etichete |
| DIGI | DS-781 | Cântar cu calcul de preț | RS232 | DIGI Type B (casa trimite ENQ), 9600 8N1 | conectat, mai multe simultan |
| DIGI | SM-120, SM-6000 | Cântar cu etichete | Ethernet, Wi-Fi | PLU proprii pe cântar | scanare etichete |
| Dini Argeo | DFW, DGT, 3590E | Cântar casă de marcat (doar greutate) | RS232, USB, Ethernet, DFW și 3590E și wifi | Continuu (ST,GS, 0.512,kg), 9600 8N1 | conectat, mai multe simultan |
| Excell Precision | TPE, AM4, FD4-P, FDP4-P, GE4, GEP4 | Cântar cu calcul de preț | RS232 | Continuu (ST,GS,+0.876kg), 9600 8N1 (cu excepția TPE de testat) | conectat, mai multe simultan |
| Gram | XFOC RS, XFOC+ RS, ZFOC RS | Cântar cu calcul de preț | RS232, USB (cablu de la Gram) | Gram (casa trimite ENQ, apoi DC1), 9600 8N1 (XFOC de testat) | conectat, mai multe simultan |
| Ishida | Uni-3, Uni-5, Uni-7, Uni-9 | Cântar cu etichete | Ethernet, Wi-Fi, USB | PLU proprii pe cântar | scanare etichete |
| Kern & Sohn | RPB, RFC | Cântar cu calcul de preț | RS232, USB | Checkout-Dialog 06 (Prot = DLG-06, 9600, 7O1) | conectat, mai multe simultan |
| Kern & Sohn | RFE (preț), IFB, EOC | Cântar cu calcul de preț/de casă | RS232 | Continuu, 9600 8N1 | conectat, mai multe simultan |
| Mettler Toledo | Ariva-S | Cântar casă de marcat | RS232, USB (port COM virtual) | Toledo 8217 (casa trimite W), 9600 baud, 7E1 | conectat, mai multe simultan |
| Mettler Toledo | Viva | Cântar casă de marcat | RS232 | Toledo 8217, 9600 baud, 7E1 | conectat, mai multe simultan |
| Mettler Toledo | bPlus, UC Evo | Cântar cu etichete | Ethernet, Wi-Fi | PLU proprii pe cântar | scanare etichete |
| Minebea Intec | Signum, Combics, Midrics, Puro | Cântar casă de marcat (doar greutate) | RS232, USB, Signum și Combics și Ethernet | Continuu (SBI, imprimare automată), 9600 8N1 | conectat, mai multe simultan |
| Ohaus | Aviator 7000 | Cântar cu calcul de preț | RS232 sau USB | Checkout-Dialog 06 (9600, 7O1) | conectat, mai multe simultan |
| Ohaus | Valor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000 | Cântar casă de marcat (doar greutate) | RS232, USB, Ethernet | Continuu (Auto Print Continuous), 9600 8N1 | conectat, mai multe simultan |
| Precia Molen | DP400 | Cântar casă de marcat | RS232, USB | Checkout-Dialog 06 (9600, 7O1) | conectat, mai multe simultan |
| Precia Molen | DPOS CR, C 210 B, C 210 C | Cântar cu calcul de preț | RS232 | Checkout-Dialog 06 (9600, 7O1; C 210 de testat) | conectat, mai multe simultan |
| Precia Molen | Corail 500 | Cântar cu etichete | Ethernet, Wi-Fi | PLU proprii pe cântar | scanare etichete |
| Precisa | XB, XT, LS, LX (balanțe de precizie) | Cântar casă de marcat (doar greutate) | RS232, LS și LX și USB | Continuu (modul de imprimare CONTINUOUS), 9600 8N1 | conectat, mai multe simultan |
| Rice Lake | BenchPro BP-S, BenchPro BP-R | Cântar casă de marcat | RS232 | BP-S Toledo 8213, BP-R NCI (ambele: casa trimite W), 9600 baud, 7E1 (de testat) | conectat, mai multe simultan |
| Rongta | RLS1000, RLS1100 | Cântar cu etichete | Ethernet, RS232, wifi | PLU proprii pe cântar | scanare etichete |
| Sartorius | Entris, Quintix | Cântar casă de marcat (doar greutate) | RS232, USB | Continuu (SBI, imprimare automată), 9600 8N1 | conectat, mai multe simultan |
| Star Micronics | mG-T12, mG-T30, mG-T60, mG-S8200 | Cântar casă de marcat (doar greutate) | RS232, USB (port COM virtual) | Continuu, 9600 8N1 (de testat) | conectat, mai multe simultan |
| T-Scale | PA10, PA15, PEA10 | Cântar cu etichete | Ethernet | PLU proprii pe cântar | scanare etichete |
| UWE | ASEP | Cântar cu calcul de preț | RS232 | Continuu, 9600 8N1 (de testat) | conectat, mai multe simultan |
| Wedderburn | TSDS983 | Cântar casă de marcat | RS232 | DIGI Type B (casa trimite ENQ), 9600 8N1 (de testat) | conectat, mai multe simultan |
| Wedderburn | TSDS781T, TSDS782T | Cântar cu calcul de preț | RS232 | DIGI Type B, 9600 8N1 (de testat) | conectat, mai multe simultan |
| Wedderburn | TSSM120 | Cântar cu etichete | Ethernet, RS232 | PLU proprii pe cântar | scanare etichete |
| Wintec | ScalePOS ACS-S60E (casă cu cântar integrat) | Cântar casă de marcat | COM6 intern (Windows) sau COM4 (Android) | Continuu, 9600 8N1 (de testat) | conectat |
| Zebra | MP7000, MP72 (scaner cu cântar) | Cântar casă de marcat | RS232 (port AUX) | SASI = Toledo (casa trimite W), 9600 baud, 7E1 (de testat) | conectat, mai multe simultan |
- A&D EK-i și HV-WP: setați cântarul pe stream (EK-i:
prt 0; din fabrică este setat pe tasta PRINT) și casa pe Continuu cu 2400 baud și 7E1 (așa este setat A&D din fabrică). Mesajul esteST,+00512.00 g(US= se mișcă,OL= prea greu). - Adam Equipment Swift: setați cântarul pe continuu către PC (8N1); casa este atunci pe Continuu.
- Avery Berkel FX110, FX120 și FX131: pe cântar alegeți protocolul Mettler Toledo 82/7 și setați casa pe Interogare (Toledo) cu 7E1 (9600 baud). Funcționează și Dialog 06. FX125 (cu afișaj de preț) nu are Toledo: acolo Dialog 06. Casa setează asta singură când alegeți modelul.
- Avery Weigh-Tronix 7820, 7829 și ZP900 și Brecknell 6702U, 6710U și 6720U: NCI, protocolul Weigh-Tronix. Casa trimite
W(la fel ca la Toledo), cântarul răspunde cu greutatea (1.234KG) și un rând de stare; acesta arată dacă se mișcă, este prea greu sau prea ușor. Casa este pe Interogare (Toledo) cu 7E1 (9600 baud). USB funcționează ca port COM virtual. La ZP900, setați casa pe portul 2 (NCI). La 67xxU se poate seta pe cântar și 8213 (SCP03). - Balanzas Marques BM1000P TOP: la portul COM alegeți protocolul B (METTLER) și 9600 baud, 7 biți de date, paritate pară; casa este atunci pe Interogare (Toledo) cu 7E1.
- Baxtran TW, VW, XTA și XTA-P (cântare cu calcul de preț; VW și XTA-P cu stâlp): în meniul RS232 al cântarului alegeți protocolul Toledo, 9600 baud și 7 biți de date cu paritate pară (7E1); casa este atunci pe Interogare (Toledo) cu 7E1. Casa setează asta singură când alegeți modelul. Funcționează și CONT (cântarul trimite singur): setați atunci casa pe Continuu cu aceeași viteză și aceiași biți de date. Conectare cu cablul RS232 (cu 9 pini) sau un cablu USB-RS232.
- Bizerba CS 300: Checkout-Dialog 06 (specificația Bizerba): casa trimite prețul pe kg, cântarul verificat calculează suma. Dacă cântarul cere coduri de control, le primiți de la Bizerba sau de la furnizor.
- CAS PD-II, PDN, PDI și PDS-B (PDS-B printre altele la LRE): pe cântar alegeți ECR type 2 (Toledo) și setați casa pe Interogare (Toledo) cu 7E1 (9600 baud).
- Datalogic Magellan 9300i, 9400i și 9800i: setați Scale Interface Type al portului separat pentru cântar pe Mettler Toledo 8217 și casa pe Interogare (Toledo) cu 7E1.
- Dibal KS-400, D-POS 400, G-325 și PI-100: pe cântar alegeți protocolul Checkout_Dialog06 (protocolul 24) și 9600 baud, 7 biți de date, paritate impară (tip de parametru 5); casa este atunci pe Dialog 06. D-POS 400 se poate conecta și prin USB.
- DIGI DS-781: setați cântarul pe Type B / comandă standard (data transmission
00011); casa trimiteENQși primește greutatea netă, tara, prețul pe kg și suma. - Dini Argeo DFW, DGT și 3590E: setați portul serial pe transmisie continuă (9600 8N1); casa este atunci pe Continuu.
- Excell Precision TPE (și generația a 4-a AM4, FD4-P, FDP4-P, GE4, GEP4): setați ieșirea RS232 pe continuu (9600 8N1); casa este atunci pe Continuu.
- Gram XFOC RS, XFOC+ RS și ZFOC RS: protocolul Gram (9600 8N1). Casa trimite
ENQ, cântarul răspundeACK, casa trimiteDC1și cântarul trimite greutatea:SOH STX S/U/F teken gewicht eenheid BCC ETX EOT(S= stabil,U= în mișcare,F= eroare; BCC = XOR de la stare până la unitate inclusiv). Conectare prin RS232 sau cu cablul USB de la Gram. - Kern & Sohn RPB și RFC: setați pe cântar
Prot = DLG-06(conexiunea la casă este opțiunea 965-419); casa este atunci pe Dialog 06. RFE, IFB și EOC: transmisie continuă (8N1), casa pe Continuu. - Mettler Toledo Ariva/Viva: setați cântarul pe protocolul Toledo (8217) și casa pe Interogare (Toledo) cu Biți de date / paritate = 7E1 (Mettler: 9600 baud, 7 biți de date, paritate pară; Ariva se poate conecta și prin USB ca port COM virtual). Casa setează asta singură când alegeți modelul.
- Minebea Intec Signum, Combics, Midrics și Puro și Sartorius Entris și Quintix: SBI cu imprimare automată (9600 8N1); casa este atunci pe Continuu. Mesajul este
N + 0.512 kg; fără unitate, încă se mișcă. - Ohaus Aviator 7000: în setările cântarului (pasul 20) alegeți protocolul Dialog 06; casa este atunci pe Dialog 06. RS232 sau USB, în funcție de cablu.
- Ohaus Valor 7000, Ranger 3000/4000/7000 și Defender 3000 (cântărire fără preț): setați cântarul pe Auto Print Continuous (9600 baud, 8N1) și casa pe Continuu. Cântarul trimite
0.512 kg G; un?după greutate înseamnă că încă se mișcă. Ranger 7000 se poate conecta și prin Ethernet (portul TCP 9761). - Precia Molen DP400, DPOS CR și C 210 (cântarele comerciale aparțin din 2025 de Dibal): Dialog 06 (9600 7O1), la fel ca Dibal. Dacă la C 210 nu funcționează, încercați Interogare (Toledo) cu 7E1.
- Precisa XB, XT, LS și LX: setați modul de imprimare pe CONTINUOUS și 9600 8N1, fără dată, oră și ID pe rând; casa este atunci pe Continuu. Fără unitate, greutatea încă se mișcă.
- Rice Lake BenchPro BP-S (Toledo 8213) și BP-R (NCI): casa este pe Interogare (Toledo) cu 7E1.
- Star Micronics mG-T și mG-S8200: prin RS232 sau USB (port COM virtual, cu driverul Star) pe Continuu.
- UWE ASEP: RS232 către PC/casă, casa pe Continuu (de testat).
- Wedderburn TSDS983, TSDS781T și TSDS782T sunt cântare DIGI sub un număr propriu: DIGI (Type B), la fel ca DIGI DS-781. Dacă nu funcționează, încercați Interogare (Toledo) cu 7E1.
- Wintec ScalePOS ACS-S60E: casa rulează chiar pe ScalePOS; cântarul integrat este pe COM6 (Windows) sau COM4 (Android), 9600 8N1. Alegeți Continuu; dacă nu trimite nimic, Căutare găsește protocolul potrivit.
- Zebra MP7000 și MP72: portul RS232-AUX este setat din fabrică pe SASI (9600 7E1, casa trimite
W): setați casa pe Interogare (Toledo) cu 7E1. - Cântarele de etichete ale acestor mărci (Avery Berkel, Balanzas Marques, Bizerba, CAS, Dibal, DIGI, Ishida, Mettler Toledo, Precia Molen, Rongta, T-Scale, Wedderburn) sunt sisteme independente cu propriul fișier PLU. Activați Scanează etichete la cântar și setați același cod de bare ca pe cântar (EAN-13, început 20–29, PLU și greutate sau preț). PLU-urile le setați pe cântarul însuși sau cu software-ul mărcii; Trimitere la TS6X și Descărcare fișier PLU există doar pentru Aclas.
Aceeași listă este în casă la Setări → Cântar → Toate cântarele (ACLAS_MODELLEN în packages/shared/src/weegschaal.ts, cu marca fiecărui model).
Cât mai puțin de completat: când alegeți un model, casa pregătește restul cum îl setează marca din fabrică: conexiune Port COM / USB pe primul port liber, 9600 baud (A&D: 2400) și protocolul mărcii (Toledo: Aclas cu 8N1, iar cu 7E1 Avery Berkel FX, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo, Rice Lake și Zebra; Dialog 06: Avery Berkel FX125, Bizerba, Dibal, Kern & Sohn RPB/RFC, Ohaus Aviator și Precia Molen; DIGI Type B: DIGI și Wedderburn; Gram: Gram; Continuu: A&D, Adam Equipment, Dini Argeo, Excell Precision, celelalte Kern & Sohn, Minebea Intec, celelalte Ohaus, Precisa, Sartorius, Star Micronics, UWE și Wintec), plus un nume (de ex. OS6X, OS6X 2). Un cântar PC sau AI devine Pe acest dispozitiv (de ex. TS6X (ingebouwd); pe Linux pe portul intern /dev/ttyS0). Dacă ceva nu e corect, Căutare găsește portul, viteza și protocolul potrivite.
Pe acest dispozitiv (Aclas Scale Module): cântarul afișează greutatea verificată metrologic; casa trimite prețul pe kg și tara (ca pretară) și preia suma calculată de cântar, la fel ca la Dialog 06.
- Android: aplicația Aclas AclasScaleDriver (
com.aclas.aclasscaledriver) este de obicei deja pe cântar; dacă nu, instalațiaclas-android/AclasScaleDriver.apk. Aplicația HorecaPOS comunică direct cu serviciul acelei aplicații, deci nu e nevoie de nicio bibliotecă în plus. - Linux: Aclas nu are Scale Module pentru Linux. Alegeți pur și simplu modelul (de ex. TS6X): conexiunea devine Pe acest dispozitiv (port intern) pe
/dev/ttyS0, 9600 baud, Toledo. Cântarul integrat este de obicei pe/dev/ttyS0sau/dev/ttyS1; căutarea le încearcă și completează portul, viteza și protocolul potrivite. Și aici o singură dată.
Software-ul Aclas vine cu casa: Scale Module pentru Windows (aclas-module), AclasScaleDriver pentru Android (aclas-android) și Aclas Sync SDK pentru Windows și Linux (aclas-sdk). Aclas ne permite să le includem. Programele de instalare pentru Windows și Linux le conțin; nimic de descărcat sau instalat separat.
Bluetooth (de ex. OS6X): împerechează mai întâi cântarul. Windows îl transformă într-un port COM (Setări Bluetooth → Mai multe opțiuni Bluetooth → Porturi COM), Linux /dev/rfcomm0: introdu acel port. În aplicația Android introduci adresa Bluetooth (00:11:22:AA:BB:CC); aplicația cere o dată permisiunea pentru Dispozitive din apropiere și se conectează prin Bluetooth SPP.
Cântare AI (recunoaștere produse): camera recunoaște produsul în software-ul Aclas de pe cântar. Cântărirea merge prin Scale Module (pe acest dispozitiv) sau portul RS232; cântarele AI cu etichete tipăresc după recunoaștere o etichetă cu cod de bare pe care casa o scanează (ca la TS6X).
Aclas AI Recognition Plugin (cântar AI cu casa pe el, de ex. iS6X cu Windows): pluginul Aclas recunoaște produsul și tastează codul de bare al acestuia în casă, la fel ca un scaner (urmat de Enter); ecranul de comenzi pune produsul cu greutatea pe comandă. Iată cum îl configurați:
- Activați la cântar Scanează etichete cu același cod de bare ca în plugin. Recomandat: începe cu
27, PLU din 5 cifre, greutate (tip Aclas 17): casa calculează atunci singură cu prețul pe kilogram. Merge și cu prețul (tip 12, începe cu22). - La acel cântar, dezactivați Cântărire la casă: pluginul și Scale Module nu pot accesa cântarul în același timp. Greutatea vine din codul de bare. Dacă pluginul răspunde la Căutare, casa propune această configurare și nu pornește Scale Module. Fără cod de activare, pluginul cântărește și calculează suma, dar nu recunoaște produse.
- În pluginul propriu-zis: codul de bare la Scale and Barcode Format Settings → Default Barcode Format (tip 17), iar la setările ferestrei punctul unde pluginul dă clic și tastează codul. Alegeți pentru aceasta un loc gol pe ecranul de comenzi, nu un buton. Produsele noi le învață localul însuși pluginului, pe cântar (antrenare AI).
- Atribuiți produselor cântăribile un număr PLU și trimiteți PLU-urile la cântar (Trimitere la TS6X sau fișierul PLU); pluginul recunoaște după numărul PLU.
- Casa lasă pluginul să recunoască doar cât timp ecranul de comenzi este deschis chiar pe cântar (
POST /aiplugin/resume, la închidere/aiplugin/suspend, portul 5003 pe cântar; prima dată și EmployeeMode: ecranul client al cântarului nu afișează produse). Pe alte case și tablete și prin portalul de administrare nu se întâmplă nimic. - Pluginul pornește mereu în Resume și nu își poate transmite starea. De aceea, ecranul de comenzi trimite din nou resume la fiecare 30 secunde; dacă acesta nu mai vine (ecran închis, plugin sau cântar repornit), casa trece pluginul pe Suspend în cel mult un minut și îl ține acolo.
- Pluginul necesită un cod de activare de la Aclas pentru fiecare cântar (legat de numărul de serie). Funcționează acum pe Windows; versiunea Android a Aclas urmează (casa face acolo același lucru).
Aclas OS6X (cântar POS la casă, RS232/USB; la fel funcționează și celelalte cântare conectate):
- Unul sau mai multe cântare (cel mult 8), fiecare cu un nume (de ex. Tejghea, Bar) și o conexiune proprie: port COM / USB (
COM3pe Windows,/dev/ttyUSB0pe Linux/Android) cu viteza, sau rețea printr-un convertor serial-rețea (adresă IP și port TCP, de ex. 4001). - Protocol: Interogare (Toledo) = casa trimite
Wși cântarul răspunde cu greutatea (Toledo 8217, cum stă de obicei OS6X; și mesajele de stare instabil/supraîncărcat/sub zero) sau Continuu = cântarul trimite singur greutatea continuu (ST,GS, 0.512kg,US= instabil) sau Dialog 06 (verificat metrologic), vezi mai jos, sau DIGI (Type B) = casa trimiteENQși DIGI răspunde cu stare, greutate netă, tară, preț pe kg și sumă (37 caractere:<status> <toestand> CR 0<netto> CR 4<tarra> CR U<kiloprijs> CR T<bedrag> CR LF; stare bit 1 = stabil, bit 2 = sub zero, bit 3 = prea greu, bit 4 = prea ușor), sau Gram = casa trimiteENQ, așteaptăACK, trimiteDC1și citeșteSOH STX <S/U/F> <teken> <gewicht> <eenheid> <BCC> ETX EOT. Setați pe cântar același protocol și aceeași viteză. Biți de date / paritate: 8N1 (Aclas, Adam Equipment, DIGI, Dini Argeo, Excell Precision, Gram, Kern & Sohn, Minebea Intec, Ohaus, Precisa, Sartorius, Star Micronics, UWE, Wedderburn, Wintec) sau 7E1 (A&D, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo 8217, Rice Lake, Zebra); Dialog 06 este mereu 7O1. Interogare citește și NCI (Avery Weigh-Tronix, Brecknell, Rice Lake BP-R): laWcântarul răspundeLF 1.234KG CR LF S00 CR ETX; rândul de stare (S+ 2 sau 3 octeți) arată dacă se mișcă (octetul 1 bit 0), este prea ușor (octetul 2 bit 0) sau prea greu (octetul 2 bit 1);^^^^^= prea greu,_____= prea ușor. - Dialog 06 (Checkout-Dialog 06, protocolul european pentru un cântar verificat metrologic la o casă de marcat): casa trimite prețul pe kilogram (și tara produsului) la cântar; cântarul cântărește, calculează singur suma și afișează prețul pe kilogram, greutatea și suma pe propriul afișaj (verificat metrologic). Casa preia greutatea și suma; în fereastra de cântărire apare „calculat de cântar”. Întotdeauna 9600 baud, 7 biți de date, paritate impară, 1 bit de stop (viteza din setare nu se aplică atunci). Desfășurare:
EOT STX 01 ESC <kiloprijs 6> ESC ETX(cu tara: înregistrarea03cu 4 cifre grame) → 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 = încă nu este gata, atunci din nou după 100 ms; 20 = se mișcă; 21 = ridicați mai întâi; 30/31 = prea ușor; 32 = prea greu; 11 = preț nevalid). Coduri de control: multe cântare Dialog 06 cer din când în când (de ex. la fiecare 30 cântăriri) codurile de control ale software-ului de casă (înregistrarea 11 → înregistrarea 10). Aceste coduri și modul lor de calcul sunt furnizate de producătorul cântarului doar furnizorului casei de marcat. Introduceți-le la Coduri de control (perechi de 4 caractere hexazecimale, de ex.74AE 1B2C); casa le trimite când cântarul le cere. Dacă cântarul calculează cu un număr variabil (Z) și deci codurile fixe nu se potrivesc, casa vă anunță; cereți atunci furnizorului să configureze cântarul fără acest control, sau folosiți Toledo. - Cântarele sunt conectate la PC-ul sau dispozitivul pe care rulează serverul casei; toate casele și tabletele cântăresc prin serverul casei și aleg în fereastra de cântărire ce cântar folosesc. Testare cântărește o singură dată.
- Rețeaua funcționează peste tot.
- Introducere manuală a greutății: pornit = greutatea poate fi tastată și când există un cântar; fără OS6X este întotdeauna posibil.
Scanează etichete (bifă la cântar: Aclas TS6X, alt cântar PC sau AI, seria LS sau LH15X; cântar + imprimantă de etichete, unul per local):
- Adresă IP: necesară doar pentru Naar TS6X sturen. Cântărirea și scanarea etichetelor funcționează fără ea. Dacă casa rulează chiar pe TS6X, las-o goală: casa trimite atunci către ea însăși (127.0.0.1). Dacă același cântar cântărește și la casă, ambele bife sunt la același cântar (căutarea îl configurează așa).
- Scanează etichete: scanarea etichetelor pe ecranul de comenzi. Setează cum arată codul de bare, la fel ca pe TS6X: începe cu (20–29, implicit
28), numărul de cifre al PLU (4, 5 sau 6) și apoi greutatea în grame sau prețul în cenți, plus cifra de control (EAN-13). Sub setare este un exemplu. - Numere PLU: la Setări → Produse, un produs cântăribil primește un preț pe kilogram, eventual o tara și un număr PLU (unic). Numărul PLU îl alegeți dintr-o listă (Fără PLU, următorul liber, Alt număr…); când bifați Preț pe kilogram, următorul număr liber este deja completat. Necesar doar pentru etichetele și PLU-urile TS6X: fără TS6X poate rămâne Fără PLU.
- Trimiterea directă funcționează pe Windows și Linux; pe Android și macOS folosiți fișierul PLU. La prima instalare verificați numele câmpurilor din fișierul PLU și codurile din
aclas-plu.ps1cu manualul SDK al cântarului livrat (un singur loc de ajustat:ACLAS_PLU_KOLOMMENînpackages/shared/src/weegschaal.ts).
Portal de administrare: mesajul către portal are funcția Cântar (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) cu pornit/oprit și cântarele pe model (de ex. TS6X (op dit apparaat), 2x OS6X, PS1CX, Ariva-S, DS-781, LS6RX, 5 producten per kilo); fără adrese IP, porturi COM sau adrese Bluetooth.
Legea metrologiei: un cântar pe care vindeți trebuie să fie verificat metrologic (clasa III, ca OS6X). Cu Toledo/continuu casa calculează cu greutatea dată de cântar; cu Dialog 06 cântarul verificat calculează singur prețul.
Cod: packages/shared/src/weegschaal.ts (protocoale, etichete, fișier PLU), apps/pos-server/src/lib/weegschaal.ts și routes/weegschaal.ts; ecrane WeegschaalInstellingen.tsx și WeegDialoog.tsx.
Thuisbezorgd.nl / Takeaway.com
Comenzile de la Thuisbezorgd.nl intră direct în casă, fără intermediar (fără Deliverect, HubRise sau similar): Just Eat Takeaway JET Connect comunică cu portalul de administrare Pin Voordeel, iar casa își preia mesajele de acolo.
În Belgia platforma se numește Takeaway.com: aceeași companie (Just Eat Takeaway) și aceeași integrare. Pentru o unitate din Belgia, ecranele, notificările, bonul de bucătărie și portalul de administrare afișează peste tot Takeaway.com în loc de Thuisbezorgd.nl. Mai jos, Thuisbezorgd înseamnă ambele.
De ce prin portal? Casa are nevoie doar de PORTAAL_URL și PORTAAL_SLEUTEL (vezi Portal de administrare) și face doar cereri de ieșire.
Configurare (Setări → Platforme de livrare → Thuisbezorgd.nl / Takeaway.com, dreptul Setare local, plăți și imprimante; până acum era la Setări → Local):
- Activați Utilizare Thuisbezorgd (se aplică imediat, independent de Salvează).
- Înregistrare la Thuisbezorgd. Apoi localul alege la Thuisbezorgd (Partner Hub sau managerul de cont) OptimumPOS / Pin Voordeel drept casă de marcat. JET pornește atunci o sesiune de onboarding; portalul caută casa înregistrată (după cod poștal și nume, altfel Pin Voordeel asociază manual sesiunea în portal), trimite configurația și cere casei meniul. Apoi conexiunea devine activă.
- Bifați produsele care pot fi comandate prin Thuisbezorgd (pe grup sau individual), eventual cu o descriere pentru Thuisbezorgd. Meniul (preț, opțiuni ca modificatori, alergeni, TVA) se transmite automat; PLU = id-ul produsului/opțiunii. După o modificare în catalog casa actualizează meniul în 30 secunde; doar „epuizat”/„din nou disponibil” trece prin API-ul de disponibilitate.
- Program Thuisbezorgd: separat pentru livrare și la pachet (de ex.
16:00-22:00, mai multe intervale separate prin virgulă). Se salvează cu butonul Salvare program de dedesubt și ajung ca service times la Thuisbezorgd imediat ce integrarea este gata. - Închis temporar / Redeschidere (în NL/BE redeschis cel târziu a doua zi dimineață la 07:00).
Comenzi. O comandă devine o comandă obișnuită fără masă (bezorgen sau afhalen, nume de grup TB <ordernummer>) cu prețurile plătite de client, plus costurile de livrare/serviciu ca rând separat și reducerea Thuisbezorgd ca rând de reducere; dacă totalul tot nu se potrivește, un rând „Verschil Thuisbezorgd”. Bonul de bucătărie merge imediat la bucătărie/bar (se poate dezactiva). Casa confirmă în câteva secunde portalului, care transmite către JET; dacă acest lucru nu reușește în 3 minute sau casa este offline, JET primește „eșuat”, iar localul revine la Orderpad.
Butonul Thuisbezorgd din bara de sus (cu numărul de comenzi în curs): listă, client și adresă, ora de pregătire/livrare și cronologia (track & trace): primită, curier în drum spre local, curier la local, în drum spre client, livrată (de la JET), plus pași proprii (în preparare, gata, în drum/livrată la livrare proprie, ridicată). O hartă live cu curierul nu este oferită de JET Connect casei; pe aceasta o vede clientul în aplicația Thuisbezorgd. O comandă nouă, o anulare și „curier la local” afișează o bară portocalie și un sunet. Finalizare (plătit online) încasează cu metoda de plată online; dacă clientul plătește la ușă, încasați normal. O anulare de la Thuisbezorgd anulează comanda și tipărește un bon de bucătărie „GEANNULEERD”.
Cod: apps/pos-server/src/lib/thuisbezorgd.ts, routes/thuisbezorgd.ts; ecrane ThuisbezorgdInstellingen.tsx și Thuisbezorgd.tsx. Partea de portal: horecapos-portaal/src/thuisbezorgd.mjs (vezi README-ul portalului).
Numărare în portalul de administrare. Numărul de comenzi Thuisbezorgd pe zi este inclus în raportarea către portalul de administrare (verkoopTelling în lib/portaal.ts): primite și neanulate, în ziua primirii. O comandă Thuisbezorgd încasată în casă (inclusiv Finalizare (plătit online)) nu se mai adaugă încă o dată la la pachet/livrare. Datele Thuisbezorgd se află în baza de date a casei și sunt deci incluse normal în backupurile casei.
Magazin online și comenzi online
Fiecare local poate avea un magazin online propriu: un site de comenzi (și o aplicație) în identitatea vizuală proprie pentru la pachet, livrare, comandă la masă cu cod QR și rezervări, cu plată online (MultiSafepay sau Buckaroo) sau plată la ridicare/livrare. Magazinul online este un proiect separat, horecapos-webshop (Node.js, vezi README-ul de acolo), și rulează pe același server ca portalul de administrare.
Activarea și configurarea se fac în administrarea magazinului online: butonul Administrare magazin online din portalul clienților (proprietar) sau la instalare în portalul de administrare (Pin Voordeel). Acolo găsiți activare/dezactivare, adresa web (<zaak>.<webshopdomein> sau un domeniu propriu), identitatea vizuală (culori, logo, fotografie de antet, font), programul și intervalele orare pentru la pachet și livrare, zona de livrare (coduri poștale, rază sau o zonă pe hartă, cu taxă și minim), plăți, coduri de reducere, texte, limbi, coduri QR pentru mese, rezervări și aplicația (instalabilă ca PWA; o aplicație Android printr-o Trusted Web Activity), și notificările push (opțional, implicit dezactivate): clientul activează o notificare pe pagina comenzii sale și primește o notificare push când comanda este gata sau pe drum; cine dorește primește și din când în când o ofertă, pe care localul o trimite din administrarea magazinului online (fila Notificări push). Funcționează pe Android și pe computere (Chrome, Edge, Firefox, Samsung Internet), în aplicația Android și pe iPhone și iPad (iOS 16.4 sau mai nou), dacă clientul adaugă magazinul online pe ecranul principal. Nu se trimite niciun SMS sau e-mail și nu se păstrează niciun nume sau număr. Detalii în README-ul magazinului online.
Meniu. Casa trimite meniul automat: toate produsele active (nu la kilogram), pe grupe de produse, cu preț, opțiuni, alergeni, epuizat și fotografia produsului, plus mesele și datele localului, precum și ce canale de marketing sunt activate (pentru bifa "primire oferte" la plată, vezi Marketing prin SMS și e-mail). Asta se întâmplă la pornire, imediat ce magazinul online este activat, în 30 secunde după o modificare în catalog și în câteva secunde după o modificare în Setări → Local, cum ar fi marketingul sau cardul de fidelitate (sau cu Trimitere meniu acum). Un produs poate fi exclus din magazinul online în administrarea magazinului online (ascundere) sau în baza de date cu artikel.webshop = false.
Comenzi. La pachet și livrarea devin o comandă obișnuită fără masă (nume de grup WEB <bestelnummer>) cu prețurile văzute de client, plus taxa de livrare și costurile de tranzacție ca rânduri separate și un cod de reducere ca rând de reducere; dacă totalul tot nu se potrivește, se adaugă un rând "Verschil webshop". Bacșișul clientului nu se socotește ca încasare: intră ca bacșiș în plată la Finalizare (plătit online). Comanda la masă (cod QR) ajunge pe nota deschisă a acelei mese (plătită online: ca grup separat la acea masă). Bonul de bucătărie merge imediat la bucătărie/bar (se poate dezactiva în fereastra Magazin online). Casa confirmă în câteva secunde cu numărul bonului; clientul primește apoi "primită" și un e-mail. Dacă casa este offline, magazinul online nu preia comenzi (clientul vede asta imediat) și trimite un e-mail localului dacă o comandă rămâne prea mult timp nepreluată. Rezervările din magazinul online ajung în Rezervări (doar dacă rezervările sunt activate în casă). Dacă există un maxim pe interval orar (Livrare și intervale orare), comenzile din magazinul online cu o oră în acel interval se iau în calcul.
Belgia (cutia neagră). O comandă din magazinul online merge imediat ca comandă (signOrder) la cutia neagră, înaintea bonului de lucru, la fel ca Trimite comanda la casă. Dacă nu reușește, nu intră în casă, iar magazinul online o trimite din nou mai târziu. Ce nu a fost încă testat cu cutia neagră este oprit în meniul pentru magazinul online (carduri cadou, coduri de reducere, pe factură, pe cameră, meniuri, opțiuni cu supliment de preț, happy hour și bacșiș) și este refuzat dacă un magazin online vechi îl trimite totuși. Finalizare verifică bacșișul, plata pe factură și pe cameră la fel ca la casă.
Pe cameră (conexiune hotel, Setări → Hotel → Autoservire → În magazinul online): meniul primește kamer: { maxBedrag }; magazinul online trimite betaling.wijze = "kamer" cu kamer și achternaam. Casa verifică oaspetele în software-ul hotelier (nu la masă, nu cu card cadou) și îl salvează la comandă; Finalizare (pe cameră) încasează pe cameră și înregistrează bonul pe nota hotelului. Factură centralizatoare la plata pe factură: bonul apare atunci ca poziție deschisă.
Butonul Magazin online din bara de sus (cu numărul de comenzi în curs): listă, client și adresă, ora dorită sau "cât mai repede", metoda de plată și cronologia. Pașii În preparare, Gata și Pe drum sunt văzuți de client în timp real în magazinul online (și prin e-mail, dacă localul dorește). Încasat în casă = Finalizată; Anulare anulează doar rândurile acelei comenzi online, tipărește un bon de bucătărie "ANULAT", iar o comandă plătită online este rambursată de magazinul online. Sosit, neprezentat sau anulat la o rezervare se trimite, de asemenea, înapoi la magazinul online. O comandă sau o rezervare nouă afișează o bară portocalie și redă un sunet.
Cod: apps/pos-server/src/lib/webshop.ts, routes/webshop.ts; ecranul Webshop.tsx. Partea de portal: horecapos-portaal/src/webshop.mjs.
Casa de marcat și magazinul online la fel (fiecare parte se pornește separat, implicit oprit; un magazin online mai vechi ignoră câmpurile noi). Ce este pornit în casa de marcat funcționează și în magazinul online:
- Happy hour: magazinul online aplică același preț ca și casa de marcat în acel moment (prețul normal tăiat și numele happy hour-ului), inclusiv cu sezon.
- Perioade de meniu și tip de comandă (dacă sunt pornite): magazinul online arată doar ce se vinde acum, iar la ridicare și livrare prețul și produsele acelei alegeri (la masă: la local). Meniul primește pentru fiecare produs
prijzen(afhalen,bezorgen) șinietBij, precum și listadagdelen. - Meniuri: clientul alege felurile (fixe și la alegere, cu opțiunile lor); în casa de marcat apare ca linie de meniu cu felurile dedesubt și prețul meniului împărțit (TVA-ul pe fel este corect). Felurile care aparțin doar unui meniu sunt trimise ca
menuArtikelen. Un magazin online vechi fără opțiuni: meniul apare pe bon ca produs obișnuit, ca înainte. - Stoc epuizat = epuizat, inclusiv opțiunile cu un ingredient care s-a terminat.
- Alergeni: oprit în casa de marcat = nu apar în magazinul online.
- Card de fidelitate: la finalizarea comenzii clientul poate aduna puncte (după numărul de telefon sau e-mail); casa de marcat asociază clientul cu comanda, iar punctele se adaugă la încasare (folosirea lor se face în local). Magazinul online afișează soldul.
- Carduri cadou (Setări → Local → Carduri cadou → Vânzare carduri cadou în magazinul online, doar cu sold): clientul cumpără un card și plătește online; casa de marcat creează cardul, care este activ imediat, iar codul ajunge înapoi în magazinul online prin portal (stare și e-mail). Dacă este pornit și Card cadou ca metodă de plată, clientul poate alege la pachet "cu un card cadou în local".
- Coduri de reducere (Setări → Coduri de reducere, cu comutatorul la Local): pentru fiecare cod la casă și/sau în magazinul online; utilizarea se numără împreună pentru ambele.
- Pauză și aglomerat: butonul Magazin online din bara de sus: Pauză magazin online (cu un text pentru client) și Aglomerat (minute în plus). Ajunge în magazinul online în câteva secunde.
- Rezervări online cu regulile casei de marcat (Setări → Local → Rezervări): număr maxim de persoane, zile în avans, interval de rezervare, minimum înainte și orele pe zi a săptămânii.
- Livrare și intervale orare: vezi Magazinul online urmează casa de marcat la Livrare și intervale orare.
- All-you-can-eat la masă (Setări → Local → All-you-can-eat → Și la comanda de la masă prin codul QR): dacă la masă rulează un pachet, clientul vede preparatele incluse ca Inclus pentru € 0, cu rundele, maximul de persoană, timpul de așteptare și limita de timp. Restul îl plătește normal; totul ajunge pe nota mesei. Dacă starea de la masă tocmai s-a schimbat, casa refuză comanda și clientul comandă din nou.
- Pe factură (Setări → Facturi → Plata pe factură → Și în magazinul online): vezi În magazinul online la Plata pe factură.
- Online pe lista de așteptare (Setări → Local → Listă de așteptare): vezi Online pe lista de așteptare la Listă de așteptare pentru clienții fără rezervare.
- Upsell: "Mai dorești ceva?" (opțional, implicit oprit; Setări → Local → Încasare → Upsell în magazinul online): alegeți categoriile (de ex. băuturi, sosuri, deserturi) și câte sugestii. În magazinul online apar atunci, la coș și la încasare, produse din aceste categorii care nu sunt încă în coș (doar ce se vinde acum, neepuizate și fără opțiuni obligatorii); clientul le adaugă cu o singură atingere. Nicio categorie aleasă = oprit, ca înainte. Chioșcul are propriul upsell (vezi Chioșc self-service).
Pentru aceasta, meniul pentru magazinul online are versie: 2 cu câmpurile menuArtikelen, allergenenAan, happyhours, menus, klantenkaart, cadeaubon, kortingscodes, pauze, drukteMin, volgt, bezetting, reserveren.online, ayce, opRekening, wachtlijst și upsell. Confirmarea către portal are în plus cadeaubonnen (coduri), klant (puncte) și plek (listă de așteptare).
Numărare în portalul de administrare. La pachet și livrarea prin magazinul online se numără separat (webshop, webshopGeannuleerd în verkoopTelling), în ziua primirii, și nu se mai adaugă încă o dată la la pachet/livrare. Comanda la masă se numără normal la masă.
Plata cu cardul și terminale de plată
Setări → Plăți (doar administratorul):
- Terminale: pe terminal un nume, ID-ul terminalului și cheia API proprie din PinPortal (Klant → Bewerk klant → Overige → API Keys). După salvare din cheie se mai vede doar finalul; ea nu se mai întoarce niciodată în browser. Cu Testează conexiunea verificați cheia și terminalul.
- Mod test: simulează un terminal (reușită după ±7 s; o sumă care se termină în 13 cenți este refuzată). Util pentru teste fără terminal de plată.
Dacă există cel puțin un terminal cu cheie API (sau modul test este pornit), Încasare → Card / Bancontact pornește automat plata pe terminal, pentru suma calculată de server.
Cât timp integrarea este pornită, serverul acceptă „card” doar cu o plată reușită pe terminal pentru exact acea comandă și acea sumă. Cererile se trimit, ca în SDK-ul PHP oficial, ca formular obișnuit, cu API-ul de rezervă (api-backup.pinvandaag.com) dacă API-ul principal nu răspunde. Fiecare răspuns al API-ului apare cu [pin] în fereastra serverului, util la defecțiuni. O plată reușită care nu a fost încă procesată (de ex. tabletă căzută) este regăsită la următoarea încasare a acelei comenzi.
Bacșiș (card, numerar și card cadou)
Pe ecranul de încasare există la fiecare metodă de plată un rând de butoane de bacșiș: Fără, 5%, 10%, 15% (rotunjit în sus la 10 cenți), Rotunjire (la următorul euro întreg) și Altă sumă. La card clientul plătește suma + bacșiș deodată pe terminal; la numerar bacșișul se include în rest și în sertarul de bani. Pe bon apare suma plătită cu cardul cu „din care bacșiș” dedesubt; TOTALUL și TVA rămân aceleași, deoarece bacșișul nu înseamnă vânzări. În raportul X/Z bacșișul apare pe metode de plată și ca „Total bacșiș”.
Administratorul setează butoanele de bacșiș la Setări → Local → Bacșiș: pornit/oprit, ce procente (cel mult 4, de ex. „5, 10, 15”), dacă apare butonul „Rotunjire” și la ce metode de plată (card, numerar, card cadou) este posibil bacșișul. „Fără” și „Altă sumă” sunt mereu incluse.
„Faceți …” apare întotdeauna, la fiecare metodă de plată, chiar dacă butoanele de bacșiș sunt oprite (nu există setare): clientul rotunjește singur nota în sus, iar diferența este bacșiș. Există butoane cu următorul euro întreg și următoarele sume rotunde (de ex. € 28,00 → 29, 30, 40; € 44,00 → 45, 50, 60) și Alt total pentru a introduce manual totalul. O nouă atingere pe butonul ales = fără rotunjire. Bacșiș de cel mult € 500 (aceeași limită ca serverul casei).
Fără internet
Casa funcționează în rețeaua locală și nu are nevoie de internet; doar plata cu cardul prin integrare are nevoie. Dacă localul nu are internet, în bara de sus apare Fără internet · card manual (verificat în fiecare minut). Pe ecranul de încasare apare atunci, și după o pornire eșuată pe terminal, butonul Plătit deja pe terminal: introduceți suma direct pe terminal și înregistrați-o astfel.
Planuri de sală și mese
Setări → Planuri de sală (doar administratorul):
- Adăugare planuri de sală (de ex. Sală, Terasă, Seră), redenumire, ștergere și schimbarea ordinii cu ◀ ▶.
- Adăugați mese cu butoanele de deasupra grilei (rotundă, pătrată, lungă, masă înaltă) și trageți-le cu mouse-ul sau degetul la locul lor. Colțul albastru al unei mese selectate o mărește sau o micșorează.
- Pe masă setați nume/număr, număr de persoane (scaunele din jurul mesei contează) și forma; duplicare sau ștergere.
- Cu tastatura: săgețile mută (Shift = pas mai mare), Delete șterge.
- Modificările se aplică abia după Salvează; „Anulează” readuce totul.
- O masă sau un plan de sală cu o comandă deschisă nu poate fi șters. Mesele șterse rămân păstrate în comenzile vechi.
Transferul configurației la un al doilea local
Setări → Import/export (doar administratorul). Dacă ați configurat complet un local, exportați configurația într-un fișier .json și importați-l în casa celui de-al doilea local. Se poate alege pe componentă:
- Produse: grupuri, produse, prețuri (și pe tip de comandă), TVA, opțiuni, meniuri, happy hour-uri (cu sezon), perioade de meniu, alergeni, ingrediente/rețete, carduri cu ștampile, pachetele all-you-can-eat și fotografiile produselor.
- Planuri de sală: săli și mese.
- Alte setări: toate opțiunile localului, imprimantele (fără adresă IP), drepturile pe rol și contabilitatea.
Niciodată nu se transferă: numele, adresa, codul poștal, localitatea, telefonul, e-mailul, codul de TVA și textul de final al bonului ale localului, adresa de e-mail pentru raportul Z, terminalele de plată și cheile lor, personalul și PIN-urile, precum și toate vânzările, bonurile, clienții și cantitățile din stoc.
Importul este puternic securizat: un avertisment roșu mare, o bifă „Înțeleg...”, din nou PIN-ul propriu al administratorului, nicio comandă deschisă, aceeași țară (cote TVA) și un backup automat în prealabil. Importul are loc într-o singură tranzacție: dacă ceva nu merge, nu se schimbă nimic. Produsele, grupurile, ingredientele și mesele existente nu sunt șterse, ci scoase din casă (ca la Ștergere), astfel încât bonurile și rapoartele vechi să rămână corecte.
Import din altă casă de marcat
Schimbați casa de marcat fără să retastați totul. Disponibil întotdeauna (fără comutator): la Setări → Import/export (doar administratorul) se află secțiunea Import din altă casă de marcat.
- Ce: produse (nume, preț cu TVA, TVA, categorie, cod/PLU, stoc) sau clienți ai cardului de fidelitate (nume, telefon, e-mail, puncte, adresă, cod poștal, localitate; prenumele și numele de familie se unesc).
- Fișier: un export al casei de marcat anterioare (Dobizzz/DoPos, Lightspeed, MplusKASSA, unTill, Tebi ...) sau o listă proprie: CSV (; , tab sau |; UTF-8 sau Excel în neerlandeză) sau Excel (.xlsx), prima foaie, cu numele coloanelor pe primul rând. Un fișier vechi .xls salvați-l întâi ca .xlsx sau CSV.
- Previzualizare: casa de marcat recunoaște coloanele după nume (Omschrijving, Verkoopprijs incl. BTW, BTW %, Omzetgroep, Artikelnummer, GSM, Spaarpunten ...) și arată primele 10 rânduri. Dacă o coloană nu se potrivește, alegeți-o singur. Nu se schimbă nimic până la Importă.
- Produse: prețuri ca 3,50, € 3,50 sau 1.234,50; TVA ca 21, 9%, 0,09, mare sau mică (necunoscut sau gol: cota pe care o alegeți, implicit cea mai mare). Categoriile care nu există încă sunt create (fără categorie: "Importat").
- Stoc (coloana Voorraad, Stock, Aantal ...): dacă Urmărire stoc este activată (Setări → Local), produsul urmărește stocul și stocul devine acea cantitate (o numărare în istoricul stocului, motiv "Importat"). Gol: stocul rămâne cum este.
- Fișier exemplu (CSV): o listă de completat singur (Naam;Productgroep;Prijs;Btw;Voorraad;Code), de exemplu în Excel.
- Clienți: punctele se adaugă ca o corecție "Importat din altă casă de marcat" (vizibilă în istoric). Acordul pentru SMS sau e-mail nu se preia (GDPR): trebuie cerut din nou. Activați întâi cardul de fidelitate.
- Produsele existente (același cod sau, fără cod, același nume) și clienții (același telefon sau e-mail) sunt săriți sau actualizați, dacă bifați asta (la produse: nume, preț, TVA, categorie și stoc). Rândurile duplicate din fișier sunt luate o singură dată.
- La final: câte noi, actualizate și sărite, cu ce nu a fost în regulă la fiecare rând (de ex. lipsă preț). Maximum 5000 rânduri odată. În jurnal apare ca "Configurație importată".
Limbi (42, printre care turcă, arabă, Darija, berberă, poloneză, bulgară, maghiară, rusă, sârbă, albaneză, persană, tigrină, amharică, somaleză, papiamento, sranan tongo, hindi, urdu, indoneziană, vietnameză, aramaică siriacă, chineză și ucraineană)
Lângă butonul © din dreapta jos, pe fiecare ecran există un buton cu limba (de ex. NL și steagul). Atingeți-l pentru meniul de selecție: limbile sunt în ordine alfabetică, cu numele în limba proprie înaintea steagului: Bahasa Indonesia (indoneziană), Čeština (cehă), Darija (araba marocană în alfabet latin), Deutsch, English, Español, Français, Hrvatski (croată), Italiano, Kurdî (Kurmancî), Latviešu (letonă), Lietuvių (lituaniană), Magyar (maghiară), Nederlands, Papiamentu (papiamento), Polski, Português, Română, Shqip (albaneză), Slovenčina (slovacă), Soomaali (somaleză), Sranantongo, Srpski (sârbă, în alfabet latin), Tarifit (berberă rifană), Tiếng Việt (vietnameză), Türkçe, în continuare în alfabet chirilic Български (bulgară), Русский (rusă) și Українська (ucraineană), apoi limbile în alfabet arab: اردو (urdu), الدارجة (Darija), العربية (arabă), دری (dari), فارسی (persană, farsi), پښتو (paștună) și کوردی (سۆرانی) (kurdă sorani), apoi în alfabet siriac ܣܘܪܝܝܐ (aramaică siriacă, Suryoyo), în devanagari हिन्दी (hindi), în alfabet ge'ez ትግርኛ (tigrină) și አማርኛ (amharică), în alfabet tifinagh ⵜⴰⵎⴰⵣⵉⵖⵜ (Tamazight, berberă), și la final 中文(简体)(chineză, scriere simplificată). Toate ecranele, butoanele, mesajele și mesajele de eroare ale serverului casei sunt traduse.
- Pe angajat: limba aleasă este salvată la angajatul autentificat (
gebruiker.taal). Dacă cineva se autentifică cu altă limbă, casa comută imediat. Pe dispozitivul însuși se reține ultima limbă folosită, astfel încât și ecranul PIN să fie deja în acea limbă. Dacă alegeți o limbă (pe ecranul PIN sau autentificat) și vă autentificați (din nou) în 10 minute, acea alegere are prioritate și devine limba acelui angajat. Schimbarea reîncarcă ecranul; rămâneți autentificat, iar nota deschisă rămâne deschisă. - Prima dată pe un dispozitiv: dacă pe o tabletă sau un PC nu este încă setată nicio limbă, casa pornește în limba aleasă la instalare. Dacă nu s-a ales nicio limbă, folosește limba dispozitivului (browser sau sistem de operare, și în aplicația Android), iar dacă aceasta nu este printre ele, neerlandeza. Apoi fiecare dispozitiv își amintește propria alegere.
- Europa de Est: poloneză, cehă, slovacă, maghiară, română, bulgară, croată (și pentru bosniacă), lituaniană, letonă, ucraineană și rusă: limbile majorității lucrătorilor migranți din Europa Centrală și de Est în Țările de Jos și Belgia.
- Balcani: sârbă (în alfabet latin, așa cum o scriu majoritatea sârbilor din Țările de Jos și Belgia; și pentru muntenegreană) și albaneză (Albania, Kosovo și Macedonia de Nord).
- Cornul Africii: tigrină (Eritreea) și amharică (Etiopia), ambele în alfabet ge'ez, și somaleză (în alfabet latin).
- Iran: persană (farsi). Un dispozitiv în persana din Afganistan (fa-AF) primește dari, restul farsi.
- Țările de Jos Caraibiene și Surinam: papiamento (Papiamentu, ortografia din Curaçao și Bonaire; și pentru Aruba) și sranan tongo.
- Asia: hindi (devanagari; și pentru sarnami hindustani), urdu (de la dreapta la stânga), indoneziană și vietnameză (alfabet latin, și pe bon).
- Marocane: Darija (araba marocană, limba vorbită) atât în alfabet arab, cât și în alfabet latin (așa cum scriu în mesaje mulți neerlandezi de origine marocană), pe lângă araba standard. Berbere: Tarifit (rifană, în alfabet latin; majoritatea neerlandezilor de origine marocană provin din Rif) și Tamazight marocană standard în alfabetul tifinagh.
- De la dreapta la stânga: arabă (arabă standard), urdu, Darija în alfabet arab, dari și paștună (Afganistan), persană (farsi, Iran), kurdă sorani (Irak/Iran) și aramaică siriacă (Suryoyo, în alfabet siriac). Sumele, codurile și tastele numerice rămân de la stânga la dreapta. Kurda kurmanci (Turcia/Siria) este în alfabet latin.
- Bon de bucătărie (bucătărie/bar): implicit în limba angajatului care transmite comanda. Pe imprimantă, la Setări → Imprimante → Limba bonului de bucătărie, se poate alege și o limbă fixă (de ex. cea a bucătarului), în alfabet latin: 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 sau Türkçe. Bulgara, rusa și ucraineana apar pe bonul de bucătărie în transcriere latină (imprimanta de bonuri nu cunoaște chirilica). Alfabetele arab, siriac, devanagari, ge'ez și tifinagh și chineza nu sunt posibile pe o imprimantă de bonuri: atunci Darija apare în alfabet latin, Tamazight ca Tarifit, iar restul în neerlandeză. Textele fixe (TAFEL, Gang, WACHT op afroep, AFROEP GANG, LATER GEPRINT, Afhalen, Balie) sunt traduse; numele produselor și observațiile rămân așa cum au fost introduse. Imprimantele care erau setate pe neerlandeză urmează de acum limba angajatului.
- Bon fiscal (pentru toți clienții): implicit în neerlandeză, independent de limba ecranelor. O altă limbă alegi la Setări → Local → Limba bonului fiscal (chiar sub textul de la finalul bonului), doar limbi în alfabet latin. Acest lucru se aplică și proformei, bonului de retur, copiei, voucherului cadou și bonului trimis prin e-mail. Sumele, codurile de TVA, codul de TVA al localului și rândurile fiscale (Belgia) rămân la fel; un text propriu de la finalul bonului rămâne așa cum l-a scris localul.
- Produsele, grupurile și opțiunile au numele introduse de local; acestea nu sunt traduse.
- Limba pentru fiecare angajat o setați și în Setări → Personal.
- Introducerea și manualul sunt disponibile și în toate aceste limbi. Prin butonul © se deschid în limba casei; sus alegeți o altă limbă cu steagurile (asta nu schimbă nimic în casă).
Pentru dezvoltatori: fiecare text vizibil se află în cod ca vt('Nederlandse tekst') (apps/pos-web/lib/i18n.ts); textul în neerlandeză este cheia. Traducerile se află în apps/pos-web/lib/vertalingen/<taal>.ts. Dacă lipsește o traducere, casa afișează textul în neerlandeză; testul i18n (pos-web) verifică dacă fiecare text este tradus în fiecare limbă și dacă locurile {0} corespund. Mesajele serverului casei rămân în neerlandeză și sunt traduse în browser (inclusiv cu {0}, de ex. un nume de produs în mesaj).
Configurarea imprimantelor
O casă nouă nu are imprimante. Autentificați-vă ca administrator (demo: 1111) și alegeți Setări din bara de sus.
- Imprimante: adăugați atâtea imprimante câte are localul (de ex. casă, bucătărie, bar, pizza), fiecare cu o conexiune (de obicei rețeaua: adresă IP și port 9100) și lățimea hârtiei. Cu Bon de test verificați dacă funcționează. Sus alegeți ce imprimantă tipărește bonul fiscal și proforma (și deschide sertarul de bani). Pe imprimantă alegeți și limba bonului de bucătărie (vezi Limbi); bonul fiscal rămâne în neerlandeză.
- Conexiune pe imprimantă:
- Rețea (adresă IP): adresă IP și port (de obicei 9100). Așa a funcționat mereu și așa funcționează în continuare: imprimantele existente sunt setate automat pe rețea.
- USB: pe Linux dispozitivul, de exemplu
/dev/usb/lp0. Pe Android imprimanta USB conectată la dispozitiv (cablu OTG; gol = prima imprimantă USB). Pe Windows și macOS alegeți Imprimantă de sistem. - Serial (COM / ttyUSB): un port COM (Windows),
/dev/ttyUSB0sau/dev/ttyS0(Linux, Android) sau/dev/cu.…(macOS), cu viteza (de obicei 9600, 19200 sau 38400 baud). Și pentru o imprimantă Bluetooth pe care Windows sau Linux o asociază ca port COM sau/dev/rfcomm0. - Bluetooth: în aplicația HorecaPOS pe Android, cu adresa Bluetooth a imprimantei asociate (de ex. o imprimantă de bonuri mobilă). Asociați mai întâi imprimanta în setările Bluetooth din Android.
- Imprimantă de sistem (Windows / CUPS): imprimanta așa cum o cunoaște Windows sau CUPS (Linux, macOS), cu propriul driver sau ca Generic / Text Only. Bonul este trimis brut (RAW) la imprimantă, fără formatare de către driver.
- Integrată (Sunmi, iMin ...): imprimanta din casa de marcat Android însăși.
- Căutare afișează imprimantele și porturile pe care le vede casa de marcat. Alegeți una și adresa se completează automat.
- Protocol: ESC/POS (aproape toate imprimantele de bonuri, inclusiv imprimantele Star în modul ESC/POS) sau Star (Star Line Mode). La Star, casa de marcat convertește singură bonul; bonul arată la fel.
- Terminal de servire cu imprimantă proprie: un terminal de servire Android cu aplicația HorecaPOS (de ex. un terminal portabil cu o imprimantă Bluetooth mobilă sau un Sunmi ca terminal de servire) poate tipări singur. Înregistrați-l pe dispozitivul însuși (Setări → Imprimante → Terminale de servire cu imprimantă proprie) și alegeți la imprimantă Conectată la. Terminalul de servire își preia bonurile de la casa de marcat; lăsați aplicația deschisă pe el. Dacă nu reușește (aplicație închisă, în afara razei wifi), bonul de bucătărie intră în coada de tipărire, la fel ca la o imprimantă de rețea oprită. Anulează înregistrarea dispozitivului mută imprimantele înapoi pe casa de marcat însăși.
- Imprimantă pe grup / produs: alegeți pe grup de articole la ce imprimantă ajunge bonul de bucătărie. Pe produs puteți suprascrie acest lucru cu o imprimantă proprie sau „fără bon de bucătărie”.
Produsele identice sunt combinate la tipărire: de două ori 1x Cola devine 2x Cola, pe bonul de bucătărie și pe bonul fiscal. Doar produsele cu aceleași opțiuni și observație se combină.
Programul de instalare pentru Linux adaugă utilizatorul casei de marcat în grupurile lp și dialout, astfel încât casa de marcat să poată folosi imprimante USB și seriale.
Aveți nevoie de ajutor?
Optimum POS · 085 560 00 60 · support@optimumpos.nl · lun–vin 9:00–20:00, sâm–dum 14:00–20:00