HorecaPOSManual Introducere La casa de marcat
RO

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.

Autentificare cu PIN

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.

Plan de sală

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.

Încasare

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.

Împărțirea notei la încasare

Ecran de î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):

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ă)

Planul sălii cu Vânzare rapidă și La pachet

Î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).

Extinderi (totul implicit oprit; fără aceste setări funcționează exact ca mai sus):

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:

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ăPentruConfigurare
Webhook / action URL3CX (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 UCMadresă, port (5038; Grandstream UCM 7777), utilizator AMI și parolă (drepturi call)
FRITZ!BoxFRITZ!Box cu telefonieadresă (fritz.box) și portul 1012; activează o dată callmonitor cu #96*5*
Modem USB caller IDlinie fixă analogică cu afișarea număruluiport serial (COM3, /dev/ttyACM0), baud și comandă de inițializare (implicit AT+VCID=1)
Telefon Androidtelefonul integrat al unui telefon Android al localuluiaplicaț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).

  1. 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).
  2. Alegeți curierul (un angajat) și banii de rest pe care îi ia (implicit suma din setare) și atingeți Creați cursa.
  3. 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ă.
  4. 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ă.

  1. 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):

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:

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:

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:

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ă:

  1. La Telefoane asociate alegeți curierul (un angajat), eventual numele telefonului, și atingeți Asociază telefonul.
  2. 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.
  3. 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:

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).

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:

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:

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.

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.

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:

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:

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.

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:

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ă:

Carduri cadou

Două comutatoare la Setări → Local → Carduri cadou:

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).

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.

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).

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:

La comandă (ecranul de comandă, pentru ce atingeți după aceea):

La încasare:

Ulterior (Bonuri):

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.

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).

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.

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ă).

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ă.

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:

Favorite / butoane rapide

Implicit oprit. Setări → Local → Favorite / butoane rapide:

Î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).

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:

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).

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).

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).

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.

Administratorul adaugă sursele cu + Sursă de muzică, alege cum este conectată fiecare și o verifică cu Testare:

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.

  1. Conectați tableta sau telefonul la rețeaua wifi a localului.
  2. Scanați codul QR cu camera (sau introduceți adresa în browser).
  3. Autentificați-vă cu propriul cod PIN. Vedeți doar ce aveți voie: muzica toată lumea, camerele doar cu dreptul Vizualizare imagini camere.
  4. 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).

  1. 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ă.
  2. 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ă).
  3. 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:

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):

În casa de marcat există butonul Cheamă (cu numărul de comenzi încă în preparare):

  1. 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.
  2. Înapoi îl mută din nou la În preparare.
  3. 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:

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:

Î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ă.

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.

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.

Butonul ©

Date OptimumPOS

Î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:

Stoc

Implicit oprit. Se activează la Setări → Local → Urmărire stoc. Oprit = nu apare nicăieri în casă.

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.

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.

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.

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 propriubacșișul notelor pe care angajatul le-a încasat personal
Fond comun după oretot bacșișul la un loc, după orele pontate în acea perioadă (necesită pontaj intrare/ieșire; nimeni pontat = egal)
Fond comun egaltot 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.

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ă):

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:

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).

Reduceri

Un manager sau administrator vede pe ecranul de comandă, lângă total, butonul % Reducere:

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):

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

Raport - situație intermediară (X)

Butonul Raport din bara de sus:

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):

ParteCe
Debitîncasări pe metodă de plată (numerar, card, card cadou, online, altele), inclusiv bacșiș
Creditvânzări pe cotă de TVA (fără TVA) și TVA de plată pe cotă
Creditbacș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ă:

FormatFișierImportul în program
General (CSV)journaal_…csvorice program cu import CSV/de note contabile (asocierea coloanelor)
UBL 2.1 / Peppol (XML), NL și BEjournaal_…_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), NLjournaal_…_xaf.xaffiș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), NLjournaal_…_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.xmlXML 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), NLjournaal_…_asperion.csvformat 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 BEjournaal_…_dagstaat.htmlraport 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.csvDată; 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.xmleExact-XML (subiect GLTransactions): pe zi o notă contabilă (tip 90) în jurnal; Import/export → Import XML
InformerOnline (TXT), NLjournaal_…_informer.txtnote contabile separate prin tabulatori (Geavanceerd → Memoriaal → uploaden); jurnalul trebuie să fie un număr 1–99 (altfel 90)
KING ERP (XML), NLjournaal_…_king.xmlKING_JOURNAAL: un lot de înregistrări (nedefinitiv) cu o înregistrare în jurnal pe zi
KOMAS (CSV), NLjournaal_…_komas.csvformat liber KOMAS (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag
Odoo (CSV), NL și BEjournaal_…_odoo.csvContabilitate → Journal Entries → Import records; jurnalul și contul după nume sau cod
Sage BOB 50 (Excel), BEjournaal_…_bob.xlsxImportation de données externes → Opérations diverses (coloanele se asociază o singură dată)
SAP Business One (ZIP), NL și BEjournaal_…_sapb1.zipData Transfer Workbench, Journal Entries: JournalEntries.csv și JournalEntries_Lines.csv
SnelStart (CSV)journaal_…_snelstart.csvDată; 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.xmltranzacț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), BEjournaal_…_winbooks.csvK_DOC.CSV, pe zi un document în jurnal (Winbooks numerotează singur)
Yuki (XML)journaal_…_yuki.xmlJournal-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.

ProgramNLBELiveFișierObservație
IMM-uri și liber-profesioniști
Accountable–✓–Raport zilnic (HTML, pentru PDF sau e-mail)
AccountView (Visma)✓–la cerereAccountView (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 cerereAsperion (CSV)Live după înregistrarea ca partener API la Asperion.
Billit–✓la cerereUBL 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 cerereKING 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 cerereXML 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 cerereWinbooks (CSV)
Wolters Kluwer Adsolut–✓la cerereUBL 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 generalFă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 cerereCSV 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 cerereUBL 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.

ProgramȚarăConectare cuCe înregistrează casa de marcat
AcumulusNLcodul de contract, utilizatorul și parola unui utilizator APIpe 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 ProfitNLmediu, token, administrațienotă contabilă (FiEntries)
Business CentralNL, BEtenantul, 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 OnlineNL, BEautentificare (OAuth, aplicație proprie: vezi Exact Online mai jos; Belgia: start.exactonline.be)notă contabilă în jurnal (ex. 90)
HorusBEautentificare (OAuth, aplicația de mai jos), opțional dosaroperațiune diversă
MoneybirdNLtoken API, opțional administrațienotă contabilă (general journal document)
OdooNL, BEadresă, bază de date, utilizator, cheie APIînregistrare în jurnalul cu codul scurt (ex. MISC)
QuickBooks OnlineNL, BEautentificare (OAuth, aplicația de mai jos; QUICKBOOKS_OMGEVING)journal entry; conturi după număr
SAP Business OneNL, BEadresa Service Layer, bază de date, utilizator, parolăînregistrare în jurnal (JournalEntries)
SilvasoftNL, BEutilizator ș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)
SnelStartNLcheie de conectare și cheie de abonamentnotă contabilă
TwinfieldNLautentificare (OAuth, aplicația de mai jos), opțional biroutranzacție în jurnal
XeroNL, BEautentificare (OAuth, aplicația de mai jos), opțional organizațiemanual journal; conturi după cod
YukiNL, BEcheie API, opțional administrațienotă contabilă (GeneralJournal)
Zoho BooksNL, BEautentificare (OAuth, aplicația de mai jos; implicit centrul de date european), opțional organizațieînregistrare în jurnal; conturi după cod

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):

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).

Bancă: alocarea transferurilor

La Raport → Pe factură → Bancă, casa caută pentru fiecare încasare factura cu plata pe factură aferentă:

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ă:

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.

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ă:

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):

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:

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)

Bonuri

Butonul Bonuri din bara de sus:

Sertar de bani cu senzor și sertar pe angajat

Implicit oprit. Se configurează la Setări → Plăți → Sertar de bani.

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ă.

Setări: produse

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.

Setări: backupuri

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:

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?

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:

  1. 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.
  2. Atingeți Testează conexiunea: vedeți programul și versiunea sau de ce nu merge.
  3. 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ă:

  1. Casa nu primește cereri pentru scurt timp (de obicei sub un minut); apoi tabletele continuă singure.
  2. Întâi casa face un backup al stării actuale (în Setări → Backupuri).
  3. Totul trece în noua bază de date, iar casa numără pe fiecare tabel dacă totul este acolo exact.
  4. 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

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:

Conectare, în două moduri (ambele se setează pe dispozitivul însuși):

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.

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):

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.

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.

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.

Implicit oprit. Se activează la Setări → Local → Utilizare meniuri.

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).

  1. 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.
  2. 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ă).
  3. 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).
  4. 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).

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.

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):

  1. ID API și cheie API (X-Api-Id și X-Api-Key, sau Authorization: Bearer <id>:<sleutel>);
  2. Cheie API și secret API cu o semnătură: X-Api-Key, X-Timestamp și X-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.

Notificare la o versiune nouă

Se activează la Setări → Local → Notificare actualizare (implicit oprit).

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.

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.

Cere recenzii: după vizită, un singur e-mail cu un buton către Google și/sau Trustpilot.

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.

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.

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:

ProgramNLBELiveFișierObservație
Software de salarizare și furnizori de servicii de salarizare
ADP✓✓la cerereListă 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 cerereListă 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 cerereListă de ore pe angajat și zi (CSV)Conectare prin BCS (la cerere); până atunci, lista de ore.
Buddee✓–la cerereListă 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 cerereListă 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 cerereListă 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 cerereListă de ore pe angajat și zi (CSV)Conectare prin Humanwave (la cerere); până atunci, lista de ore.
Loket.nl✓–la cerereLoket.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 cerereListă 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 cerereListă 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 cerereListă 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 cerereListă 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 cerereListă 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 cerereListă 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 cerereVâ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 cerereVâ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 cerereVânzări pe zi și oră (CSV)Conectare prin Horeko (la cerere); până atunci, lista de vânzări.
Fooks✓–la cerereVâ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 cerereVâ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 cerereVâ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 cerereVâ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 cerereVâ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 cerereVâ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 cerereVâ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 cerereVâ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 cerereVâ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
BelgiaSistem 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 €
BelgiaFacturare 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țieexport 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)
BelgiaTVA 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 JosAlcoholwet: 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 JosPahare și caserole de unică folosință (SUP): din 2024 un preț separat și vizibil pentru ambalajele de plastic de unică folosință la pachet și livrareTaxă ambalaj per produs, ca linie separată pe bon (TVA-ul produsului) și separat în vânzări
Țările de JosGaranție pe doze și sticle de plasticGaranție per produs (€ 0,15 / € 0,25), linie separată fără TVA la pachet și livrare, separat în vânzări
Țările de JosPlata în numerar: din 1 ianuarie 2026 nu se mai acceptă € 3.000 sau mai mult în numerar pentru bunuriAvertizare la pachet și livrare (și la automatul de numerar); se poate confirma, se înregistrează în jurnal
Țările de Jos și BelgiaModificare TVA: o cotă sau un produs primește de la o anumită dată alt procent de TVAProgramare modificare TVA: casa o execută chiar în ziua respectivă (în Belgia per produs, literele A/B/C/D sunt fixe)
Țările de JosCazare (înnoptări) 21% din 1 ianuarie 2026cotă de TVA configurabilă per produs
UEDirectiva Omnibus: un preț tăiat "de la" poate fi doar cel mai mic preț din ultimele 30 zilemagazinul 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)
UEEuropean 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 JosXML Auditfile Financieel (XAF): standardul administrației fiscale olandeze (Belastingdienst) pentru transferul (unei părți din) contabilitate; XAF 4.0 este obligatoriu din 2027export ca XAF 4.0 (Export contabilitate)
Țările de JosSistem 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 marcatPontajul intrare/ieșire (Setări → Local; Obligatoriu = mai întâi pontare intrare) este înregistrat în cutia neagră
BelgiaDimona: fiecare angajare (inclusiv flexi-jobs și studenți) se declară la RSZ înainte de începereacest 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 JosEvidenț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 BelgiaHACCP / 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 BelgiaObligaț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.

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.

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.

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.

Adăugarea și conectarea unui chioșc

  1. 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).
  2. 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).
  3. 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.
  4. 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

  1. Ecran de start cu textul de bun venit; clientul își alege limba (toate limbile casei) și atinge pentru a comanda.
  2. Mănânc aici sau la pachet.
  3. 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.
  4. Coșul: modificarea cantităților și eventual Mai dorești ceva?.
  5. 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ă.
  6. 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.
  7. 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:

Î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.

Personal și coduri PIN

Setări → Personal (doar administratorul): adăugare angajați, modificare nume, rol și PIN, și dezactivare.

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.

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ă.

DreptOspătarManager
Ștergere rânduri după comandă (stornare)dada
Acordare reducere / eliminare reducerenuda
Marcare produs ca „epuizat”dada
Tipărire copie bondada
Retur (notă de credit)nuda
Încasare pe factură și primire plăți pe factură (doar cu plata pe factură activată)nuda
Situație intermediară (raport X)dada
Închidere zi (raport Z)nuda
Vânzări pe perioadănuda
Gestionare sertar de baninuda
Gestionare carduri cadou (doar cu carduri cadou cu sold)nuda
Citire și răspuns la recenzii (doar cu gestionarea recenziilor activată)nuda
Gestionare card de fidelitate (doar cu cardul de fidelitate activat)nuda
Vizualizare jurnalnuda
Vizualizare imagini camere (doar cu imaginile camerelor activate)nuda
Gestionare stoc (doar cu stocul pornit)nuda
Gestionarea produselornunu
Gestionare planuri de salănunu
Setare local, plăți și imprimantenunu
Vizualizare și ajustare program de lucrununu

Datele localului

Setări - Local

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

Setări - Produse

Autentificați-vă ca administrator și alegeți Setări → Produse.

Fotografii produse

Fiecare produs poate primi o fotografie.

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ă:

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ă:

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ă.

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):

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:

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.

ModelTipConexiuniÎn casă
OS6XCântar POSRS232, USB, Bluetoothconectat, mai multe simultan
OS2XCântar POSRS232, USBconectat, mai multe simultan
CS6X, CS3XCântar casă de marcatRS232, USB, Ethernet, wificonectat, mai multe simultan
TS6X, TS3X, TS5EX, TS5NX, TS5GXCântar PC (Windows, Android, Linux)RS232, USB, Ethernet, wifipe acest dispozitiv (1x), și ca cântar de etichete
iS6X, iS2X, iR6X, Ti6X, iL8XCântar AI cu recunoaștere produse (Windows, Android, Linux)RS232, USB, Ethernet, wifipe acest dispozitiv (1x), și ca cântar de etichete
iS5X, OiT2XCântar AI (doar Linux)RS232, USB, Ethernetconectat sau ca cântar cu etichete
LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NXCântar cu eticheteRS232, Ethernet, wifiscanare etichete și PLU
PS1CX, PS1DX, PS6CX, PS6DXCântar cu calcul de prețRS232conectat, mai multe simultan
PS1BXCântar cu calcul de preț fără conexiuneniciunagreutate manual
LH15XCântar suspendat cu imprimantă de eticheteRS232, Ethernet, wificonectat 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ăModelTipConexiuneProtocol (din fabrică)În casă
A&DEK-i (printre altele EK-610i), HV-WPCântar casă de marcat (doar greutate)RS232, EK-i și USBContinuu (modul stream), 2400 baud, 7E1conectat, mai multe simultan
Adam EquipmentSwiftCântar cu calcul de prețRS232, USB (opțional)Continuu (continuu către PC), 9600 8N1 (de testat)conectat, mai multe simultan
Avery BerkelFX110, FX120, FX131 (încorporat, cu scanner)Cântar casă de marcatRS232, FX131 și USBMettler Toledo 82/7 = Toledo 8217 (casa trimite W), 9600 baud, 7E1conectat, mai multe simultan
Avery BerkelFX125Cântar cu calcul de prețRS232Checkout-Dialog 06 (9600, 7O1)conectat, mai multe simultan
Avery BerkelXs, XTs, XTiCântar cu eticheteEthernet, Wi-Fi, USBPLU proprii pe cântarscanare etichete
Avery Weigh-Tronix7820, 7829, ZP900Cântar casă de marcatRS232, 7820 și USB, ZP900 și USB și EthernetNCI (casa trimite W), 9600 baud, 7E1conectat, mai multe simultan
Balanzas MarquesBM1000P TOPCântar casă de marcat (doar greutate)RS232METTLER (casa trimite W, Toledo), 9600 baud, 7E1conectat, mai multe simultan
Balanzas MarquesBM5 Junior Tower Label, BM500 ETQCântar cu eticheteEthernet, USB, RS232, BM500 ETQ și wifiPLU proprii pe cântarscanare etichete
BaxtranTW, VW, XTA, XTA-PCântar cu calcul de prețRS232Toledo (casa trimite W), 9600 baud, 7E1conectat, mai multe simultan
BizerbaCS 300 (și încorporat)Cântar casă de marcatRS232Checkout-Dialog 06 (9600, 7O1)conectat, mai multe simultan
BizerbaK-Class Flex, KH IICântar cu eticheteEthernetPLU proprii pe cântarscanare etichete
Brecknell6702U, 6710U, 6720UCântar casă de marcatRS232, USB (port COM virtual)NCI (casa trimite W), 9600 baud, 7E1conectat, mai multe simultan
CASPD-II, PDN, PDI, PDS-BCântar casă de marcatRS232, PDN și USB și Bluetooth, PDI și USBECR type 2 = Toledo (casa trimite W), 9600 baud, 7E1conectat, mai multe simultan
CASCL3000, CL5500, CL7200Cântar cu eticheteEthernet, USB, RS232, CL5500 și CL7200 și wifiPLU proprii pe cântarscanare etichete
DatalogicMagellan 9300i, 9400i, 9800i (scaner cu cântar)Cântar casă de marcatRS232 (port separat pentru cântar), USBMettler Toledo 8217 (casa trimite W), 9600 baud, 7E1conectat, mai multe simultan
DibalKS-400, D-POS 400Cântar casă de marcatRS232, D-POS 400 și USBCheckout-Dialog 06 (9600, 7O1)conectat, mai multe simultan
DibalG-325, PI-100Cântar cu calcul de prețRS232Checkout-Dialog 06 (9600, 7O1)conectat, mai multe simultan
DibalM-500 (Mistral), D-900, CS-2200Cântar cu eticheteEthernet, Wi-Fi, USBPLU proprii pe cântarscanare etichete
DIGIDS-781Cântar cu calcul de prețRS232DIGI Type B (casa trimite ENQ), 9600 8N1conectat, mai multe simultan
DIGISM-120, SM-6000Cântar cu eticheteEthernet, Wi-FiPLU proprii pe cântarscanare etichete
Dini ArgeoDFW, DGT, 3590ECântar casă de marcat (doar greutate)RS232, USB, Ethernet, DFW și 3590E și wifiContinuu (ST,GS, 0.512,kg), 9600 8N1conectat, mai multe simultan
Excell PrecisionTPE, AM4, FD4-P, FDP4-P, GE4, GEP4Cântar cu calcul de prețRS232Continuu (ST,GS,+0.876kg), 9600 8N1 (cu excepția TPE de testat)conectat, mai multe simultan
GramXFOC RS, XFOC+ RS, ZFOC RSCâ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
IshidaUni-3, Uni-5, Uni-7, Uni-9Cântar cu eticheteEthernet, Wi-Fi, USBPLU proprii pe cântarscanare etichete
Kern & SohnRPB, RFCCântar cu calcul de prețRS232, USBCheckout-Dialog 06 (Prot = DLG-06, 9600, 7O1)conectat, mai multe simultan
Kern & SohnRFE (preț), IFB, EOCCântar cu calcul de preț/de casăRS232Continuu, 9600 8N1conectat, mai multe simultan
Mettler ToledoAriva-SCântar casă de marcatRS232, USB (port COM virtual)Toledo 8217 (casa trimite W), 9600 baud, 7E1conectat, mai multe simultan
Mettler ToledoVivaCântar casă de marcatRS232Toledo 8217, 9600 baud, 7E1conectat, mai multe simultan
Mettler ToledobPlus, UC EvoCântar cu eticheteEthernet, Wi-FiPLU proprii pe cântarscanare etichete
Minebea IntecSignum, Combics, Midrics, PuroCântar casă de marcat (doar greutate)RS232, USB, Signum și Combics și EthernetContinuu (SBI, imprimare automată), 9600 8N1conectat, mai multe simultan
OhausAviator 7000Cântar cu calcul de prețRS232 sau USBCheckout-Dialog 06 (9600, 7O1)conectat, mai multe simultan
OhausValor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000Cântar casă de marcat (doar greutate)RS232, USB, EthernetContinuu (Auto Print Continuous), 9600 8N1conectat, mai multe simultan
Precia MolenDP400Cântar casă de marcatRS232, USBCheckout-Dialog 06 (9600, 7O1)conectat, mai multe simultan
Precia MolenDPOS CR, C 210 B, C 210 CCântar cu calcul de prețRS232Checkout-Dialog 06 (9600, 7O1; C 210 de testat)conectat, mai multe simultan
Precia MolenCorail 500Cântar cu eticheteEthernet, Wi-FiPLU proprii pe cântarscanare etichete
PrecisaXB, XT, LS, LX (balanțe de precizie)Cântar casă de marcat (doar greutate)RS232, LS și LX și USBContinuu (modul de imprimare CONTINUOUS), 9600 8N1conectat, mai multe simultan
Rice LakeBenchPro BP-S, BenchPro BP-RCântar casă de marcatRS232BP-S Toledo 8213, BP-R NCI (ambele: casa trimite W), 9600 baud, 7E1 (de testat)conectat, mai multe simultan
RongtaRLS1000, RLS1100Cântar cu eticheteEthernet, RS232, wifiPLU proprii pe cântarscanare etichete
SartoriusEntris, QuintixCântar casă de marcat (doar greutate)RS232, USBContinuu (SBI, imprimare automată), 9600 8N1conectat, mai multe simultan
Star MicronicsmG-T12, mG-T30, mG-T60, mG-S8200Cântar casă de marcat (doar greutate)RS232, USB (port COM virtual)Continuu, 9600 8N1 (de testat)conectat, mai multe simultan
T-ScalePA10, PA15, PEA10Cântar cu eticheteEthernetPLU proprii pe cântarscanare etichete
UWEASEPCântar cu calcul de prețRS232Continuu, 9600 8N1 (de testat)conectat, mai multe simultan
WedderburnTSDS983Cântar casă de marcatRS232DIGI Type B (casa trimite ENQ), 9600 8N1 (de testat)conectat, mai multe simultan
WedderburnTSDS781T, TSDS782TCântar cu calcul de prețRS232DIGI Type B, 9600 8N1 (de testat)conectat, mai multe simultan
WedderburnTSSM120Cântar cu eticheteEthernet, RS232PLU proprii pe cântarscanare etichete
WintecScalePOS ACS-S60E (casă cu cântar integrat)Cântar casă de marcatCOM6 intern (Windows) sau COM4 (Android)Continuu, 9600 8N1 (de testat)conectat
ZebraMP7000, MP72 (scaner cu cântar)Cântar casă de marcatRS232 (port AUX)SASI = Toledo (casa trimite W), 9600 baud, 7E1 (de testat)conectat, mai multe simultan

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.

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:

Aclas OS6X (cântar POS la casă, RS232/USB; la fel funcționează și celelalte cântare conectate):

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):

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):

  1. Activați Utilizare Thuisbezorgd (se aplică imediat, independent de Salvează).
  2. Î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ă.
  3. 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.
  4. 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.
  5. Î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:

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):

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

Editor plan de sală

Setări → Planuri de sală (doar administratorul):

Transferul configurației la un al doilea local

Setări - Import/export

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ă:

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.

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.

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.

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