HorecaPOSInstrukcja Wprowadzenie Do kasy
PL

Instrukcja HorecaPOS

Ta instrukcja składa się z trzech części: najpierw dla personelu (obsługa), potem dla kierownika, a na końcu dla administratora. Każda część opiera się na poprzedniej: kierownik może wszystko, co obsługa, a administrator może wszystko.

Co dokładnie wolno Twojej roli, ustawia administrator w Ustawienia → Uprawnienia. Jeśli nie widzisz jakiegoś przycisku, Twoja rola nie ma (jeszcze) do niego uprawnień.

Ta instrukcja jest też dostępna w kasie: dotknij przycisku © w prawym dolnym rogu dowolnego ekranu i wybierz Instrukcja albo otwórz http://<kassa-pc>:3000/handleiding. Zobacz też wprowadzenie i dokumentację API.

Część 1 · Personel

Pierwsze kroki

Logowanie. Otwórz kasę na kasie, tablecie lub telefonie i wpisz swój PIN (od 4 do 8 cyfr). Następnie zobaczysz plan sali.

Logowanie kodem PIN

Otwieranie stolika. Dotknij stolika. Wolny stolik dostaje nowe zamówienie; przy zajętym stoliku kontynuujesz istniejące zamówienie. U góry przełączasz się między pomieszczeniami (np. Sala i Taras). Przy ladzie używasz Szybka sprzedaż, a do zamówień na wynos Na wynos.

Plan sali

Zamawianie. Wybierz grupę produktów i dotykaj produktów. Pojawiają się na rachunku po lewej. Ewentualnie najpierw wybierz danie (1 = od razu, 2 i 3 czekają, aż je wywołasz). Dotknij Zamów: wtedy bony kuchenne trafiają do kuchni i baru. Dopóki nie dotkniesz Zamów, możesz po prostu usuwać pozycje.

Rozliczenie. Dotknij Rozliczenie, wybierz Karta / Bancontact, Gotówka lub Karta podarunkowa, ewentualnie napiwek, i potwierdź. Przy płatności kartą transakcja sama uruchamia się na terminalu. Paragon zostaje wydrukowany; możesz go też wysłać e-mailem.

Rozliczenie

Wylogowanie. Wyloguj się, gdy skończysz, aby nikt inny nie pracował pod Twoim nazwiskiem. Po 8 godzinach zostaniesz wylogowany automatycznie.

Brak internetu? Kasa po prostu działa dalej. Jeśli u góry widnieje Brak internetu · karta ręcznie, wprowadź kwotę bezpośrednio na terminalu płatniczym i wybierz na ekranie rozliczenia Już zapłacono na terminalu.

Kilka grup przy jednym stoliku

Przy jednym stoliku może siedzieć kilka grup, każda z własnym rachunkiem i własnym paragonem.

Dzielenie rachunku przy rozliczeniu

Ekran rozliczenia

Rozliczenie działa jak zawsze: Wszystko naraz. Na ekranie rozliczenia rachunek można teraz także podzielić, przyciskami pod Wstecz i Rozlicz (dzięki temu są zawsze widoczne, bez przewijania):

Płatność częściowa księguje tylko płatność; rachunek pozostaje otwarty, a na ekranie zamówienia widnieje „już zapłacono … · pozostało …”. Paragon (ze wszystkimi płatnościami) pojawia się przy ostatniej płatności, tak jak przy zwykłym rozliczeniu. Płatność kartą przez integrację jest dokładnie na kwotę częściową. Jeśli część już zapłacono, nie można przenosić pozycji do innej grupy ani dodawać rabatów; usuwanie jest możliwe tylko wtedy, gdy pozostało wystarczająco do zapłaty. Każda płatność częściowa trafia do dziennika zdarzeń.

Szybka sprzedaż i na wynos (bez stolika)

Plan sali z Szybką sprzedażą i Na wynos

W prawym górnym rogu ekranu stolików znajdują się Szybka sprzedaż i Na wynos. Oba od razu otwierają zamówienie bez stolika. Szybka sprzedaż to sprzedaż przy ladzie (VAT na miejscu); Na wynos używa stawki VAT na wynos dla każdego produktu. W polu „Nazwa klienta” dodajesz nazwisko; pojawia się ono na paragonie („Na wynos – Kowalski”) i u góry bonu kuchennego. Otwarte zamówienia bez stolika widać pod przyciskami pomieszczeń („Bez stolika: Na wynos #12 – Kowalski”), dzięki czemu łatwo je odnaleźć. Jeśli wrócisz, nic nie sprzedając, puste zamówienie zniknie samo.

Oba przyciski można włączyć lub wyłączyć dla każdego lokalu w Ustawienia → Lokal, tuż pod jasnym/ciemnym motywem (domyślnie włączone). Wyłączone = przycisk ukryty; już otwarte zamówienia bez stolika pozostają widoczne.

Dostawa i przedziały czasowe

Zamówienia, które przyjmujesz sam w kasie, na przykład telefonicznie lub przy ladzie, według tych samych zasad co w sklepie internetowym: strefy dostawy i maksymalna liczba zamówień na przedział czasowy. Włączasz w Ustawienia → Lokal → Dostawa i przedziały czasowe, bezpośrednio pod przyciskami Szybka sprzedaż i Na wynos (domyślnie wyłączone).

Rozszerzenia (wszystko domyślnie wyłączone; bez tych ustawień wszystko działa dokładnie jak powyżej):

Kod: lib/bezorgen.ts, routes/bezorgen.ts, BezorgDialoog.tsx, BezorgInstellingen.tsx, BezorgKaart.tsx i lib/kaart.ts (mapa, bez dodatkowego pakietu; ten sam kod jest w sklepie internetowym jako public/kaart.js).

Telefonia: rozpoznawanie klienta przy zamówieniu telefonicznym

Ustawienia → Telefonia (domyślnie wyłączone; wyłączenie zachowuje wszystko). Dwa osobne przełączniki:

Przeszukiwane są: karta lojalnościowa, zamówienia z dostawą i na wynos z kasy, sklep internetowy, Thuisbezorgd, platformy dostaw i rezerwacje. Numery są ujednolicane (+31 6 1234 5678, 0031612345678 i 06-12345678 to ten sam numer; także numery belgijskie).

Jak numer trafia do kasy (można kilka naraz; ta sama rozmowa liczy się raz):

ŹródłoDlaKonfiguracja
Webhook / action URL3CX (integracja CRM), Aircall, Voys / VoIPGRID, Yeastar seria P, aparaty z action URL przy połączeniu przychodzącym (Fanvil, Grandstream, Mitel 6800/6900, Snom, Yealink: działa z każdą centralą i operatorem), usługi integracji (Zapier, Make, n8n, Power Automate)adres z Ustawienia → Telefonia (/api/telefonie/oproep?sleutel=...&nummer=...), GET lub POST, JSON, formularz lub query; także przez portal: https://<portaal>/telefonie/<kassa-id>/oproep?sleutel=...
Asterisk (AMI)Asterisk, FreePBX, Issabel, VitalPBX, Grandstream UCMadres, port (5038; Grandstream UCM 7777), użytkownik AMI i hasło (uprawnienia call)
FRITZ!BoxFRITZ!Box z telefoniąadres (fritz.box) i port 1012; jednorazowo włącz callmonitor przez #96*5*
Modem USB caller IDanalogowa linia stacjonarna z prezentacją numeruport szeregowy (COM3, /dev/ttyACM0), baud i polecenie inicjujące (domyślnie AT+VCID=1)
Telefon z Androidemwbudowany telefon w telefonie z Androidem należącym do lokaluaplikacja HorecaPOS na tym telefonie, Ustawienia → Telefonia → Sparuj ten telefon (Android 10+: wybierz aplikację jako aplikację do identyfikacji numeru)

Odpowiedź zawiera dzwoniącego, także jako contact (firstname, lastname, phone, email, address) dla szablonu CRM 3CX. Rozmowy wychodzące i wewnętrzne nie są pokazywane; Tylko te linie ogranicza do wybranych linii lub aparatów. Rozmowy są usuwane po okresie przechowywania (domyślnie 30 dni, RODO). Rozmowa testowa symuluje dzwonienie z numeru.

Kod: apps/pos-server/src/lib/telefonie.ts, routes/telefonie.ts, packages/shared/src/telefonie.ts; ekrany Telefonie.tsx, BezorgDialoog.tsx; Android android-app/native/java/Beller*.java. Dziennik zdarzeń: Telefonia.

Własni dostawcy: kursy, rozliczenie gotówki i śledzenie dostawy

Dla lokali z własnymi dostawcami. Włącz w Ustawienia → Lokal → Dostawa → Własni dostawcy (domyślnie wyłączone). Aplikacja dla dostawcy nie jest potrzebna: dostawca używa strony w przeglądarce własnego telefonu (kto chce, może używać aplikacji Optimum Bezorger: zobacz Aplikacja dostawcy poniżej).

Tworzenie kursu. W kasie jest przycisk Kursy (z liczbą dostaw, które jeszcze muszą wyjechać, plus kursów w drodze).

  1. W sekcji Gotowe do dostawy zaznacz zamówienia, które jadą. To zamówienia z dostawą z kasy, sklepu internetowego i Thuisbezorgd (tylko własna dostawa; nie te z dostawcą Thuisbezorgd).
  2. Wybierz dostawcę (pracownika) i drobne, które zabiera (domyślnie kwota z ustawienia), i stuknij Utwórz kurs.
  3. Pojawia się kod QR. Dostawca skanuje go własnym telefonem i widzi dla każdego adresu nazwisko, adres z przyciskiem Trasa (nawigacja), Zadzwoń, uwagę, preferowaną godzinę i kwotę do pobrania. Jest kalkulator reszty (klient daje 50 € → reszta 31,50 €). Logowanie nie jest potrzebne. Udostępnij link tylko dostawcy: kto go ma, widzi adresy z tego kursu. Przyciskiem Kod QR dla dostawcy tworzysz nowy link; stary przestaje wtedy działać.
  4. Stuknij Wyjazd, gdy dostawca wyjeżdża. Drobne wychodzą z szuflady (wypłata, z podaniem powodu). Klient dostaje wiadomość, że zamówienie jest w drodze:
    • przy zamówieniu z kasy SMS-em i/lub e-mailem, jeśli włączone są Wiadomości do klienta (zob. Dostawa i przedziały czasowe);
    • w sklepie internetowym zgodnie z jego ustawieniami (e-mail, SMS lub powiadomienie push);
    • przy Thuisbezorgd przez Thuisbezorgd.

Jeśli kurs jeszcze nie wyjechał, można go anulować.

  1. W trasie dostawca stuka dla każdego adresu Dostarczono, gotówka, Dostarczono, karta (własny terminal płatniczy) lub Dostarczono (już zapłacono). Kasa widzi to od razu. Jeśli dostawca nie może tego zgłosić, można to zrobić także w kasie. Po powrocie do lokalu dostawca stuka Jestem z powrotem w lokalu.

Rozliczenie gotówki. Po kursie stuknij Rozliczenie (uprawnienie Zarządzanie szufladą kasową):

Śledzenie dostawy (włączane osobno w ustawieniu). Przy statusie w drodze klient dostaje link do strony śledzenia w portalu. Ten link jest w SMS-ie lub e-mailu, a w sklepie internetowym na stronie statusu (Śledź swojego dostawcę). Na stronie śledzenia widać:

Strony wyświetlają się w języku telefonu (wszystkie języki portalu). W kasie przy kursie widać, kiedy ostatnio przesłano lokalizację (z linkiem do mapy).

Prywatność. Portal przechowuje dane kursu (nazwiska, adresy, numery telefonów, lokalizację) tylko w czasie trwania kursu. Przy rozliczeniu wszystko jest usuwane, a w przeciwnym razie po 24 godz. Klient widzi tylko własne zamówienie. Lokalizacja dostawcy jest widoczna tylko w trakcie kursu i przestaje być widoczna, gdy dostawca wróci.

Planowanie kursów (opcjonalne)

Włącz je w Ustawienia → Lokal → Dostawa → Planowanie kursów (domyślnie wyłączone; działa z własnymi dostawcami). W oknie Kursy pojawi się wtedy przycisk Zaproponuj kursy. Kasa łączy w kursy zamówienia, które jeszcze czekają na wyjazd:

Przyciskiem Użyj tego kursu zaznaczysz te zamówienia w tej kolejności; wybierz dostawcę i stuknij Utwórz kurs. Przy kursie, który jeszcze nie wyjechał, Najlepsza kolejność ustawia adresy w najszybszej kolejności (także na telefonie dostawcy). Przy każdym kursie widać odległość i czas przejazdu.

Ustawienia: adresy na kurs, maksymalny czas kursu, okno czasowe, prędkość kuriera (rower ~15, skuter ~25, samochód ~35 km/h w mieście) i minuty na adres (parkowanie, dzwonienie, rozliczenie; domyślnie 2). Te wartości może ustawić także kierownik: w oknie Kursy przyciskiem Ustaw planowanie kursów (uprawnienie Ustaw planowanie kursów, domyślnie włączone dla kierownika; do zmiany w Ustawienia → Uprawnienia). Włączanie i wyłączanie planowania kursów oraz usługa wyznaczania tras (adres, klucz API) pozostają u administratora.

Odległość i czas przejazdu, do wyboru przez administratora:

Przyciskiem Testuj sprawdzisz usługę. Jeśli usługa nie działa, planowanie wraca do szacunku i o tym informuje. Adres o nieznanej lokalizacji (brak poprawnego kodu pocztowego i numeru domu) trafia w propozycji do bez znanej lokalizacji i nie jest planowany. Eksport konfiguracji zawiera ustawienia, ale nie klucz.

Kod: lib/ritplanning.ts.

Aplikacja dostawcy (opcjonalnie)

Włącz w Ustawienia → Lokal → Dostawa → Aplikacja dostawcy (domyślnie wyłączone; działa z własnymi dostawcami i portalem zarządzania). Każdy dostawca paruje wtedy swój telefon jeden raz, zamiast skanować kod QR przy każdym kursie:

  1. W Sparowane telefony wybierz dostawcę (pracownika), ewentualnie nazwę telefonu, i stuknij Sparuj telefon.
  2. Pojawi się kod QR. Dostawca skanuje go w aplikacji Optimum Bezorger (przycisk Sparuj) albo aparatem telefonu: strona otworzy się wtedy w przeglądarce. Działa też bez aplikacji i można ją dodać do ekranu głównego.
  3. Parowanie jest ważne, dopóki go nie unieważnisz; telefon od razu przestaje wtedy cokolwiek widzieć. Nowe parowanie dla tego samego pracownika zastępuje stare (na przykład przy nowym telefonie).

W aplikacji lub na stronie widać wszystkie własne kursy (każdy kurs, który kasa tworzy dla tego dostawcy), z tymi samymi przyciskami co przy kursie: Trasa, Zadzwoń, kwota do pobrania z kalkulatorem reszty, Dostarczono i Jestem z powrotem w lokalu. Osobno można włączyć:

Aplikacja na Androida jest w Google Play i na stronie pobierania portalu (/download/). Wersja na iPhone'a jest gotowa, ale pojawi się dopiero, gdy będzie konto deweloperskie Apple; do tego czasu iPhone'y korzystają ze strony internetowej. Przy kursie, który dostawca wziął sam, widnieje wzięte przez dostawcę w aplikacji.

Kod: lib/bezorgersapp.ts, w portalu src/volgen.mjs, a aplikacja w repozytorium horecapos-bezorger.

W dzienniku zdarzeń widać, kto utworzył kurs, wysłał go, zgłosił dostarczenie i rozliczył, wraz z kwotami. Wyłączenie: brak przycisku Kursy; kursy i ustawienia zostają zachowane.

W portalu: /bezorger/<sleutel> i /volg/<code>. Kod: lib/bezorgers.ts, routes/bezorgers.ts, Bezorgers.tsx oraz w portalu src/volgen.mjs.

Powiadomienie o zbyt długim czasie realizacji

Zamówienie na wynos lub z dostawą gotowe później, niż obiecano: kasa to wykrywa, zgłasza i może od razu wysłać klientowi przeprosiny, opcjonalnie z bonem rabatowym. Włącz to w Ustawienia → Lokal → Dostawa → Powiadomienie o zbyt długim czasie realizacji (domyślnie wyłączone).

Kod: lib/telaat.ts, routes/telaat.ts, TeLaat.tsx i packages/shared/src/telaat.ts.

Przycisk Zamów: co robi i kiedy go potrzebujesz

Dotknięcie produktu i dotknięcie Zamów to dwa różne kroki:

Dlaczego dwa kroki? Przy stoliku przyjmujesz całe zamówienie (napoje, przystawkę, danie główne), poprawiasz je, jeśli gość zmieni zdanie, i wysyłasz je naraz do kuchni, z jednym bonem na stanowisko zamiast bonu na każdy produkt. Dzięki temu kuchnia może zacząć na długo przed płatnością.

Co jeszcze dzieje się po dotknięciu Zamów:

Można też od razu rozliczyć. Jeśli dotkniesz Rozliczenie, gdy na rachunku są jeszcze nowe pozycje, kasa najpierw automatycznie je zamówi, aby kuchnia i bar zawsze dostały swój bon. Przy barze lub na wynos nie musisz więc najpierw dotykać Zamów: dotknij produktów i od razu Rozliczenie. Jeśli automatyczne zamówienie się nie uda (brak połączenia, reguła all-you-can-eat, czarna skrzynka), ekran rozliczenia pozostaje zamknięty i widzisz, dlaczego.

Wolisz, żeby bar nie dostawał bonu, gdy rozliczasz od razu? W Ustawienia → Lokal → Zamawianie i rozliczenie zaznacz Bezpośrednie rozliczenie bez bonu zamówienia. Wtedy do kuchni i baru trafia tylko to, co wysyłasz przyciskiem Zamów; to, co rozliczasz od razu, nie otrzymuje bonu zamówienia.

Duży lub mały przycisk Rozliczenie

Po zaznaczeniu Duży przycisk "Rozliczenie" na ekranie zamówienia tuż pod zamówionymi produktami jest duży przycisk Rozliczenie: szeroki, wysoki i z kwotą, żeby łatwo go trafić. Jeśli część rachunku jest już zapłacona, przycisk pokazuje kwotę do zapłaty. Mały przycisk na dole obok Zamów wtedy znika.

Z dużym przyciskiem również przyciski na ekranie rozliczenia są duże: Rozliczenie (przy Karcie, Karcie podarunkowej i innych metodach płatności), a przy Gotówce Odliczona gotówka i Rozliczenie są szerokie i wysokie, łatwe do trafienia, nawet brudnymi palcami (na przykład u rzeźnika). Metody płatności są nieco większe, a przyciski napiwku nieco mniejsze, aby wszystko mieściło się na ekranie.

Przy nowej instalacji pole jest odznaczone: wtedy mały przycisk na dole obok Zamów i ekran rozliczenia ze zwykłymi przyciskami. Wolisz duży? W Ustawienia → Lokal, tuż pod motywem jasnym/ciemnym, zaznacz Duży przycisk "Rozliczenie". Kasa, która była już w użyciu, zachowuje dotychczasowe ustawienie. Wybór dotyczy wszystkich kas i tabletów lokalu.

Oznaczanie produktu jako „wyprzedany”

Każdy może na ekranie zamówienia długo przytrzymać produkt (lub kliknąć go prawym przyciskiem myszy) i wybrać Wyprzedane. Produkt staje się wtedy szary i nie można go zamówić na żadnej kasie. W ten sam sposób przywracasz go przyciskiem Znów dostępne. Każda zmiana trafia do dziennika zdarzeń. Administrator nadal może to zrobić także w Ustawienia → Produkty. Również serwer kasy odrzuca produkt oznaczony jako wyprzedany („Cola” jest niedostępna), więc także z tabletu, który nie otrzymał jeszcze zmiany, lub zamówienia zapisane offline; taki tablet pokaże wtedy „Nie udało się wysłać”.

Ekran kuchenny (KDS)

Obok (a nie zamiast) drukarek bonów kuchennych kuchnia lub bar może korzystać z ekranu. Otwórz na tablecie/komputerze w kuchni http://<kassaserver>:3000/keuken, zaloguj się kodem PIN i wybierz stanowisko: to te same nazwy co drukarki (kuchnia, bar, ...), więc na ekranie jest dokładnie to, co trafiłoby na ten bon. „Wszystko” pokazuje wszystkie stanowiska.

Ekran aktualizuje się od razu sam. Bony kuchenne nadal się drukują; kto nie korzysta z ekranu, niczego nie zauważy.

Ekran kuchenny: przekazywanie, kolejność i danie

Ustawienia → Drukarki → Ekran kuchenny. Każdą część włącza się osobno, domyślnie wyłączona; wyłączenie zachowuje wszystko.

Drukarka kuchenna wyłączona lub brak ekranu kuchennego

Kasa zawsze działa dalej, także gdy drukarka w kuchni lub barze jest wyłączona (albo skończył się papier lub odłączył kabel), a także bez ekranu kuchennego:

Dania (przystawka, danie główne ...)

Przyciski dań są widoczne tylko wtedy, gdy są potrzebne: gdy tylko na zamówieniu jest menu (produkt złożony) lub gdy coś jest już w daniu od 2 do 4. Przy zwykłych produktach, takich jak cola, nie widzisz ich i wszystko trafia od razu do kuchni. Nie trzeba nic ustawiać.

Pod listą zamówienia znajduje się Danie 1 2 3 4. Domyślnie włączone jest danie 1 i wszystko działa jak zawsze: „Zamów” wysyła wszystko od razu do kuchni, bez nagłówków dań na bonie kuchennym. Jeśli przed dotknięciem produktów wybierzesz danie 2 (lub wyższe), to:

Danie 1 zawsze idzie od razu. Jeśli danie 2 zostało już wywołane, później dozamówiona pozycja w daniu 2 też idzie od razu.

Alergeny dla każdego produktu

Domyślnie wyłączone: wtedy alergeny nigdzie nie są widoczne. Włącz w Ustawienia → Lokal → Wprowadzaj i pokazuj alergeny dla produktów.

All-you-can-eat

Domyślnie wyłączone. Włączenie w Ustawienia → Lokal → All-you-can-eat (tylko administrator). Tworzysz jeden lub więcej pakietów, np. Ryba, Mięso i Sushi, każdy z:

Za pomocą ↑ ↓ ustalasz kolejność. Ma ona znaczenie, gdy danie należy do kilku pakietów: trafia wtedy do najwyższego pakietu wybranego przez grupę. Usuń usuwa pakiet dla nowych stolików; otwarte stoliki zachowują swoje pozycje cenowe (można tam jeszcze zmniejszyć liczbę osób, ale nie zwiększyć).

Przy stoliku:

Karty podarunkowe

Dwa przełączniki w Ustawienia → Lokal → Karty podarunkowe:

Doładowywane saldo (opcjonalnie)

Dla klubów, stołówek sportowych, domów młodzieży i wydarzeń: karta podarunkowa z saldem staje się kartą doładowywaną. Włączasz w Ustawienia → Lokal → Doładowywane saldo, pod kartami podarunkowymi (domyślnie wył.; działa tylko, gdy włączone jest Sprzedawaj karty podarunkowe z saldem).

Bony żywieniowe

Tylko dla lokali w Belgii, domyślnie wyłączone: Ustawienia → Lokal → Rozliczenie → Bony żywieniowe. Bony żywieniowe to świadczenie pracownicze: pracodawca zasila nimi kartę pracownika (Edenred, Monizze lub Pluxee). Gość płaci nimi na zwykłym terminalu płatniczym; połączenie z wydawcami nie jest potrzebne.

Obca waluta

Płatność gotówką w innej walucie, np. od turystów z Wielkiej Brytanii lub USA albo w regionie przygranicznym we frankach szwajcarskich. Domyślnie wył.: Ustawienia → Lokal → Rozliczenie → Obca waluta. Dodaj waluty (CHF, CZK, DKK, GBP, HUF, NOK, PLN, SEK, TRY, USD) z kursem dla każdej waluty: ile euro liczysz za 1 jednostkę (np. 1 GBP = € 1,15).

Dodatkowe przyciski przy zamawianiu i rozliczeniu

Przyciski do funkcji, których nie potrzebuje każdy lokal. Domyślnie wszystko jest wyłączone; każdy przycisk włączasz w Ustawienia → Lokal → Zamawianie i rozliczenie (uprawnienie Ustawienia lokalu, płatności i drukarek). Wyłączone = przycisku nie ma nigdzie w kasie, a serwer kasy odrzuca operację. W Holandii wszystko działa bez czarnej skrzynki; w Belgii przycisk działa dopiero wtedy, gdy ta funkcja została przetestowana z czarną skrzynką (przy przycisku jest to zaznaczone, dopóki tak nie jest).

Przy otwieraniu stolika:

Przy zamawianiu (ekran zamówienia, dla tego, co stukniesz potem):

Przy rozliczeniu:

Później (Paragony):

Kod: apps/pos-server/src/lib/kassaopties.ts, routes/kassaopties.ts; ekran KassaOpties.tsx. Dziennik zdarzeń: Zmieniono ustawienie, Zrealizowano SPV, Popraw paragon, Niezapłacone.

Rozlicz zaliczkę

Zaliczkę (przedpłatę, np. na przyjęcie lub rezerwację) sprzedajesz jako zwykły produkt z włączoną opcją Zaliczka (Ustawienia → Produkty; zawsze ma cenę otwartą). Utwórz po jednym na każdą stawkę VAT, jeśli zaliczka ma być według stawki (np. Zaliczka jedzenie i Zaliczka napoje), albo jeden produkt, jeśli jest częścią oferty. Gość płaci zaliczkę z góry i dostaje paragon.

Włączanie: Ustawienia → Lokal → Zamawianie i rozliczenie → Rozlicz zaliczkę (domyślnie wyłączone). Przy końcowym rozliczeniu stuknij na ekranie zamówienia Rozlicz zaliczkę i wpisz numer paragonu zaliczki. Kasa dodaje pozycje zaliczki z tego paragonu do rachunku z ujemną ilością (ten sam produkt, cena i VAT). Tego, co już rozliczono, nie można rozliczyć ponownie. Jeśli zaliczka jest wyższa niż rachunek, gość dostaje różnicę z powrotem (zwrot). W Belgii rozliczone pozycje trafiają do czarnej skrzynki jako zwrot (REFUND) (UC4110, UC4111, UC4113). Dziennik zdarzeń: Rozliczono zaliczkę.

Paragon e-mailem

Domyślnie wył. Włączenie w Ustawienia → Lokal → Paragon także e-mailem.

SMTP_HOST=smtp.voorbeeld.nl
SMTP_PORT=587
SMTP_GEBRUIKER=kassa@voorbeeld.nl
SMTP_WACHTWOORD=...
SMTP_AFZENDER=bon@voorbeeld.nl

Po uzupełnieniu uruchom kasę ponownie. Potem przy Rozliczenie pojawi się pole Wyślij też paragon e-mailem (opcjonalnie): puste = tylko wydruk jak zawsze; wpisany adres e-mail = ten sam paragon (ze specyfikacją VAT i wierszami fiskalnymi) trafia też e-mailem do gościa, z nazwą lokalu jako nadawcą.

Rezerwacje

Włączenie w Ustawienia → Lokal → Rezerwacje (domyślnie wyłączone). Tam ustawiasz też, na ile minut wcześniej zarezerwowany stolik pojawia się na planie sali (domyślnie 60) oraz domyślny czas trwania rezerwacji (domyślnie 120 minut).

Integracja kasy z TheFork: stolik otwarty przy przybyciu, rachunek z powrotem

Dzięki POS API TheFork kasa współpracuje z TheFork Manager (domyślnie wyłączone), oprócz pobierania rezerwacji opisanego wyżej. Włączasz w Ustawienia → Platformy rezerwacyjne → Integracja kasy z TheFork; działa przez portal zarządzania.

Dokumentacja TheFork: https://docs.thefork.io/POS-API/introduction

Lista oczekujących dla gości bez rezerwacji

Dla gości bez rezerwacji, którzy czekają na stolik. Włącz w Ustawienia → Lokal → Lista oczekujących (bez rezerwacji) (domyślnie wyłączone). Widoczne tylko, gdy SMS przez CM.com jest skonfigurowany; w przeciwnym razie listy oczekujących nie ma nigdzie w kasie (nawet w ustawieniach). Działa niezależnie od rezerwacji: także gdy są wyłączone. Tam jest też treść SMS-a (puste = "Hallo {naam}, uw tafel bij {zaak} is klaar. Wilt u zich melden bij de bediening?"; {naam}, {zaak} i {personen} zostaną uzupełnione).

Karta lojalnościowa / punkty

Włączenie w Ustawienia → Lokal → Karta lojalnościowa / punkty (domyślnie wyłączone, wtedy nigdzie nic tego nie widać). Tam ustawiasz też: punkty za euro (0 = tylko karty pieczątek), po ilu punktach przysługuje nagroda i ile euro rabatu wynosi ta nagroda.

Profil gościa: VIP, wymagania dietetyczne i preferencje (opcjonalnie)

Włączasz w Ustawienia → Lokal → Profil gościa, pod kartą lojalnościową (domyślnie wyłączone; działa tylko przy włączonej karcie lojalnościowej). Następnie:

Ulubione / szybkie przyciski

Domyślnie wył. Ustawienia → Lokal → Ulubione / szybkie przyciski:

Kolejna runda

Na ekranie zamówienia jest przycisk ↻ Kolejna runda (gdy tylko coś jest na rachunku, nawet jeśli nie zostało jeszcze zamówione). Jedno dotknięcie dodaje ostatnią rundę (wszystko, co poszło jednym „Zamów”, albo to, co właśnie nabiłeś) jeszcze raz jako nowe pozycje; potem po prostu Zamów. Obowiązują aktualne ceny (także happy hour).

Czas przy stoliku na planie sali

Na każdym zajętym stoliku widnieje ⏱ 45m · 12m: jak długo stolik jest zajęty i ile czasu minęło od ostatniego nabicia (dotknij i przytrzymaj stolik lub najedź na niego myszą, aby zobaczyć dokładne godziny). Jeśli przez jakiś czas nic nie zamówiono, stolik dostaje pomarańczową ramkę: warto podejść. Liczbę minut ustawiasz w Ustawienia → Lokal → Czas przy stoliku (domyślnie 20, 0 = bez pomarańczowej ramki). Jeśli jeszcze nic nie nabito, czas liczy się od otwarcia stolika.

Jeśli przy jednym stoliku siedzi kilka grup (z własnymi rachunkami), dla każdej grupy jest osobny wiersz, np. G1 ⏱ 50m · 12m i Jansen ⏱ 10m (nazwa grupy, w przeciwnym razie numer grupy). Grupa, która zbyt długo nic nie zamawia, dostaje pomarańczową etykietę, a stolik pomarańczową ramkę.

Przenoszenie całego stolika

Na ekranie zamówień jest Przenieś stolik. Wybierz salę (np. Taras) i stolik: wszystkie grupy ze stolika przechodzą razem, każda z własnym rachunkiem. Jeśli wybierzesz zajęty stolik, stoliki zostaną połączone (grupy zostaną dołączone). Jeśli chcesz przenieść tylko część, użyj jak dotąd Podziel / przenieś. Jeśli wszystko ma być na jednym rachunku, użyj Połącz.

Praca offline (tablet bez Wi-Fi)

Jeśli połączenie między tabletem a serwerem kasy zostanie przerwane (Wi-Fi na tarasie, serwer chwilowo wyłączony), pojawia się żółty pasek, a tablet pracuje dalej z ostatnio zapisanymi stolikami, produktami i otwartymi zamówieniami:

Liczba osób

Opcjonalne i domyślnie wyłączone: Ustawienia → Lokal → Zamawianie i płatność → Rejestruj liczbę gości. Wyłączone = jak najmniej dotknięć: wolny stolik otwiera się jednym dotknięciem, nigdzie nie widać gości, a raport, pulpit i podsumowanie dnia nie pokazują gości ani wydatków na gościa.

Włączone: gdy dotkniesz wolnego stolika, kasa pyta, ile jest osób (duże przyciski 1-8 lub wpisanie; "Pomiń" = 1). Na planie sali przy zajętym stoliku widać "3/4 os." (osoby/miejsca, na żółto, jeśli siedzi więcej osób niż jest miejsc). Na ekranie zamówień zmieniasz to przyciskiem "3 os." na pasku grup; przy kilku grupach stolik sumuje wszystkie grupy.

Bez liczby gości wszystko nadal działa: Podziel po równo przy płatności zaczyna od 2, all-you-can-eat sam pyta o liczbę dorosłych i dzieci, a rezerwacje i lista oczekujących zachowują własną liczbę osób (stolik otwiera się wtedy bez gości).

Rejestr HACCP

Każdy lokal gastronomiczny musi monitorować i dokumentować bezpieczeństwo żywności: w Holandii zgodnie z Hygiënecode voor de Horeca (kodeks higieny dla gastronomii, kontrola NVWA), w Belgii zgodnie z autokontrolą FAVV (przewodnik G-023). Włącz Rejestr HACCP w Ustawienia → Przepisy prawne (domyślnie wyłączony).

System nalewania i przepływomierze

Każde nalanie zgłoszone przez komputer nalewaka lub przepływomierz trafia na rachunek, więc nic nie "wycieka". Włącz to w Ustawienia → System nalewania (domyślnie wyłączone).

Dozowane nalewanie i Kegboard

Przy dozowanym nalewaniu kran otwiera się dopiero po nabiciu szklanki na kasie i tylko na tę ilość. Dzięki temu nic nie zostanie nalane bez rachunku. Działa to tylko przy włączonym systemie nalewania i włącza się to dla każdego kranu osobno (domyślnie wyłączone).

Sterowanie muzyką z kasy

Personel steruje muzyką z ekranu dotykowego kasy, więc przy barze nie jest potrzebny osobny ekran. Włącz to w Ustawienia → Lokal → Ekrany i obsługa → Sterowanie muzyką z kasy (domyślnie wyłączone). Na górnym pasku pojawi się wtedy przycisk Muzyka: dla każdego źródła (np. Bar i Taras) Odtwórz, Pauza, Następny, Poprzedni, Głośniej, Ciszej i suwak głośności, wraz z tym, co teraz gra. Powrót do kasy zamyka panel. Po wyłączeniu źródła pozostają zapisane.

Administrator dodaje źródła przyciskiem + Źródło muzyki, wybiera sposób podłączenia i sprawdza je przyciskiem Testuj:

Kasa komunikuje się z odtwarzaczami z serwera, więc muszą one być w tej samej sieci co kasa (Soundtrack przez internet). Sterować może każdy zalogowany; do konfiguracji potrzebne jest uprawnienie Ustawienia lokalu, płatności i drukarek. Token i hasło nigdy nie są ponownie wyświetlane i nie trafiają do dziennika zdarzeń; w dzienniku zapisywana jest tylko konfiguracja (wł./wył., źródła), a nie każde naciśnięcie przycisku. Eksport konfiguracji obejmuje tylko wł./wył. (źródła należą do jednego lokalu).

Drugi ekran na tablecie lub telefonie

Muzykę i kamery można też wyświetlić na własnym tablecie lub telefonie pracownika, jako drugi ekran obok kasy. W oknie Muzyka lub Kamery jest przycisk Na tablecie lub telefonie: pokazuje kod QR z adresem, np. http://192.168.1.20:3000/muziek lub .../camera.

  1. Połącz tablet lub telefon z siecią Wi-Fi lokalu.
  2. Zeskanuj kod QR aparatem (lub wpisz adres w przeglądarce).
  3. Zaloguj się własnym kodem PIN. Widzisz tylko to, do czego masz uprawnienia: muzykę wszyscy, kamery tylko z uprawnieniem Podgląd obrazu z kamer.
  4. Gotowe: Wyloguj w prawym górnym rogu. Jeśli logowanie wygasło (np. tablet leżał nieużywany przez noc), ekran znów poprosi o PIN.

Wskazówka: dodaj stronę do ekranu głównego tabletu (w przeglądarce: Dodaj do ekranu głównego), wtedy otwiera się jak aplikacja.

Dlatego kasa ustala adres IP komputera kasowego w sieci (jeśli komputer ma ich kilka, np. Wi-Fi i kabel, wybierasz sieć). W portalu zarządzania (kasa zdalnie) jest to adres portalu. Kod QR kasa tworzy sama, bez internetu.

Parowanie tabletów: jednym przyciskiem na tablet (opcjonalnie)

Jeszcze prościej: sparuj tablet jeden raz, a kasa jednym przyciskiem wyśle muzykę lub kamery na ten tablet. Włącz to w Ustawienia → Lokal → Ekrany i obsługa → Tablety jako drugi ekran (domyślnie wyłączone).

  1. Na tablecie: otwórz http://<kassaserver>:3000/tablet (przy ustawieniu jest Na tablecie lub telefonie z kodem QR), zaloguj się kodem PIN i nadaj tabletowi nazwę, np. Tablet Bar. Sparuj.
  2. W kasie: w oknie Muzyka lub Kamery jest teraz przycisk Na Tablet Bar (z zieloną kropką, gdy tablet jest włączony). Dotknij go: tablet sam otworzy ten ekran. Przy muzyce przekazywane jest też wybrane źródło (np. Taras).
  3. Na tablecie: Zamknij wraca do oczekiwania; Rozłącz ten tablet usuwa parowanie.

Pozostaw stronę na tablecie otwartą; jeśli tablet jest wyłączony lub uśpiony, otworzy ekran, gdy tylko zostanie włączony. Tablet pozostaje zalogowany jako pracownik, który się na nim zalogował: wysyłanie i oglądanie kamer jest możliwe tylko z uprawnieniem Podgląd obrazu z kamer. Przy ustawieniu administrator widzi, które tablety są sparowane i czy są włączone, i może zmienić ich nazwę lub je usunąć. Tablet przechowuje własny klucz; kasa przechowuje tylko jego hash. Wyłączenie: sparowane tablety pozostają zapisane. W dzienniku widać, kto sparował, zmienił nazwę lub usunął tablet.

Ekran wywoławczy dla zamówień na wynos

Ekran dla gości z W przygotowaniu po lewej i Gotowe po prawej, z dużymi numerami, jak w budce z frytkami czy restauracji fast food. Włącz go w Ustawienia → Lokal → Ekrany i obsługa → Ekran wywoławczy dla zamówień na wynos (domyślnie wyłączony).

Parowanie nie jest potrzebne: na telewizorze z przeglądarką (smart TV, przystawka lub mini PC), tablecie lub drugim monitorze otwórz adres kasy z /oproep, np. http://192.168.1.20:3000/oproep. Przy ustawieniu i w oknie Wezwij są przyciski Na osobnym ekranie i Na tablecie lub telefonie (kod QR z adresem). Logowanie nie jest potrzebne: ekran pokazuje tylko numery. Dotknij raz ekranu, aby przeglądarka mogła odtwarzać dźwięk.

Co się na nim pojawia:

Numer: w sklepie internetowym, Thuisbezorgd i platformach dostaw numer zamówienia, który gość lub kurier już ma; w innym przypadku numer odbioru (od 1 do 999). Jest wydrukowany dużą czcionką na paragonie, z wyjaśnieniem, że numer pojawi się na ekranie, gdy zamówienie będzie gotowe (w języku paragonu).

Opcjonalnie (domyślnie wyłączone, w ustawieniu):

W kasie jest przycisk Wezwij (z liczbą zamówień w przygotowaniu):

  1. Gotowe ręcznie ustawia numer jako gotowy (bez ekranu kuchennego lub gdy tak jest szybciej). Przy zamówieniu ze sklepu internetowego lub Thuisbezorgd status też się zmienia, więc gość również dostaje powiadomienie.
  2. Wstecz przenosi go z powrotem do W przygotowaniu.
  3. Odebrano usuwa go z ekranu (z opcją Cofnij).

W ustawieniu wybierasz też, czy imię ma być widoczne obok numeru (domyślnie nie, ze względu na prywatność) i czy ekran ma wydawać dźwięk. Wyłączenie: brak przycisku Wezwij i brak numeru odbioru na paragonie; ustawienia zostają zachowane. W dzienniku widać, kto co ręcznie ustawił jako gotowe, wstecz lub odebrano.

Rejestracja wejścia i wyjścia

Domyślnie rejestracja czasu pracy jest wył.: wtedy nie jest nigdzie widoczna w kasie (brak przycisku na górnym pasku, brak na ekranie logowania, brak zakładki Godziny pracy). Włącz ją w Ustawienia → Lokal, w sekcji Rejestracja czasu pracy personelu:

Kto nie korzysta z kasy (np. kuchnia), rejestruje czas na ekranie logowania: dotknij Wejście / wyjście i wpisz swój PIN. Przełącza to między wejściem a wyjściem, bez logowania.

Gdy rejestracja czasu jest włączona, administrator widzi w Ustawienia → Godziny pracy:

W Belgii każde wejście i wyjście jest też zgłaszane do czarnej skrzynki. Jeśli jest niedostępna, rejestracja nie zostanie wykonana (tak jak rozliczenie). Czy spełnia to dokładnie belgijskie wymogi rejestracji personelu, wymaga jeszcze potwierdzenia.

Ważenie i etykiety (waga)

Gdy waga jest włączona (Ustawienia → Waga), produkty mogą mieć cenę za kilogram. Wszystkie inne produkty pozostają na sztuki.

Uber Eats, Deliveroo i HubRise

Oprócz Thuisbezorgd.nl / Takeaway.com do kasy trafiają też zamówienia z Uber Eats (Holandia i Belgia), Deliveroo (tylko Belgia; Deliveroo wycofało się z Holandii pod koniec 2022) i wszystko, co jest w HubRise (m.in. Uber Eats, Deliveroo, Just Eat/Takeaway.com i mniejsze aplikacje do zamawiania). Każdą platformę włączasz osobno w Ustawienia → Platformy dostaw (domyślnie wyłączone; wyłączenie zachowuje wszystko). Karta pokazuje dla każdej platformy, w jakich krajach działa, i ostrzega, jeśli nie działa w kraju lokalu.

Zamówienia. Zamówienie staje się zwykłym zamówieniem (bezorgen lub afhalen, nazwa grupy <platform> <nummer>) z cenami platformy: produkty rozpoznawane po ID (z menu), kodzie lub numerze PLU; nieznany = osobna pozycja z ceną platformy (i komunikat); koszty dostawy, dopłaty i rabaty jako osobne pozycje; jeśli suma nadal się nie zgadza, pozycja "Różnica". Bon kuchenny idzie od razu do kuchni/baru. Przycisk Platformy na górnym pasku (z liczbą trwających zamówień; pomarańczowy, gdy jest coś do akceptacji): akceptuj lub odrzuć (z powodem), w przygotowaniu, gotowe, w drodze, dostarczono lub odebrano, anuluj oraz Zakończ (zapłacono online). To, co platforma obsługuje, wraca do niej (Uber Eats: akceptacja, odrzucenie, anulowanie; Deliveroo: akceptacja, odrzucenie, w przygotowaniu, gotowe, odebrano; HubRise: wszystkie statusy). Jeśli lokal dostarcza sam (własna dostawa), zamówienie jest też w Kursach, a wyjazd i dostarczenie trafiają automatycznie do platformy. Anulowanie przez platformę powoduje wygaśnięcie zamówienia. Jeśli kasa przez ponad 2 minut nie ma połączenia z portalem, portal odrzuca nowe zamówienie z Uber Eats i informuje Deliveroo (z tabletem), że się nie udało, aby lokal zobaczył to na tablecie.

Kod: apps/pos-server/src/lib/bezorgplatforms.ts, routes/bezorgplatforms.ts; ekrany Bezorgplatforms.tsx. Strona portalu: horecapos-portaal/src/platforms.mjs. Dziennik zdarzeń: Platformy dostaw (wł./wył., ustawienia, zamówienia). Wszystko jest w kopiach zapasowych kasy.

Mniejsze platformy w Holandii i Belgii (Homie, Hebtrek, sneleten.nl, Bistroo ...) nie mają publicznej integracji z kasą; jeśli są w HubRise, działają przez HubRise. Poza tym: zobacz backlog.

Automat płatniczy (zamknięty system obsługi gotówki)

Domyślnie wyłączone: gotówka działa jak zawsze. Przy zamkniętym systemie obsługi gotówki personel nie dotyka gotówki: klient lub pracownik wkłada pieniądze do automatu, który je liczy, sprawdza pod kątem fałszywych banknotów i wydaje resztę.

Przycisk ©

Dane OptimumPOS

W prawym dolnym rogu każdego ekranu (PIN, plan sali, zamówienia i kuchnia) jest mały przycisk ©. Otwiera dane OptimumPOS: logo, adres, telefon, e-mail i stronę internetową. Ikona jest zapisana lokalnie w aplikacji, więc działa też bez internetu. Ta sama ikona jest ikoną aplikacji (karta i ekran główny).

Część 2 · Kierownik

Pierwsze kroki

Kierownik może domyślnie wszystko to, co obsługa, a ponadto m.in. udzielać rabatów, wykonywać zwroty, zamykać dzień, zarządzać szufladą kasową oraz przeglądać dziennik zdarzeń i magazyn. Większość z tego znajduje się pod przyciskiem Raport:

Magazyn

Domyślnie wył. Włączenie w Ustawienia → Lokal → Prowadź stan magazynowy. Wył. = nigdzie niewidoczne w kasie.

Zamawianie u dostawców

Domyślnie wyłączone. Włączenie w Ustawienia → Magazyn → Zamawianie u dostawców (tylko z włączoną opcją Prowadź stan magazynowy). Wyłączone = lista zamówień działa jak zawsze.

Zarządzanie opiniami

Czytanie opinii z Google i Trustpilot i odpowiadanie na nie w kasie. Włączasz w Ustawienia → Punkty i opinie → Zarządzanie opiniami (domyślnie wyłączone, wtedy nigdzie nic tego nie widać). Czytanie i odpowiadanie w Raport → Opinie (uprawnienie Czytanie opinii i odpowiadanie na nie, domyślnie także dla kierownika). Po wyłączeniu połączenia i opinie zostają zachowane.

Marketing SMS i e-mail

Wiadomości do klientów z kartą lojalnościową, którzy wyrazili na to zgodę. Bez karty lojalnościowej nie da się włączyć żadnego z nich.

Napiwki na pracownika

W Ustawienia → Lokal → Napiwek (tylko gdy "Pokaż przyciski napiwku przy rozliczeniu" jest włączone) wybierasz, jak napiwki na pracownika są wykazywane w stanie pośrednim (X), raporcie Z (paragon i e-mail) i Obrocie w okresie (także w CSV):

OpcjaPodział
Wył. (domyślnie)tylko suma napiwków, jak zawsze
Każdy własne napiwkinapiwki z rachunków, które dana osoba sama rozliczyła
Pula według godzinwszystkie napiwki razem, według zarejestrowanych godzin pracy w tym okresie (wymaga rejestracji czasu pracy; nikt nie zarejestrowany = po równo)
Pula po równowszystkie napiwki razem, po równo między osoby obecne w pracy (bez rejestracji czasu: kto coś nabił lub rozliczył)

Pojedyncze grosze trafiają do osoby najbliższej kolejnego grosza, dzięki czemu suma zawsze się zgadza. To tylko zestawienie: kasa niczego nie wypłaca (można to zrobić przez "Wypłata z szuflady"). Stare raporty Z pozostają bez zmian.

Raport Z e-mailem

W Ustawienia → Lokal → Wysyłaj raport Z na wpisz jednorazowo adres e-mail administratora (więcej adresów: oddzielone przecinkiem, maks. 3). Po Zamknij dzień raport Z trafia wtedy automatycznie na ten adres, obok wydrukowanego paragonu. Puste = bez wysyłki, jak zawsze.

Podsumowanie dnia (opcjonalnie)

Jeśli w Wysyłaj raport Z na jest adres, pod nim znajduje się pole Z krótkim podsumowaniem dnia na początku wiadomości (domyślnie wyłączone). Włączone = na początku wiadomości z raportem Z kilka linijek prostym językiem, wyłącznie z własnych danych kasy (bez AI, nic nie wychodzi na zewnątrz):

Sam raport Z (paragon i e-mail) pozostaje dokładnie taki sam. Podgląd z dzisiaj pokazuje podsumowanie od ostatniego zamknięcia dnia do teraz. Podsumowanie jest po niderlandzku, tak jak e-mail z raportem Z.

Pulpit

Zakładka Pulpit w Raporcie (uprawnienie Obrót w okresie), tylko do odczytu:

Sprzedane karty podarunkowe nie liczą się do obrotu, a rabaty i nagłówki menu nie trafiają do top 10 (tak jak w innych raportach). Dzień trwa od 00:00 do 24:00.

Dodatkowe raporty

Trzy dodatkowe zakładki w Raport, każda włączana osobno w Ustawienia → Lokal → Zarządzanie i raporty → Dodatkowe raporty (domyślnie wył.: wtedy brak zakładki). Wymagają tego samego uprawnienia co Obrót w okresie i służą tylko do odczytu. Okres: ten tydzień, poprzedni tydzień, ten miesiąc, poprzedni miesiąc, ostatnie 90 dni, ten rok lub własny wybór (najwyżej nieco ponad rok).

Rabaty

Kierownik lub administrator widzi na ekranie zamówienia obok sumy przycisk % Rabat:

Rabat pojawia się jako osobna pozycja na paragonie ("Rabat 10%", z powodem pod spodem) z tą samą stawką VAT, dzięki czemu suma i zestawienie VAT się zgadzają. Na całym paragonie rabat jest dzielony według stawek VAT. Usuwanie: stuknij kwotę pozycji rabatu. Jeśli pozycja z własnym rabatem zostanie anulowana, ten rabat przepada razem z nią. Gdy usuniesz produkt z paragonu z rabatem procentowym na cały paragon, kasa przelicza ten rabat od tego, co zostało (w Belgii UC226); stała kwota pozostaje i przy rozliczeniu jest ponownie rozdzielana na pozycje. Jeśli przy rabacie 100% nie ma nic do zapłaty, zamknij przez "Zamknij (nic do zapłaty)". Rabaty widnieją w dzienniku zdarzeń oraz w raporcie X/Z i zestawieniu okresowym jako "w tym rabat". Przy zwrocie paragonu z rabatem rabat jest uwzględniany proporcjonalnie.

Kody rabatowe (opcjonalnie)

Kody z rabatem na cały paragon, np. na promocję (ZOMER10). Włączasz w Ustawienia → Lokal → Kody rabatowe (domyślnie wyłączone); kody tworzysz w Ustawienia → Kody rabatowe (uprawnienie Zarządzanie produktami):

Na ekranie zamówień jest przycisk Kod rabatowy (każdy może wpisać kod; kod jest wcześniej utworzony przez lokal). Rabat pojawia się na paragonie jako pozycja "Kod rabatowy KOD", rozdzielony na stawki VAT; jeden kod na paragon i nie po (częściowej) zapłacie. Jeśli usuniesz pozycję lub zamówienie zostanie anulowane, użycie przestaje się liczyć. Usunięcie użytego kodu wyłącza go (raporty pozostają poprawne). Wszystko jest w dzienniku zdarzeń (Kod rabatowy). Kod: lib/kortingscodes.ts, routes/kortingscodes.ts, Kortingscodebeheer.tsx, KortingscodeDialoog.tsx.

Nie ma ich na liście w Ustawienia → Kody rabatowe (jest za to liczba na promocję w Raport → Marketing) i trafiają do sklepu internetowego, dopóki są ważne i niewykorzystane.

Raporty i zamknięcie dnia

Raport - stan pośredni (X)

Przycisk Raport na górnym pasku:

Eksport do księgowości

Raport → Obrót w okresie → Eksport do księgowości (dziennik) (uprawnienie Obrót w okresie) tworzy plik CSV z jednym zapisem księgowym na dzień, gotowy do wczytania w e-Boekhouden, Exact, SnelStart, Twinfield itp. (przez ich import CSV lub zapisów memoriałowych), albo w jednym z poniższych formatów (UBL, XAF i gotowe formaty dla 14 programów).

Na każdy dzień jeden dowód księgowy (KASSA-JJJJMMDD), który zawsze się bilansuje (Winien = Ma):

StronaCo
Winienwpływy według formy płatności (gotówka, karta, karta podarunkowa, online, inne), łącznie z napiwkami
Maobrót według stawki VAT (netto) i należny VAT według stawki
Manapiwki (do wypłaty personelowi, nie stanowią obrotu)
+/-różnica z zaokrągleń (zaokrąglanie gotówki do 5 centów)
+/-wpłaty/wypłaty z szuflady (obsługa kasy) w korespondencji z kontem przejściowym oraz różnica kasowa z raportu Z

Zwroty i rabaty są już uwzględnione w paragonach i obniżają obrót. Kolumny: Datum; Boekstuk; Dagboek; Rekening; Omschrijving; Debet; Credit; Btw-code; Btw-% (średniki, przecinki dziesiętne). Po pobraniu kasa informuje, czy są dni, które się nie bilansują lub mają różnicę większą niż zaokrąglenie.

Obok przycisku wybierasz format (wybór jest zapamiętywany w przeglądarce). Ten sam dziennik, ale sformatowany tak, by program mógł go od razu wczytać. Lista pokazuje tylko formaty dla kraju lokalu (Ustawienia → Lokal), najpierw standardy (CSV, UBL, XAF), potem programy alfabetycznie:

FormatPlikWczytanie w programie
Ogólny (CSV)journaal_…csvkażdy program z importem CSV/memoriałowym (przypisz kolumny)
UBL 2.1 / Peppol (XML), NL i BEjournaal_…_ubl.xml (więcej dni: .zip)za każdy dzień faktura "wpływy dzienne" na Kassaverkopen (już opłacona) zgodnie z Peppol BIS Billing 3.0, z jedną pozycją na stawkę VAT i kontem przychodu w AccountingCost; tylko obrót i VAT (metody płatności, napiwki, zaokrąglenia, szuflada i różnice kasowe nie należą do faktury). Do przesłania m.in. do Adsolut, Billit, BUNNI, DigiBoox, Expert/M, Moneybird, Popsy, Rompslomp, Storecove i TriFact365; nie do wysyłania przez sieć Peppol. Nazwa, numer VAT i adres pochodzą z Ustawienia → Lokal
XML Auditfile Financieel (XAF 4.0), NLjournaal_…_xaf.xafplik audytowy holenderskiej administracji podatkowej (Belastingdienst) (XSD XmlAuditfileFinancieel4.0): jeden plik za okres, księga główna, kody VAT, okresy i za każdy dzień transakcja memoriałowa; do wczytania m.in. w Caseware, Exact Reeleezee i Visma Cash
AccountView (XML), NLjournaal_…_accountview.xmlOperacje XML (VFPData, jeden transact na wiersz zapisu z dj_code, period, inv_date, inv_nr, acct_nr, trn_desc i amount: winien dodatnio, ma ujemnie), jeden dowód dziennie w zapisie memoriałowym; wczytanie przez definicję importu (Document → Importeren → Importdefinitie aanmaken, typ XML), nazwy pól są takie jak w samym AccountView, więc wystarczy raz przypisać je 1:1. Zleć sprawdzenie pierwszego importu
AFAS Profit (XML)journaal_…_afas.xmlXML dla UpdateConnector FiEntries (operacje finansowe), jedno księgowanie na dzień z rokiem, okresem, administracją i dziennikiem; wczytaj w Profit przez Importuj → XML; wpisz numer administracji (domyślnie 1)
Asperion (CSV), NLjournaal_…_asperion.csvformat FMUTA (Extra → Import financiële mutaties), za każdy dzień wiersz nagłówka i wiersze zapisów; definicję importu ustawia Asperion przez helpdesk
Raport dzienny (HTML), NL i BEjournaal_…_dagstaat.htmlczytelny raport dzienny za każdy dzień (obrót według stawki VAT, metody płatności, napiwki, różnice kasowe) i sumy; do wydruku jako PDF lub wysłania e-mailem, dla programów bez importu (Accountable, Dext, Dexxter, Jortt, Kleisteen, MoneyMonk)
e-Boekhouden.nl (CSV)journaal_…_eboekhouden.csvData; Nr dowodu; Opis; Konto księgowe; Kwota (winien dodatnio, ma ujemnie); kod VAT GEEN (VAT jest już na kontach VAT); Import → Operacje, rodzaj memoriał
Exact Online (XML)journaal_…_exact.xmleExact-XML (temat GLTransactions): jedno księgowanie memoriałowe na dzień (typ 90) w dzienniku; Import/eksport → Importuj XML
InformerOnline (TXT), NLjournaal_…_informer.txtzapisy memoriałowe rozdzielone tabulatorami (Geavanceerd → Memoriaal → uploaden); dziennik musi być numerem 1–99 (w przeciwnym razie 90)
KING ERP (XML), NLjournaal_…_king.xmlKING_JOURNAAL: jedna partia księgowań (nieostateczna) z jednym zapisem księgowym na dzień
KOMAS (CSV), NLjournaal_…_komas.csvformat swobodny KOMAS (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag
Odoo (CSV), NL i BEjournaal_…_odoo.csvKsięgowość → Journal Entries → Import records; dziennik i konto według nazwy lub kodu
Sage BOB 50 (Excel), BEjournaal_…_bob.xlsxImportation de données externes → Opérations diverses (kolumny przypisuje się jeden raz)
SAP Business One (ZIP), NL i BEjournaal_…_sapb1.zipData Transfer Workbench, Journal Entries: JournalEntries.csv i JournalEntries_Lines.csv
SnelStart (CSV)journaal_…_snelstart.csvData; Nr dowodu; Opis; Konto księgowe; Winien; Ma (dd-mm-rrrr, przecinek dziesiętny, bez BOM); import memoriałowy, dziennik wybierasz przy wczytywaniu
Twinfield (XML)journaal_…_twinfield.xmltransakcje dziennika jako szkic (destiny="temporary"), księgowy zatwierdza je ostatecznie; wpisz kod administracji (puste = administracja, do której importujesz)
Winbooks (CSV), BEjournaal_…_winbooks.csvK_DOC.CSV, za każdy dzień jeden dokument w dzienniku (Winbooks sam nadaje numery)
Yuki (XML)journaal_…_yuki.xmlJournal-XML (GeneralJournal), jedno księgowanie memoriałowe na dzień, taka sama struktura jak integracja na żywo; ID administracji opcjonalne

Przegląd: który program księgowy w jaki sposób

Według segmentu, alfabetycznie. NL/BE = w którym kraju działa program: w Ustawienia → Księgowość → Program księgowy widzisz tylko programy dla kraju lokalu (programy holenderskie nie działają w Belgii i odwrotnie). Na żywo = kasa sama księguje każdego dnia (wybór w Ustawienia → Księgowość → Program księgowy); na wniosek = istnieje API, ale najpierw wymaga ono rejestracji partnerskiej lub zatwierdzenia przez dostawcę (daj nam znać). Plik = format w Eksport do księgowości. Gdzie możliwe jest jedno i drugie, możesz używać obu. Lista znajduje się w packages/shared/src/boekhoudcatalogus.ts i pojawia się też w Ustawienia → Księgowość.

ProgramNLBENa żywoPlikUwaga
Małe firmy i samozatrudnieni
Accountable–✓–Raport dzienny (HTML, do PDF lub e-maila)
AccountView (Visma)✓–na wniosekAccountView (XML), Ogólny (CSV)Plik: operacje XML dla definicji importu (Document → Importeren); ogólny CSV też działa z definicją importu. Na żywo przez API AccountView.Net po złożeniu wniosku w AccountView.
Acumulus✓–✓–Na żywo jako opłacona faktura sprzedaży za każdy dzień, z jedną pozycją na stawkę VAT.
AFAS Profit✓–✓AFAS Profit (XML)
Asperion✓–na wniosekAsperion (CSV)Na żywo po rejestracji jako partner API w Asperion.
Billit–✓na wniosekUBL 2.1 / Peppol (XML)Przesyłanie UBL przez Fast input; na żywo po zatwierdzeniu przez Billit.
BUNNI✓––UBL 2.1 / Peppol (XML)Brak jeszcze publicznej dokumentacji API.
Dexxter–✓–Raport dzienny (HTML, do PDF lub e-maila)
DigiBoox (Visma DigiBTW)✓––UBL 2.1 / Peppol (XML)
e-Boekhouden.nl✓––e-Boekhouden.nl (CSV)Również dla byłych klientów Ficsus.
Exact Online✓✓✓Exact Online (XML)
Exact Reeleezee✓––XML Auditfile Financieel (XAF 4.0)
Horus–✓✓–
InformerOnline✓––InformerOnline (TXT)
Jortt✓––Raport dzienny (HTML, do PDF lub e-maila)Brak importu: zaksięguj obrót dzienny jako przychód z raportem dziennym jako załącznikiem.
KING✓–na wniosekKING ERP (XML)Na żywo po rejestracji partnerskiej w KING Software.
Kleisteen✓––Raport dzienny (HTML, do PDF lub e-maila)
KOMAS (Adfinis)✓––KOMAS (CSV)
Minox✓–na wniosek–Na żywo po połączeniu partnerskim przez Minox.
Moneybird✓–✓UBL 2.1 / Peppol (XML)
MoneyMonk✓––Raport dzienny (HTML, do PDF lub e-maila)MoneyMonk otrzyma w 2026 API do integracji.
Octopus–✓na wniosek–Na żywo po uzyskaniu software house ID w Octopus.
Popsy / Allegro–✓–UBL 2.1 / Peppol (XML)
Rompslomp✓––UBL 2.1 / Peppol (XML)
Sage BOB 50–✓–Sage BOB 50 (Excel)
Silvasoft✓✓✓–Na żywo jako zapis sprzedaży za każdy dzień, z jedną pozycją na stawkę VAT; metody płatności, napiwki i różnice kasowe nie są przekazywane.
SnelStart✓–✓SnelStart (CSV)
Twinfield✓–✓Twinfield (XML)
Visma Cash✓–na wniosekXML Auditfile Financieel (XAF 4.0)API z kluczem z CASHWeb; format rekordów dla zapisów księgowych jest jeszcze potwierdzany.
Visma eAccounting✓–na wniosek–Na żywo po zatwierdzeniu przez Visma (rejestracja partnerska).
Winbooks–✓na wniosekWinbooks (CSV)
Wolters Kluwer Adsolut–✓na wniosekUBL 2.1 / Peppol (XML)UBL z kontem przychodu w każdej pozycji; włącz w Adsolut "grootboekrekening verwerken bij verkopen".
Wolters Kluwer Expert/M–✓–UBL 2.1 / Peppol (XML)
Yuki✓✓✓Yuki (XML)
Międzynarodowe
QuickBooks Online✓✓✓ogólny CSVBrak wersji holenderskiej lub belgijskiej: sprawdź ustawienia VAT.
Xero✓✓✓ogólny CSV
Zoho Books✓✓✓ogólny CSV
Enterprise i sieci
Exact Globe+✓✓–Exact Online (XML)Ten sam XML co Exact Online; zleć sprawdzenie pierwszego importu.
Microsoft Dynamics 365 Business Central✓✓✓–
Odoo✓✓✓Odoo (CSV)
Oracle NetSuite✓✓na wniosekogólny CSV
SAP Business One✓✓✓SAP Business One (ZIP)
Unit4 ERPx✓✓–ogólny CSV
Platformy i agregatory
Apicbase✓✓na wniosek–Sprzedaż na paragon dla magazynu i food cost: integracja w Ustawienia → Receptury (nie jako program księgowy).
Caseware✓✓–XML Auditfile Financieel (XAF 4.0)
Combidesk✓–na wniosek–Combidesk sam buduje i utrzymuje integrację (m.in. z Exact, Moneybird, SnelStart i Twinfield); na wniosek jako partner.
Dext✓✓–Raport dzienny (HTML, do PDF lub e-maila)Wyślij raport dzienny (PDF) e-mailem na swój adres Dext.
Jamix✓✓na wniosek–Sprzedaż dla stanów magazynowych i food cost przez interfejs JAPI firmy Jamix; rozwiązanie indywidualne na wniosek u Jamix.
Omniboost✓✓na wniosek–Przez program partnerski Omniboost łączy dalej z wieloma systemami księgowymi i hotelowymi.
Storecove (Peppol)✓✓na wniosekUBL 2.1 / Peppol (XML)
TriFact365✓––UBL 2.1 / Peppol (XML), Raport dzienny (HTML, do PDF lub e-maila)
Każdy inny program✓✓–ogólny CSV, UBL lub XAF (NL)

Poproś księgowego, by sprawdził pierwszy import. Format jest w packages/shared/src/journaalexport.ts (z testami).

Ustawienia → Księgowość (uprawnienie Ustawienia lokalu, płatności i drukarek): kod dziennika (domyślnie MEM) i konto księgi głównej dla każdej pozycji. Puste = konto przykładowe (NL: 8000/8010/8020 obrót, 1500/1510 VAT, 1000 kasa, 1100 karta; BE: 7000xx obrót, 451000 VAT, 570000 kasa). Niech księgowy wpisze właściwe konta.

Integracja z programem księgowym

Integracje na żywo z 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. Po każdym dniu kasa księguje ten sam dziennik co eksport powyżej (przychód i VAT według stawki, metody płatności, napiwek, zaokrąglenie, szuflada i różnica kasowa) jako księgowanie memoriałowe w wybranym programie, z dziennikiem i kontami księgowymi z Ustawienia → Księgowość. Włączony jest zawsze najwyżej jeden program.

ProgramKrajPołączenie przezCo księguje kasa
AcumulusNLkod umowy, użytkownik i hasło użytkownika APIza każdy dzień opłacona faktura sprzedaży z jedną pozycją na stawkę VAT; błędy Acumulus wysyła e-mailem na ACUMULUS_FOUTMAIL
AFAS ProfitNLśrodowisko, token, administracjazapis memoriałowy (FiEntries)
Business CentralNL, BEdzierżawa (tenant), środowisko, firma, identyfikator klienta i klucz tajny aplikacji Microsoft Entra (API.ReadWrite.All)pozycje w dzienniku ogólnym z kodem z pola Dziennik
Exact OnlineNL, BElogowanie (OAuth, własna aplikacja: zobacz Exact Online poniżej; Belgia: start.exactonline.be)księgowanie memoriałowe w dzienniku (np. 90)
HorusBElogowanie (OAuth, aplikacja poniżej), opcjonalnie teczkaoperacja różna
MoneybirdNLtoken API, opcjonalnie administracjazapis memoriałowy (general journal document)
OdooNL, BEadres, baza danych, użytkownik, klucz APIzapis w dzienniku o krótkim kodzie (np. MISC)
QuickBooks OnlineNL, BElogowanie (OAuth, aplikacja poniżej; QUICKBOOKS_OMGEVING)journal entry; konta według numeru
SAP Business OneNL, BEadres Service Layer, baza danych, użytkownik, hasłozapis w dzienniku (JournalEntries)
SilvasoftNL, BEużytkownik i klucz APIzapis sprzedaży na kontrahenta Kassaverkopen, jedna pozycja na stawkę VAT (metody płatności, napiwki i różnice kasowe nie są przekazywane)
SnelStartNLklucz integracji i klucz subskrypcjizapis memoriałowy
TwinfieldNLlogowanie (OAuth, aplikacja poniżej), opcjonalnie biurotransakcja w dzienniku
XeroNL, BElogowanie (OAuth, aplikacja poniżej), opcjonalnie organizacjamanual journal; konta według kodu
YukiNL, BEklucz API, opcjonalnie administracjazapis memoriałowy (GeneralJournal)
Zoho BooksNL, BElogowanie (OAuth, aplikacja poniżej; domyślnie europejskie centrum danych), opcjonalnie organizacjazapis w dzienniku; konta według kodu

Plik audytowy kasy (XAA)

Dla lokali w Holandii w Raport → Obrót w okresie obok eksportu do księgowości jest przycisk Plik audytowy kasy (XAA): XML Auditfile Afrekensystemen 3.2 holenderskiej administracji podatkowej (Belastingdienst) i XML Platform (SRA) za wybrany okres (maksymalnie nieco ponad rok; uprawnienie Obrót w okresie). To plik, który Belastingdienst zaleca do przekazywania danych kasy podczas kontroli lub księgowemu; zasady opisuje Handreiking voor een betrouwbaar afrekensysteem (Wytyczne dotyczące wiarygodnego systemu kasowego) (docs/xaa).

W pliku (auditfile_kassa_<van>_tm_<tot>.xml, schemat docs/xaa/XmlAuditfileAfrekensystemen3.2.xsd):

Kwoty są dodatnie z C (sprzedaż, wpływ) lub D (zwrot, wypłata); czas według czasu holenderskiego z przesunięciem. Wszystkie klucze to identyfikatory z bazy danych bez myślników, więc można je odnaleźć w kasie.

Podpisywanie (rozdział 6 specyfikacji): jeśli Optimum POS skonfigurowało certyfikat, plik audytowy jest podpisany i umieszczony w kopercie (XML Signature), a plik nazywa się …_ondertekend.xml; w przeciwnym razie jest to zwykły plik audytowy, o czym kasa informuje przy pobieraniu.

Płatność na fakturę

Klienci firmowi (firma, która co tydzień odbiera lunch, hotel, stowarzyszenie) kupują na fakturę i płacą później, na podstawie faktury. Włącz to w Ustawienia → Faktury → Płatność na fakturę (tylko przy włączonych Fakturach; domyślnie wyłączone).

Bank: rozliczanie przelewów

W Raport → Na fakturę → Bank kasa szuka do każdego wpływu odpowiedniej faktury z płatnością na fakturę:

Obraz z kamer w kasie

Wszystkie obrazy z kamer lokalu na jednej stronie, bez osobnego ekranu czy aplikacji. Włącz to w Ustawienia → Lokal → Ekrany i obsługa → Obraz z kamer w kasie (domyślnie wyłączone). Na górnym pasku pojawi się wtedy przycisk Kamery dla osób z uprawnieniem Podgląd obrazu z kamer (domyślnie kierownik i administrator; w Ustawienia → Uprawnienia można je włączyć także dla obsługi). Wszystkie kamery są obok siebie; dotknij kamery, aby zobaczyć duży obraz. Po wyłączeniu systemy kamer pozostają zapisane.

Także jako osobny ekran: Na osobnym ekranie otwiera http://<kassaserver>:3000/camera (np. monitor za barem), a Na tablecie lub telefonie pokazuje kod QR: pracownik skanuje go własnym tabletem lub telefonem i loguje się własnym kodem PIN (również tam tylko z uprawnieniem Podgląd obrazu z kamer). Na wąskim ekranie kamery są jedna pod drugą. Zobacz Drugi ekran na tablecie lub telefonie.

Administrator dodaje systemy kamer przyciskiem + System kamer, sprawdza je przyciskiem Testuj i wybiera dla każdej kamery nazwę oraz to, czy jest na stronie:

Bez ffmpeg: zdjęcie.

Prywatność: kasa pobiera obrazy z systemu kamer i jedynie je przekazuje; nic nie jest zapisywane (żadnych nagrań, żadnej pamięci podręcznej). Użytkownicy i hasła pozostają na serwerze i nigdy nie pojawiają się na ekranie ani w dzienniku zdarzeń. W dzienniku zdarzeń widać, kto oglądał kamery. Same obrazy strona pobiera z kluczem (ważnym 12 godz., dopóki pracownik jest zalogowany), ponieważ obraz w przeglądarce nie może przesłać tokenu. Eksport konfiguracji obejmuje tylko wł./wył.

Dziennik wrażliwych działań

Raport → Dziennik zdarzeń (kierownik lub administrator) pokazuje, kto co zrobił i kiedy.

Co jest rejestrowane: storna, rabaty (i ich usuwanie), zwroty, kopie paragonów, pro formy, ręczne płatności kartą, otwieranie szuflady, wpłaty/wypłaty z szuflady, pogotowie kasowe, zamknięcie dnia, przenoszenie pozycji lub stolików, zamykanie pustych zamówień, zmiana ceny/nazwy/VAT produktów, nowe lub usunięte produkty, zmiany personelu i ustawień, korekta godzin pracy, logowanie i wylogowanie, błędne PIN-y oraz rejestracja wejścia i wyjścia. Przy płatności na rachunek również: klienci, sprzedaż i płatności na rachunek, import wyciągów bankowych, połączenie z bankiem i pobieranie danych z banku. Przy powiadomieniu o zbyt długim czasie realizacji: opóźnione zamówienia i wysłane przeprosiny. Przy Mailchimp lub Klaviyo: połączenie, wybór listy, rozłączenie i wypisania stamtąd. Przy sterowaniu muzyką: wł./wył. oraz dodawanie, zmiana i usuwanie źródeł muzyki. Przy obrazie z kamer: kto oglądał kamery (najwyżej raz na pół godziny na pracownika), wł./wył. oraz systemy kamer. Przy alertach: każdy alert, jego załatwienie oraz włączanie i wyłączanie.

Alerty: oszustwa i odchylenia

Ustawienia → Alerty. Dwie części, każdą włącza się osobno i domyślnie są wyłączone; wyłączenie zachowuje wszystkie alerty i ustawienia. Konfigurować może osoba z uprawnieniem Konfiguracja alertów (domyślnie kierownik i administrator); widzieć i załatwiać alerty może ten, kto może widzieć dziennik zdarzeń. Kasa sprawdza co 5 minut (oraz po kliknięciu Sprawdź teraz); nie na kasie zapasowej.

Wykrywanie oszustw i kradzieży (na pracownika, na dzień roboczy od 05:00), każda reguła osobno włączana lub wyłączana, z własnym progiem:

Powiadomienia o odchyleniach, w porównaniu z tym samym dniem tygodnia i tą samą porą w ostatnich tygodniach (domyślnie 4; dni bez przychodu się nie liczą, co najmniej dwa dni do porównania):

Każdy alert pojawia się raz (na regułę, pracownika i dzień; czas w kuchni najwyżej raz na godzinę) i trafia do:

Dla każdego kanału jest przycisk Wiadomość testowa. Tokeny i klucze zostają na kasie (ekrany widzą tylko, czy są uzupełnione). Alert nie jest dowodem: sprawdź rachunek i dziennik zdarzeń i porozmawiaj z pracownikiem.

Paragony: kopia i zwrot (paragon korygujący)

Paragony

Przycisk Paragony na górnym pasku:

Szuflada kasowa z czujnikiem i szuflada na pracownika

Domyślnie wyłączone. Ustawienie w Ustawienia → Płatności → Szuflada kasowa.

Część 3 · Administrator

Pierwsze kroki

Instalacja. HorecaPOS instalujesz instalatorem dla swojego systemu, dostępnym na stronie pobierania OptimumPOS: Android (aplikacja), Windows (instalator), macOS (instalator dla Maców z Apple Silicon i Intel), Linux (instalator graficzny albo pakiet .deb lub .rpm), Raspberry Pi (instalator graficzny lub .deb dla Raspberry Pi 3, 4 lub 5 z 64-bitowym Raspberry Pi OS) oraz Chromebook (aplikacja na Androida z Google Play). Wybierz dla wszystkich użytkowników, aby utworzyć serwer kasy, z którym łączą się tablety i ekran kuchenny, albo tylko dla mnie, aby mieć tylko kasę na tym urządzeniu. Instalator instaluje wszystko, co potrzebne, także bazę danych, i co noc wykonuje kopię zapasową. Aby zaktualizować, zainstaluj nową wersję: Twoje dane pozostają. Instalator uruchamia się w języku Twojego komputera (w przeciwnym razie po angielsku); w systemach Windows i Linux na pierwszym ekranie możesz wybrać inny język. Kasa uruchamia się potem od razu w tym języku. Pakiety .deb i .rpm oraz aplikacja na Androida używają języka systemu, w przeciwnym razie niderlandzkiego.

Administrator konfiguruje kasę w Ustawieniach. Znajdują się tam zakładki takie jak Lokal, Personel, Uprawnienia, Godziny pracy, Produkty, Happy hour, Magazyn, Plany sal, Płatności, Drukarki, Księgowość, Kopie zapasowe, Import/eksport i Baza danych. To, które zakładki widzi również kierownik, zależy od uprawnień.

Baza danych. W Ustawienia → Baza danych (tylko administrator) wybierasz między MySQL / MariaDB, wbudowaną bazą danych i PostgreSQL; przy przełączeniu wszystkie dane są przenoszone (zob. Baza danych). Jeśli Optimum POS ustawił już podczas instalacji stały adres, obowiązuje ten adres i nie ma pól do wypełnienia. W przeciwnym razie sam wypełniasz Serwer, Port, Baza danych, Użytkownik i Hasło. Kasa sama je zapisuje, potem pokazuje je ponownie wypełnione i zawsze możesz je zmienić przyciskiem Zmień dane MySQL/MariaDB lub Zmień dane PostgreSQL. Pozostawienie pustego hasła oznacza: zachowanie zapisanego hasła (dla tego samego użytkownika). Instalator i aktualizacja nie zmieniają DATABASE_URL ani wybranej bazy danych.

Ustawienia: produkty

Księgowość

Wszystko dotyczące księgowości znajduje się w Ustawienia → Księgowość. Wpisz razem ze swoim księgowym dziennik i konta księgowe. Jeśli chcesz, aby kasa sama księgowała obrót dzienny każdego dnia, wybierz swój program u góry w Program księgowy, także Exact Online: widzisz tylko programy, które działają w kraju Twojego lokalu. Tuż pod spodem wpisujesz dane tego programu i łączysz się. W programach, do których się logujesz (np. Exact Online, Twinfield lub Xero), najpierw wypełniasz aplikację: identyfikator klienta i klucz tajny klienta. Jeśli Optimum POS ustawiło program lub daną wartość na stałe podczas instalacji, nie widzisz tego wyboru ani tego pola. Znajduje się tam też przegląd wszystkich programów: które można zintegrować na żywo, a które otrzymują plik. Plik tworzysz w Raport → Obrót w okresie → Eksport do księgowości: wybierz format swojego programu albo UBL (Peppol), XAF lub raport dzienny. Pierwsze księgowanie lub import zawsze zlecaj do sprawdzenia księgowemu.

Dla lokalu w Holandii jest tam też Plik audytowy kasy (XAA): XML Auditfile Afrekensystemen holenderskiej administracji podatkowej (Belastingdienst) ze wszystkimi paragonami, pozycjami, płatnościami i zdarzeniami kasy za wybrany okres. Przekazujesz go księgowemu lub, podczas kontroli, Belastingdienst.

Płace i grafik

Jeśli Twój personel rejestruje wejście i wyjście, w Ustawienia → Godziny pracy na dole znajduje się Płace i grafik, w dwóch blokach. W Kadry i płace wybierasz program płacowy lub (w Belgii) sekretariat socjalny i wpisujesz dla każdego pracownika jego numer kadrowy w tym programie. Następnie tworzysz za dany okres plik z przepracowanymi godzinami i obrotem na pracownika i wczytujesz go do programu płacowego. W Planowanie personelu wybierasz system planowania: w Deputy, Dyflexis i Shiftbase obrót trafia automatycznie co godzinę, w pozostałych tworzysz plik obrotu. Dzięki temu widzisz w grafiku koszty wynagrodzeń obok obrotu. Jeśli pracujesz bez rejestracji czasu pracy, i tak możesz wysyłać obrót do grafiku: znajduje się to wtedy na dole Ustawienia → Księgowość, w Obrót do grafiku. Jeśli Optimum POS ustawił coś na stałe przy instalacji, nie widzisz tego wyboru ani tego pola.

Kopie zapasowe

Kasa tworzy kopię zapasową automatycznie każdej nocy, a także zawsze przed aktualizacją. W Ustawienia → Kopie zapasowe widzisz wszystkie kopie (kiedy, przez kogo lub automatycznie, rozmiar) i możesz sam utworzyć kopię przyciskiem Utwórz kopię zapasową. Jeśli ostatnia kopia jest starsza niż dwa dni, pojawia się czerwone ostrzeżenie: skontaktuj się wtedy z Optimum POS.

Ustawienia: kopie zapasowe

Przywracanie jest możliwe przyciskiem Przywróć przy kopii zapasowej. Wszystko, co wydarzyło się po tej kopii, zostanie wtedy utracone. Musisz to zaznaczyć i ponownie wpisać swój PIN. Kasa najpierw tworzy jeszcze kopię bezpieczeństwa bieżącego stanu, a potem wylogowuje wszystkich. W Belgii nie jest to możliwe z poziomu kasy (liczniki czarnej skrzynki biegną dalej); tam robi to Optimum POS.

Baza danych

W Ustawienia → Baza danych (tylko administrator) widzisz, gdzie kasa przechowuje swoje dane. Na górze jest obecna baza danych z programem, wersją, tabelami, wierszami oraz adresem lub folderem. Dla personelu i tabletów kasa działa tak samo z każdą bazą. W systemach Windows, macOS, Linux i na Raspberry Pi wybierasz spośród trzech baz danych:

Kiedy MySQL lub MariaDB? Gdy twój lokal ma już serwer MySQL lub MariaDB, gdy pracuje z nim twój administrator IT albo gdy chcesz czytać dane we własnych raportach, w Excelu lub w programie BI. W razie wątpliwości wybierz wbudowaną: działa od razu.

Co jest potrzebne dla MySQL lub 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';

Jeśli MySQL lub MariaDB działa na innym komputerze, wpisz w dwóch ostatnich wierszach adres IP serwera kasy zamiast localhost.

Migracja do MySQL / MariaDB:

  1. W sekcji Adres MySQL/MariaDB wypełnij pola: Serwer (domyślnie localhost), Port (domyślnie 3306), Baza danych (domyślnie horecapos), Użytkownik i Hasło; dla MariaDB tak samo. Jeśli adres jest już ustawiony, pola są już wypełnione; jeśli zostawisz hasło puste, zostaje zapisane hasło (dla tego samego użytkownika). Kasa sama zapisuje adres; jeśli Optimum POS ustawił już stały adres, obowiązuje ten adres i nie ma pól. Jeśli kasa już działa na MySQL/MariaDB, dane zmienisz później przyciskiem Zmień dane MySQL/MariaDB. Szyfrowane połączenie ustawi dla ciebie Optimum POS.
  2. Stuknij Testuj połączenie: zobaczysz program i wersję albo powód, dla którego się nie udaje.
  3. Stuknij Migruj do MySQL/MariaDB, zaznacz, że rozumiesz, i wpisz swój PIN.

Migracja działa w każdym kierunku między trzema bazami danych, a wszystkie dane idą razem z nią:

  1. Kasa przez chwilę nie przyjmuje żądań (zwykle krócej niż minutę); potem tablety same działają dalej.
  2. Najpierw kasa tworzy kopię zapasową bieżącego stanu (w Ustawienia → Kopie zapasowe).
  3. Wszystko trafia do nowej bazy, a kasa liczy w każdej tabeli, czy wszystko jest tam dokładnie.
  4. Dopiero gdy wszystko się zgadza, kasa pracuje dalej na nowej bazie. Zalogowani pracownicy pozostają zalogowani.

Jeśli coś się nie uda, nic się nie zmienia i kasa pracuje dalej na starej bazie. Stara baza zostaje, więc zawsze można wrócić. Dane kasy, które już były w nowej bazie MySQL/MariaDB lub PostgreSQL, zostają zastąpione. Działa to też w Belgii: liczniki czarnej skrzynki przechodzą dokładnie.

Kopie zapasowe i przywracanie działają tak samo ze wszystkimi trzema bazami (Ustawienia → Kopie zapasowe). Kopię z jednej bazy można przywrócić w każdej innej, także kopię z PostgreSQL w MySQL lub MariaDB.

Co jest w MySQL lub MariaDB? Każda tabela kasy, z tą samą nazwą i kolumnami (czas w UTC). Każda tabela dostaje dodatkowo kolumnę klucza _hp_sleutel, a w tabelach pomocniczych _horecapos_stand, _horecapos_kolom, _horecapos_reeks i _horecapos_wijziging (dziennik zmian, przechowywany 14 dni) kasa zapisuje stan, typy kolumn, liczniki i zmiany. Inne programy czytają dane; zapisują tylko kasy.

Jak to działa: kasa liczy w szybkiej kopii roboczej na serwerze kasy i zapisuje każdą zmianę do MySQL/MariaDB w tym samym kroku. Jeśli to się nie uda, zmiana nie zostaje wykonana i kasa zgłasza błąd; dbaj więc o to, by MySQL/MariaDB był dostępny. Przy uruchomieniu kasa wczytuje wszystko z MySQL/MariaDB.

Kilka kas na jednej bazie. Tak jak w PostgreSQL, kilka kas może korzystać z tej samej bazy MySQL/MariaDB, na przykład każdy lokal sieci z własnym serwerem kasy. Zmiany zapisują się po kolei, a każda kasa najpierw przejmuje to, co zrobiły inne, więc przy jednoczesnych zmianach nic nie ginie. Gdy kasa przywróci kopię zapasową albo kasa z nowszą wersją zaktualizuje bazę, pozostałe kasy same wczytują wszystko od nowa; dlatego aktualizuj wszystkie kasy jednocześnie. Kasa wyłączona dłużej niż 14 dni przy uruchomieniu wczytuje wszystko od nowa.

Podczas instalacji wybierasz też bazę danych: MySQL / MariaDB, wbudowaną (zalecane) lub PostgreSQL z adresem. Jeśli jest niedostępna, kasa instaluje się z bazą wbudowaną; migrację możesz potem zrobić tutaj. Przy aktualizacji wybór zostaje.

Łączenie tabletów i ekranów

Ekran klienta

Ekran przy kasie skierowany w stronę klienta. Klient widzi w przybliżeniu, co zamówiono, a bardzo wyraźnie kwotę i sposób płatności. Nie ma na nim obsługi: ekran tylko śledzi to, co robi kasa. Domyślnie wył.; włączenie w Ustawienia → Lokal → Ekran klienta. Na komputerze kasowym z dwoma ekranami kasa włącza go automatycznie za pierwszym razem; jeśli potem go wyłączysz, pozostanie wyłączony. Bez ekranu klienta (wyłączony lub niepodłączony) wszystko działa dokładnie jak zawsze: kasa wysyła obraz w tle, a obsługa nigdy nie zauważy błędu ani brakującego ekranu.

Co widzi klient:

Podłączenie na dwa sposoby (oba ustawia się na samym urządzeniu):

Ekran klienta nie wymaga PIN-u (nie ma tu nic do obsługi) i pokazuje tylko obraz kasy, z którą jest sparowany. Obraz jest przechowywany tylko w pamięci serwera kasy; po restarcie ekran jest pusty do następnej zmiany. Ustawienie (wł./wył. i tekst powitalny) jest uwzględniane w kopii zapasowej i w Import/eksport (Pozostałe ustawienia).

Paragon cyfrowy przez QR (opcjonalnie)

Domyślnie wył. Włączanie: Ustawienia → Lokal → Kuchnia i ekran klienta → Paragon cyfrowy (opcja pojawia się, gdy ekran klienta jest zapisany jako włączony). Po zapłacie na ekranie Dziękujemy! pojawia się kod QR; pozostaje on wtedy przez 45 sekund zamiast kilku sekund. Gość skanuje go własnym telefonem i widzi paragon dokładnie taki jak papierowy (ten sam tekst, w belgijskiej kasie także z blokiem FDM). Na telefonie może paragon wydrukować, zapisać jako PDF lub pobrać jako plik tekstowy.

Ekran klienta w spoczynku: pokaz slajdów (opcjonalnie)

Domyślnie wył. Włączanie: Ustawienia → Lokal → Kuchnia i ekran klienta → Ekran klienta w spoczynku. Gdy na ekranie klienta nie ma rachunku, slajdy zmieniają się kolejno (domyślnie co 8 sekund, do ustawienia od 4 do 60):

Bez slajdów ekran klienta pokazuje ekran powitalny, jak zawsze.

Happy hour

Domyślnie wył. Włączenie w Ustawienia → Lokal → Używaj happy hour; potem pojawia się zakładka Ustawienia → Happy hour.

Pory dnia i sezony

Domyślnie wyłączone. Włączenie w Ustawienia → Lokal → Pory dnia i sposób realizacji → Asortyment według pory dnia i sezonu; potem pojawia się karta Ustawienia → Pory dnia. Po wyłączeniu wszystkie produkty znów są zawsze w sprzedaży, a pory dnia zostają zachowane.

Asortyment i ceny według sposobu realizacji

Domyślnie wyłączone. Włączenie w Ustawienia → Lokal → Pory dnia i sposób realizacji → Asortyment i ceny według sposobu realizacji. Po wyłączeniu wszędzie znów obowiązuje zwykła cena i wszystko jest wszędzie w sprzedaży; wpisane ceny zostają zachowane.

Domyślnie wył. Włączenie w Ustawienia → Lokal → Używaj menu.

Receptury i koszt własny (Apicbase)

Integracja z Apicbase (receptury, koszt własny, magazyn i zakupy) przez Generic POS API Apicbase (domyślnie wyłączone, każdą część włącza się lub wyłącza osobno). Konfiguracja w Ustawienia → Receptury (uprawnienie Ustawienia lokalu, płatności i drukarek). Kasa sama komunikuje się z Apicbase (tylko ruch wychodzący, portal niepotrzebny).

  1. Połącz (wszystko wypełnia administrator), na jeden z trzech sposobów:
    • Wklej token: w Apicbase Library Settings → API Settings → New token → Service Account Token (scope'y accounts, library, sales); wkleić access token i refresh token;
    • Zaloguj się własną API-app lokalu (client-id i client secret z API Settings): Zaloguj się w Apicbase i wkleić kod, który Apicbase potem pokaże;
    • Wygasły token (po 7 dniach) kasa odnawia automatycznie za pomocą refresh tokenu.
  2. Outlet: Pobierz outlety i wybrać outlet tego lokalu. Kasa ustawia tam POS na Generic POS API z własnym location-id (do edycji; domyślnie HORECAPOS-…, unikalny dla każdej kasy).
  3. Wł., z polami wyboru:
    • Produkty, grupy i opcje wyboru do Apicbase: grupy produktów, produkty (PLU = numer PLU produktu, w przeciwnym razie kod, w przeciwnym razie id), opcje wyboru jako modifiers, z ceną i VAT. Automatycznie po każdej zmianie (po minucie) i codziennie. W Apicbase łączysz potem każdy produkt z kasy z recepturą;
    • Każdy rozliczony paragon do Apicbase: najstarsze najpierw, najwyżej 100 naraz, w ciągu kwadransa od rozliczenia (i co 5 minut). Rabat rozkłada się na pozycje; kwoty otwarte, dopłata za opakowanie jednorazowe i kaucja występują w Apicbase jako osobne produkty; produkty ważone jako 1 szt. z łączną kwotą. Jeśli się nie uda, kasa wstrzymuje wysyłkę (Apicbase chce paragony po kolei) i próbuje ponownie później: rozliczanie nic na tym nie traci. Przy włączaniu wybierasz, od którego dnia (domyślnie od teraz);
    • Pobieraj koszt na porcję (co 6 godzin): dla każdej połączonej receptury food cost (składniki i straty), z kosztami personelu, cena sprzedaży i marża według Apicbase. Liczone według najtańszego dostawcy, ostatniej zamówionej ceny lub średniej wartości magazynu;
    • Przejmuj cenę sprzedaży z Apicbase (domyślnie wył.): ustawianie ceny sprzedaży połączonych produktów w kasie (zapisywane w dzienniku zdarzeń).
  4. Na dole: Koszt własny na produkt z kosztem własnym, kosztem własnym z personelem, ceną w kasie, kosztem własnym % i marżą. Przyciski Wyślij katalog teraz, Wyślij paragony teraz i Pobierz koszty własne teraz.

Kod: apps/pos-server/src/lib/apicbase.ts, routes/apicbase.ts; ekran Apicbase.tsx. Dziennik zdarzeń: Apicbase. Warunek: moduł API Apicbase. Dla aplikacji Pin Voordeel dla wszystkich klientów: partnerstwo i certyfikacja w Apicbase (zob. backlog). Dokumentacja: https://developers.apicbase.com/docs/generic-pos-api-guide

Oprogramowanie hotelowe: na pokój

Dla restauracji lub baru w hotelu: rachunek na pokój gościa. Domyślnie wyłączone: Ustawienia → Hotel (uprawnienie Ustawienia lokalu, płatności i drukarek).

Sirvoy wysyła coś tylko wtedy, gdy rezerwacja się zmienia: rezerwacje sprzed połączenia kasa poznaje dopiero po zmianie w Sirvoy. Wiadomości mogą przychodzić w innej kolejności; wiadomość starsza (generatedAt) niż to, co kasa już ma, jest pomijana. W hotelu = nieanulowana i bez wymeldowania, zameldowana lub przyjazd dziś lub wcześniej, a wyjazd dziś lub później. Testuj połączenie pokazuje, ile rezerwacji przyszło.

Całe oprogramowanie hotelowe jest dostępne w Holandii i/lub Belgii. Testuj połączenie sprawdza dane. Kod dla każdej integracji: apps/pos-server/src/lib/pms/<naam>.ts.

Kod: apps/pos-server/src/lib/hotel.ts, routes/hotel.ts, integracje w lib/pms/, katalog packages/shared/src/hotelcatalogus.ts; ekran Hotel.tsx. Dziennik zdarzeń: Hotel. Sekrety (tokeny) są przechowywane tylko w bazie danych, nigdy na ekranie.

Zarządzanie winami z Vinify

Ustawienia → Zarządzanie winami (domyślnie wyłączone; wyłączenie zachowuje wszystko). Vinify prowadzi piwnicę win, kartę win i stan magazynowy i jest głównym źródłem danych o winach. Zgodnie z wymaganiami POS firmy Vinify kasa udostępnia API, przez które Vinify może:

Uwierzytelniać się wszystkimi trzema sposobami, które zna Vinify (administrator włącza, które):

  1. ID API i klucz API (X-Api-Id i X-Api-Key, lub Authorization: Bearer <id>:<sleutel>);
  2. Klucz API i secret API z podpisem: X-Api-Key, X-Timestamp i X-Signature = hex HMAC-SHA256(secret, <timestamp>\n<METHODE>\n<pad met query>\n<sha256 van de body>), nie starszy niż 5 minut.

Klucz i secret tworzy kasa (pokazywane raz); ekrany pokazują tylko, czy są uzupełnione. Dostępne przez portal pod adresem https://<portaal>/vinify/<kassa-id>/... (bez otwartego portu w lokalu; adres jest w Ustawienia → Zarządzanie winami). Które produkty są winem: to, co tworzy Vinify, plus zaznaczone przez Ciebie grupy. Jeśli Vinify poda adres do wysyłania sprzedaży, kasa wysyła ją także sama (push, z tokenem): po każdym rozliczonym paragonie i co 5 minut to, czego jeszcze nie udało się wysłać. Vinify włącza integrację z HorecaPOS (hello@vinify.no). Wszystko w dzienniku. Nie mylić z Vinify.nl, internetowym sklepem z winami: jest na liście dostawców (Zamawianie u dostawców).

Szybkie wprowadzanie adresu za pomocą kodu pocztowego i numeru domu

Włączasz w Ustawienia → Lokal → Szybkie wprowadzanie adresu (domyślnie wyłączone; tylko dla lokalu w Holandii). Wpisz kod pocztowy i numer domu (także z literą lub dodatkiem, np. 12A lub 12-1) i stuknij Szukaj adresu: ulica, numer domu, kod pocztowy i miejscowość zostaną uzupełnione. Jeśli pod tym numerem jest kilka adresów (12, 12A, 12B), wybierasz właściwy. Potem nadal możesz wszystko zmienić.

Powiadomienie o nowej wersji

Włączenie w Ustawienia → Lokal → Powiadomienie o aktualizacji (domyślnie wyłączone).

Platformy rezerwacyjne

Rezerwacje z TheFork, Formitable, Zenchef, Resengo (tylko Belgia), OpenTable (tylko Holandia), PlanPanther, RestoManager i Aqqo (tylko Holandia) same trafiają do kasy i na plan sali. Włącza się w Ustawienia → Platformy rezerwacyjne (domyślnie wyłączone). Działa tylko, gdy Rezerwacje są włączone.

Programy lojalnościowe i opinie

Dwa osobne przełączniki w Ustawienia → Punkty i opinie (oba domyślnie wyłączone, wtedy nigdzie nic tego nie widać). Jeśli je wyłączysz, ustawienia i wszystko, co już się wydarzyło, zostaną zachowane.

Program lojalnościowy innej platformy: gość zbiera punkty w Joyn (Belgia) i/lub Piggy (Leat; Holandia i Belgia). Jest to niezależne od własnej karty lojalnościowej kasy; może ona działać równolegle.

Proś o opinie: po wizycie jeden e-mail z przyciskiem do Google i/lub Trustpilot.

Integracja z Mailchimp i Klaviyo

Twoi klienci z kartą lojalnościową we własnym programie mailingowym: w Ustawienia → Lokal → Mailchimp i Klaviyo (pod marketingiem SMS i e-mail). Nie ma przełącznika: bez integracji z wybraną listą nic się nie dzieje.

Kod: lib/mailinglijst.ts, routes/mailinglijst.ts i MailingKoppelingen.tsx.

BI i eksport danych

Dane sprzedaży do Power BI, Looker Studio, Excel, Google Sheets, Tableau, Qlik Sense, Metabase, usługi BI (na przykład YourBI, BI4Horeca lub Moore DRV) albo własnej hurtowni danych. Włącz w Ustawienia → BI i eksport danych (domyślnie wyłączone). Tylko odczyt: przez integrację nie można nic zmienić w kasie. Brak danych gości.

Płace i grafik

Przy włączonej Rejestracji czasu pracy (Ustawienia → Lokal) w Ustawienia → Godziny pracy na dole znajduje się Płace i grafik (uprawnienie Zarządzanie ustawieniami), w dwóch osobnych blokach. Gdy rejestracja jest wyłączona, nie ma godzin: wtedy tylko blok Planowanie personelu (obrót, na żywo lub jako plik obrotu) znajduje się na dole Ustawienia → Księgowość, pod nagłówkiem Obrót do grafiku:

ProgramNLBENa żywoPlikUwaga
Oprogramowanie płacowe i biura płacowe
ADP✓✓na wniosekLista godzin na pracownika i dzień (CSV)Integracja przez ADP (na wniosek); do tego czasu lista godzin na pracownika i dzień.
AFAS Payroll✓–na wniosekLista godzin na pracownika i dzień (CSV)Kadry i płace w AFAS Profit (to samo środowisko co księgowość w AFAS); integracja na wniosek, do tego czasu lista godzin.
BCS HR✓–na wniosekLista godzin na pracownika i dzień (CSV)Integracja przez BCS (na wniosek); do tego czasu lista godzin.
Buddee✓–na wniosekLista godzin na pracownika i dzień (CSV)Oprogramowanie kadrowo-płacowe; integracja na wniosek, do tego czasu lista godzin na pracownika i dzień.
Employes✓–na wniosekLista godzin na pracownika i dzień (CSV)Employes ma API do przepracowanych godzin (token klienta); integracja nastąpi po uzgodnieniu z Employes. Do tego czasu lista godzin.
Exact Online Loon✓–na wniosekLista godzin na pracownika i dzień (CSV)Kadry i płace w Exact Online (to samo środowisko co księgowość w Exact); integracja na wniosek, do tego czasu lista godzin.
Humanwave✓–na wniosekLista godzin na pracownika i dzień (CSV)Integracja przez Humanwave (na wniosek); do tego czasu lista godzin.
Loket.nl✓–na wniosekLoket.nl Variabele gegevens (CSV), Lista godzin na pracownika i dzień (CSV)Plik do Werkgever → Collectieve mutaties → Importeren → Variabele gegevens (godziny na pracownika za okres). Na żywo przez API Loket po rejestracji w Loket.
Nmbrs✓–na wniosekLista godzin na pracownika i dzień (CSV)Lista godzin na pracownika i dzień do przeniesienia do Nmbrs. Na żywo przez API Nmbrs po zarejestrowaniu aplikacji w Nmbrs.
Salar (Van Winckel)✓––Lista godzin na pracownika i dzień (CSV)Lista godzin na pracownika i dzień dla biura rachunkowego; format importu Salar nie jest publiczny.
Sekretariaty socjalne
Acerta–✓na wniosekLista godzin na pracownika i dzień (CSV)Sekretariat socjalny: układ pliku świadczeń otrzymasz od Acerta; do tego czasu lista godzin.
Group S–✓na wniosekLista godzin na pracownika i dzień (CSV)Sekretariat socjalny: układ pliku świadczeń otrzymasz od Group S; do tego czasu lista godzin.
Liantis–✓na wniosekLista godzin na pracownika i dzień (CSV)Sekretariat socjalny z API, które Liantis udostępnia dla każdej firmy osobno; do tego czasu lista godzin.
Partena Professional–✓na wniosekLista godzin na pracownika i dzień (CSV)Sekretariat socjalny: układ pliku świadczeń otrzymasz od Partena; do tego czasu lista godzin.
SD Worx✓✓–SD Worx Tijdsregistratie (TXT), Lista godzin na pracownika i dzień (CSV)Belgia: plik Tijdsregistratie (stałe pozycje, na pracownika na dzień) do "Tijdsregistratie importeren". Holandia: lista godzin.
Securex–✓na wniosekLista godzin na pracownika i dzień (CSV)Sekretariat socjalny: integracje odbywają się przez partnerów; do tego czasu lista godzin.
Planowanie i rejestracja godzin
Book'u–✓na wniosekObrót na dzień i godzinę (CSV)Book'u składa zgłoszenia Dimona; integracja z kasą na wniosek. Do tego czasu lista obrotu.
Deputy✓✓✓Obrót na dzień i godzinę (CSV)Na żywo: obrót na godzinę trafia co godzinę do Deputy (Sales). Stały token tworzysz w Deputy w integracjach API.
Dyflexis✓–✓Obrót na dzień i godzinę (CSV)Na żywo: obrót na godzinę trafia co godzinę do Dyflexis (information streams). Token API otrzymasz od Dyflexis.
Eitje✓–na wniosekObrót na dzień i godzinę (CSV)Eitje integruje się przez swój program partnerski; do tego czasu lista obrotu na dzień i godzinę.
Exact Horeko✓–na wniosekObrót na dzień i godzinę (CSV)Integracja przez Horeko (na wniosek); do tego czasu lista obrotu.
Fooks✓–na wniosekObrót na dzień i godzinę (CSV)Fooks sam buduje integracje z kasami; do tego czasu lista obrotu na dzień i godzinę.
L1NDA✓–na wniosekObrót na dzień i godzinę (CSV)L1NDA buduje integracje z kasami razem z partnerami; do tego czasu lista obrotu na dzień i godzinę.
Mr. Einstein✓–na wniosekObrót na dzień i godzinę (CSV)HR, grafik i koszty płac dla gastronomii; Mr. Einstein buduje integracje z kasami razem z dostawcą kasy (wniosek przez mreinstein.nl/contact). Do tego czasu lista obrotu na dzień i godzinę.
Nostradamus✓✓na wniosekObrót na dzień i godzinę (CSV)Nostradamus przyjmuje obrót przez swój interfejs kasowy (token API i domena lokalu, po złożeniu wniosku w Nostradamus); do tego czasu lista obrotu na dzień i godzinę.
Plan-Me–✓na wniosekObrót na dzień i godzinę (CSV)Plan-Me składa zgłoszenia Dimona; integracja z kasą na wniosek. Do tego czasu lista obrotu.
Planday✓✓na wniosekObrót na dzień i godzinę (CSV)Planday ma otwarte API dla systemów kasowych; integracja nastąpi po uzgodnieniu. Do tego czasu lista obrotu.
Shiftbase✓–✓Obrót na dzień i godzinę (CSV)Na żywo: obrót dzienny trafia co godzinę do dziennika działu w Shiftbase. Klucz API tworzysz w Shiftbase w App center.
Shyfter–✓na wniosekObrót na dzień i godzinę (CSV)Shyfter składa zgłoszenia Dimona i przyjmuje obrót dzienny przez swoje API; integracja nastąpi po uzgodnieniu z Shyfter. Do tego czasu lista obrotu.
Strobbo✓✓–Import obrotu Strobbo (Excel), Obrót na dzień i godzinę (CSV)Plik Excel do Planning → € → Importeer omzet (obrót na dzień na stanowisko pracy).
Tamigo✓✓na wniosekObrót na dzień i godzinę (CSV)Integracja przez Tamigo (na wniosek); do tego czasu lista obrotu.
Werktijden.nl✓––Obrót na dzień i godzinę (CSV), Lista godzin na pracownika i dzień (CSV)Werktijden.nl samo rejestruje godziny i (jeszcze) nie przyjmuje obrotu przez swoje API; listy służą do porównania.
XPS Logic✓–na wniosekObrót na dzień i godzinę (CSV)XPS Logic jest przeznaczony dla pracowników elastycznych i tymczasowych; integracja na wniosek. Do tego czasu lista obrotu.

Wymogi prawne w Belgii i Holandii

Czego wymaga prawo i co robi w tym celu HorecaPOS (poproś księgowego o potwierdzenie, co dotyczy Twojego lokalu):

KrajWymógHorecaPOS
BelgiaZarejestrowany system kasowy (GKS 2.0) z czarną skrzynką dla lokali gastronomicznych, które muszą go spełniać (m.in. przy obrocie z posiłków powyżej € 25.000 rocznie, bez VAT)połączenie z czarną skrzynką (FDM), obowiązkowe dane na paragonie i liczniki w raporcie Z (kraj Belgia w Ustawienia → Lokal, FDM_API_KEY i FDM_TERMINAL_ID); na górze w Ustawienia → Lokal wybierasz, czy lokal podlega GKS: Tak = rozliczanie tylko z działającą czarną skrzynką, Nie = bez niej, z oświadczeniem administratora (co roku ponownie); dopóki nic nie wybrano, nie można się rozliczać. Kasa liczy obrót z posiłków i ostrzega powyżej 25.000 €
BelgiaE-fakturowanie przez Peppol: od 1 stycznia 2026 faktury między belgijskimi firmami będącymi podatnikami VAT muszą być obowiązkowo ustrukturyzowane i elektroniczne (UBL, Peppol BIS 3); paragony kasowe dla konsumentów nie są tym objęteeksport dziennego obrotu jako UBL zgodnie z Peppol BIS Billing 3.0 do programu księgowego (Eksport księgowy); oraz faktury do rachunku dla klientów firmowych (Ustawienia → Faktury): UBL zgodnie z Peppol BIS Billing 3.0 plus faktura do druku, wysyłka e-mailem, przez Billit do sieci Peppol, na własny adres lub pobranie (zob. Faktury dla klientów firmowych)
BelgiaVAT w gastronomii od 1 marca 2026: posiłki na wynos i napoje bezalkoholowe 12% (na miejscu i na wynos), alkohol 21%, posiłki, które klient przygotowuje sam (fondue, gourmet) 6%Asystent VAT (Ustawienia → Przepisy i regulacje): rodzaj dla każdego produktu, właściwa stawka od razu lub od wybranej daty; opisy stawek A/B/C zostały zaktualizowane
HolandiaAlcoholwet: żadnego alkoholu dla osób poniżej 18 lat, także przy sprzedaży online i dostawie (sprawdzenie wieku przy doręczeniu)Weryfikacja wieku: produkty z alkoholem; w sklepie internetowym klient sam potwierdza 18+ (pole niezaznaczone wstępnie) z informacją, że wiek zostanie sprawdzony przy doręczeniu; "18+" na bonie kuchennym, bonie dostawy i paragonie
HolandiaJednorazowe kubki i pojemniki (SUP): od 2024 osobna, widoczna cena za plastikowe opakowania jednorazowe przy odbiorze i dostawieOpłata za opakowania jednorazowe dla każdego produktu, jako osobna pozycja na paragonie (VAT produktu) i osobno w obrocie
HolandiaKaucja za puszki i plastikowe butelkiKaucja dla każdego produktu (€ 0,15 / € 0,25), osobna pozycja bez VAT przy odbiorze i dostawie, osobno w obrocie
HolandiaPłatność gotówką: od 1 stycznia 2026 nie wolno przyjmować € 3.000 lub więcej gotówką za towaryOstrzeżenie przy odbiorze i dostawie (także przy automacie gotówkowym); można potwierdzić, trafia do dziennika
Holandia i BelgiaZmiana VAT: stawka lub produkt otrzymuje od wybranej daty inny procent VATPlanowanie zmiany VAT: kasa wykonuje ją w danym dniu (w Belgii dla każdego produktu, litery A/B/C/D są stałe)
HolandiaZakwaterowanie (noclegi) 21% od 1 stycznia 2026stawka VAT ustawiana dla każdego produktu
UEDyrektywa Omnibus: przekreślona cena "przed" może być tylko najniższą ceną z ostatnich 30 dnisklep internetowy przekreśla cenę tylko względem najniższej ceny z 30 dni (kasa przechowuje historię cen; cotygodniowe happy hours są uwzględniane)
UEEuropean Accessibility Act (od 28 czerwca 2025): dostępne sklepy internetowe (WCAG 2.1 AA)sklep internetowy działa z klawiaturą i czytnikiem ekranu (link "Przejdź do treści", widoczny fokus, etykiety) i ma deklarację dostępności (link w stopce)
HolandiaXML Auditfile Financieel (XAF): standard holenderskiej administracji podatkowej (Belastingdienst) do przekazywania (części) ksiąg; XAF 4.0 jest obowiązkowy od 2027eksport jako XAF 4.0 (Eksport do księgowości)
HolandiaWiarygodny system kasowy: przechowywanie danych kasy (wszystkich paragonów, korekt i zdarzeń) i możliwość przekazania ich w formie cyfrowej podczas kontroli; Belastingdienst zaleca do tego XML Auditfile Afrekensystemen (XAA)eksport jako XAA 3.2 (Raport → Obrót w okresie → Plik audytowy kasy), opcjonalnie podpisany certyfikatem dostawcy
BelgiaRejestracja obecności w zarejestrowanym systemie kasowym: rejestrowanie początku i końca czasu pracy pracowników w systemie kasowymRejestracja czasu pracy (Ustawienia → Lokal; Obowiązkowe = najpierw zarejestruj wejście) jest rejestrowana w czarnej skrzynce
BelgiaDimona: każde zatrudnienie (także flexi-jobs i studenci) zgłosić do RSZ przed jego rozpoczęciemrobi to Twój sekretariat socjalny lub narzędzie do planowania (np. Shyfter, Book'u, Plan-Me); HorecaPOS dostarcza przepracowane godziny i obrót (Ustawienia → Godziny pracy → Płace i grafik)
HolandiaEwidencja czasu pracy i odpoczynku (ustawa o czasie pracy, Arbeidstijdenwet)Rejestracja czasu pracy z przepracowanymi godzinami każdego pracownika, z możliwością korekty przez administratora (z dziennikiem zmian), oraz lista godzin dla programu płacowego
Holandia i BelgiaHACCP / bezpieczeństwo żywności: dokumentowanie temperatur (chłodzenie, zamrażarka, utrzymywanie na ciepło, obróbka cieplna, schładzanie, przyjęcie towaru) i sprzątania; NL Hygiënecode voor de Horeca (NVWA), BE autokontrola FAVV (przewodnik G-023)Rejestr HACCP w kasie (Ustawienia → Przepisy prawne, przycisk HACCP u góry): punkty pomiarowe z limitami, zadania sprzątania i kontroli, obowiązkowe działanie korygujące przy odchyleniu, bez możliwości zmiany, zestawienie pominiętych wpisów jako CSV lub wydruk (zob. Rejestr HACCP)
Holandia i BelgiaObowiązek przechowywania (NL 7 lat, BE 10 lat)paragony, raporty Z i dziennik zdarzeń są przechowywane w bazie danych i w kopiach zapasowych; dziennika zdarzeń nie można zmienić ani usunąć z poziomu kasy

Przepisy i regulacje

Ustawienia → Przepisy i regulacje (administrator; asystent VAT także z uprawnieniem Zarządzanie produktami). Domyślnie wszystko jest wyłączone; bez tych ustawień kasa działa jak zawsze.

Faktury (w Belgii obowiązkowe między firmami) opisano w części Faktury dla klientów firmowych. Do zrobienia: GKS 2.0, dopytać o stan certyfikacji (zob. docs/backlog-concurrenten.md).

Faktury dla klientów firmowych

Ustawienia → Faktury (administrator; domyślnie wyłączone): włącz Faktury dla klientów firmowych (UBL / Peppol). Gdy jest włączone, poniżej znajdziesz Płatność na fakturę, Dane na fakturze, Usługi Peppol, Połączenie z bankiem (z płatnością na fakturę) i listę wszystkich faktur. W Belgii e-fakturowanie między firmami jest obowiązkowe od 1-1-2026.

Kiosk samoobsługowy

Goście zamawiają sami na słupku lub tablecie, jak w fast foodzie, i płacą przy kasie albo kartą przy kiosku. Ekrany zamówień są częścią samej kasy, więc menu, ceny, opcje, zestawy, happy hours, pory dnia, zdjęcia, alergeny, języki i paragon pochodzą z kasy i nie trzeba ich nigdzie indziej ustawiać. Na kiosku działa aplikacja PinPortal Kiosk 2 (Android, także Sunmi, oraz Windows, Linux i macOS), która wyświetla stronę i drukuje paragon. Domyślnie wyłączone.

Włączanie i ustawianie (administrator): Ustawienia → Lokal → Ekrany i obsługa → Kiosk samoobsługowy.

Sam skaner ustawiasz w kiosku: w aplikacji PinPortal Kiosk 2 w zarządzaniu → Skaner kodów kreskowych (jako klawiatura, wbudowany skaner lub port COM), z testem skanera. Skaner działający jako klawiatura działa też bez aplikacji.

Dodawanie i łączenie kiosku

  1. W sekcji Kioski wpisz nazwę (np. Kiosk wejście) i wybierz Dodaj kiosk. Dostaniesz kod połączenia z 6 cyfr (ważny 30 minut).
  2. Wybierz przy kiosku, jak płaci gość: domyślnie przy kasie. Jeśli to kiosk z terminalem, wybierz kartą lub gość wybiera i wybierz terminal płatniczy tego kiosku (z Ustawienia → Płatności).
  3. Otwórz na kiosku stronę kiosku:
    • w lokalu: w aplikacji w zarządzaniu → Vast adres adres podany przy ustawieniu, np. http://192.168.1.20:3000/kiosk;
    • lub przez portal zarządzania (https, także gdy kiosk nie jest w tej samej sieci): połącz adres kiosku podany przy ustawieniu z kodem kiosku w aplikacji, tak jak w starym kiosku.
  4. Wpisz kod połączenia na kiosku. Gotowe: kiosk zapamiętuje swój klucz. Połącz ponownie daje nowy kod; Usuń rozłącza go.

Przy każdym kiosku widać, czy jest online.

Jak zamawia gość

  1. Ekran startowy z tekstem powitalnym; gość wybiera język (wszystkie języki kasy) i dotyka, aby zamówić.
  2. Na miejscu lub na wynos.
  3. Menu według grup produktów, ze zdjęciami, ceną (z happy hour), alergenami i tym, co wyprzedane. Produkty z wyborem lub zestaw otwierają okno wyboru.
  4. Koszyk: zmiana ilości i ewentualnie Coś jeszcze?.
  5. Zamów (płatność przy kasie): gość widzi swój numer odbioru duży na ekranie wraz z kwotą, dostaje kartkę i płaci przy kasie. W kasie zamówienie jest otwarte jako Kiosk Wejście · 42 (numer podany przez gościa); rozliczenie jak zawsze. Potem widnieje jako opłacone na ekranie wywoławczym i trafia do kuchni, jeśli miało to nastąpić dopiero po zapłacie.
  6. Zapłać kartą: kasa przesyła kwotę na terminal tego kiosku (to samo połączenie płatności co przy kasie). Jeśli się nie uda, gość może spróbować ponownie lub anulować (albo, jeśli może wybierać, jednak zapłacić przy kasie). Dopiero po udanej płatności zamówienie trafia do kuchni i zostaje rozliczone. Gość widzi swój numer odbioru duży na ekranie i dostaje paragon.
  7. Po kilku sekundach kiosk wraca do początku.

W razie awarii: powiadomienie i tryb awaryjny (w aplikacji kiosku, zarządzanie → Bij storing; domyślnie wyłączone). Gdy kiosk nie może połączyć się z kasą, pokazuje Even gesloten. Dwa dodatki:

W kasie zamówienie z kiosku jest zwykłym zamówieniem (na wynos lub na miejscu, o nazwie Kiosk Wejście) na pracownika Kiosk. Kasa tworzy go sama; nikt nie może się na niego zalogować. Nie ustawiaj go jako nieaktywnego, bo kiosk nie będzie mógł zamawiać. Zamówienia z kiosku są w raportach, w Paragonach i na ekranie wywoławczym. Zamówienie niedokończone w kiosku (niezamówione lub nieopłacone kartą) wygasa samo po 30 minutach.

Płatność kartą w trybie testowym (Ustawienia → Płatności)? Wtedy kiosk naprawdę nie pobiera płatności; przydatne do wypróbowania. Bez internetu płatność kartą nie jest możliwa; kiosk mówi wtedy, że można zamówić przy ladzie.

Awaria: jeśli kasa jest nieosiągalna, aplikacja kiosku pokazuje "Chwilowo nieczynne" i sama wznawia działanie. Jeśli kiosk działa przez portal zarządzania i zniknie internet, aplikacja może przełączyć się na kasę w sieci lokalnej (w aplikacji: zarządzanie → Rozszerzenia → W razie awarii użyj sieci lokalnej); kiosk sam przekazuje ten adres.

Wyłączanie: kiosk pokazuje, że jest chwilowo zamknięty. Kioski i ustawienia zostają zachowane. W dzienniku są włączenie/wyłączenie, ustawienia, dodane i usunięte kioski, łączenie oraz anulowane zamówienia.

Cyfrowa tablica menu

Menu z cenami na telewizorze (lub innym monitorze z przeglądarką), prosto z kasy. Domyślnie wył.; włączanie: Ustawienia → Lokal → Ekrany i obsługa → Cyfrowa tablica menu. Następnie otwórz na telewizorze http://<kassaserver>:3000/menubord (lub użyj przycisku Na osobnym ekranie / Na tablecie lub telefonie z kodem QR). Bez logowania i bez parowania.

Personel i kody PIN

Ustawienia → Personel (tylko administrator): dodawanie pracowników, zmiana nazwy, roli i PIN-u oraz dezaktywacja.

Logowanie kartą (opcjonalnie)

Domyślnie wyłączone. Włączenie: Ustawienia → Personel, pole Logowanie kartą (NFC, RFID lub iButton). Wymagane: czytnik kart USB działający jak klawiatura (do kart NFC lub RFID, breloków, opasek lub kluczy iButton). Taki czytnik "wpisuje" numer karty i naciska Enter; sterownik ani integracja nie są potrzebne.

Uprawnienia według roli

Ustawienia → Uprawnienia (tylko administrator): dla każdej roli zaznacz, co mogą obsługa i kierownik. Domyślnie wszystko jest dokładnie tak jak powyżej (tak jak kasa działała zawsze); pole różniące się od domyślnego jest kolorowe.

UprawnienieObsługaKierownik
Usuwanie pozycji po zamówieniu (storno)taktak
Udzielanie / usuwanie rabatunietak
Oznaczanie produktu jako „brak”taktak
Drukowanie kopii paragonutaktak
Zwrot (korekta)nietak
Rozliczanie na fakturę i przyjmowanie wpłat za faktury (tylko przy włączonej płatności na fakturę)nietak
Stan pośredni (raport X)taktak
Zamknięcie dnia (raport Z)nietak
Obrót w okresienietak
Zarządzanie szufladą kasowąnietak
Zarządzanie kartami podarunkowymi (tylko przy kartach podarunkowych z saldem)nietak
Czytanie opinii i odpowiadanie na nie (tylko przy włączonym zarządzaniu opiniami)nietak
Zarządzanie kartą lojalnościową (tylko przy włączonej karcie lojalnościowej)nietak
Przeglądanie dziennika zdarzeńnietak
Podgląd obrazu z kamer (tylko przy włączonym obrazie z kamer)nietak
Zarządzanie magazynem (tylko przy włączonym magazynie)nietak
Zarządzanie produktaminienie
Zarządzanie planami salnienie
Ustawienia lokalu, płatności i drukareknienie
Przeglądanie i edycja godzin pracynienie

Dane lokalu

Ustawienia - Lokal

Ustawienia → Lokal (tylko administrator): nazwa, adres, kod pocztowy, miejscowość, telefon i numer VAT placówki. Widnieją one na górze każdego paragonu i pro formy. Tu można też ustawić tekst na dole paragonu (może mieć kilka wierszy; puste = bez tekstu; domyślnie "Dziękujemy i do zobaczenia!"), a pod nim język paragonu (domyślnie niderlandzki; zob. Języki). Podgląd paragonu zmienia się na żywo. Po zapisaniu następny paragon od razu używa nowych danych. Kraju i danych fiskalnych (GKS) celowo nie można tu zmienić. W Belgii numer VAT jest obowiązkowy. Zaznaczenie Zaokrąglaj płatności gotówkowe do 5 centów (domyślnie wyłączone) powoduje zaokrąglanie sumy przy gotówce (€ 6,62 → € 6,60, € 6,63 → € 6,65); różnica widnieje na paragonie jako "Zaokrąglenie". Karta zawsze rozliczana jest co do grosza.

Zarządzanie produktami

Ustawienia - Produkty

Zaloguj się jako administrator i wybierz Ustawienia → Produkty.

Zdjęcia produktów

Każdy produkt może mieć zdjęcie.

Skaner kodów kreskowych

Skanerem kodów kreskowych przy kasie skanujesz produkty, kody rabatowe, karty lojalnościowe i karty podarunkowe. Włączysz go w Ustawienia → Skaner (karta obok drukarek i wagi; domyślnie wyłączony). Zaznacz, co robi skan na ekranie zamówień:

Kasa szuka najpierw wśród produktów, potem wśród kart lojalnościowych, kart podarunkowych i kodów rabatowych. Skanowanie działa na ekranie zamówień, gdy nie jesteś w polu wprowadzania. W polu wprowadzania kod po prostu trafia do tego pola.

Test skanera: w Ustawienia → Skaner przy każdym skanie widzisz kod i co kasa z nim robi, nawet gdy skaner jest jeszcze wyłączony. Jeśli nie działa:

W kiosku skaner ustawiasz osobno (Ustawienia → Lokal → Kiosk); zobacz Kiosk samoobsługowy.

Drukowanie etykiet

Etykiety produktów z nazwą, ceną i kodem kreskowym, na drukarce etykiet (Brother, Dymo, Zebra ...) zainstalowanej na komputerze lub tablecie. Włączasz w Ustawienia → Lokal → Drukuj etykiety (domyślnie wyłączone). Tam wybierasz też format etykiety (38 × 25, 57 × 32, 62 × 29 lub 100 × 50 mm) oraz czy mają się na niej znaleźć cena i kod kreskowy. Wydruk próbny drukuje jedną etykietę testową.

Konfiguracja wagi (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)

Osobna zakładka Ustawienia → Waga (uprawnienie Ustawienia lokalu, płatności i drukarek, domyślnie tylko administrator; zakładka jest zawsze widoczna, także gdy waga jest jeszcze wyłączona). Domyślnie wył.: wtedy kasa działa dokładnie jak dotychczas. Nie widzisz zakładki?

Automatyczne wyszukiwanie. Jeśli nic jeszcze nie skonfigurowano, kasa przy otwarciu tej sekcji sama rozpoczyna wyszukiwanie (przycisk Szukaj robi to ponownie):

Znaleziona = wpisana do formularza z przyciskiem Włącz i używaj: jedno dotknięcie i działa. (Wyszukiwanie wysyła W do każdego wolnego portu COM; zajęty port, np. przez terminal płatniczy, jest pomijany.)

Wszystkie wagi Aclas. Dla każdej wagi wybierasz model; kasa wie wtedy, jak można ją podłączyć. Są dwa rodzaje:

Jedna lista, dwa pola. Wszystkie wagi są na jednej liście. Dla każdej wagi zaznaczasz, co robi: Ważenie przy kasie (kasa pobiera wagę przy zamówieniu) i/lub Skanuj etykiety (waga drukuje etykietę z kodem kreskowym, którą kasa skanuje, i otrzymuje PLU z kasy). Waga PC lub AI, np. TS6X, potrafi oba; waga etykietująca LS tylko etykiety. Etykiety mogą pochodzić z jednej wagi na lokal.

ModelRodzajZłączaW kasie
OS6XWaga POSRS232, USB, Bluetoothpodłączona, kilka naraz
OS2XWaga POSRS232, USBpodłączona, kilka naraz
CS6X, CS3XWaga kasowaRS232, USB, Ethernet, wifipodłączona, kilka naraz
TS6X, TS3X, TS5EX, TS5NX, TS5GXWaga PC (Windows, Android, Linux)RS232, USB, Ethernet, wifina tym urządzeniu (1x), także jako waga etykietująca
iS6X, iS2X, iR6X, Ti6X, iL8XWaga AI z rozpoznawaniem produktów (Windows, Android, Linux)RS232, USB, Ethernet, wifina tym urządzeniu (1x), także jako waga etykietująca
iS5X, OiT2XWaga AI (tylko Linux)RS232, USB, Ethernetpodłączona lub jako waga etykietująca
LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NXWaga etykietującaRS232, Ethernet, wifiskanowanie etykiet i PLU
PS1CX, PS1DX, PS6CX, PS6DXWaga obliczeniowaRS232podłączona, kilka naraz
PS1BXWaga obliczeniowa bez złączabrakwaga ręcznie
LH15XWaga wisząca z drukarką etykietRS232, Ethernet, wifipodłączona lub jako waga etykietująca

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. Uwzględniono popularne modele tych marek, dla których wiadomo, jak kasa się z nimi komunikuje (do przetestowania = protokół nie jest dosłownie podany w żadnym źródle; kasa wybiera najbardziej oczywisty). Wszystkie podłączone (kilka naraz) albo jako waga etykietująca, której etykietę kasa skanuje:

MarkaModelRodzajPołączenieProtokół (fabryczny)W kasie
A&DEK-i (m.in. EK-610i), HV-WPWaga kasowa (tylko waga)RS232, EK-i także USBCiągłe (tryb stream), 2400 bodów, 7E1podłączona, kilka naraz
Adam EquipmentSwiftWaga obliczeniowaRS232, USB (opcja)Ciągłe (ciągle do PC), 9600 8N1 (do przetestowania)podłączona, kilka naraz
Avery BerkelFX110, FX120, FX131 (do zabudowy ze skanerem)Waga kasowaRS232, FX131 także USBMettler Toledo 82/7 = Toledo 8217 (kasa wysyła W), 9600 bodów, 7E1podłączona, kilka naraz
Avery BerkelFX125Waga obliczeniowaRS232Checkout-Dialog 06 (9600, 7O1)podłączona, kilka naraz
Avery BerkelXs, XTs, XTiWaga etykietującaEthernet, Wi-Fi, USBwłasne PLU na wadzeskanowanie etykiet
Avery Weigh-Tronix7820, 7829, ZP900Waga kasowaRS232, 7820 także USB, ZP900 także USB i EthernetNCI (kasa wysyła W), 9600 bodów, 7E1podłączona, kilka naraz
Balanzas MarquesBM1000P TOPWaga kasowa (tylko waga)RS232METTLER (kasa wysyła W, Toledo), 9600 bodów, 7E1podłączona, kilka naraz
Balanzas MarquesBM5 Junior Tower Label, BM500 ETQWaga etykietującaEthernet, USB, RS232, BM500 ETQ także wifiwłasne PLU na wadzeskanowanie etykiet
BaxtranTW, VW, XTA, XTA-PWaga obliczeniowaRS232Toledo (kasa wysyła W), 9600 bodów, 7E1podłączona, kilka naraz
BizerbaCS 300 (także do zabudowy)Waga kasowaRS232Checkout-Dialog 06 (9600, 7O1)podłączona, kilka naraz
BizerbaK-Class Flex, KH IIWaga etykietującaEthernetwłasne PLU na wadzeskanowanie etykiet
Brecknell6702U, 6710U, 6720UWaga kasowaRS232, USB (wirtualny port COM)NCI (kasa wysyła W), 9600 bodów, 7E1podłączona, kilka naraz
CASPD-II, PDN, PDI, PDS-BWaga kasowaRS232, PDN także USB i Bluetooth, PDI także USBECR type 2 = Toledo (kasa wysyła W), 9600 bodów, 7E1podłączona, kilka naraz
CASCL3000, CL5500, CL7200Waga etykietującaEthernet, USB, RS232, CL5500 i CL7200 także wifiwłasne PLU na wadzeskanowanie etykiet
DatalogicMagellan 9300i, 9400i, 9800i (skaner z wagą)Waga kasowaRS232 (osobny port wagi), USBMettler Toledo 8217 (kasa wysyła W), 9600 bodów, 7E1podłączona, kilka naraz
DibalKS-400, D-POS 400Waga kasowaRS232, D-POS 400 także USBCheckout-Dialog 06 (9600, 7O1)podłączona, kilka naraz
DibalG-325, PI-100Waga obliczeniowaRS232Checkout-Dialog 06 (9600, 7O1)podłączona, kilka naraz
DibalM-500 (Mistral), D-900, CS-2200Waga etykietującaEthernet, Wi-Fi, USBwłasne PLU na wadzeskanowanie etykiet
DIGIDS-781Waga obliczeniowaRS232DIGI Type B (kasa wysyła ENQ), 9600 8N1podłączona, kilka naraz
DIGISM-120, SM-6000Waga etykietującaEthernet, Wi-Fiwłasne PLU na wadzeskanowanie etykiet
Dini ArgeoDFW, DGT, 3590EWaga kasowa (tylko waga)RS232, USB, Ethernet, DFW i 3590E także wifiCiągłe (ST,GS, 0.512,kg), 9600 8N1podłączona, kilka naraz
Excell PrecisionTPE, AM4, FD4-P, FDP4-P, GE4, GEP4Waga obliczeniowaRS232Ciągłe (ST,GS,+0.876kg), 9600 8N1 (poza TPE do przetestowania)podłączona, kilka naraz
GramXFOC RS, XFOC+ RS, ZFOC RSWaga obliczeniowaRS232, USB (kabel od Gram)Gram (kasa wysyła ENQ, potem DC1), 9600 8N1 (XFOC do przetestowania)podłączona, kilka naraz
IshidaUni-3, Uni-5, Uni-7, Uni-9Waga etykietującaEthernet, Wi-Fi, USBwłasne PLU na wadzeskanowanie etykiet
Kern & SohnRPB, RFCWaga obliczeniowaRS232, USBCheckout-Dialog 06 (Prot = DLG-06, 9600, 7O1)podłączona, kilka naraz
Kern & SohnRFE (cena), IFB, EOCWaga obliczeniowa / kasowaRS232Ciągłe, 9600 8N1podłączona, kilka naraz
Mettler ToledoAriva-SWaga kasowaRS232, USB (wirtualny port COM)Toledo 8217 (kasa wysyła W), 9600 bodów, 7E1podłączona, kilka naraz
Mettler ToledoVivaWaga kasowaRS232Toledo 8217, 9600 bodów, 7E1podłączona, kilka naraz
Mettler ToledobPlus, UC EvoWaga etykietującaEthernet, Wi-Fiwłasne PLU na wadzeskanowanie etykiet
Minebea IntecSignum, Combics, Midrics, PuroWaga kasowa (tylko waga)RS232, USB, Signum i Combics także EthernetCiągłe (SBI, automatyczny wydruk), 9600 8N1podłączona, kilka naraz
OhausAviator 7000Waga obliczeniowaRS232 lub USBCheckout-Dialog 06 (9600, 7O1)podłączona, kilka naraz
OhausValor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000Waga kasowa (tylko waga)RS232, USB, EthernetCiągłe (Auto Print Continuous), 9600 8N1podłączona, kilka naraz
Precia MolenDP400Waga kasowaRS232, USBCheckout-Dialog 06 (9600, 7O1)podłączona, kilka naraz
Precia MolenDPOS CR, C 210 B, C 210 CWaga obliczeniowaRS232Checkout-Dialog 06 (9600, 7O1; C 210 do przetestowania)podłączona, kilka naraz
Precia MolenCorail 500Waga etykietującaEthernet, Wi-Fiwłasne PLU na wadzeskanowanie etykiet
PrecisaXB, XT, LS, LX (wagi precyzyjne)Waga kasowa (tylko waga)RS232, LS i LX także USBCiągłe (tryb wydruku CONTINUOUS), 9600 8N1podłączona, kilka naraz
Rice LakeBenchPro BP-S, BenchPro BP-RWaga kasowaRS232BP-S Toledo 8213, BP-R NCI (obie: kasa wysyła W), 9600 bodów, 7E1 (do przetestowania)podłączona, kilka naraz
RongtaRLS1000, RLS1100Waga etykietującaEthernet, RS232, wifiwłasne PLU na wadzeskanowanie etykiet
SartoriusEntris, QuintixWaga kasowa (tylko waga)RS232, USBCiągłe (SBI, automatyczny wydruk), 9600 8N1podłączona, kilka naraz
Star MicronicsmG-T12, mG-T30, mG-T60, mG-S8200Waga kasowa (tylko waga)RS232, USB (wirtualny port COM)Ciągłe, 9600 8N1 (do przetestowania)podłączona, kilka naraz
T-ScalePA10, PA15, PEA10Waga etykietującaEthernetwłasne PLU na wadzeskanowanie etykiet
UWEASEPWaga obliczeniowaRS232Ciągłe, 9600 8N1 (do przetestowania)podłączona, kilka naraz
WedderburnTSDS983Waga kasowaRS232DIGI Type B (kasa wysyła ENQ), 9600 8N1 (do przetestowania)podłączona, kilka naraz
WedderburnTSDS781T, TSDS782TWaga obliczeniowaRS232DIGI Type B, 9600 8N1 (do przetestowania)podłączona, kilka naraz
WedderburnTSSM120Waga etykietującaEthernet, RS232własne PLU na wadzeskanowanie etykiet
WintecScalePOS ACS-S60E (kasa z wbudowaną wagą)Waga kasowawewnętrzny COM6 (Windows) lub COM4 (Android)Ciągłe, 9600 8N1 (do przetestowania)podłączona
ZebraMP7000, MP72 (skaner z wagą)Waga kasowaRS232 (port AUX)SASI = Toledo (kasa wysyła W), 9600 bodów, 7E1 (do przetestowania)podłączona, kilka naraz

Ta sama lista jest w kasie w Ustawienia → Waga → Wszystkie wagi (ACLAS_MODELLEN w packages/shared/src/weegschaal.ts, z marką dla każdego modelu).

Jak najmniej do wpisania: po wybraniu modelu kasa ustawia resztę tak, jak marka fabrycznie: połączenie Port COM / USB na pierwszym wolnym porcie, 9600 bodów (A&D: 2400) i protokół marki (Toledo: Aclas z 8N1, a z 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; Ciągłe: A&D, Adam Equipment, Dini Argeo, Excell Precision, pozostałe Kern & Sohn, Minebea Intec, pozostałe Ohaus, Precisa, Sartorius, Star Micronics, UWE i Wintec) oraz nazwę (np. OS6X, OS6X 2). Waga PC lub AI staje się Na tym urządzeniu (np. TS6X (ingebouwd); na Linuksie na porcie wewnętrznym /dev/ttyS0). Jeśli coś się nie zgadza, Szukaj znajdzie właściwy port, prędkość i protokół.

Na tym urządzeniu (Aclas Scale Module): waga pokazuje legalizowaną wagę; kasa wysyła cenę za kg i tarę (jako tarę wstępną) i przejmuje kwotę obliczoną przez wagę, tak jak przy Dialog 06.

Oprogramowanie Aclas jest w zestawie z kasą: Scale Module dla Windows (aclas-module), AclasScaleDriver dla Androida (aclas-android) i Aclas Sync SDK dla Windows i Linuksa (aclas-sdk). Aclas pozwala nam je dołączać. Instalatory dla Windows i Linuksa zawierają je; nic nie trzeba osobno pobierać ani instalować.

Bluetooth (np. OS6X): najpierw sparuj wagę. Windows tworzy z niej port COM (Ustawienia Bluetooth → Więcej opcji Bluetooth → Porty COM), Linux /dev/rfcomm0: wpisz ten port. W aplikacji Android wpisujesz adres Bluetooth (00:11:22:AA:BB:CC); aplikacja raz prosi o zgodę na Urządzenia w pobliżu i łączy się przez Bluetooth SPP.

Wagi AI (rozpoznawanie produktów): kamera rozpoznaje produkt w oprogramowaniu Aclas na wadze. Ważenie działa przez Scale Module (na tym urządzeniu) lub port RS232; wagi etykietujące AI drukują po rozpoznaniu etykietę z kodem kreskowym, którą kasa skanuje (jak przy TS6X).

Aclas AI Recognition Plugin (waga AI z kasą na niej, np. iS6X z Windows): wtyczka Aclas rozpoznaje produkt i wpisuje jego kod kreskowy do kasy, tak jak skaner (z Enter na końcu); ekran zamówień dodaje produkt z wagą do zamówienia. Tak to ustawisz:

Aclas OS6X (waga POS przy kasie, RS232/USB; tak samo działają inne podłączone wagi):

Skanuj etykiety (pole przy wadze: Aclas TS6X, inna waga PC lub AI, seria LS lub LH15X; waga + drukarka etykiet, jedna na lokal):

Portal zarządzania: komunikat do portalu zawiera funkcję Waga (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) z wł./wył. i wagami według modelu (np. TS6X (op dit apparaat), 2x OS6X, PS1CX, Ariva-S, DS-781, LS6RX, 5 producten per kilo); bez adresów IP, portów COM i adresów Bluetooth.

Prawo legalizacyjne: waga, na której sprzedajesz, musi być legalizowana (klasa III, jak OS6X). Przy Toledo/ciągłym kasa liczy z wagą podaną przez wagę; przy Dialog 06 legalizowana waga sama oblicza cenę.

Kod: packages/shared/src/weegschaal.ts (protokoły, etykiety, plik PLU), apps/pos-server/src/lib/weegschaal.ts i routes/weegschaal.ts; ekrany WeegschaalInstellingen.tsx i WeegDialoog.tsx.

Thuisbezorgd.nl / Takeaway.com

Zamówienia z Thuisbezorgd.nl trafiają bezpośrednio do kasy, bez pośrednika (bez Deliverect, HubRise itp.): Just Eat Takeaway JET Connect komunikuje się z portalem zarządzania Pin Voordeel, a kasa pobiera stamtąd swoje wiadomości.

W Belgii platforma nazywa się Takeaway.com: ta sama firma (Just Eat Takeaway) i ta sama integracja. W belgijskim lokalu ekrany, powiadomienia, bon kuchenny i portal zarządzania wszędzie pokazują Takeaway.com zamiast Thuisbezorgd.nl. Poniżej Thuisbezorgd oznacza oba.

Dlaczego przez portal? Kasa potrzebuje tylko PORTAAL_URL i PORTAAL_SLEUTEL (zob. Portal zarządzania) i wysyła wyłącznie żądania wychodzące.

Konfiguracja (Ustawienia → Platformy dostaw → Thuisbezorgd.nl / Takeaway.com, uprawnienie Ustawienia lokalu, płatności i drukarek; wcześniej było to w Ustawienia → Lokal):

  1. Włącz Używaj Thuisbezorgd (działa od razu, niezależnie od Zapisz).
  2. Zgłoś do Thuisbezorgd. Lokal wybiera następnie w Thuisbezorgd (Partner Hub lub opiekun klienta) OptimumPOS / Pin Voordeel jako kasę. JET rozpoczyna wtedy sesję wdrożeniową; portal odnajduje zgłoszoną kasę (po kodzie pocztowym i nazwie, w przeciwnym razie Pin Voordeel łączy sesję ręcznie w portalu), wysyła konfigurację i prosi kasę o menu. Potem integracja zaczyna działać.
  3. Zaznacz produkty, które można zamawiać przez Thuisbezorgd (według grup lub pojedynczo), ewentualnie z opisem dla Thuisbezorgd. Menu (cena, opcje wyboru jako modyfikatory, alergeny, VAT) jest przesyłane automatycznie; PLU = id produktu/opcji. Po zmianie w katalogu kasa aktualizuje menu w ciągu 30 sekund; tylko "brak"/"znów dostępne" idzie przez API dostępności.
  4. Godziny otwarcia Thuisbezorgd: osobno dla dostawy i na wynos (np. 16:00-22:00, kilka bloków oddzielonych przecinkiem). Zapisuje się je przyciskiem Zapisz godziny otwarcia pod spodem i trafiają do Thuisbezorgd jako service times, gdy tylko integracja będzie gotowa.
  5. Tymczasowo zamknięte / Ponownie otwarte (w NL/BE najpóźniej następnego ranka o 07:00 znów otwarte).

Zamówienia. Zamówienie staje się zwykłym zamówieniem bez stolika (bezorgen lub afhalen, nazwa grupy TB <ordernummer>) z cenami zapłaconymi przez klienta, plus koszty dostawy/opłata serwisowa jako osobna pozycja i rabat Thuisbezorgd jako pozycja rabatowa; jeśli suma mimo to się nie zgadza, dodawana jest pozycja "Różnica Thuisbezorgd". Bon kuchenny trafia od razu do kuchni/baru (można wyłączyć). Kasa w ciągu kilku sekund potwierdza zamówienie portalowi, który zgłasza to do JET; jeśli nie uda się to w ciągu 3 minut lub kasa jest offline, JET otrzymuje "nieudane", a lokal wraca do Orderpada.

Przycisk Thuisbezorgd na górnym pasku (z liczbą bieżących zamówień): lista, klient i adres, czas przygotowania/dostawy oraz oś czasu (track & trace): przyjęte, kurier w drodze do lokalu, kurier w lokalu, w drodze do klienta, dostarczone (od JET), plus własne etapy (w przygotowaniu, gotowe, w drodze/dostarczone przy własnej dostawie, odebrane). Mapy na żywo z kurierem JET Connect nie udostępnia kasie; widzi ją klient w aplikacji Thuisbezorgd. Nowe zamówienie, anulowanie i "kurier w lokalu" wywołują pomarańczowy pasek i dźwięk. Zakończ (zapłacono online) rozlicza formą płatności online; jeśli klient płaci przy drzwiach, po prostu rozlicz. Anulowanie przez Thuisbezorgd unieważnia zamówienie i drukuje bon kuchenny "ANULOWANE".

Kod: apps/pos-server/src/lib/thuisbezorgd.ts, routes/thuisbezorgd.ts; ekrany ThuisbezorgdInstellingen.tsx i Thuisbezorgd.tsx. Po stronie portalu: horecapos-portaal/src/thuisbezorgd.mjs (zob. README portalu).

Licznik w portalu zarządzania. Liczba zamówień Thuisbezorgd na dzień jest przesyłana w zgłoszeniu do portalu zarządzania (verkoopTelling w lib/portaal.ts): przyjęte i nieanulowane, w dniu wpłynięcia. Zamówienie Thuisbezorgd rozliczone w kasie (także przez Zakończ (zapłacono online)) nie jest tam liczone ponownie jako na wynos/dostawa. Dane Thuisbezorgd są w bazie danych kasy, więc trafiają normalnie do kopii zapasowych kasy.

Sklep internetowy i zamówienia online

Każdy lokal może mieć własny sklep internetowy: stronę zamówień (i aplikację) we własnej identyfikacji wizualnej do zamówień na wynos, z dostawą, zamawiania przy stoliku przez kod QR i rezerwacji, z płatnością online (MultiSafepay lub Buckaroo) albo płatnością przy odbiorze/dostawie. Sklep internetowy to osobny projekt, horecapos-webshop (Node.js, zob. tamtejsze README), i działa na tym samym serwerze co portal zarządzania.

Włączanie i konfiguracja odbywa się w zarządzaniu sklepem: przycisk Zarządzaj sklepem w portalu klienta (właściciel) lub przy instalacji w portalu zarządzania (Pin Voordeel). Znajdziesz tam wł./wył., adres internetowy (<zaak>.<webshopdomein> lub własna domena), identyfikację wizualną (kolory, logo, zdjęcie nagłówka, czcionka), godziny otwarcia i przedziały czasowe dla zamówień na wynos i z dostawą, strefę dostawy (kody pocztowe, promień lub obszar na mapie, z kosztami i minimum), płatności, kody rabatowe, teksty, języki, kody QR dla stolików, rezerwacje i aplikację (do zainstalowania jako PWA; aplikacja na Androida przez Trusted Web Activity) oraz powiadomienia push (opcjonalne, domyślnie wyłączone): gość włącza powiadomienie na stronie swojego zamówienia i dostaje powiadomienie push, gdy zamówienie jest gotowe lub w drodze; chętni dostają też od czasu do czasu ofertę, którą lokal wysyła z zarządzania sklepem (karta Powiadomienia push). Działa na Androidzie i komputerach (Chrome, Edge, Firefox, Samsung Internet), w aplikacji na Androida oraz na iPhonie i iPadzie (iOS 16.4 lub nowszy), jeśli gość doda sklep do ekranu początkowego. Nie są wysyłane SMS-y ani e-maile i nie jest zapisywane żadne imię ani numer. Szczegóły w README sklepu internetowego.

Menu. Kasa wysyła menu automatycznie: wszystkie aktywne produkty (nie na wagę), według grup produktów, z ceną, opcjami wyboru, alergenami, wyprzedaniem i zdjęciem produktu, a także stoliki i dane lokalu oraz informację, które kanały marketingowe są włączone (dla pola "otrzymywać oferty" przy płatności, zob. Marketing SMS i e-mail). Dzieje się to przy uruchomieniu, gdy tylko sklep zostanie włączony, w ciągu 30 sekund od zmiany w katalogu i w ciągu kilku sekund od zmiany w Ustawienia → Lokal, np. marketingu lub karty lojalnościowej (albo przyciskiem Wyślij menu teraz). Produkt można wyłączyć ze sklepu w zarządzaniu sklepem (ukryj) lub w bazie danych przez artikel.webshop = false.

Zamówienia. Na wynos i dostawa stają się zwykłym zamówieniem bez stolika (nazwa grupy WEB <bestelnummer>) z cenami, które widział gość, plus koszt dostawy i koszty transakcji jako osobne pozycje oraz kod rabatowy jako pozycja rabatowa; jeśli suma mimo to się nie zgadza, dodawana jest pozycja "Różnica sklep internetowy". Napiwek gościa nie liczy się jako obrót: trafia do płatności jako napiwek przy Zakończ (zapłacono online). Zamówienie przy stoliku (kod QR) trafia na otwarty rachunek tego stolika (zapłacone online: jako osobna grupa przy tym stoliku). Bon kuchenny od razu idzie do kuchni/baru (można to wyłączyć w oknie Sklep internetowy). Kasa w ciągu kilku sekund potwierdza numerem paragonu; gość otrzymuje wtedy "przyjęte" i e-mail. Jeśli kasa jest offline, sklep nie przyjmuje zamówień (gość od razu to widzi) i wysyła e-mail do lokalu, gdy zamówienie czeka zbyt długo. Rezerwacje ze sklepu trafiają do Rezerwacje (tylko jeśli rezerwacje są włączone w kasie). Jeśli ustawiono maksimum na przedział (Dostawa i przedziały czasowe), liczą się w nim też zamówienia ze sklepu z godziną w tym przedziale.

Belgia (czarna skrzynka). Zamówienie ze sklepu internetowego trafia od razu jako zamówienie (signOrder) do czarnej skrzynki, przed bonem roboczym, tak jak Zamów przy kasie. Jeśli to się nie uda, nie trafia do kasy, a sklep internetowy wysyła je później ponownie. To, czego jeszcze nie przetestowano z czarną skrzynką, jest wyłączone w menu sklepu internetowego (bony podarunkowe, kody rabatowe, na fakturę, na pokój, zestawy, opcje z dopłatą, happy hour i napiwek) i zostaje odrzucone, jeśli stary sklep internetowy mimo to je wyśle. Zakończ sprawdza napiwek, płatność na fakturę i na pokój tak jak kasa.

Na pokój (integracja hotelowa, Ustawienia → Hotel → Samoobsługa → W sklepie internetowym): menu otrzymuje kamer: { maxBedrag }; sklep internetowy wysyła betaling.wijze = "kamer" z kamer i achternaam. Kasa sprawdza gościa w oprogramowaniu hotelowym (nie przy stoliku, nie z bonem podarunkowym) i zapisuje go przy zamówieniu; Zakończ (na pokój) rozlicza na pokój i księguje paragon na rachunek hotelowy. Faktura zbiorcza przy płatności na fakturę: paragon pozostaje wtedy jako otwarta pozycja.

Przycisk Sklep internetowy na górnym pasku (z liczbą bieżących zamówień): lista, klient i adres, żądana godzina lub "jak najszybciej", sposób płatności i oś czasu. Etapy W przygotowaniu, Gotowe i W drodze gość widzi na żywo w sklepie (i e-mailem, jeśli lokal tego chce). Rozliczone w kasie = Zakończone; Anuluj anuluje tylko pozycje tego zamówienia ze sklepu, drukuje bon kuchenny "ANULOWANE", a zamówienie zapłacone online sklep zwraca. Przybycie, niestawienie się lub anulowanie rezerwacji również wraca do sklepu. Nowe zamówienie lub rezerwacja pokazuje pomarańczowy pasek i odtwarza dźwięk.

Kod: apps/pos-server/src/lib/webshop.ts, routes/webshop.ts; ekran Webshop.tsx. Po stronie portalu: horecapos-portaal/src/webshop.mjs.

Kasa i sklep internetowy zgodne (każdą część włącza się osobno, domyślnie wyłączone; starszy sklep internetowy ignoruje nowe pola). To, co jest włączone w kasie, działa też w sklepie internetowym:

Menu sklepu internetowego ma do tego versie: 2 z polami menuArtikelen, allergenenAan, happyhours, menus, klantenkaart, cadeaubon, kortingscodes, pauze, drukteMin, volgt, bezetting, reserveren.online, ayce, opRekening, wachtlijst i upsell. Potwierdzenie dla portalu zawiera ponadto cadeaubonnen (kody), klant (punkty) i plek (lista oczekujących).

Licznik w portalu zarządzania. Na wynos i dostawa przez sklep internetowy są liczone osobno (webshop, webshopGeannuleerd w verkoopTelling), w dniu wpłynięcia, i nie są liczone ponownie jako na wynos/dostawa. Zamówienia przy stoliku liczą się normalnie jako stolik.

Płatności kartą i terminale płatnicze

Ustawienia → Płatności (tylko administrator):

Jeśli jest co najmniej jeden terminal z kluczem API (lub włączony tryb testowy), Rozliczenie → Karta / Bancontact automatycznie rozpoczyna płatność na terminalu na kwotę obliczoną przez serwer.

Dopóki integracja jest włączona, serwer akceptuje "kartę" tylko z udaną płatnością terminalową dokładnie dla tego zamówienia i tej kwoty. Żądania są wysyłane, tak jak w oficjalnym PHP-SDK, jako zwykły formularz, z zapasowym API (api-backup.pinvandaag.com), gdy główne API nie odpowiada. Każda odpowiedź API widnieje z [pin] w oknie serwera, co pomaga przy awariach. Udana płatność, która nie została jeszcze przetworzona (np. awaria tabletu), zostanie odnaleziona przy następnym rozliczeniu tego zamówienia.

Napiwek (karta, gotówka i karta podarunkowa)

Na ekranie rozliczenia przy każdej formie płatności jest rząd przycisków napiwku: Brak, 5%, 10%, 15% (zaokrąglone w górę do 10 centów), Zaokrąglenie (do następnego pełnego euro) i Inna kwota. Przy karcie klient płaci kwotę + napiwek za jednym razem na terminalu; przy gotówce napiwek jest uwzględniany w reszcie i w szufladzie kasowej. Na paragonie widnieje kwota zapłacona kartą z "w tym napiwek" pod spodem; SUMA i VAT pozostają bez zmian, bo napiwek nie jest obrotem. W raporcie X/Z napiwki są podane według formy płatności oraz jako "Napiwki łącznie".

Administrator ustawia przyciski napiwku w Ustawienia → Lokal → Napiwek: wł./wył., jakie procenty (najwyżej 4, np. "5, 10, 15"), czy dostępny jest przycisk "Zaokrąglenie" i przy których formach płatności (karta, gotówka, karta podarunkowa) można dać napiwek. "Brak" i "Inna kwota" są zawsze dostępne.

"Niech będzie …" jest zawsze dostępne, przy każdej formie płatności, także gdy przyciski napiwku są wyłączone (bez ustawień): klient sam zaokrągla rachunek w górę, a różnica jest napiwkiem. Są przyciski z następnym pełnym euro i kolejnymi okrągłymi kwotami (np. € 28,00 → 29, 30, 40; € 44,00 → 45, 50, 60) oraz Inna suma, by samemu wpisać sumę. Ponowne dotknięcie wybranego przycisku = bez zaokrąglenia. Najwyżej € 500 napiwku (ten sam limit co serwer kasy).

Brak internetu

Kasa działa w sieci lokalnej i nie potrzebuje internetu; potrzebuje go tylko płatność kartą przez integrację. Jeśli lokal nie ma internetu, na górnym pasku widnieje Brak internetu · karta ręcznie (sprawdzane co minutę). Na ekranie rozliczenia pojawia się wtedy, a także po nieudanym uruchomieniu płatności na terminalu, przycisk Już zapłacono na terminalu: wprowadź kwotę na samym terminalu i w ten sposób ją zarejestruj.

Plany sal i stoliki

Edytor planu sali

Ustawienia → Plany sal (tylko administrator):

Przeniesienie konfiguracji do drugiego lokalu

Ustawienia - Import/eksport

Ustawienia → Import/eksport (tylko administrator). Jeśli masz w pełni skonfigurowany jeden lokal, wyeksportuj konfigurację do pliku .json i zaimportuj go w kasie drugiego lokalu. Do wyboru dla każdej części:

Nigdy nie są przenoszone: nazwa, adres, kod pocztowy, miejscowość, telefon, e-mail, numer VAT i tekst na dole paragonu lokalu, adres e-mail do raportu Z, terminale płatnicze i ich klucze, personel i kody PIN oraz cały obrót, paragony, klienci i stany magazynowe.

Import jest mocno zabezpieczony: duże czerwone ostrzeżenie, pole "Rozumiem...", ponowne wpisanie własnego PIN-u administratora, brak otwartych zamówień, ten sam kraj (stawki VAT) i wcześniej automatyczna kopia zapasowa. Import odbywa się w jednej transakcji: jeśli coś pójdzie nie tak, nic się nie zmienia. Istniejące produkty, grupy, składniki i stoliki nie są kasowane, lecz usuwane z kasy (jak przy Usuwaniu), dzięki czemu stare paragony i raporty nadal się zgadzają.

Import z innej kasy

Przejście bez przepisywania wszystkiego. Zawsze dostępne (bez przełącznika): w Ustawienia → Import/eksport (tylko administrator) znajduje się sekcja Import z innej kasy.

Języki (42, m.in. turecki, arabski, darija, berberyjski, polski, bułgarski, węgierski, rosyjski, serbski, albański, perski, tigrinia, amharski, somalijski, papiamento, sranan tongo, hindi, urdu, indonezyjski, wietnamski, syryjsko-aramejski, chiński i ukraiński)

Obok przycisku © w prawym dolnym rogu na każdym ekranie jest przycisk z językiem (np. NL i flaga). Dotknij go, aby otworzyć menu wyboru: języki są ułożone alfabetycznie, z nazwą we własnym języku przed flagą: Bahasa Indonesia (indonezyjski), Čeština (czeski), Darija (arabski marokański w piśmie łacińskim), Deutsch, English, Español, Français, Hrvatski (chorwacki), Italiano, Kurdî (Kurmancî), Latviešu (łotewski), Lietuvių (litewski), Magyar (węgierski), Nederlands, Papiamentu (papiamento), Polski, Português, Română, Shqip (albański), Slovenčina (słowacki), Soomaali (somalijski), Sranantongo, Srpski (serbski, w piśmie łacińskim), Tarifit (berberyjski rifeński), Tiếng Việt (wietnamski), Türkçe, dalej w cyrylicy Български (bułgarski), Русский (rosyjski) i Українська (ukraiński), następnie języki w piśmie arabskim: اردو (urdu), الدارجة (darija), العربية (arabski), دری (dari), فارسی (perski, farsi), پښتو (paszto) i کوردی (سۆرانی) (kurdyjski sorani), potem w piśmie syryjskim ܣܘܪܝܝܐ (syryjsko-aramejski, Suryoyo), w dewanagari हिन्दी (hindi), w piśmie ge'ez ትግርኛ (tigrinia) i አማርኛ (amharski), w piśmie tifinagh ⵜⴰⵎⴰⵣⵉⵖⵜ (tamazight, berberyjski), a na końcu 中文(简体)(chiński, pismo uproszczone). Wszystkie ekrany, przyciski, komunikaty i komunikaty o błędach serwera kasy są tłumaczone.

Dla programistów: każdy widoczny tekst jest w kodzie jako vt('Nederlandse tekst') (apps/pos-web/lib/i18n.ts); tekst niderlandzki jest kluczem. Tłumaczenia znajdują się w apps/pos-web/lib/vertalingen/<taal>.ts. Jeśli brakuje tłumaczenia, kasa pokazuje tekst niderlandzki; test i18n (pos-web) sprawdza, czy każdy tekst jest przetłumaczony na każdy język i czy miejsca {0} się zgadzają. Komunikaty serwera kasy pozostają po niderlandzku i są tłumaczone w przeglądarce (także z {0}, np. nazwą produktu w komunikacie).

Konfiguracja drukarek

Nowa kasa nie ma żadnych drukarek. Zaloguj się jako administrator (demo: 1111) i wybierz Ustawienia na górnym pasku.

Takie same produkty są przy drukowaniu łączone: dwa razy 1x Cola daje 2x Cola, na bonie kuchennym i na paragonie. Łączone są tylko produkty z tymi samymi opcjami i uwagą.

Instalator dla Linuksa dodaje użytkownika kasy do grup lp i dialout, aby kasa mogła korzystać z drukarek USB i szeregowych.

Potrzebujesz pomocy?

Optimum POS · 085 560 00 60 · support@optimumpos.nl · pon.–pt. 9:00–20:00, sob.–niedz. 14:00–20:00