Panduan HorecaPOS
Panduan ini terdiri dari tiga bagian: pertama untuk karyawan (pelayan), lalu untuk manajer, dan terakhir untuk administrator. Setiap bagian melanjutkan bagian sebelumnya: manajer bisa melakukan semua yang bisa dilakukan pelayan, dan administrator bisa melakukan semuanya.
Apa saja yang boleh dilakukan peran Anda diatur oleh administrator di Pengaturan → Hak akses. Jika Anda tidak melihat suatu tombol, berarti peran Anda (belum) punya hak untuk itu.
Panduan ini juga ada di kasir: ketuk tombol © di kanan bawah setiap layar lalu pilih Panduan, atau buka http://<kassa-pc>:3000/handleiding. Lihat juga pendahuluan dan dokumentasi API.
Bagian 1 · Karyawan
Mulai
Masuk. Buka kasir di perangkat kasir, tablet, atau ponsel dan masukkan PIN Anda (4 sampai 8 digit). Setelah itu Anda melihat denah meja.
Membuka meja. Ketuk sebuah meja. Meja kosong mendapat pesanan baru; di meja terisi Anda melanjutkan pesanan yang sudah ada. Di bagian atas Anda berpindah antar-ruangan (misalnya Ruang makan dan Teras). Untuk konter gunakan Penjualan cepat, untuk pesanan bawa pulang Bawa pulang.
Memesan. Pilih kategori produk dan ketuk produknya. Produk muncul di struk sebelah kiri. Jika perlu, pilih dulu tahap sajian (1 = langsung, 2 dan 3 menunggu sampai Anda memanggilnya). Ketuk Pesan: tiket dapur dikirim ke dapur dan bar. Selama Anda belum mengetuk Pesan, baris masih bisa dihapus begitu saja.
Pembayaran. Ketuk Bayar, pilih Kartu / Bancontact, Tunai, atau Voucher hadiah, tambahkan tip jika ada, lalu konfirmasi. Untuk pembayaran kartu, transaksi otomatis dimulai di mesin EDC. Struk dicetak; Anda juga bisa mengirimnya via email.
Keluar. Keluar setelah selesai, supaya tidak ada orang lain yang bekerja atas nama Anda. Setelah 8 jam Anda otomatis dikeluarkan.
Tidak ada internet? Kasir tetap bekerja. Jika di atas tertulis Tidak ada internet · kartu manual, masukkan jumlahnya langsung di mesin EDC lalu pilih Sudah dibayar di terminal di layar pembayaran.
Beberapa grup di satu meja
Satu meja bisa ditempati beberapa grup, masing-masing dengan tagihan dan struk sendiri.
- Ketuk sebuah meja: kosong = pesanan baru; satu grup = langsung grup itu; beberapa grup = pilih dulu, atau + Grup baru (nama boleh kosong).
- Di layar pesanan, di bagian atas ada bilah grup: berpindah antar-grup, + Grup, Nama grup (mis. "Jansen"), dan Pisah / pindahkan.
- Pisah / pindahkan: pilih per baris berapa yang ikut dipindah (pada 3× Pils mis. 1) dan ke grup mana, atau buat grup baru. Dengan begitu Anda memindahkan sesuatu yang masuk ke tagihan yang salah, atau membagi belakangan "masing-masing bayar bagiannya sendiri". Jika sebuah grup kosong, grup itu otomatis hilang.
- Beberapa bagian sekaligus: dengan + Satu bagian lagi Anda menyiapkan satu bagian lalu memilih bagian berikutnya (mis. ikan dan Dry Martini ke meja 2, sisanya ke meja 35). Satu bagian juga bisa ke + Meja lain (di sana sebagai grup baru). Dengan Pindahkan semuanya pindah sekaligus. ½ membagi satu baris menjadi dua, juga setengah botol (0,667 menjadi 2 × 0,3335).
- Gabungkan: semua dari satu atau beberapa meja lain (atau grup di meja ini) ke tagihan ini, sekaligus.
- Belgia: membagi atau menggabungkan sekaligus adalah satu pergantian meja di kotak hitam, sesuai ketentuan FOD Keuangan (UC242, UC251, UC252, UC4119bis). Jika setelah memesan ada yang dicoret atau diberi diskon pada baris yang sudah dipesan, itu ikut pesan berikutnya dari meja tersebut (pesanan, tagihan sementara, pergantian meja), jika tidak, ikut penjualan: baris lama negatif dan baris baru positif (UC226, UC4102, UC4104, UC4107, UC4110).
- Di layar meja, bulatan oranye menunjukkan jumlah grup; jumlah uangnya adalah total semua grup.
- Struk kasir dan tiket dapur menampilkan "Meja 5 - grup 2" atau "Meja 5 - Jansen".
Pisah tagihan saat membayar
Pembayaran berjalan seperti biasa: Semua sekaligus. Di layar pembayaran, tagihan sekarang juga bisa dipisah, dengan tombol di bawah Kembali dan Bayar (jadi keduanya selalu terlihat, tanpa menggeser):
- Bagi rata: pilih dengan − dan + untuk berapa orang (default jumlah tamu, atau 2 jika kasir tidak mencatat jumlah orang). Layar menampilkan jumlah per orang; setiap orang membayar bagiannya dengan kartu, tunai, atau kartu hadiah (dengan tip jika mau). Setelah setiap bagian, hitungan berkurang ("masih 3 orang"); orang terakhir membayar tepat sisanya.
- Jumlah sendiri: seseorang membayar jumlah tetap (mis. € 20); sisanya tetap terbuka.
- Per produk…: membuka Pisah / pindahkan untuk memindahkan produk ke tagihan terpisah dan membayarnya terpisah (seperti di atas).
Pembayaran sebagian hanya mencatat pembayarannya; tagihan tetap terbuka dan di layar pesanan tertulis "sudah dibayar … · masih terbuka …". Struk (dengan semua pembayaran) muncul pada pembayaran terakhir, sama seperti pembayaran biasa. Pembayaran kartu lewat integrasi berlaku tepat untuk jumlah sebagian itu. Jika sudah ada pembayaran sebagian, baris tidak bisa lagi dipindah ke grup lain dan diskon tidak bisa ditambahkan; menghapus hanya bisa jika sisa yang terbuka cukup. Setiap pembayaran sebagian tercatat di log.
Penjualan cepat dan bawa pulang (tanpa meja)
Di kanan atas layar meja ada Penjualan cepat dan Bawa pulang. Keduanya langsung membuka pesanan tanpa meja. Penjualan cepat adalah penjualan di konter (PPN makan di tempat); Bawa pulang memakai tarif PPN bawa pulang untuk setiap produk. Dengan "Nama pelanggan" Anda menambahkan nama; nama itu muncul di struk ("Bawa pulang – Jansen") dan di bagian atas tiket dapur. Pesanan terbuka tanpa meja ada di bawah tombol ruangan ("Tanpa meja: Bawa pulang #12 – Jansen"), sehingga mudah ditemukan lagi. Jika Anda kembali tanpa menjual apa pun, pesanan kosong itu otomatis hilang.
Kedua tombol bisa diaktifkan atau dimatikan per usaha di Pengaturan → Usaha, tepat di bawah tema terang/gelap (standarnya aktif). Mati = tombol disembunyikan; pesanan tanpa meja yang sudah terbuka tetap terlihat.
Antar dan slot waktu
Pesanan yang Anda terima sendiri di kasir, misalnya lewat telepon atau di konter, dengan aturan yang sama seperti toko online: area antar dan jumlah maksimum pesanan per slot waktu. Aktifkan di Pengaturan → Usaha → Antar dan slot waktu, tepat di bawah tombol Penjualan cepat dan Bawa pulang (standarnya nonaktif).
- Tombol Antar di layar meja (di samping Bawa pulang): isi nama, telepon, dan alamat (dengan Isi alamat cepat aktif: cari dengan kode pos dan nomor rumah). Kasir mencari area antar dan menampilkan ongkos kirim, minimum, dan "gratis mulai". Jika alamat di luar area, pesanan tidak bisa diantar.
- Area antar: berdasarkan kode pos (rentang dan kode pos tunggal, mis.
5000-5049, 5051, 5052 AB), dalam radius km dari usaha (garis lurus), atau area di peta yang digambar sendiri. Radius dan area hanya berfungsi dengan alamat Belanda (lokasi lewat PDOK). Per area: ongkos kirim, minimum, gratis mulai, dan menit tambahan; area pertama dari atas yang cocok yang berlaku, jadi jenisnya bisa digabung (mis. dulu beberapa kode pos, lalu sebuah area, lalu radius untuk sisanya). Tidak ada area = antar ke mana saja, tanpa biaya atau minimum. Area toko online diatur terpisah (pengelolaan toko online). - Area di peta: pada area antar pilih jenis Area di peta lalu Gambar di peta. Klik di peta untuk menaruh titik (minimal 3); seret titik untuk memindahkannya, klik titik untuk menghapusnya, dan seret bulatan di tengah sisi untuk menambah titik di antaranya. Peta juga menampilkan area radius dan lokasi usaha. Ubin peta berasal dari OpenStreetMap, jadi peta memerlukan internet; pengantarannya sendiri tidak (kecuali untuk mencari alamat). Jika alamat tidak dapat dicari, kasir memberi tahu hal itu alih-alih "di luar area antar".
- Ongkos kirim muncul sebagai baris "Bezorgkosten" di pesanan dan dihitung ulang setiap ada perubahan (gratis mulai, tanpa produk = tanpa biaya), selama belum ada yang dibayar. Di bawah minimum pesanan tidak bisa dibayar; layar pesanan menunjukkan berapa yang masih kurang, dengan tombol Tetap bawa pulang (ongkos kirim dan minimum dihapus).
- Waktu: Secepatnya (sekarang + waktu antar, ditambah menit tambahan area) atau slot waktu hari ini. Jika ada jam buka di Thuisbezorgd, jam itu juga berlaku di sini.
- Maksimum per slot waktu (0 = tanpa maksimum; slot waktu 5 sampai 60 menit): untuk Bawa pulang dan Antar bersama-sama; pesanan toko online di kasir juga ikut dihitung. Jika ada maksimum, Bawa pulang juga meminta waktu dan slot waktu yang penuh tidak bisa dipilih. Dua kasir bersamaan mengambil tempat terakhir: hanya satu yang mendapatkannya.
- Di tiket kerja tercetak alamat, nama, telepon, dan waktu; di "Tanpa meja" dan di bagian atas tiket kerja mis. "Bezorgen – 18:30 Jansen".
Tambahan (semuanya standarnya nonaktif; tanpa pengaturan ini semuanya berfungsi persis seperti di atas):
- Jam buka sendiri untuk bawa pulang dan antar (per hari, mis.
16:00-21:00atau11:30-14:00, 17:00-22:00; lewat tengah malam boleh:17:00-01:00; kosong = hari itu tutup). Nonaktif = seperti sebelumnya (jam di Thuisbezorgd, jika ada, jika tidak sepanjang hari). - Hari tutup (mis.
25-12-2026, 26-12-2026): tidak ada bawa pulang atau antar. - Pesan di muka: 0 (hanya hari ini, seperti sebelumnya) sampai 14 hari. Di jendela Antar/Bawa pulang Anda lalu memilih hari dulu; hari berikutnya tercetak di tiket dapur sebelum waktunya.
- Sibuk: tambahan sekian menit untuk "secepatnya" (kasir dan toko online). Bisa juga diatur cepat dengan tombol Toko online di bilah atas.
- Alamat Belgia (kode pos 4 angka): untuk radius atau area di peta, kasir mencari lokasinya lewat OpenStreetMap (Nominatim; jalan dan kota diperlukan).
- Toko online mengikuti kasir: kasir yang menentukan. Toko online lalu memakai area antar, waktu antar dan ambil, slot waktu, maksimum per slot waktu, jam buka (jika diatur di sini), hari tutup, dan hari ke depan dari kasir, serta menghitung pesanan yang diterima di kasir dalam slot waktu. Nonaktif = toko online memakai pengaturannya sendiri (pengelolaan toko online), seperti sebelumnya. Bawa pulang/antar aktif atau nonaktif tetap diatur oleh toko online.
Kode: lib/bezorgen.ts, routes/bezorgen.ts, BezorgDialoog.tsx, BezorgInstellingen.tsx, BezorgKaart.tsx dan lib/kaart.ts (peta, tanpa paket tambahan; kode yang sama ada sebagai public/kaart.js di toko online).
Telepon: kenali pelanggan pada pesanan lewat telepon
Pengaturan → Telepon (standarnya nonaktif; menonaktifkannya tetap menyimpan semuanya). Dua sakelar terpisah:
- Cari pelanggan berdasarkan nomor telepon saat antar dan bawa pulang: ketik nomor di layar pengantaran, lalu kasir menampilkan pelanggan beserta alamat dan pesanan sebelumnya; Ambil data mengisi nama, email, dan alamat. Juga bekerja tanpa PBX.
- Identifikasi penelepon: saat pelanggan menelepon, PBX (atau pesawat telepon, FRITZ!Box, modem, atau ponsel Android) melaporkan nomornya. Di layar muncul notifikasi siapa yang menelepon: nama, alamat, pesanan terakhir (dengan hidangan dan jumlahnya, juga dari toko online, Thuisbezorgd, dan platform pengantaran), total, dan reservasi. Dengan Terima pesanan antar atau Terima pesanan bawa pulang layar pengantaran terbuka dengan semuanya sudah terisi (dengan Antar dan slot waktu aktif); pesanan dikaitkan ke panggilan dan notifikasi hilang di semua layar. Tombol 📞 di bilah atas: panggilan 24 jam terakhir. Bisa dinonaktifkan per layar (Tampilkan notifikasi di layar ini).
Pencarian dilakukan di kartu pelanggan, pesanan antar dan bawa pulang di kasir, toko online, Thuisbezorgd, platform pengantaran, dan reservasi. Nomor diseragamkan (+31 6 1234 5678, 0031612345678 dan 06-12345678 sama; juga nomor Belgia).
Cara nomor masuk (beberapa sekaligus bisa; panggilan yang sama dihitung sekali):
| Sumber | Untuk | Pengaturan |
|---|---|---|
| Webhook / action URL | 3CX (integrasi CRM), Aircall, Voys / VoIPGRID, Yeastar seri P, pesawat telepon dengan action URL untuk panggilan masuk (Fanvil, Grandstream, Mitel 6800/6900, Snom, Yealink: bekerja dengan PBX dan penyedia apa pun), layanan integrasi (Zapier, Make, n8n, Power Automate) | alamat dari Pengaturan → Telepon (/api/telefonie/oproep?sleutel=...&nummer=...), GET atau POST, JSON, formulir, atau query; juga lewat portal: https://<portaal>/telefonie/<kassa-id>/oproep?sleutel=... |
| Asterisk (AMI) | Asterisk, FreePBX, Issabel, VitalPBX, Grandstream UCM | alamat, port (5038; Grandstream UCM 7777), pengguna AMI dan kata sandi (hak call) |
| FRITZ!Box | FRITZ!Box dengan telepon | alamat (fritz.box) dan port 1012; aktifkan callmonitor sekali dengan #96*5* |
| Modem USB caller ID | saluran tetap analog dengan tampilan nomor | port serial (COM3, /dev/ttyACM0), baud, dan perintah inisialisasi (bawaan AT+VCID=1) |
| Ponsel Android | telepon bawaan ponsel Android milik usaha | aplikasi HorecaPOS di ponsel itu, Pengaturan → Telepon → Pasangkan telepon ini (Android 10+: pilih aplikasi ini sebagai aplikasi identifikasi penelepon) |
Respons berisi penelepon, juga sebagai contact (firstname, lastname, phone, email, address) untuk templat CRM 3CX. Panggilan keluar dan internal tidak ditampilkan; Hanya saluran ini membatasi ke saluran atau pesawat telepon tertentu. Panggilan dihapus setelah masa simpan (bawaan 30 hari, GDPR). Panggilan uji mensimulasikan panggilan dari sebuah nomor.
Kode: apps/pos-server/src/lib/telefonie.ts, routes/telefonie.ts, packages/shared/src/telefonie.ts; layar Telefonie.tsx, BezorgDialoog.tsx; Android android-app/native/java/Beller*.java. Log: Telepon.
Kurir sendiri: rit, setoran kas, dan track & trace
Untuk usaha dengan kurir sendiri. Aktifkan di Pengaturan → Usaha → Antar → Kurir sendiri (standar nonaktif). Kurir tidak memerlukan aplikasi: kurir menggunakan halaman di browser ponselnya sendiri (yang mau, bisa memakai aplikasi Optimum Bezorger: lihat Aplikasi kurir di bawah).
Membuat rit. Di kasir ada tombol Rit (dengan jumlah pengantaran yang masih harus berangkat ditambah rit yang sedang dalam perjalanan).
- Di Siap diantar, centang pesanan yang ikut. Ini adalah pesanan antar dari kasir, toko online, dan Thuisbezorgd (hanya antar sendiri; yang diantar kurir Thuisbezorgd tidak).
- Pilih kurir (seorang staf) dan uang kembalian yang dibawa (standar jumlah dari pengaturan), lalu ketuk Buat rit.
- Muncul kode QR. Kurir memindainya dengan ponselnya sendiri dan melihat per alamat nama, alamat dengan tombol Rute (navigasi), Telepon, catatan, waktu yang diinginkan, dan jumlah yang harus ditagih. Ada kalkulator kembalian (pelanggan memberi € 50 → kembalian € 31,50). Tidak perlu login. Bagikan tautan hanya kepada kurir: siapa pun yang memilikinya bisa melihat alamat rit ini. Dengan Kode QR untuk kurir Anda membuat tautan baru; tautan lama tidak berfungsi lagi.
- Ketuk Berangkatkan saat kurir berangkat. Uang kembalian keluar dari laci (uang keluar, dengan alasan). Pelanggan mendapat pesan bahwa pesanan sedang dalam perjalanan:
- untuk pesanan dari kasir lewat SMS dan/atau email, jika Pesan ke pelanggan aktif (lihat Antar dan slot waktu);
- untuk toko online sesuai pengaturan di toko online (email, SMS, atau notifikasi push);
- untuk Thuisbezorgd lewat Thuisbezorgd.
Jika rit belum berangkat, rit masih bisa dibatalkan.
- Di jalan, kurir mengetuk per alamat Diantar, tunai, Diantar, kartu (mesin kartu sendiri), atau Diantar (sudah dibayar). Kasir langsung melihatnya. Jika kurir tidak bisa melaporkannya, ini juga bisa dilakukan di kasir. Setelah kembali di usaha, kurir mengetuk Aku sudah kembali di usaha.
Setoran kas. Setelah rit, ketuk Bayar (hak Kelola laci kas):
- Per pesanan pilih tunai, kartu di pintu, sudah dibayar, atau tidak diantar (kembali). Yang sudah dilaporkan kurir sudah terisi.
- Kasir menyelesaikan setiap pesanan dengan jumlah terbuka tanpa struk kasir baru (pelanggan sudah punya struk; cetak ulang bisa di Struk). Pesanan yang tidak diantar dikeluarkan dari rit dan tetap terbuka, sehingga bisa masuk rit berikutnya.
- Anda melihat yang diharapkan: uang kembalian ditambah tunai yang diterima. Masukkan yang disetor kurir, atau hitung per lembar dan koin (Hitung per lembar dan koin). Kasir menunjukkan apakah pas, atau berapa lebih atau kurangnya.
- Uang kembalian kembali ke laci (uang masuk). Selisih tercatat di rit dan di log, dan juga muncul sebagai selisih kas di laporan Z.
Track & trace (diaktifkan terpisah di pengaturan). Saat dalam perjalanan, pelanggan mendapat tautan ke halaman pelacakan di portal. Tautan itu ada di SMS atau email, dan di toko online di halaman status (Lacak kurirmu). Di halaman pelacakan terlihat:
- apakah pesanan sedang disiapkan, dalam perjalanan, atau sudah diantar;
- perkiraan waktu: dari lokasi kurir melalui alamat yang lebih dulu, jika tidak, waktu yang diinginkan;
- berapa alamat lagi di depan (tanpa menampilkan alamat lain);
- dengan Kurir langsung di peta juga kurir, usaha, dan alamat sendiri di peta (OpenStreetMap). Kurir sendiri yang mengaktifkan berbagi lokasi di ponsel (Bagikan lokasiku). Lokasi hanya dikirim selama halaman terbuka; halaman menjaga layar tetap menyala.
Halaman ditampilkan dalam bahasa ponsel (semua bahasa portal). Di kasir, pada rit, Anda melihat kapan lokasi terakhir dikirim (dengan tautan ke peta).
Privasi. Portal menyimpan data rit (nama, alamat, nomor telepon, lokasi) hanya selama rit berlangsung. Saat penyelesaian semuanya dihapus, jika tidak setelah 24 jam. Pelanggan hanya melihat pesanannya sendiri. Lokasi kurir hanya terlihat selama rit, dan tidak lagi setelah kurir kembali.
Perencanaan rit (opsional)
Aktifkan di Pengaturan → Usaha → Antar → Perencanaan rit (default nonaktif; berfungsi dengan kurir sendiri). Di jendela Rit lalu muncul tombol Usulkan rit. Kasir menggabungkan pesanan yang masih harus diantar menjadi rit:
- pesanan yang berdekatan dan waktu yang dimintanya berada dalam jendela waktu (default 30 menit) digabung;
- hingga jumlah maksimum alamat per rit (default 4), selama rit (berangkat, semua alamat dan kembali ke usaha) tidak lebih lama dari batas maksimum (default 45 menit);
- per rit urutan terbaik, jarak (km), waktu tempuh pulang-pergi dan per alamat perkiraan tiba jika berangkat sekarang. Jika itu lebih lambat dari waktu yang diminta, tertulis lebih lambat dari yang diminta.
Dengan Gunakan rit ini kamu mencentang pesanan tersebut, dalam urutan itu; pilih kurir dan ketuk Buat rit. Pada rit yang belum berangkat, Urutan terbaik menyusun alamat dalam urutan tercepat (juga di ponsel kurir). Setiap rit menampilkan jarak dan waktu tempuh.
Pengaturan: alamat per rit, berapa lama satu rit boleh berlangsung, jendela waktu, kecepatan kurir (sepeda ~15, skuter ~25, mobil ~35 km/j di kota) dan menit per alamat (parkir, membunyikan bel, pembayaran; default 2). Angka-angka ini juga boleh diatur oleh manajer: di jendela Rit dengan tombol Atur perencanaan rit (hak Atur perencanaan rit, secara bawaan aktif untuk manajer; dapat diubah di Pengaturan → Hak akses). Mengaktifkan atau menonaktifkan perencanaan rit dan layanan rute (alamat, kunci API) tetap di tangan administrator.
Jarak dan waktu tempuh, dipilih oleh admin:
- Perkiraan (default): jarak garis lurus dikali 1,35 (faktor memutar) dengan kecepatan kurir. Berfungsi tanpa internet dan tanpa akun.
- OSRM: rute lewat jalan melalui server OSRM. Isi alamatnya (
https://, atauhttp://di jaringan sendiri). Server demo publik (https://router.project-osrm.org) hanya untuk sesekali; untuk penggunaan harian, pasang server OSRM sendiri atau gunakan penyedia. - OpenRouteService: rute lewat jalan dengan kunci API sendiri (gratis dibuat di openrouteservice.org, dengan batas per hari). Alamat default-nya
https://api.openrouteservice.orgdan bisa diganti ke server sendiri. Kunci tetap di kasir; layar hanya menunjukkan bahwa kunci sudah diisi.
Dengan Tes kamu mencoba layanannya. Jika layanan gagal, perencanaan kembali ke perkiraan dan memberitahukannya. Alamat yang lokasinya tidak diketahui (tidak ada kode pos dan nomor rumah yang valid) masuk ke usulan di bawah tanpa lokasi yang diketahui dan tidak dijadwalkan. Ekspor konfigurasi menyertakan pengaturan, tetapi tidak kuncinya.
Kode: lib/ritplanning.ts.
Aplikasi kurir (opsional)
Aktifkan di Pengaturan → Usaha → Antar → Aplikasi kurir (standar nonaktif; bekerja dengan kurir sendiri dan portal manajemen). Setiap kurir lalu memasangkan ponselnya sendiri satu kali, alih-alih memindai kode QR per rit:
- Di Ponsel terpasang pilih kurir (seorang staf), bila perlu nama ponselnya, lalu ketuk Pasangkan ponsel.
- Muncul sebuah kode QR. Kurir memindainya di aplikasi Optimum Bezorger (tombol Pasangkan), atau dengan kamera ponsel: halaman lalu terbuka di browser. Halaman ini juga berfungsi tanpa aplikasi dan bisa ditaruh di layar utama.
- Pemasangan tetap berlaku sampai kamu mencabutnya; ponsel langsung tidak bisa melihat apa pun lagi. Pemasangan baru untuk staf yang sama menggantikan yang lama (misalnya saat ganti ponsel).
Di aplikasi atau di halaman tampil semua rit miliknya (setiap rit yang dibuat kasir untuk kurir ini), dengan tombol yang sama seperti pada rit: Rute, Telepon, tagihan dengan kalkulator kembalian, Diantar dan Aku sudah kembali di usaha. Bisa diaktifkan terpisah:
- Ambil pesanan sendiri: kurir melihat pengantaran yang belum masuk rit, mencentang yang dibawa lalu mengetuk Bawa. Kasir membuat rit (atau menambahkannya jika kurir itu sudah punya rit yang belum berangkat); uang kembalian standar ikut dibawa. Yang sudah diambil orang lain tidak bisa diambil lagi.
- Berangkat sendiri: Berangkat di aplikasi sama seperti di kasir (uang kembalian dari laci, pelanggan mendapat pesan).
- Peta langsung: di Rit ada tombol Peta dengan usaha, semua kurir yang sedang bertugas dan alamat yang masih harus diantar. Kurir menyalakan dan mematikan Sedang bertugas sendiri. Aplikasi juga mengirim lokasi saat layar mati (Android: notifikasi di bilah selama berbagi aktif); halaman web hanya selama terbuka. Tanpa pengaturan ini lokasi hanya dibagikan selama rit dengan track & trace.
Aplikasi Android tersedia di Google Play dan di halaman unduhan portal (/download/). Versi iPhone sudah siap, tetapi baru hadir setelah ada akun pengembang Apple; sampai saat itu iPhone memakai halaman web. Pada rit yang diambil sendiri oleh kurir tertulis diambil sendiri di aplikasi.
Kode: lib/bezorgersapp.ts, di portal src/volgen.mjs dan aplikasinya di repo horecapos-bezorger.
Di log tercatat siapa yang membuat rit, memberangkatkan, melaporkan diantar, dan menyelesaikan, beserta jumlahnya. Menonaktifkan: tidak ada tombol Rit; rit dan pengaturan tetap tersimpan.
Di portal: /bezorger/<sleutel> dan /volg/<code>. Kode: lib/bezorgers.ts, routes/bezorgers.ts, Bezorgers.tsx dan di portal src/volgen.mjs.
Notifikasi waktu persiapan terlalu lama
Pesanan bawa pulang atau antar yang siap lebih lambat dari janji: kasir mendeteksinya, memberi notifikasi, dan dapat langsung mengirim permintaan maaf ke pelanggan, opsional dengan voucher. Aktifkan di Pengaturan → Usaha → Antar → Notifikasi waktu persiapan terlalu lama (default nonaktif).
- Pesanan yang mana: bawa pulang dan antar dengan waktu yang dijanjikan, dari kasir (antar dan slot waktu), toko online, dan Thuisbezorgd.nl / Takeaway.com.
- Terlambat: sekian menit (default 10) setelah waktu yang dijanjikan belum siap atau belum dalam perjalanan. Siap atau dalam perjalanan berarti: semua siap di layar dapur, status siap atau dalam perjalanan di toko online atau di Thuisbezorgd, pesan ✉ Siap / ✉ Dalam perjalanan ke pelanggan, atau sudah dibayar. Kasir memeriksa setiap menit.
- Notifikasi: tombol Terlambat di bilah atas dengan jumlahnya (dengan suara untuk yang baru), per pesanan waktu yang dijanjikan dan berapa menit terlambat. Pesanan hilang sendiri setelah siap atau dalam perjalanan, atau dengan Selesai ditangani; di bawahnya ada pesanan 24 jam terakhir, beserta kapan siapnya. Semua tercatat di log.
- Toko online: halaman status tamu menunjukkan bahwa pesanan butuh waktu lebih lama, dengan perkiraan waktu yang baru.
- Untuk Thuisbezorgd ini tidak bisa (pelanggan milik Thuisbezorgd): di sana hanya notifikasi. Teks sendiri bisa;
{naam},{zaak},{code},{korting}dan{geldig}diisi otomatis. - Voucher (hanya jika Kode diskon aktif): bersama permintaan maaf, kode diskon pribadi untuk pesanan berikutnya (mis.
SORRY-7K4Q2M), nominal atau persen, sekali pakai, berlaku sekian hari, di kasir dan di toko online. Kode ini tidak muncul di daftar Kode diskon. Jika pengiriman gagal, kode dibatalkan. Dengan tombol di kasir hanya dengan hak Beri diskon. - Nonaktif: notifikasi dan kode yang diterbitkan tetap tersimpan (juga di cadangan); pengaturan ini ikut dalam ekspor konfigurasi.
Kode: lib/telaat.ts, routes/telaat.ts, TeLaat.tsx dan packages/shared/src/telaat.ts.
Tombol Pesan: apa fungsinya dan kapan Anda membutuhkannya
Mengetuk produk dan mengetuk Pesan adalah dua langkah yang berbeda:
- Mengetuk langsung menaruh produk di tagihan (daftar di sebelah kiri) sebagai baru. Hanya Anda yang melihatnya: dapur dan bar belum tahu apa-apa. Baris baru itu seperti catatan sementara: menghapus, mengubah jumlah atau opsi masih bisa dilakukan dengan mudah, tanpa pembatalan.
- Pesan mengirim semua baris baru sekaligus: tiket kerja dikirim ke printer dapur dan bar (dan layar dapur), lalu baris-barisnya berstatus dipesan. Setelah itu menghapus hanya bisa dengan Batal (hak akses pembatalan). Di tombol tertera berapa baris baru yang siap, mis. Pesan (3); jika tidak ada baris baru, tombolnya abu-abu.
Mengapa dua langkah? Di meja Anda mencatat seluruh pesanan (minuman, hidangan pembuka, hidangan utama), menyesuaikan sedikit jika tamu berubah pikiran, lalu mengirimnya sekaligus ke dapur, dengan satu tiket per stasiun alih-alih satu tiket per produk. Dengan begitu dapur bisa mulai lebih awal, jauh sebelum pembayaran.
Apa lagi yang terjadi saat Pesan:
- Urutan hidangan: hidangan 1 langsung ke dapur; hidangan 2, 3 dan 4 ikut terkirim sebagai TUNGGU dan dapur baru mulai saat Anda memanggil urutan tersebut (lihat Urutan hidangan).
- Ronde: setiap kali Pesan adalah satu ronde; ↻ Satu ronde lagi bekerja berdasarkan itu.
- Stok berkurang dan keran bertakar dibuka.
- All-you-can-eat: jika terlalu banyak, terlalu awal atau terlalu terlambat untuk paketnya, kasir terlebih dahulu bertanya apakah tetap boleh.
- Belgia (GKS 2.0): baris-baris pertama-tama dikirim sebagai pro forma ke kotak hitam; jika gagal, tidak ada yang dikirim ke dapur dan baris tetap baru.
- Tidak ada koneksi: pesanan disimpan dan dikirim ke dapur begitu koneksi kembali. Printer mati: pemesanan tetap berjalan, tiket kerja masuk ke antrean cetak (lihat Printer dapur mati atau tidak ada layar dapur).
Langsung bayar juga bisa. Jika Anda mengetuk Bayar saat masih ada baris baru di tagihan, kasir otomatis memesannya terlebih dahulu, sehingga dapur dan bar selalu menerima tiketnya. Jadi di bar atau untuk bawa pulang Anda tidak perlu mengetuk Pesan dulu: ketuk produk dan langsung Bayar. Jika pemesanan otomatis itu gagal (tidak ada koneksi, baris all-you-can-eat, kotak hitam), layar pembayaran tidak terbuka dan Anda melihat alasannya.
Tidak ingin bar menerima struk saat Anda langsung membayar? Di Pengaturan → Usaha → Pemesanan dan pembayaran, centang Bayar langsung tanpa tiket kerja. Maka hanya yang Anda kirim dengan Pesan yang diteruskan ke dapur dan bar; apa yang langsung Anda bayar tidak mendapat tiket kerja.
Tombol Bayar besar atau kecil
Dengan centang Tombol "Bayar" besar, layar pesanan menampilkan tombol Bayar besar tepat di bawah produk yang dipesan: lebar, tinggi, dan dengan jumlahnya, agar cepat ditekan. Jika sebagian tagihan sudah dibayar, tombol menampilkan sisa yang belum dibayar. Tombol kecil di bawah di samping Pesan lalu hilang.
Dengan tombol besar, tombol di layar pembayaran juga besar: Bayar (pada Kartu, Kartu hadiah, dan metode pembayaran lainnya) dan pada Tunai, Uang pas dan Bayar lebar dan tinggi, mudah ditekan, bahkan dengan jari kotor (misalnya di toko daging). Metode pembayaran sedikit lebih besar dan tombol tip sedikit lebih kecil, agar semuanya tetap terlihat di layar.
Pada instalasi baru centang ini nonaktif: maka tombol kecil di bawah di samping Pesan dan layar pembayaran dengan tombol biasa. Lebih suka besar? Di Pengaturan → Usaha, tepat di bawah tema terang/gelap, aktifkan centang Tombol "Bayar" besar. Kasir yang sudah digunakan tetap memakai pengaturan sebelumnya. Pilihan ini berlaku untuk semua kasir dan tablet di usaha.
Tandai produk sebagai "habis" (terjual habis)
Siapa pun bisa menekan lama sebuah produk di layar pesanan (atau mengklik kanan) dan memilih Habis. Produk itu menjadi abu-abu dan tidak bisa dipesan lagi di semua kasir. Dengan cara yang sama Anda mengembalikannya lewat Tersedia lagi. Setiap perubahan tercatat di log. Administrator tetap bisa mengaturnya di Pengaturan → Produk. Server kasir juga menolak produk yang berstatus "habis" ("Cola" habis), jadi juga dari tablet yang belum menerima perubahan itu atau dari pesanan offline yang tersimpan; tablet itu lalu menampilkan "Gagal mengirim".
Layar dapur (KDS)
Selain (bukan sebagai pengganti) printer tiket dapur, dapur atau bar bisa memakai layar. Buka http://<kassaserver>:3000/keuken di tablet/PC di dapur, masuk dengan PIN, dan pilih stasiun: namanya sama dengan nama printer (dapur, bar, ...), jadi di layar tampil persis apa yang akan tercetak di tiket dapur itu. "Semua" menampilkan semua stasiun.
- Satu tiket per pesanan, yang terlama lebih dulu, dengan meja/bawa pulang, nomor, dan berapa lama sudah menunggu (oranye setelah 10, merah setelah 20 menit).
- Tahap sajian ditampilkan terpisah; tahap sajian yang belum dipanggil tampil abu-abu sebagai "MENUNGGU dipanggil". Pembatalan (storno) tampil dicoret.
- Ketuk sebuah baris untuk menandainya siap, atau Siap untuk seluruh tiket. Pelayan lalu melihat di bilah atas "Dapur: Meja 5 siap". Dengan Pengaturan → Usaha → Layar dapur → Suara untuk pelayan (standarnya nonaktif) kasir juga berbunyi ("ding-dong", tanpa file suara). Browser baru mengizinkan suara setelah ketukan pertama di layar; nyalakan volume tablet.
- Kembalikan menampilkan apa yang ditandai siap dalam satu jam terakhir, sehingga yang tidak sengaja terketuk bisa dikembalikan.
Layar langsung memperbarui dirinya sendiri. Tiket dapur tetap dicetak seperti biasa; yang tidak memakai layar tidak merasakan perbedaan.
Layar dapur: teruskan, urutan, dan tahap sajian
Pengaturan → Printer → Layar dapur. Setiap bagian dapat diaktifkan terpisah, default nonaktif; menonaktifkan tetap menyimpan semuanya.
- Teruskan antarstasiun, misalnya dingin → panas → pass. Untuk setiap stasiun Anda menetapkan stasiun berikutnya yang tetap; tiket lalu menampilkan tombol → panas (dan selalu Teruskan ke… untuk memilih stasiun lain). Hanya baris terbuka dari stasiun itu yang ikut. Stasiun tidak harus punya printer: isi stasiun seperti pass di Stasiun tanpa printer. Siap (dan notifikasi ke pelayan) baru muncul di stasiun terakhir. Di "Semua" baris yang diteruskan menampilkan posisinya saat ini. Setiap langkah dicatat di baris dan di log.
- Urutkan ulang: seret tiket (mouse) atau pindahkan dengan ◀ ▶ (layar sentuh). Urutan berlaku per stasiun dan untuk semua layar di stasiun itu; tiket baru masuk di akhir.
- Tahap sajian berikutnya dari layar dapur: pada tiket dengan tahap sajian yang menunggu muncul Minta tahap sajian 2. Pelayan lalu menerima "Dapur meminta tahap sajian 2 untuk Meja 5" (dengan suara) dan memanggil seperti biasa; di layar dapur tampil "Tahap sajian 2 diminta · n mnt" sampai tahap sajian dipanggil. Atau pilih Panggil: layar dapur memanggil tahap sajian sendiri, dengan tiket kerja "PANGGIL TAHAP SAJIAN 2", sama seperti tombol di kasir.
Printer dapur mati atau tanpa layar dapur
Kasir selalu tetap bekerja, juga saat printer dapur atau bar mati (atau kertas habis, atau kabel lepas) dan juga tanpa layar dapur:
- Memesan selalu berjalan. Baris langsung berstatus dipesan, tagihan tetap benar, dan pembayaran bisa dilakukan seperti biasa. Printer dihubungi bersamaan dan setiap printer mendapat paling lama sekitar 4 detik: printer yang mati tidak membuat printer lain (dan pelayan) menunggu lama.
- Antrean cetak. Tiket dapur yang gagal dicetak masuk ke antrean cetak. Server kasir mencobanya lagi setiap 30 detik, selama seperempat jam; begitu printer berfungsi lagi, tiket itu tercetak dengan tulisan LATER GEPRINT di bagian atas. Jika tiket berikutnya di printer itu berhasil lagi, tiket yang menunggu langsung ikut dicetak setelahnya.
- Setelah seperempat jam, percobaan ulang otomatis berhenti; Cetak ulang sekarang masih bisa dipakai.
- Layar dapur. Jika pesanan ada di layar dapur, dapur tetap melihatnya di sana walaupun printer mati. Yang tidak memakai layar dapur tidak kehilangan apa pun: kasir tidak pernah menunggu "Siap" dari dapur.
- Antrean hanya ada di memori server kasir (setelah dimulai ulang, antrean kosong).
- Begitu juga struk kasir: jika gagal dicetak, pembayaran tetap tercatat (kasir menampilkan "gagal mencetak") dan Anda bisa mencetak salinannya nanti di Struk.
Hidangan (pembuka, utama ...)
Tombol tahap hanya ditampilkan saat dibutuhkan: begitu ada menu paket (produk gabungan) di pesanan, atau saat sudah ada sesuatu di tahap 2 sampai 4. Dengan produk biasa, seperti cola, Anda tidak melihatnya dan semuanya langsung ke dapur. Tidak ada yang perlu diatur.
Di bawah daftar pesanan ada Tahap 1 2 3 4. Standarnya tahap 1 aktif dan semuanya berjalan seperti biasa: "Pesan" langsung mengirim semuanya ke dapur, tanpa judul tahap di tiket dapur. Jika Anda memilih tahap 2 (atau lebih) sebelum mengetuk produk, maka produk itu:
- tetap dikirim ke dapur saat "Pesan", di bawah "-- Tahap 2 · MENUNGGU dipanggil --", sehingga dapur bisa bersiap;
- tampil di daftar pesanan sebagai "Tahap 2 · menunggu" dengan tombol Panggil;
- dan saat Panggil, dapur mendapat tiket " PANGGIL TAHAP 2 " berisi apa yang harus dibuat sekarang.
Tahap 1 selalu langsung jalan. Jika tahap 2 sudah dipanggil, hidangan yang dipesan belakangan di tahap 2 juga langsung jalan.
Alergen per produk
Standarnya mati: alergen tidak terlihat di mana pun. Aktifkan lewat Pengaturan → Usaha → Isi dan tampilkan alergen per produk.
- Pengaturan → Produk: di setiap produk, centang 14 alergen UE (gluten, krustasea, telur, ikan, kacang tanah, kedelai, susu, kacang-kacangan, seledri, mustar, biji wijen, sulfit, lupin, moluska). Di daftar produk, singkatannya tampil di belakang nama.
- Layar pesanan: di setiap tombol produk ada singkatan kecil (mis.
Gl Me), dan tombol ⚠ Alergen di bilah grup menampilkan alergen lengkap per produk dari kategori yang dipilih, beserta penjelasan singkatannya. - Perubahan alergen tercatat di log (lama → baru). Jika pengaturan dimatikan, alergen yang sudah diisi tetap tersimpan.
All-you-can-eat
Standarnya mati. Aktifkan lewat Pengaturan → Usaha → All-you-can-eat (hanya admin). Anda membuat satu atau lebih paket, mis. Ikan, Daging, dan Sushi, masing-masing dengan:
- nama (muncul di struk: "Ikan dewasa", "Ikan anak");
- harga per orang dewasa dan per anak (termasuk PPN) dan tarif PPN (standar NL
LAAG, BEB); - hidangan yang termasuk (€ 0): seluruh kategori produk dan/atau produk satuan (juga dari kategori lain, mis. kentang goreng di Ikan dan juga Daging);
- batas waktu dalam menit (0 = tanpa batas);
- ronde: maksimal sekian hidangan per orang per ronde (0 = tanpa batas) dan minimal sekian menit antara dua ronde (0 = tanpa jeda);
- biaya tambahan sisa makanan per porsi (0 = tidak ada).
Dengan ↑ ↓ Anda mengatur urutannya. Urutan ini berlaku jika satu hidangan termasuk dalam beberapa paket: hidangan itu masuk ke paket teratas yang dipilih grup. Hapus menghapus paket untuk meja baru; meja yang sedang berjalan tetap memakai baris harganya (jumlah orang masih bisa dikurangi, tetapi tidak ditambah).
Di meja:
- Di layar pesanan, di atas struk ada + All-you-can-eat. Pilih per paket jumlah dewasa dan anak-anak; boleh campur (mis. 2× Ikan dan 2× Daging). Harga masuk sebagai baris di tagihan; baris ini tidak dikirim ke dapur. Jumlah orang dalam grup menjadi total peserta (jika kasir mencatat jumlah orang).
- Bilah menampilkan per paket: jumlah orang, sisa waktu (merah jika waktu habis), ronde ke berapa beserta maksimumnya, dan berapa lama lagi sampai ronde berikutnya. Hidangan yang termasuk tampil di tombol sebagai AYCE dan di struk dengan label AYCE seharga € 0. Semua yang tidak termasuk paket yang dipilih (minuman, hidangan penutup ...) tetap dibayar seperti biasa.
- Pesan: setiap kali "Pesan" dengan hidangan gratis dihitung satu ronde, per paket (hanya paket yang hidangannya ikut dipesan). Yang diketuk secara offline dan dikirim belakangan tidak ditahan.
- Ubah: sesuaikan jumlah per paket. Mengurangi jumlah orang dihitung sebagai pembatalan (hak akses "storno"). Mengatur paket ke 0 (atau Hentikan untuk semuanya) bisa dilakukan selama belum ada hidangan dari paket itu di tagihan.
- Biaya tambahan (hanya jika paket yang dipilih punya biaya tambahan sisa makanan): pilih jumlahnya (dan paketnya, jika ada lebih dari satu); "Biaya sisa makanan × jumlah" masuk ke tagihan.
- Pembayaran, pisah tagihan, diskon, dan struk berjalan seperti biasa: harga paket, biaya tambahan, dan minuman adalah baris biasa dengan PPN masing-masing.
- Jika administrator mematikan all-you-can-eat saat masih ada grup yang berjalan, hidangan yang baru dimasukkan kembali memakai harga normal; yang sudah ada di tagihan tetap.
- Di toko online (opsional, standarnya mati): dengan Juga saat memesan di meja lewat kode QR (toko online), tamu yang memesan di meja dengan paket melihat hidangan yang termasuk dalam paket sebagai Termasuk seharga € 0, dengan status di bagian atas (jumlah orang, ronde, waktu). Satu pesanan adalah satu ronde, dengan aturan yang sama seperti Pesan; terlalu banyak, terlalu cepat, atau terlalu lambat langsung ditolak toko online. Minuman dan hidangan lain dibayar tamu seperti biasa; semuanya masuk ke tagihan meja. Mati = toko online memakai harga biasa, seperti sebelumnya.
Voucher hadiah
Dua sakelar di Pengaturan → Usaha → Kartu hadiah:
- Kartu hadiah sebagai metode pembayaran: secara default aktif, seperti biasa. Nonaktif = tombol Kartu hadiah tidak muncul saat membayar (dan tidak di uang kembali lewat saat retur), dan server kasir menolak pembayaran dengan kartu hadiah.
- Jual kartu hadiah dengan saldo: secara default nonaktif. Aktif:
- Di layar pesanan ada tombol Kartu hadiah: pilih jumlahnya (€ 10, 25, 50, 100 atau jumlah lain) dan biarkan kasir membuat kode, atau pindai kode dari kartu yang sudah dicetak. Kartu hadiah masuk sebagai baris di tagihan (kode PPN BON: bukan omzet, tanpa PPN, tidak dikirim ke dapur). Di sana Anda juga bisa cek saldo untuk pelanggan.
- Setelah dibayar, kartu hadiah aktif dan printer struk mencetak kartu hadiah dengan jumlah, kode, dan kode QR.
- Menukarkan: saat membayar pilih Kartu hadiah lalu pindai atau ketik kodenya (tombol Saldo menampilkan saldo). Jumlahnya dipotong dari saldo. Jika saldo lebih kecil dari tagihan, seluruh saldo dipakai sebagai pembayaran sebagian dan sisanya dibayar dengan kartu atau tunai. Saldo boleh dipakai bertahap.
- Kode dibiarkan kosong = kartu hadiah tanpa kode, seperti sebelumnya (mis. voucher kertas lama).
- Laporan → Kartu hadiah (hak akses Kelola kartu hadiah, default manajer dan administrator): cari berdasarkan kode, sisa saldo, riwayat per kartu, blokir (hilang/dicuri), dan koreksi saldo dengan alasan. Ini tercatat di log.
- Laporan: kartu hadiah yang terjual tidak dihitung sebagai omzet dan ditampilkan terpisah (Kartu hadiah terjual); uang yang diterima tetap muncul di metode pembayaran. Yang dibayar dengan kartu hadiah adalah omzet biasa (dengan PPN) di metode pembayaran Kartu hadiah.
- Pembukuan: kartu hadiah yang terjual dibukukan kredit dan yang ditukarkan debit pada akun Kartu hadiah (saldo pelanggan).
- Kartu hadiah yang terjual bisa diretur lewat Struk → Retur selama belum dipakai (saldo = nilai). Setelah retur, kartu dibatalkan (saldo 0, diblokir; tercatat di riwayat kartu). Jika sudah (sebagian) dipakai, atur saldo ke 0 di Laporan → Kartu hadiah dan kembalikan sisanya secara terpisah. Diskon pada kartu hadiah tidak bisa.
Saldo isi ulang (opsional)
Untuk klub, kantin olahraga, rumah pemuda, dan acara: kartu hadiah dengan saldo menjadi kartu isi ulang. Aktifkan di Pengaturan → Usaha → Saldo isi ulang, di bawah kartu hadiah (default nonaktif; hanya berfungsi jika Jual kartu hadiah dengan saldo aktif).
- Kartu atau gelang: jual kartu hadiah dengan Kartu pracetak lalu pindai kartunya (pembaca NFC/RFID yang bekerja sebagai keyboard, atau barcode). Nomor kartu itu menjadi kodenya; dengan itu tamu membayar seperti dengan kartu hadiah.
- Isi ulang: layar pesanan → Kartu hadiah → Isi ulang saldo: pindai kartu hadiah atau kartu dan masukkan jumlahnya. Jumlah itu masuk sebagai baris di tagihan (kode PPN BON: bukan omzet, tanpa PPN, sama seperti kartu hadiah yang dijual) dan setelah pembayaran masuk ke saldo. Di riwayat kartu tercantum Diisi ulang.
- Saldo maksimal per kartu hadiah atau kartu (default € 500, bisa diatur sampai € 5.000).
- Kembalikan sisa saldo (centang, default nonaktif; hak Kelola laci kas): setelah Cek saldo muncul Kembalikan sisa saldo. Saldo menjadi € 0 dan jumlahnya tercantum sebagai uang keluar dari laci di laporan X dan Z (Tegoed terugbetaald …).
- Isi ulang bisa dibatalkan lewat Struk → Retur selama saldonya masih minimal sebesar jumlah itu; kartu hadiah atau kartu tetap berlaku.
- Isi ulang di kios (opsional): lihat Kios swalayan.
Voucher makan
Hanya untuk usaha di Belgia, default nonaktif: Pengaturan → Usaha → Bayar → Voucher makan. Voucher makan adalah tunjangan gaji: pemberi kerja mengisinya ke kartu milik karyawan (Edenred, Monizze atau Pluxee). Tamu membayar dengannya di mesin EDC biasa; tidak perlu koneksi dengan penerbit.
- Aktif: saat pembayaran ada tombol Voucher makan. Pilih penerbit (hanya penerbit yang diterima usaha) dan minta tamu menempelkan kartunya ke mesin EDC, sama seperti bayar kartu. Tanpa koneksi mesin EDC: tamu membayar langsung di mesin EDC dan Anda mengetuk Bayar.
- Tanpa tip dan tanpa uang kembalian dengan voucher makan. Jika saldo kurang, tamu membayar sisanya dengan cara lain (tagihan tetap terbuka sampai semuanya dibayar).
- Hanya untuk kategori tertentu (opsional, mis. makanan tetapi tanpa alkohol): maka dengan voucher makan maksimal sebesar jumlah produk tersebut di tagihan. Layar pembayaran menunjukkan berapa; sisanya dibayar tamu dengan cara lain.
- Di struk: Voucher makan Pluxee (dengan penerbit di belakangnya).
- Laporan Z dan laporan X: satu baris sendiri per penerbit (Voucher makan Edenred, … Monizze, … Pluxee).
- Akuntansi: akun buku besar sendiri per penerbit (Voucher makan Pluxee (piutang) dll., default 416100, 416200 dan 416300), karena uangnya datang dari penerbit, bukan dari bank mesin EDC.
- Diperlukan: perjanjian dengan setiap penerbit yang vouchernya Anda terima, dan mesin EDC yang menerima kartu ini (tanyakan kepada pemasok mesin EDC).
Mata uang asing
Bayar tunai dengan mata uang lain, mis. turis Inggris atau Amerika, atau di daerah perbatasan dengan franc Swiss. Default nonaktif: Pengaturan → Usaha → Bayar → Mata uang asing. Tambahkan mata uang (CHF, CZK, DKK, GBP, HUF, NOK, PLN, SEK, TRY, USD) dengan kurs per mata uang: berapa euro yang Anda hitung untuk 1 unit (mis. 1 GBP = € 1,15).
- Diisi sendiri: kurs tetap; ubah sendiri jika berubah.
- Langsung (ECB): kurs harian Bank Sentral Eropa (kurs referensi, setiap hari kerja sekitar pukul 16:00; gratis, tanpa akun). Dengan markup dalam persen (0-20) kurs menjadi lebih rendah sebesar itu, sehingga usaha tidak menanggung sendiri biaya penukaran. Kasir mengambil kurs sendiri jika sudah lebih dari 6 jam; Perbarui sekarang langsung mengambilnya. Tanpa internet kurs terakhir tetap dipakai.
- Aktif: saat pembayaran ada tombol Mata uang asing. Pilih mata uangnya; kasir menampilkan jumlahnya dalam mata uang itu. Masukkan yang diberikan tamu: kasir mengonversinya dan memberi kembalian dalam euro. Jika tamu tidak mau kembalian, centang Kembalian jadi tip: kembalian masuk sebagai tip di struk, di Belgia dalam mata uang itu (GKS 2.0, UC296).
- Jika tamu memberi kurang dari seluruh jumlah, itu adalah sebagian; sisanya ia bayar dengan cara lain.
- Di struk: mata uang, jumlah dan kurs, serta kembalian dalam euro.
- Laporan X dan Z: satu baris per mata uang (Mata uang asing GBP, dalam euro), dan di bagian laci kas apa yang ada di laci dalam mata uang itu. Kembalian dalam euro dikurangkan dari uang yang seharusnya di laci; uang asingnya sendiri dihitung terpisah.
- Akuntansi: dihitung sebagai tunai (kas), dalam euro.
Tombol tambahan saat memesan dan membayar
Tombol untuk hal yang tidak dibutuhkan setiap usaha. Semua nonaktif secara default; aktifkan per tombol di Pengaturan → Usaha → Pemesanan dan pembayaran (hak Atur usaha, pembayaran, dan printer). Nonaktif = tombol tidak ada di mana pun di kasir dan server kasir menolak tindakan itu. Di Belanda semuanya berjalan tanpa kotak hitam; di Belgia tombol baru berfungsi jika fungsi itu sudah diuji dengan kotak hitam (di tombol tertulis jika belum).
Saat membuka meja:
- Catat jumlah orang: pertanyaan "Berapa orang?" pada meja kosong, jumlah orang di denah dan di layar pesanan, dan tamu di laporan. Lihat Jumlah orang.
Saat memesan (layar pesanan, untuk yang Anda ketuk setelahnya):
- Gabungkan produk yang sama (tanpa tombol, secara default aktif): jika Anda mengetuk produk yang sama lagi (opsi sama, belum dipesan), jumlahnya bertambah alih-alih membuat baris baru: 4 Cola dalam satu baris dengan harga dikali 4. Dengan −, satu dikurangi lagi, juga jika sudah dipesan (storno satu). Dengan catatan, kursi, atau bawa pulang, tetap menjadi baris tersendiri; yang sudah dipesan tetap menjadi baris tersendiri (putaran baru).
- − dan + (sebelum harga di setiap baris): − mengurangi satu, + menambah satu (produk, opsi, dan catatan yang sama; jika Gabungkan produk yang sama nonaktif, baris baru). Belum dipesan dan di 0: baris dihapus. Sudah dipesan: kurang satu adalah storno, baris itu tetap dicoret (untuk dapur dan laporan); tambah satu menjadi baris baru yang masih harus dipesan. Mengetuk harga itu sendiri tidak lagi menghapus apa pun. Pada menu hanya −.
- Bawa pulang (hanya makan di tempat): tamu membawa pulang produk ini, mis. sebotol air atau hidangan penutup. Baris itu mendapat PPN bawa pulang (di Belgia label C), sisa tagihan PPN makan di tempat. Di struk tertulis bawa di baris itu.
- Kursi (di meja): ketuk terus untuk kursi 1, 2, 3 ...; baris mendapat nomor kursi itu (juga di tiket kerja). Di Belgia setiap baris dikirim ke kotak hitam dengan pusat biaya kursi (CHAIR, UC4123). Sekali lagi setelah kursi 12 = kembali tanpa kursi.
- Terima kembali: produk berikutnya masuk dengan -1, mis. botol atau gelas kosong (deposit). Hanya untuk produk dengan Bisa dikembalikan (deposit) (Pengaturan → Produk). Jika seluruh tagihan negatif (hanya deposit kembali, tanpa penjualan), Bayar menjadi pengembalian uang: tunai kembali atau dengan kartu (dikembalikan di terminal). Di Belgia sebagai pengembalian uang (REFUND, UC4108 dan UC4114).
- Tukar SPV: tamu membayar produk atau menu dengan single purpose voucher (voucher khusus untuk produk itu, mis. "1 menu all-in"). Ketuk Tukar SPV lalu produk itu di struk: produk masuk dengan -1 (harga dan PPN sama, untuk menu beserta komponennya), dengan SPV di sampingnya. Tidak ke dapur; bisa dihapus seperti biasa. Produk voucher dijual di muka sebagai produk biasa; centang SPV (voucher) di Pengaturan → Produk. Di Belgia baris itu dikirim saat penjualan sebagai VOUCHER ke kotak hitam (UC271).
- Potong uang muka: lihat di bawah.
- Harga terbuka (bukan tombol, per produk): untuk produk dengan Harga terbuka kasir menanyakan harganya, mis. menu harian atau uang muka.
Saat membayar:
- Bayar langsung tanpa tiket kerja (bukan tombol): secara default Bayar terlebih dahulu memesan apa yang belum dipesan, sehingga dapur dan bar selalu menerima struknya (lihat Tombol Pesan). Aktif: apa yang langsung Anda bayar tanpa terlebih dahulu mengetuk Pesan tidak mendapat tiket kerja, mis. di bar tempat Anda mengambilnya sendiri. Apa yang sudah dipesan tidak berubah.
- Bayar terpisah (di meja, di Pisah tagihan): pilih yang dibayar satu tamu sekarang, juga sebagian baris (½ untuk setengah botol). Itu menjadi bagian sendiri yang langsung dibayar; sisanya tetap di tagihan, tanpa memisah tagihan dulu atau memindahkannya ke grup lain. Diskon persen pada seluruh struk ikut secara proporsional. Kembali tanpa membayar = semuanya kembali ke tagihan. Di Belgia penjualan tercatat di tempat meja itu, tanpa pindah meja (UC4103bis, UC4104).
- Tamu pergi tanpa membayar (hak Tutup tanpa pembayaran, default hanya manajer dan admin): tagihan ditutup sebagai penjualan tanpa pembayaran, dengan alasan di log. Di laporan X dan Z dan laporan harian tercatat sebagai Belum dibayar (tamu pergi); di jurnal ke tak tertagih (default 4985 / 643000). Di Belgia penjualan tanpa pembayaran (UC4109).
Setelahnya (Struk):
- Koreksi harga (hak Koreksi harga struk, default hanya manajer dan admin): harga struk yang sudah dibayar salah, mis. diskon 50% padahal 5%. Kasir membuat struk baru tanpa meja dengan baris struk lama dikembalikan (negatif, sesuai yang dibayar saat itu) dan produk yang sama lagi dengan harga normal. Beri diskon yang benar di sana dan tagih selisihnya (atau kembalikan uang jika harga baru lebih rendah). Struk lama tetap seperti semula; satu kali per struk, dan tidak jika sudah ada retur. Di Belgia baris lama ikut sebagai CORRECTION (UC4116).
Kode: apps/pos-server/src/lib/kassaopties.ts, routes/kassaopties.ts; layar KassaOpties.tsx. Log: Pengaturan diubah, SPV ditukar, Koreksi struk, Belum dibayar.
Potong uang muka
Uang muka (DP, mis. untuk pesta atau reservasi) dijual sebagai produk biasa dengan Uang muka aktif (Pengaturan → Produk; selalu harga terbuka). Buat satu per tarif PPN jika uang muka harus per tarif (mis. Uang muka makanan dan Uang muka minuman), atau satu produk jika itu bagian dari penawaran. Tamu membayar uang muka lebih dulu dan mendapat struk.
Aktifkan: Pengaturan → Usaha → Pemesanan dan pembayaran → Potong uang muka (default nonaktif). Saat pembayaran akhir, ketuk Potong uang muka di layar pesanan dan isi nomor struk uang muka. Kasir menaruh baris uang muka dari struk itu dengan jumlah negatif di tagihan (produk, harga, dan PPN sama). Yang sudah dipotong tidak bisa dipotong lagi. Jika uang muka lebih besar dari tagihan, tamu mendapat selisihnya kembali (pengembalian uang). Di Belgia baris yang dipotong dikirim sebagai pengembalian uang (REFUND) ke kotak hitam (UC4110, UC4111, UC4113). Log: Uang muka dipotong.
Struk via email
Secara default nonaktif. Aktifkan lewat Pengaturan → Usaha → Struk juga lewat email.
SMTP_HOST=smtp.voorbeeld.nl
SMTP_PORT=587
SMTP_GEBRUIKER=kassa@voorbeeld.nl
SMTP_WACHTWOORD=...
SMTP_AFZENDER=bon@voorbeeld.nl
Mulai ulang kasir setelah mengisinya. Setelah itu di Pembayaran ada kolom Kirim struk juga lewat email (opsional): dibiarkan kosong = hanya dicetak seperti biasa; isi alamat email = struk yang sama (dengan rincian PPN dan baris fiskal) juga dikirim ke tamu lewat email, dengan nama usaha sebagai pengirim.
- Alamat email tidak disimpan; di log hanya tercatat "struk N dikirim ke a***@domain.nl" dan apakah berhasil.
- Jika email gagal (mis. data login salah), struk tetap dibayar dan dicetak; pesannya menjelaskan apa yang salah.
- Tidak untuk pembayaran sebagian (pisah tagihan): struk muncul di pembayaran terakhir, jadi isi alamatnya di sana.
- Kirim email belakangan: di Struk setiap struk punya tombol Kirim email (hak akses Cetak salinan struk). Struk dikirim dengan tanda KOPIE, sama seperti salinan cetak (di Belgia tercatat sebagai salinan).
- Tidak perlu paket tambahan: kasir terhubung sendiri ke server email (STARTTLS di 587, TLS di 465).
Reservasi
Aktifkan di Pengaturan → Usaha → Reservasi (standarnya nonaktif). Di sana Anda juga mengatur berapa menit sebelumnya meja yang direservasi muncul di denah (default 60) dan durasi default reservasi (default 120 menit).
- Tombol Reservasi di bilah atas: ringkasan per hari (◀ ▶), dengan jumlah reservasi, orang, dan tamu yang tidak datang (no-show). + Reservasi baru: nama, telepon, email, jumlah orang, tanggal, jam, durasi, meja (bisa nanti), dan catatan. Reservasi dibuat oleh karyawan; pemesanan online (belum) tersedia.
- Jika meja yang sama sudah direservasi pada jam itu, kasir memberi tahu; "Tetap simpan" bisa dipilih.
- Konfirmasi lewat email (centang, atau nanti "Kirim email") jika ada alamat email dan server email (
SMTP_HOST, lihat Struk lewat email). - Di denah, meja kosong yang direservasi tampil ungu dengan "R 19:30 Jansen (4)". Ketuk mejanya: "Jansen sudah datang" membuka meja dengan 4 orang dan "Jansen" sebagai nama grup; "Tamu lain" membuka meja seperti biasa.
- Di ringkasan: Sudah datang (membuka meja; tanpa meja Anda pilih dulu), Ubah, No-show, Batalkan, dan Kembalikan. Semuanya tercatat di log.
- Reservasi dari platform online: lihat Platform reservasi di bawah.
Integrasi kasir TheFork: meja terbuka saat tamu tiba, tagihan dikirim balik
Dengan POS-API TheFork, kasir bekerja sama dengan TheFork Manager (standarnya nonaktif), selain mengambil reservasi seperti di atas. Aktifkan di Pengaturan → Platform reservasi → Integrasi kasir TheFork; berjalan melalui portal manajemen.
- Jika Anda mengubah status tamu di TheFork Manager menjadi Tiba atau Di meja, meja dengan nama yang sama terbuka di kasir, dengan jumlah tamu dan catatan: nama, alergi dan diet, uang muka, penawaran/diskon, dan poin (Yums). Jika sudah ada pesanan terbuka di meja itu, pesanan tersebut dihubungkan. Tidak ada meja dengan nama itu: muncul pemberitahuan, dan di Platform Anda memilih mejanya.
- Setelah pembayaran, tagihan dikirim ke TheFork (total dan baris dengan nama, grup produk, jumlah, dan nominal); TheFork lalu mengubah reservasi menjadi Pergi. Pada pembayaran terpisah, satu tagihan dengan totalnya. Jika gagal, kasir mencoba lagi setiap seperempat jam (selama dua hari), atau dengan Kirim ulang di Platform.
- Pemasangan: kasir menampilkan kode pemasangan; isi kode itu di TheFork Manager (Integrasi → kasir). ID restoran TheFork (Customer-id) diisi oleh administrator, atau terisi otomatis pada pesanan pertama.
- Centang: buka meja otomatis, nama, alergi, dan uang muka sebagai catatan, tagihan ke TheFork.
- Syarat: Pin Voordeel memiliki kunci API TheFork (khusus mitra) dan telah mendaftarkan kasir di sana sebagai POS (tombol di portal manajemen); TheFork mengaktifkan integrasi setelah sesi uji.
Dokumentasi TheFork: https://docs.thefork.io/POS-API/introduction
Daftar tunggu untuk tamu tanpa reservasi
Untuk tamu tanpa reservasi yang menunggu meja. Aktifkan di Pengaturan → Usaha → Daftar tunggu (walk-in) (standarnya nonaktif). Hanya terlihat jika SMS lewat CM.com sudah diatur; jika tidak, daftar tunggu tidak muncul di mana pun di kasir (juga tidak di pengaturan). Berjalan terpisah dari reservasi: juga saat reservasi nonaktif. Di sana juga ada teks SMS (kosong = "Hallo {naam}, uw tafel bij {zaak} is klaar. Wilt u zich melden bij de bediening?"; {naam}, {zaak}, dan {personen} diisi otomatis).
- Tombol Daftar tunggu di bilah atas, dengan jumlah yang menunggu (oranye jika ada yang menunggu). + Tambah ke daftar tunggu: nama, telepon (untuk SMS), jumlah orang, perkiraan waktu tunggu yang disebutkan, dan permintaan (teras, kursi bayi).
- Daftar diurutkan menurut waktu datang, dengan berapa lama seseorang sudah menunggu (merah jika lebih lama dari yang disebutkan), dan di atasnya jumlah yang menunggu, jumlah orang, serta rata-rata waktu tunggu hari ini.
- Jika SMS gagal, alasannya ditampilkan. Kirim SMS lagi bisa dilakukan.
- Dudukkan: pilih meja; kasir membukanya dengan jumlah orang (jika kasir mencatat jumlah orang) dan nama sebagai nama grup (sama seperti reservasi yang datang).
- Pergi (sudah pergi atau batal) dan Kembalikan. Di bawah daftar terlihat siapa yang hari ini sudah didudukkan atau pergi, dengan berapa lama mereka menunggu.
- Privasi: nomor telepon dihapus setelah satu hari; yang masih ada di daftar setelah 12 jam akan dihapus otomatis. Pendaftaran, pemanggilan (hanya dengan 3 digit terakhir nomor), dan penempatan tercatat di log.
- Kenapa tidak di Reservasi? Reservasi untuk nanti (tanggal, jam, meja ditentukan sebelumnya); daftar tunggu untuk sekarang (urutan, waktu tunggu, SMS saat meja kosong). Karena itu ada sakelar dan tombol sendiri, dengan "buka meja" yang sama seperti pada reservasi.
- Daftar tunggu online (opsional, standarnya mati; hanya dengan toko online): dengan Tamu juga bisa mendaftar sendiri lewat toko online, toko online menampilkan Daftar tunggu (dan ada kode QR untuk di pintu, di pengelolaan toko online pada Meja dan QR). Tamu mengisi nama, telepon, jumlah orang, dan permintaan, lalu melihat posisinya secara langsung. Di kasir ia muncul di daftar dengan tanda online; memanggil, mendudukkan, dan pergi berjalan seperti biasa, dan tamu juga melihatnya di ponselnya (membatalkan juga bisa di sana).
Kartu pelanggan / poin
Aktifkan di Pengaturan → Usaha → Kartu pelanggan / poin (standarnya nonaktif, dan saat itu tidak terlihat di mana pun). Di sana Anda juga mengatur: poin per euro (0 = hanya kartu stempel), setelah berapa poin ada hadiah, dan berapa euro diskon nilai hadiah itu.
- Di kasir, di atas struk ada "+ Kartu pelanggan": cari pelanggan berdasarkan nama atau nomor telepon, atau buat pelanggan baru (nama, opsional telepon dan email). Setelah itu nama dan saldo poin muncul di struk.
- Menukarkan: jika poin cukup "Tukar 100 poin: diskon € 5"; jika kartu stempel penuh "Kopi Gratis" (kopinya harus ada di struk). Ini menjadi baris diskon; siapa pun boleh menghapusnya lagi.
- Poin dan stempel baru ditambahkan dan dikurangi saat pembayaran: poin dihitung dari jumlah setelah diskon (tanpa kartu hadiah yang terjual), stempel per item produk yang punya kartu stempel (produk gratis tidak dihitung).
- Di struk kasir: poin didapat, ditukar, saldo, dan status kartu stempel.
- Laporan → Pelanggan (hak akses Kelola kartu pelanggan): cari pelanggan, ubah data, koreksi poin (dengan alasan), riwayat, dan hapus (GDPR: nama, telepon, dan email dihapus; riwayat tetap anonim). Di bagian bawah ada kartu stempel per produk (mis. 10 kopi = 1 gratis).
- Retur tidak otomatis membatalkan poin yang didapat; koreksi jika perlu di Laporan → Pelanggan.
- Kartu pelanggan dengan nomor (opsional): di Laporan → Pelanggan → (pelanggan) isi nomor kartu (atau pindai kartu di kolom itu). Dengan pemindai barcode, memindai kartu itu menautkan pelanggan ke struk, di kasir dan di kios. Mencari berdasarkan nomor kartu juga bisa di + Kartu pelanggan.
Profil tamu: VIP, kebutuhan diet, dan preferensi (opsional)
Aktifkan di Pengaturan → Usaha → Profil tamu, di bawah kartu pelanggan (default nonaktif; hanya berfungsi jika kartu pelanggan aktif). Setelah itu:
- Di layar pesanan, di bawah pelanggan yang terhubung ada "+ Profil tamu": centang VIP, pilih kebutuhan diet (vegetarian, vegan, pesketarian, halal, kosher) dan alergi (14 alergen), lalu ketik preferensi (mis. "meja tetap dekat jendela", maksimal 300 karakter). Setelah itu semuanya tampil pada pelanggan di layar pesanan, alergi dengan warna merah. Juga bisa diubah di Laporan → Pelanggan → (pelanggan) → Profil tamu.
- Jika Anda mengetuk produk yang mengandung alergen tamu (lihat Alergen per produk), kasir terlebih dahulu bertanya apakah produk tetap ditambahkan. Hanya berdasarkan data yang diisi pada produk; jika ragu, selalu tanyakan ke dapur.
- VIP mendapat ★ di denah: pada tagihan terbuka dan pada reservasi pelanggan tersebut yang ditampilkan. Saat tamu dari reservasi datang, kasir menghubungkan pelanggan reservasi ke tagihan.
- Kebutuhan diet dan alergi (serta VIP) tercetak di tiket dapur untuk dapur dan bar:
GAST: VIP · Vegetarisch · allergie: Noten. - Kebutuhan diet dan alergi adalah data kesehatan: isi hanya dengan izin tamu. Log hanya mencatat bahwa profil diubah, bukan isi kebutuhannya. Menghapus pelanggan juga menghapus profil tamu.
Favorit / tombol cepat
Secara default nonaktif. Pengaturan → Usaha → Favorit / tombol cepat:
- Paling laris: di depan bilah grup ada tombol ★ Favorit dengan 12 produk yang paling banyak terjual dalam 14 hari terakhir (diperbarui otomatis). Layar pesanan terbuka di favorit.
- Pilih sendiri: di layar pesanan, tekan lama sebuah produk (atau klik kanan) dan pilih ★ Favorit (tombol cepat); sekali lagi = hapus. Hak akses Kelola produk. Semua kasir langsung melihatnya.
- Memasukkan item, opsi, menu, happy hour, dan "habis" berjalan di favorit persis sama seperti di grup biasa.
Satu putaran lagi
Di layar pesanan ada tombol ↻ Satu ronde lagi (begitu ada sesuatu di tagihan, meskipun belum dipesan). Satu ketukan menambahkan ronde terakhir (semua yang dikirim sekaligus dengan "Pesan", atau yang baru saja Anda ketuk) sekali lagi sebagai baris baru; lalu tekan Pesan seperti biasa. Harga yang dipakai adalah harga saat ini (termasuk happy hour).
- Tekan lama (atau klik kanan): pilih sendiri. Dengan ◀ ▶ Anda bisa melihat ronde sebelumnya, per produk aktif/nonaktif (mis. hapus centang makanan) dan jumlah dengan − / +. Opsi dan catatan ikut terbawa.
- Produk yang habis dan menu tidak ikut (menu dimasukkan terpisah). Juga berjalan tanpa koneksi.
- Baris ditambahkan sesuai yang tertera di tagihan: dengan Gabungkan produk yang sama aktif, satu baris per produk (2 Cola); nonaktif, setiap baris terpisah (2 kali 1 Cola).
Waktu meja di denah
Setiap meja terisi menampilkan ⏱ 45m · 12m: sudah berapa lama meja terisi dan berapa lama sejak terakhir kali ada yang dimasukkan (tekan lama meja, atau arahkan mouse ke atasnya, untuk waktu persisnya). Jika sudah lama tidak ada pesanan, meja mendapat bingkai oranye: saatnya menghampiri. Jumlah menitnya diatur di Pengaturan → Usaha → Waktu meja (default 20, 0 = tanpa bingkai oranye). Jika belum ada yang dimasukkan, waktu dihitung sejak meja dibuka.
Jika ada beberapa grup (tagihan terpisah) di satu meja, ada satu baris per grup, mis. G1 ⏱ 50m · 12m dan Jansen ⏱ 10m (nama grup, atau nomor grup). Grup yang terlalu lama tidak memesan mendapat label oranye dan mejanya bingkai oranye.
Pindahkan seluruh meja
Di layar pesanan ada Pindahkan meja. Pilih ruangan (mis. Teras) dan meja: semua grup di meja itu ikut pindah, masing-masing dengan tagihannya sendiri. Jika Anda memilih meja yang terisi, meja-meja digabungkan (grupnya ditambahkan). Jika hanya ingin memindahkan sebagian, gunakan seperti biasa Pisah / pindahkan. Jika semuanya harus dalam satu tagihan, gunakan Gabungkan.
Tetap bekerja offline (tablet tanpa Wi-Fi)
Jika koneksi antara tablet dan server kasir terputus (Wi-Fi di teras, server sebentar mati), muncul bilah kuning dan tablet tetap berjalan dengan meja, produk, dan pesanan terbuka yang terakhir disimpan:
- membuka meja, memasukkan produk, dan Pesan disimpan di tablet (juga jika tablet dimulai ulang) dan muncul di daftar pesanan dengan bingkai putus-putus ("belum terkirim");
- begitu koneksi kembali, semuanya dikirim berurutan ke server dan baru setelah itu struk pesanan dikirim ke dapur. Setiap paket punya kunci, jadi tidak ada yang masuk dua kali. Jika orang lain sudah membuka meja itu sementara, produknya ditambahkan ke pesanan tersebut;
- pembayaran, diskon, pisah tagihan, dan sejenisnya hanya bisa dengan koneksi; "Bayar" menunggu sampai semua dari meja itu terkirim.
Jumlah tamu
Opsional dan default nonaktif: Pengaturan → Usaha → Pemesanan dan pembayaran → Catat jumlah orang. Nonaktif = ketukan sesedikit mungkin: meja kosong terbuka dengan satu ketukan, jumlah orang tidak tampil di mana pun, dan laporan, dasbor, serta ringkasan harian tidak menampilkan tamu dan belanja per tamu.
Aktif: saat Anda mengetuk meja kosong, kasir menanyakan berapa orang (tombol besar 1-8, atau ketik; "Lewati" = 1). Di denah, meja yang terisi menampilkan "3/4 org" (orang/kursi, kuning jika yang duduk lebih banyak dari kursi). Di layar pesanan Anda mengubahnya dengan tombol "3 org" di bilah grup; dengan beberapa grup, meja menjumlahkan semua grup.
Tanpa jumlah orang semuanya tetap berfungsi: Bagi rata saat pembayaran dimulai dari 2, all-you-can-eat menanyakan sendiri jumlah dewasa dan anak-anak, dan reservasi serta daftar tunggu menyimpan jumlah orangnya sendiri (meja lalu dibuka tanpa jumlah orang).
Pencatatan HACCP
Setiap usaha horeca harus memantau dan mencatat keamanan pangan: di Belanda sesuai Hygiënecode voor de Horeca (diawasi oleh NVWA), di Belgia sesuai autokontrol FAVV (panduan G-023). Aktifkan Pencatatan HACCP di Pengaturan → Hukum dan peraturan (default nonaktif).
- Titik ukur (admin): mis. ruang pendingin, freezer, penghangat, suhu inti setelah pemanasan, pendinginan kembali, dan penerimaan barang, dengan minimum dan/atau maksimum dalam °C serta seberapa sering (setiap hari, dua kali sehari, setiap minggu, atau saat digunakan). Tambahkan daftar standar memberi titik awal (pendingin hingga 7 °C, di Belgia hingga 4 °C; freezer hingga -18 °C; penghangat mulai 60 °C; pemanasan mulai 75 °C).
- Kebersihan dan pemeriksaan: tugas per hari, minggu (bisa pada hari tetap), atau bulan, dengan ruangan dan instruksi, mis. disinfeksi talenan, filter lemak, pemeriksaan hama, pemeriksaan termometer.
- Mencatat (semua yang sudah masuk): tombol HACCP di bilah atas, dengan jumlah yang masih terbuka hari ini. Isi suhu atau centang tugas (Selesai atau Tidak berhasil). Jika suhu di luar batas, wajib disertai tindakan korektif (mis. "pintu ditutup, produk dibuang"). Catatan tidak dapat diubah; kesalahan diperbaiki dengan catatan baru.
- Ikhtisar (hak Omzet per periode): per periode semua catatan, jumlah penyimpangan, dan catatan yang terlewat per hari; sebagai CSV (Excel) atau untuk dicetak / disimpan sebagai PDF untuk pemeriksaan.
Sistem tap dan flowmeter
Setiap tuangan yang dilaporkan komputer tap atau flowmeter masuk ke tagihan, sehingga tidak ada yang "bocor". Aktifkan di Pengaturan → Sistem tap (bawaan mati).
- Sumber (admin): komputer tap atau sistem flowmeter. Pilih merek; kasir mengisi pengaturan awal. Dari Belanda dan Belgia: Van Duijnen Horeca (otomatisasi tap, Dashbar), Beconet (Multi-Tap), TapSystems, Horecatechniek Nederland, Heineken SmartDispense, WeissBeerger / AB InBev dan BarTrack; selain itu Gruber, Addimat, WMF / Hogatron (E-Protokoll), Drinkotec (ex-Hartec), , Berg, Easybar, Azbar, Scanabar, PourMyBeer, iPourIt, BeerBoard, US BeerSAVER, Bevchek, Capton/BarVision, Kegtron, Kegbot Kegboard, "keran pintar", atau sistem sendiri. Ada lima cara menghubungkan (Kegboard: lihat Tap terukur dan Kegboard di bawah):
- Kolom:
kraan(atautap,plu),ml(ataucl,liter,volumedenganeenheid) atauporties,id(tuangan yang sama dua kali = dicatat sekali),tijdstip,tafel,bediening; satu tuangan, daftar, atau{ "taps": [...] }. - Jaringan (TCP): kasir terhubung ke komputer tap (alamat dan port) atau mendengarkan sendiri pada sebuah port.
- Port serial: port COM atau USB-serial, 1200–115200 baud, 8N1, 7E1 atau 7O1.
- Untuk jaringan dan serial, Anda mengatur format pesan (satu pesan per baris, atau STX … ETX dengan cek XOR opsional dan balasan ACK/NAK) dan pola pesan, dengan bagian
kraanataupludan jika perluml,cl,liter,porties,tafel,bedieningdanid(mis.kraan;mlatau hanya PLU per gelas). Pemasok hanya memberikan format persisnya kepada instalatur; tanyakan kepada pemasok komputer tap. Tuangan tes mengirim tuangan seperti yang dilakukan komputer tap.
- Kolom:
- Keran (admin): per keran atau PLU, produk dan cara masuk ke tagihan: per gelas (gelas dalam ml; tuangan 520 ml dengan gelas 250 ml = 2 gelas; mulai 50% dihitung satu gelas) atau per liter (harga produk adalah harga per liter; di tagihan mis. "Pils 0,33 l" dengan jumlah yang tepat).
- Di tagihan: jika komputer tap melaporkan meja, tuangan langsung masuk ke pesanan terbuka meja itu. Jika tidak, tuangan muncul di Dituang: di layar pesanan muncul bilah "… kali dituang tanpa tagihan"; pilih tuangan dan ketuk Ke tagihan ini. Baris langsung berstatus dipesan (tidak ada lagi tiket kerja ke bar) dan stok dikurangi. Tombol Dituang di bilah atas menampilkan semua yang belum punya tagihan.
- Tolak (hak Batal): pembilasan, pecah, mencicipi, staf, gratis atau lainnya (dengan keterangan); ini dicatat di log. Terlalu sedikit untuk satu gelas (mis. pembilasan) harus ditolak.
- Ringkasan (hak Omzet per periode): per keran dituang, di tagihan, ditolak (per alasan), dibatalkan dan masih terbuka, dalam liter, dengan persentase yang terjual, dan sebagai CSV.
- Tuangan yang dilaporkan tidak dapat diubah (hanya diproses).
Tap terukur dan Kegboard
Dengan tap terukur, keran baru terbuka setelah gelas diinput di kasir, dan hanya untuk jumlah itu. Jadi tidak ada yang dituang tanpa tercatat di nota. Ini hanya berfungsi jika sistem tap aktif, dan kamu mengaktifkannya per keran (bawaan: nonaktif).
- Per keran (admin, Pengaturan → Sistem tap → Keran): centang Tap terukur dan pilih berapa lama keran boleh terbuka setelah diinput (10–600 detik, bawaan 120). Pada Kegboard, isi juga relai (katup solenoid). Tap terukur hanya bisa per gelas.
- Input: saat Pesan (atau langsung Bayar), kasir membuat pembukaan untuk tiap baris nota dengan produk itu (jumlah gelas × gelas dalam ml) dan mengirimnya ke komputer tap. Tuangan yang masuk setelahnya milik baris nota itu. Jadi tidak masuk lagi ke nota dan juga tidak ke Dituang. Tuangan tanpa pembukaan masuk biasa ke Dituang.
- Batal baris sebelum dituang: keran menutup lagi. Pembukaan yang tidak dituang tepat waktu akan kedaluwarsa; keran tidak pernah terbuka belakangan.
- Pembukaan di layar pesanan (bilah di atas nota): lihat yang sedang berjalan, Berhenti, dan Buka lagi. Buka lagi hanya bisa jika belum ada yang dituang, jadi tidak pernah ada pembukaan berlebih. Tes buka (admin) membuka satu gelas tanpa nota; ini tercatat di log.
- Bagaimana pembukaan sampai ke komputer tap:
- Kegboard (Kegbot, open source, ESP32 dengan flowmeter dan katup solenoid; protokol sepenuhnya terbuka): kasir memberikan grant untuk keran dengan produk itu, relai, dan jumlahnya. Papan menutup keran sendiri jika jumlah tercapai atau waktu habis.
- Jaringan/serial: perintah buka yang dapat diatur dengan
{kraan},{ml},{porties},{sec}dan{id}(mis.V{kraan};{ml}), dikirim dalam format pesan sumber (baris atau STX … ETX dengan XOR). Opsional ada perintah berhenti. Perintah persisnya diberikan pemasok.
- Menautkan Kegboard: di + Sumber, pilih merek Kegbot Kegboard. Papan akan melapor ke sumber; klik Izinkan (atau Tolak). Papan lalu menerima kunci sendiri satu kali, yang hanya disimpan kasir sebagai hash. Perangkat lain atau kunci yang salah tidak mengubah apa pun pada papan yang sudah tertaut; jika papan kehilangan kuncinya, gunakan dulu Putuskan. Sumber menampilkan firmware, meter, dan relai papan. Keran adalah nomor meter (0, 1 …). Kartu yang ditempelkan di papan ditolak: pembayaran dilakukan di kasir. Jika sistem tap mati, papan menyimpan pesannya dan mengirimnya nanti.
- Di sumber, atur setelah berapa detik tanpa aliran keran menutup (5–300, bawaan 30). Untuk setiap keran, isi nomor meter, relai (katup solenoid), dan berapa lama keran boleh terbuka setelah item dimasukkan di kasir.
Kontrol musik dari kasir
Staf mengontrol musik dari layar sentuh kasir, jadi tidak perlu layar terpisah di bar. Aktifkan di Pengaturan → Usaha → Layar dan pengoperasian → Kontrol musik dari kasir (default nonaktif). Lalu tombol Musik ada di bilah atas: per sumber (mis. Bar dan Teras) Putar, Jeda, Berikutnya, Sebelumnya, Lebih keras, Lebih pelan, dan penggeser volume, beserta yang sedang diputar. Kembali ke kasir menutup panel. Saat dinonaktifkan, sumber tetap tersimpan.
- Playlist (Sonos, Bluesound, dan VLC): antrean dengan yang sedang diputar. Ketuk lagu untuk memutarnya; dengan Atur Anda menghapus lagu (✕), memindahkannya ke atas atau ke bawah (↑ ↓; Sonos dan Bluesound), atau mengosongkan playlist. Dengan Pilih musik lain Anda memutar favorit Sonos (mis. stasiun radio atau saluran Tunify) atau daftar putar Sonos, atau preset BluOS.
- Di layar terpisah: kontrol yang sama dan playlist besar di
http://<kassaserver>:3000/muziek, mis. di monitor kedua di samping kasir atau tablet di bar (jika sudah masuk di perangkat yang sama, jika tidak dengan PIN). - Di tablet atau ponsel: kode QR dengan alamat layar terpisah itu di jaringan usaha. Karyawan memindainya dengan tablet atau ponselnya sendiri (di jaringan wifi usaha) dan masuk dengan PIN-nya sendiri; dengan Keluar layar ditutup kembali. Lihat Layar kedua di tablet atau ponsel.
Admin menambahkan sumber dengan + Sumber musik, memilih cara terhubungnya, dan mengujinya dengan Tes:
- Soundtrack (soundtrack.io): lewat API publik, dengan token API (diminta dari Soundtrack) dan zona suara (Muat zona). Putar, jeda, berikutnya, volume, dan yang sedang diputar.
- Sonos: alamat IP speaker (untuk grup: speaker yang memimpin grup). Berfungsi dengan semua yang diputar di Sonos, mis. Tunify, Spotify, atau radio.
- Bluesound (BluOS): alamat IP pemutar; juga berfungsi dengan semua yang diputar di sana, mis. Tunify.
- VLC di komputer musik: aktifkan antarmuka web (Alat → Preferensi → Tampilkan pengaturan: Semua → Antarmuka → Antarmuka utama: Web, dengan kata sandi di Lua); alamat IP (jika perlu dengan
:poort, default 8080) dan kata sandi. - Komputer musik sendiri (alamat web): untuk komputer atau kotak musik dengan alamat web per tombol; GET atau POST, dan
{volume}(0-100) di alamat untuk volume. Tanpa alamat Lebih keras/Lebih pelan, kasir mengatur volume per langkah. - Pemutar web dari paket musik: alamat web pemutar web atau halaman kontrol (mis. pemutar web Tunify atau Media Tools) terbuka di kasir lewat tombol Musik; jika layanan tidak boleh tampil di halaman lain, gunakan Buka di jendela terpisah.
Kasir berkomunikasi dengan pemutar dari server, jadi pemutar harus berada di jaringan yang sama dengan kasir (Soundtrack lewat internet). Semua yang sudah masuk boleh mengontrol; untuk mengatur diperlukan hak Atur usaha, pembayaran, dan printer. Token dan kata sandi tidak pernah tampil di layar maupun di log; log hanya mencatat pengaturan (aktif/nonaktif, sumber), bukan setiap tombol. Ekspor konfigurasi hanya membawa aktif/nonaktif (sumber milik satu usaha).
Layar kedua di tablet atau ponsel
Musik dan kamera juga bisa dibuka di tablet atau ponsel milik karyawan, sebagai layar kedua di samping kasir. Di jendela Musik atau Kamera ada tombol Di tablet atau ponsel: tombol ini menampilkan kode QR dengan alamatnya, mis. http://192.168.1.20:3000/muziek atau .../camera.
- Hubungkan tablet atau ponsel ke jaringan wifi usaha.
- Pindai kode QR dengan kamera (atau ketik alamatnya di browser).
- Masuk dengan PIN Anda sendiri. Anda hanya melihat yang diizinkan: musik untuk semua orang, kamera hanya dengan hak Lihat gambar kamera.
- Selesai: Keluar di kanan atas. Jika sesi sudah kedaluwarsa (mis. tablet tidak dipakai semalaman), layar akan meminta PIN lagi.
Tips: tambahkan halaman ke layar utama tablet (di browser: Tambahkan ke layar utama), maka halaman terbuka seperti aplikasi.
Karena itu kasir mencari alamat IP PC kasir di jaringan (jika PC punya lebih dari satu, mis. wifi dan kabel, Anda memilih jaringannya). Di portal manajemen (kasir jarak jauh) ini adalah alamat portal. Kode QR dibuat oleh kasir sendiri, tanpa internet.
Memasangkan tablet: dengan satu tombol ke tablet (opsional)
Lebih mudah lagi: pasangkan tablet satu kali, lalu kasir mengirim musik atau kamera ke tablet itu dengan satu tombol. Aktifkan di Pengaturan → Usaha → Layar dan pengoperasian → Tablet sebagai layar kedua (standar nonaktif).
- Di tablet: buka
http://<kassaserver>:3000/tablet(di pengaturan ada Di tablet atau ponsel dengan kode QR), masuk dengan PIN dan beri nama tablet, mis. Tablet Bar. Pasangkan. - Di kasir: di jendela Musik atau Kamera kini ada tombol Ke Tablet Bar (dengan titik hijau jika tablet menyala). Ketuk: tablet membuka layar itu secara otomatis. Untuk musik, sumber yang dipilih ikut terkirim (mis. Teras).
- Di tablet: Tutup kembali ke mode menunggu; Putuskan tablet ini menghapus pasangan.
Biarkan halaman di tablet tetap terbuka; jika tablet mati atau tidur, tablet akan membuka layar begitu menyala lagi. Tablet tetap masuk sebagai karyawan yang masuk di sana: mengirim dan melihat kamera hanya bisa dengan hak Lihat gambar kamera. Admin melihat di pengaturan tablet mana yang dipasangkan dan apakah menyala, dan dapat mengganti nama atau menghapusnya. Tablet menyimpan kuncinya sendiri; kasir hanya menyimpan hash-nya. Saat dinonaktifkan, tablet yang dipasangkan tetap tersimpan. Di log tercatat siapa yang memasangkan, mengganti nama, atau menghapus tablet.
Layar panggilan untuk bawa pulang
Layar untuk tamu dengan Sedang disiapkan di kiri dan Siap di kanan, dengan nomor besar, seperti di snack bar atau restoran cepat saji. Aktifkan di Pengaturan → Usaha → Layar dan pengoperasian → Layar panggilan untuk bawa pulang (default nonaktif).
Tidak perlu menghubungkan: buka alamat kasir dengan /oproep di TV dengan browser (smart TV, stick, atau mini PC), tablet, atau monitor kedua, mis. http://192.168.1.20:3000/oproep. Di pengaturan dan di jendela Panggil ada tombol Di layar terpisah dan Di tablet atau ponsel (kode QR dengan alamatnya). Tidak perlu masuk: layar hanya menampilkan nomor. Ketuk layar sekali, maka browser boleh memutar suara.
Yang tampil:
- pesanan bawa pulang dari kasir, toko online, dan Thuisbezorgd (dan jika diinginkan juga pesanan di konter tanpa meja, pada penjualan cepat), dari 12 jam terakhir;
- begitu sesuatu dikirim ke dapur atau bar (atau toko online berstatus sedang disiapkan): nomornya tampil di Sedang disiapkan;
- Siap terjadi otomatis saat layar dapur menandai seluruh pesanan siap atau pesanan toko online berstatus siap. Nomornya berkedip sebentar dan layar berbunyi ding-dong;
- nomor yang siap tetap tampil selama jumlah menit yang diatur (default 10), atau sampai Sudah diambil;
- pesanan dari kios (lihat Kios swalayan) selalu tampil begitu sudah dibayar atau akan dibayar di kasir, juga untuk "makan di sini", dengan nomor pengambilan dari struk mereka;
- opsional juga pesanan untuk kurir Thuisbezorgd, Uber Eats, Deliveroo dan HubRise (centang Juga pesanan untuk kurir …): dengan nomor pesanan platform dan nama platform di bawahnya, agar kurir melihat kapan pesanannya siap. Sudah diambil lalu juga memberi tahu platform bahwa kurir sudah mengambilnya (seperti di jendela platform).
Nomornya: untuk webshop, Thuisbezorgd dan platform pengantaran, nomor pesanan yang sudah dimiliki tamu atau kurir; jika tidak, nomor pengambilan (1 sampai 999). Nomor ini dicetak besar di struk, dengan keterangan bahwa nomor akan muncul di layar saat pesanan siap (dalam bahasa struk).
Opsional (default nonaktif, di pengaturan):
- Umumkan nomor dengan suara: untuk nomor baru yang siap, layar mengucapkan mis. "Nummer 42…" dalam bahasa yang dipilih (Belanda, Inggris, Jerman, Prancis, Spanyol, Italia, Portugis, Polandia, Turki, atau Arab). Suara berasal dari browser layar dan terdengar berbeda di tiap perangkat; ketuk layar sekali setelah membukanya. Setelah bunyi bel, jika suara juga aktif.
- Status pesanan di ponsel: kode QR muncul di bawah nomor pengambilan pada struk. Tamu memindainya, melihat nomornya dan statusnya (dipesan, sedang disiapkan, siap, diambil) dan mendapat notifikasi saat pesanan siap. Ini berjalan melalui portal manajemen, jadi kasir harus terhubung ke portal. Tidak untuk toko online dan Thuisbezorgd (punya status sendiri) dan tidak untuk kios (punya pengaturan sendiri).
Di kasir ada tombol Panggil (dengan jumlah yang masih disiapkan):
- Siap menandai nomor siap secara manual (tanpa layar dapur, atau jika lebih cepat). Untuk pesanan dari toko online atau Thuisbezorgd statusnya ikut berubah, sehingga tamu juga mendapat pemberitahuan.
- Kembali mengembalikannya ke Sedang disiapkan.
- Sudah diambil menghapusnya dari layar (dengan Urungkan).
Di pengaturan kamu juga memilih apakah nama depan tampil di samping nomor (default tidak, demi privasi) dan apakah layar berbunyi. Menonaktifkan: tidak ada tombol Panggil dan tidak ada nomor ambil di struk; pengaturan tetap tersimpan. Di log tercatat siapa yang secara manual menandai siap, mengembalikan, atau menandai sudah diambil.
Absen masuk dan keluar
Secara default absensi nonaktif: tidak terlihat di mana pun di kasir (tidak ada tombol di bilah atas, tidak di layar masuk, tidak ada tab Jam kerja). Aktifkan lewat Pengaturan → Usaha, di bagian Absen masuk dan keluar karyawan:
- Nonaktif: tidak digunakan. Jika nanti Anda menonaktifkan absen, fitur ini tidak terlihat lagi di mana pun, tetapi jam yang sudah tercatat tetap tersimpan (tidak ada yang dihapus); jika diaktifkan lagi, jam tersebut muncul kembali.
- Aktif: karyawan bisa absen masuk dan keluar. Setelah masuk, kasir menanyakan apakah Anda ingin absen masuk (Nanti saja boleh). Di bilah atas lalu muncul Absen masuk atau Sudah absen 17:02; ketuk untuk absen keluar.
- Wajib: setelah masuk, absen masuk dulu, jika tidak kasir tidak bisa dipakai. Absen keluar langsung mengeluarkan Anda.
Yang tidak memakai kasir (mis. dapur) absen di layar masuk: ketuk Absen masuk / keluar dan masukkan PIN Anda. Ini bergantian antara masuk dan keluar, tanpa masuk ke kasir.
Jika absensi aktif, administrator melihat di Pengaturan → Jam kerja:
- siapa yang sedang absen masuk (dan bisa mengabsen keluar orang yang lupa);
- jam kerja per karyawan per periode, dengan semua shift, dan unduhan CSV (jam juga dalam angka desimal untuk penggajian);
- ubah atau tambah shift (ketuk sebuah shift, atau + Tambah shift). Setiap perubahan tercatat di log dengan jam lama dan baru.
Di Belgia setiap absen masuk dan keluar juga dilaporkan ke kotak hitam. Jika kotak hitam tidak bisa dihubungi, absen tidak diproses (sama seperti pembayaran). Apakah ini sepenuhnya memenuhi aturan pencatatan karyawan di Belgia masih harus dikonfirmasi.
Penimbangan dan label (timbangan)
Jika timbangan aktif (Pengaturan → Timbangan), produk bisa punya harga per kilo. Semua produk lain tetap per item.
- Menimbang: ketuk produk dengan harga per kilo (tombolnya menampilkan mis.
12,95/kg). Jendela Menimbang menampilkan berat dari timbangan secara langsung (mis. Aclas OS6X, atau timbangan tempat kasir itu sendiri berjalan); hijau = stabil. Letakkan produk di timbangan dan ketuk Tambah begitu beratnya stabil. Harganya adalah harga per kilo × berat (dibulatkan ke sen); wadah (tara) produk otomatis dikurangi. Jika produk punya opsi pilihan, opsi itu muncul setelahnya. - Beberapa timbangan: jika ada lebih dari satu timbangan, pilih di bagian atas jendela timbangan mana yang dipakai. Setiap kasir/tablet mengingat pilihannya.
- Manual: tidak ada timbangan (atau boleh manual)? Ketik beratnya:
0,512atau1,2adalah kilo,512atau512 gadalah gram. - Label dari TS6X: pindai barcode label dengan pemindai barcode di layar pesanan (cukup pindai, tidak perlu membuka apa pun), atau ketuk Label lalu pindai atau ketik 13 digitnya. Produk (PLU) dan beratnya diambil dari label. Jika ada harga di label, kasir memakai harga itu persis.
- Di layar, struk kasir, dan layar pelanggan beratnya ikut ditampilkan, mis.
Daging giling 6,63dengan di bawahnya0,512 kg x € 12,95/kg; di struk pesanan0,512 kg Daging giling. Pisah, pindah, dan retur dihitung dalam kilo. - Produk yang ditimbang hanya bisa dengan koneksi ke server kasir (beratnya datang lewat server kasir).
Uber Eats, Deliveroo, dan HubRise
Selain Thuisbezorgd.nl / Takeaway.com, pesanan dari Uber Eats (Belanda dan Belgia), Deliveroo (hanya Belgia; Deliveroo keluar dari Belanda pada akhir 2022), dan semua yang ada di HubRise (antara lain Uber Eats, Deliveroo, Just Eat/Takeaway.com, dan aplikasi pesan yang lebih kecil) juga masuk ke kasir. Setiap platform diaktifkan terpisah di Pengaturan → Platform pengantaran (standarnya nonaktif, menonaktifkannya tetap menyimpan semuanya). Tab ini menunjukkan per platform di negara mana platform itu beroperasi dan memberi peringatan jika tidak beroperasi di negara usaha.
- Aktifkan, lalu Masuk ke Uber Eats dan hubungkan toko (usaha masuk dengan akun Uber Eats-nya sendiri). Jika akun memiliki beberapa toko, isi ID toko (store id) lalu masuk lagi. Untuk itu Uber Eats harus terlebih dahulu menyetujui Pin Voordeel sebagai mitra.
- Deliveroo: langsung, melalui portal. Isi ID situs (location id) dan ID merek (brand id). Tanpa tablet (bawaan): kasir menerima atau menolak; dengan tablet: usaha menerima di tablet dan portal hanya melaporkan apakah pesanan sudah ada di kasir.
- HubRise: kasir mengambil pesanan sendiri (setiap 20 detik, tanpa portal).
- Per platform: terima otomatis, tiket dapur langsung ke dapur/bar, dan (Uber Eats, Deliveroo) kirim menu otomatis setelah ada perubahan serta Kirim menu sekarang. Menu berisi produk yang dicentang di Produk di menu Uber Eats dan Deliveroo, beserta pilihan opsinya; status habis ikut terkirim.
Pesanan. Pesanan menjadi pesanan biasa (bezorgen atau afhalen, nama grup <platform> <nummer>) dengan harga platform: produk dikenali dari ID (dari menu), kode, atau nomor PLU; tidak dikenal = baris terpisah dengan harga platform (dan pemberitahuan); ongkos kirim, biaya tambahan, dan diskon sebagai baris tersendiri; jika totalnya tetap tidak cocok, ditambahkan baris "Selisih". Tiket dapur langsung ke dapur/bar. Tombol Platform di bilah atas (dengan jumlah pesanan berjalan; oranye jika ada yang perlu diterima): terima atau tolak (dengan alasan), sedang disiapkan, siap, dalam perjalanan, sudah diantar atau sudah diambil, batalkan, dan Selesaikan (dibayar online). Apa yang dikenal platform dikirim balik (Uber Eats: terima, tolak, batalkan; Deliveroo: terima, tolak, sedang disiapkan, siap, sudah diambil; HubRise: semua status). Jika usaha mengantar sendiri (antar sendiri), pesanan juga ada di Rit, dan keberangkatan serta pengantaran otomatis dilaporkan ke platform. Pembatalan dari platform membuat pesanan kedaluwarsa. Jika kasir lebih dari 2 menit tidak terhubung ke portal, portal menolak pesanan baru dari Uber Eats dan memberi tahu Deliveroo (dengan tablet) bahwa pesanan gagal, sehingga usaha melihatnya di tablet.
Kode: apps/pos-server/src/lib/bezorgplatforms.ts, routes/bezorgplatforms.ts; layar Bezorgplatforms.tsx. Sisi portal: horecapos-portaal/src/platforms.mjs. Log: Platform pengantaran (aktif/nonaktif, pengaturan, pesanan). Semuanya ikut dalam cadangan kasir.
Platform yang lebih kecil di Belanda dan Belgia (Homie, Hebtrek, sneleten.nl, Bistroo ...) tidak memiliki integrasi kasir publik; jika ada di HubRise, platform itu bekerja melalui HubRise. Selebihnya: lihat backlog.
Mesin kas otomatis (sistem kas tertutup)
Standar nonaktif: tunai berfungsi seperti biasa. Dengan sistem kas tertutup, staf tidak menyentuh uang tunai: pelanggan atau staf memasukkan uang ke mesin, yang menghitung, memeriksa uang palsu, dan memberikan kembalian.
- Mesin yang berkomunikasi langsung dengan kasir:
- CashDro (3, 4+, 5, 7, S Compact; NuKassa, KluisKassa): melalui jaringan (web service). Aktifkan Web Integration di CashDro dan buat pengguna khusus untuk kasir.
- Cashmatic (SelfPay 460/860/1060; di Belgia Xpos): melalui jaringan (port 50301) dengan pengguna Cashmatic.
- Azkoyen Cashlogy (POS1000, POS1500): melalui CashlogyConnector di PC Windows dekat mesin (port 8092).
- CashKeeper: melalui CKMonitor di PC Windows (port 16501).
- Glory CASHINFINITY (CI-5, CI-10, CI-10X; juga melalui Cikam): melalui pengendali (FCC) mesin. Masih beta: minta Glory atau dealer Anda memeriksa koneksi pertama.
- Eksternal: perangkat lunak lain mengendalikan mesin dan berkomunikasi dengan kasir (seperti Cikam, ImaCash untuk 25 merek, perangkat lunak CashGuard/StrongPoint (Merlin), PayComplete (SUZOHAPP), Gunnebo SafePay, atau merek Prancis seperti CashMag).
- Mesin uji coba: tanpa perangkat keras, untuk berlatih atau demonstrasi. Dengan Tes koneksi Anda memeriksa alamat dan login. Tempatkan mesin di jaringan sendiri (jangan pernah terbuka ke internet) dan gunakan pengguna khusus untuk kasir, bukan administrator.
- Bayar dengan Tunai: Bayar di mesin kas otomatis memulai pembayaran untuk jumlahnya (dibulatkan tunai jika aktif, ditambah tip; saat membagi tagihan, bagiannya). Layar menampilkan apa yang dimasukkan dan apa yang dikembalikan; kasir baru menyelesaikan pembayaran setelah mesin melaporkan selesai. Batal = mesin mengembalikan uangnya. Jika mesin tidak dapat memberikan seluruh kembalian (koin kurang), ditampilkan berapa yang harus diambil dari laci kas. Pembayaran berhasil yang belum diselesaikan (mis. tablet mati) akan ditemukan kembali pada pesanan tersebut.
- Tunai hanya melalui mesin (standar aktif): server kasir hanya menerima tunai jika ada pembayaran berhasil di mesin untuk pesanan dan jumlah yang persis sama. Nonaktif = tunai biasa ke laci juga boleh.
- Laci kas (Laporan → Kas, hak akses Kelola laci kas): Lihat isi (per koin dan uang kertas, pada Cashmatic, Cashlogy, Glory, dan mesin uji coba), Keluarkan uang dengan alasan (mis. uang kembalian untuk laci), Mengisi dan Ambil kelebihan (kembalian tetap; pada Cashmatic). Seharusnya di laci kas tidak menghitung uang di mesin (itu tercantum terpisah di bawahnya: Di mesin kas otomatis), tetapi menghitung kembalian yang harus diambil dari laci.
Tombol ©
Di kanan bawah setiap layar (PIN, denah, pemesanan, dan dapur) ada tombol kecil ©. Tombol ini membuka data OptimumPOS: logo, alamat, telepon, email, dan situs web. Ikonnya tersimpan lokal di aplikasi, jadi juga berfungsi tanpa internet. Ikon yang sama adalah ikon aplikasi (tab dan layar utama).
Bagian 2 · Manajer
Mulai
Secara default manajer bisa melakukan semua yang bisa dilakukan pelayan, dan juga antara lain memberi diskon, memproses retur, menutup hari, mengelola laci kas, serta melihat log dan stok. Sebagian besar ada di tombol Laporan:
- Laporan sementara (X): omzet sejauh ini, tanpa menutup hari.
- Laci kas: modal awal, uang masuk/keluar, dan membuka laci.
- Tutup hari (Z): di akhir hari; setelah itu hari baru dimulai.
- Laporan Z sebelumnya, Omzet per periode, dan Dasbor.
- Log, Kartu hadiah, dan Pelanggan.
Stok
Secara default nonaktif. Aktifkan lewat Pengaturan → Usaha → Catat stok. Nonaktif = tidak terlihat di mana pun di kasir.
- Untuk setiap produk Anda memilih di Pengaturan → Produk → (produk) → Stok:
- Tidak: seperti biasa;
- Per produk: setiap penjualan mengurangi 1 (mis. botol, kaleng), dengan batas peringatan untuk "hampir habis";
- Lewat bahan: sebuah resep, mis. hamburger = 1 roti + 150 g daging + 1 lembar keju. Setiap penjualan mengurangi bahan-bahannya.
- Pengaturan → Stok (hak akses Kelola stok, default manajer dan administrator):
- Produk dan Bahan: jumlah stok, dengan habis / hampir habis; filter "hanya yang (hampir) habis" dan ekspor ke CSV.
- Untuk setiap produk atau bahan Anda mencatat Penerimaan (+) (pengiriman), Hitung (=) (jumlah hitungan menjadi stok baru), atau Hapus buku (−) (pecah, kedaluwarsa; alasan wajib).
- Buat bahan dengan satuan (pcs, g, kg, ml, cl, l, porsi, botol, tong) dan batas peringatan.
- Riwayat: semua mutasi (penjualan, pembatalan, penerimaan, hitung, hapus buku) dengan siapa dan kapan. Tindakan manajemen juga tercatat di log.
- Stok dikurangi saat Pesan (atau saat pembayaran untuk yang langsung dibayar). Pembatalan menambahkannya kembali. Pisah dan pindah tidak dihitung dua kali. Pada menu, yang dikurangi adalah hidangannya, bukan baris menunya. Retur (nota kredit) tidak menambah stok kembali (barang yang dikembalikan biasanya tidak bisa dijual lagi); catat sebagai penerimaan jika perlu.
- Jika stok habis (atau bahan tidak cukup untuk satu kali lagi), produk otomatis ditandai terjual habis di semua kasir. Jika hampir habis, tombol produk menampilkan sisa N. Setelah penerimaan atau hitung, produk langsung bisa dipesan lagi. Server kasir juga menolak produk itu ("Pils" habis (stok 0)), jadi juga dari tablet yang belum mengetahuinya.
- Stok boleh di bawah 0 (mis. dua tablet bersamaan, atau dipesan offline); penghitungan akan membetulkannya.
- Daftar pesanan: Pengaturan → Stok → Daftar pesanan. Untuk setiap produk (per produk) dan setiap bahan, selain batas peringatan Anda juga mengatur isi ulang sampai dan pemasok. Daftar pesanan menampilkan semua yang berada di atau di bawah batas peringatan (tanpa batas peringatan: di 0), per pemasok, dengan usulan isi ulang sampai − stok. Jumlah bisa diubah dan dicentang/tidak. Lalu Cetak (printer struk), Salin (untuk email atau WhatsApp), Ekspor (CSV), dan setelah pengiriman Diterima: catat sebagai penerimaan (mencatat semuanya sekaligus). Dengan centang di bagian atas Anda juga melihat yang belum habis, untuk memesan tambahan.
- Opsi pilihan: di grup pilihan (Pengaturan → Produk → Opsi pilihan) ada tombol Stok. Masukkan bahan per item untuk setiap pilihan, mis. Ekstra keju = 1 lembar keju, Kentang goreng = 150 g kentang goreng. Jika pilihan itu dipilih, bahan-bahannya dikurangi per item (juga jika produk itu sendiri tidak mencatat stok; saat pembatalan bahan dikembalikan). Jika bahan habis, pilihan itu tampil di kasir sebagai (habis) dan tidak bisa dipilih.
Pesan ke pemasok
Standar nonaktif. Aktifkan di Pengaturan → Stok → Pesan ke pemasok (hanya jika Catat stok aktif). Nonaktif = daftar pesanan berfungsi seperti biasa.
- Pemasok (tab Pemasok): pilih dari daftar atau buat pemasok sendiri. Daftar berisi grosir dan cash & carry (Sligro, Sligro-ISPC/Sligro-M, HANOS, Makro, De Kweker, Horeca Totaal, Van Zon, zegro, Lekkerland), foodservice (Bidfood dan Bidfood Belgium, Solucious, Chefs Culinar, Java, Q-Food, Agora Culinair, VHC Jongens/Kreko/Actifood, Hocras, Van Hoeckel ...), grosir minuman (De Klok, Henk Smit, Horesca, De Monnik, Hansen, Dranken Geers ...), pabrik bir dan minuman ringan (Heineken melalui Sligro, AB InBev/BEES, Alken-Maes, Haacht, Duvel Moortgat, Martens, Coca-Cola, Spadel, Grolsch, Bavaria), pemasok produk segar (Van Gelder, Driessen, FiliusKaas, Bakkers Brigade, Rungis ...), non-makanan (Bunzl, Takeaware, Supplierz), toko wine online Vinify.nl, dan platform pemesanan (Apicbase, Exact Horeko, Growzer, inOne, Cuisin.io, OrderXL). Hanya pemasok dari negara usaha yang tercantum. Jika Anda memilih satu, cara pemesanan, file, dan kolom sudah diatur dengan benar; di setiap pemasok tertulis cara memesan di sana.
- Per pemasok: nomor pelanggan, pesan melalui:
- E-mail: pesanan sebagai e-mail (dengan tabel) ke alamat e-mail pemesanan, opsional dengan salinan, dengan daftar pesanan sebagai lampiran: CSV, Excel, CSV untuk Care4Fresh (banyak grosir produk segar), UBL 2.1 Order (Peppol BIS Order), EANCOM ORDERS (D96A di Belanda, D01B/HO2C di Belgia), atau cXML. Balasan masuk ke alamat e-mail usaha.
- File: kasir membuat file, Anda mengunggahnya ke toko online pemasok (mis. Bunzl Snel bestellen:
artikel;aantal, Takeaware:SKU,Quantity). Pemisah, baris judul, dan kolom dapat diatur (artikel,ean,omschrijving,aantal,eenheid,prijs,totaal; denganartikel=SKUAnda memberi nama sendiri pada judul). - Koneksi (cXML): cXML OrderRequest dengan nomor pelanggan dan kunci rahasia bersama ke alamat pesanan pemasok, seperti yang dikirim sistem pembelian ke Sligro, HANOS, dan Bidfood. Alamat, nomor pelanggan, dan kunci rahasia Anda dapatkan dari pemasok (Sligro: koppelingen@sligro.nl). Kunci rahasia tidak pernah ditampilkan kembali di layar.
- Pada kedua koneksi juga dapat diisi nama pengguna dan kata sandi (Basic) serta header tambahan (satu per baris, mis.
X-Api-Key: ...). - Unggah (SFTP/FTPS): kasir sendiri menaruh file (EANCOM, UBL, CSV, Excel ...) di sebuah folder pada server pemasok, seperti cara banyak grosir menerima pesanan EDI. SFTP (SSH), FTPS (eksplisit pada port 21 atau implisit pada port 990) atau, hanya di jaringan sendiri, FTP. Masuk dengan kata sandi atau kunci SSH (OpenSSH, PEM atau PuTTY .ppk; ed25519, ECDSA atau RSA). Buat kunci membuat pasangan kunci di kasir; kunci publik Anda kirimkan ke pemasok. Tes koneksi masuk dan mencari folder. Sidik jari server SFTP dicatat pada koneksi pertama lalu diperiksa setelahnya (server lain tidak akan mendapat kata sandi); pada FTPS dengan sertifikat sendiri, Anda menetapkan sidik jari sertifikat. Tidak perlu perangkat lunak tambahan.
- Cetak: pesanan dicetak di printer struk, untuk disampaikan lewat telepon.
- Kata sandi, kunci, token, dan header tidak pernah ditampilkan kembali di layar (biarkan kosong = tetap, Hapus = dihapus).
- Ajukan koneksi: untuk seorang pemasok, kasir menyusun email permintaan koneksi (cXML, EDI melalui SFTP/FTPS, UBL/Peppol atau API milik pemasok) dengan data usaha (nama, alamat, nomor PPN, nomor pelanggan, GLN) dan apa yang dibutuhkan; untuk EDI disertai kunci publik. Sesuaikan lalu kirim; salinan dan balasan masuk ke alamat email usaha. Tanggal permintaan tercantum pada pemasok. Untuk Sligro permintaan dikirim ke koppelingen@sligro.nl, jika tidak, isi alamat manajer akun Anda.
- Pemasok sendiri (tidak dari daftar) dapat melakukan segalanya kecuali apa yang harus disediakan oleh pemasok itu sendiri: email, file, dan cetak selalu berfungsi; koneksi atau unggah hanya dengan data dari pemasok tersebut.
- Hari pesan dan pengiriman: hari pesan, batas waktu, waktu pengiriman (tanggal pengiriman yang diinginkan pada pesanan) dan jumlah pesanan minimum. Otomatis: pada hari pesan mulai jam tersebut kasir sendiri menyiapkan pesanan sebagai draf (Anda memeriksanya) atau langsung mengirimkannya (lewat email, unggah, atau koneksi; di bawah jumlah pesanan minimum hanya disiapkan sebagai draf). Sekali sehari per pemasok.
- Per produk (Pengaturan → Produk → (produk) → Stok, pada Per produk) dan per bahan: Pesan ke (pemasok), nomor pesanan di pemasok tersebut, EAN, per kemasan (krat isi 24 = 24), nama kemasan, dan harga beli per kemasan. Batas peringatan adalah saat untuk memesan; Isi hingga adalah berapa yang harus ada setelahnya.
- Pesanan pembelian (tab Pesanan pembelian):
- Usulan pesanan per pemasok: semua yang berada pada atau di bawah batas peringatan. Yang sudah dipesan dan belum datang (dalam perjalanan) ikut dihitung, sehingga Anda tidak memesan dua kali. Usulan = isi hingga − stok − dalam perjalanan (tanpa isi hingga: sampai batas peringatan), dibulatkan ke atas ke kemasan utuh. Sesuaikan jumlah lalu Buat pesanan.
- Pesanan awalnya disiapkan: jumlah, baris terpisah (tanpa produk, mis. serbet), catatan, dan tanggal pengiriman masih dapat diubah. Lalu Kirim (dengan cara pemasok atau kali ini dengan cara lain). Jika gagal (mis. pemasok menolak), alasannya ditampilkan dan Anda dapat mencoba lagi.
- Diterima: per baris jumlah yang diterima (sudah terisi jumlah yang dipesan); stok bertambah per kemasan (2 krat isi 24 = 48), dengan pesanan tercatat di riwayat.
- Setiap file (CSV, Excel, UBL, EANCOM, cXML) juga dapat diunduh terpisah.
- Terkirim, gagal, diterima, dan dibatalkan dicatat di log. Daftar pesanan biasa tetap berfungsi; jika suatu produk memiliki pemasok dari daftar, produk itu tampil di bawah nama pemasok tersebut.
Manajemen ulasan
Baca dan balas ulasan dari Google dan Trustpilot di kasir. Aktifkan di Pengaturan → Poin dan ulasan → Manajemen ulasan (standarnya nonaktif, dan saat itu tidak terlihat di mana pun). Baca dan balas di Laporan → Ulasan (hak Baca dan balas ulasan, secara default juga untuk manajer). Jika dimatikan, koneksi dan ulasan tetap disimpan.
- Setelah itu, setiap usaha cukup mengetuk Hubungkan dengan Google dan masuk dengan akun Google milik Profil Bisnis. Kunci Places juga bisa diatur terpusat (biayanya ditanggung pemasok). Trustpilot berlaku per usaha: setiap usaha memiliki akun Trustpilot Business sendiri (API termasuk dalam langganan berbayar), dan dari situ diperoleh kunci, rahasia, dan business user ID. Di kasir, setiap cara menampilkan "Siapa yang mengatur ini?".
- Aplikasi pemasok (lewat portal pelanggan): jika aplikasi Google dan/atau Trustpilot dari pemasok ada di portal pelanggan (lihat README horecapos-portaal, "Reviews: apps van de leverancier"), admin memilih Aplikasi pemasok di Masuk dan kunci (bawaan untuk koneksi baru jika portal memiliki aplikasinya). Usaha mengetuk Hubungkan dengan Google atau Masuk dengan Trustpilot dan masuk dengan akun sendiri; kasir sendiri menunggu sampai proses masuk selesai (setiap 3 detik, paling lama 15 menit) dan mengambil tokens sekali dari portal. Pembaruan juga lewat portal. Tidak perlu client-ID, secret, atau kunci API di kasir; untuk Trustpilot tetap perlu domain dan, untuk membalas, business user ID. Trustpilot publik lalu membaca lewat kunci portal. Memerlukan
PORTAAL_URLdanPORTAAL_SLEUTEL. Aplikasi sendiri atau kunci API tetap berfungsi seperti di bawah. - Milik siapa ulasannya: ulasan tetap ada di Google Business Profile dan halaman Trustpilot milik usaha sendiri, dan kasir hanya menyimpannya di database kasir sendiri. Balasan muncul atas nama usaha. Portal hanya meneruskan proses masuk (di memori, paling lama 15 menit, hanya bisa diambil sekali) dan tidak menyimpan ulasan atau tokens; nama aplikasi pemasok hanya ada di layar persetujuan.
- Daftar sendiri: di setiap platform ada tautan untuk membuat sendiri Google Business Profile (business.google.com/create) atau akun Trustpilot Business (business.trustpilot.com), dan untuk Trustpilot juga ke paket langganan (business.trustpilot.com/plans). Pendaftaran dan pembayaran dilakukan langsung di platform; tidak ada API untuk itu.
- Lalu Hubungkan dengan Google dan masuk dengan akun yang mengelola Business Profile. Satu lokasi di profil = langsung dipilih; lebih dari satu = pilih di kasir.
- Google Places (hanya baca): dengan Place ID dan kunci API dari Places API (atau
GOOGLE_PLACES_API_KEY): rata-rata, jumlah ulasan, dan 5 ulasan paling relevan. Dengan cara ini tidak bisa membalas. - Trustpilot Business (baca dan balas): kunci API dan rahasia API dari aplikasi di Trustpilot Business (Integrations → API; atau
TRUSTPILOT_API_KEYdanTRUSTPILOT_API_SECRET), domain usaha (kasir mencari business unit) dan, untuk membalas, business user ID orang yang membalas. - Trustpilot publik (hanya baca): hanya kunci API.
- Kasir mengambil ulasan setiap 30 menit (dan langsung setelah dihubungkan; Ambil sekarang). Alamat e-mail dan nomor pesanan tamu (yang dikirim Trustpilot) tidak disimpan oleh kasir.
- Laporan → Ulasan: rata-rata, jumlah per bintang, tanpa balasan dan belum dibaca; filter menurut platform, bintang, tanpa balasan dan belum dibaca. Per ulasan Balas (maksimal 4000 karakter; semua orang dapat membacanya), Ubah balasan, Hapus balasan dan Dibaca. Ulasan baru atau yang diubah berstatus belum dibaca. Di log tercatat review_beantwoord dan review_antwoord_weg.
- Memutuskan koneksi tidak menghapus ulasan yang sudah diambil.
Pemasaran SMS dan email
Pesan untuk pelanggan kartu pelanggan yang memberikan izin untuk itu. Tanpa kartu pelanggan, keduanya tidak bisa diaktifkan.
- Izin per pelanggan dan per saluran: saat ada pelanggan baru di kasir, tersedia centang "Pelanggan ingin menerima promo lewat SMS" dan "... lewat email" (standar mati). Di Laporan → Pelanggan Anda melihat dan mengubah izin (dengan tanggal pemberiannya) dan ulang tahun (hanya tanggal dan bulan). Berhenti berlangganan: hapus centang dan simpan.
- Menu langsung diperbarui: jika Anda mengaktifkan atau menonaktifkan pemasaran atau kartu pelanggan, kasir mengirim ulang menu ke toko online dalam beberapa detik (hanya jika ada perubahan), sehingga kotak centang langsung muncul atau hilang.
- Persetujuan lewat toko online: jika usaha punya toko online, saat pembayaran ada kotak centang "Saya ingin menerima penawaran lewat email/SMS" (hanya kanal yang aktif; default tidak dicentang). Saat pesanan seperti itu masuk, kasir mencari pelanggan berdasarkan nomor telepon (jika tidak ada, alamat email), membuatnya bila perlu, dan mencatat persetujuan beserta tanggalnya. Nomor atau alamat yang belum ada pada pelanggan lama akan dilengkapi; di log tercatat klant_toestemming dengan sumber webshop.
- Laporan → Pemasaran (hak Kelola kartu pelanggan): di bagian atas terlihat berapa pelanggan yang memberi izin untuk SMS dan untuk email.
- Promo (sekali kirim): nama, SMS atau email, (subjek,) teks dengan
{naam},{zaak}dan{punten}, dan bila perlu hanya pelanggan yang sudah lama tidak datang atau memiliki poin minimal sekian. Lihat menampilkan jumlah pelanggan, pesan seperti yang diterima pelanggan, dan jumlah SMS per pelanggan. Kirim tes ke nomor atau alamat Anda sendiri. Lalu Kirim: kasir mengirim di latar belakang (maksimal 1000 per kali) dan menghitung yang terkirim dan gagal. Tidak ada yang menerima promo yang sama dua kali; jika kasir berhenti di tengah jalan, Lanjutkan pengiriman melanjutkan ke yang belum menerima apa pun. - Kirim melalui Mailchimp atau Klaviyo (dengan koneksi ke daftar yang dipilih, lihat di bawah): pada promo lewat email, di Kirim melalui Anda memilih kasir (server email sendiri, seperti di atas) atau Mailchimp atau Klaviyo. Lalu kasir terlebih dahulu memperbarui daftar (pembatalan langganan, poin) dan membuat kampanye di sana tepat untuk pelanggan terpilih yang ada di daftar (Mailchimp: grup tetap di audience; Klaviyo: daftar khusus untuk promo itu), lalu mengirimnya dengan pengirim default audience atau akun.
{naam}dan{punten}diisi Mailchimp/Klaviyo untuk tiap pelanggan; tautan berhenti berlangganan dari layanan itu ada di bawahnya. Tidak ada batas 1000 per kali dan tidak ada kode diskon pribadi ({code}). Jika gagal, promo tetap sebagai draf beserta pesannya. Tab Pemasaran juga tersedia jika hanya koneksi ini yang aktif (maka hanya promo melalui Mailchimp/Klaviyo; Kirim tes bisa memakai server email kasir). Pesan otomatis selalu dikirim oleh kasir sendiri; di Mailchimp/Klaviyo Anda membuatnya sebagai Customer Journey atau Flow. Kunci Klaviyo: juga hak tulis untuk Campaigns dan Templates (yang sudah pernah masuk: masuk lagi). - Sebagai notifikasi push melalui toko online (jika di pengelolaan toko online Notifikasi push dengan penawaran sudah aktif): pada Kirim lewat pilih Notifikasi push (toko online sebagai aplikasi), dengan judul (maksimal 60 karakter) dan teks singkat (maksimal 200 karakter; hanya
{zaak}yang diisi, karena toko online tidak tahu siapa tamunya). Kasir mengirim promo melalui portal manajemen ke toko online, lalu toko online mengirimkannya ke tamu yang mengaktifkan Penawaran sebagai notifikasi di sana; mengetuknya membuka menu toko online. Setelah beberapa detik, jumlah yang terkirim muncul di promo. Maksimal 3 per hari, bersama dengan yang dikirim usaha dari pengelolaan toko online; jika tidak, promo tetap menjadi draf beserta alasannya. Tab Pemasaran juga tersedia jika hanya fitur ini yang aktif (tanpa kartu pelanggan atau pemasaran email). Tanpa kode diskon atau seleksi (hari, poin); untuk menguji: aktifkan Penawaran sebagai notifikasi di toko online pada ponsel Anda sendiri. - Otomatis: pesan ulang tahun (pada hari ulang tahun, sekali setahun) dan "kami merindukan Anda" (setelah sekian hari tanpa kunjungan, sekali setiap kali pelanggan tidak datang). Aktif/mati per pesan; hanya dikirim pada siang hari (10:00–20:00).
- Kode diskon pribadi (opsional, per pesan atau promo; hanya jika Kode diskon aktif di Pengaturan → Usaha): setiap pelanggan mendapat kode sendiri, mis.
TERUG-7K4Q2M(ulang tahunJARIG-…, promoACTIE-…), dalam persen atau jumlah tetap, bisa dengan jumlah pesanan minimum, sekali pakai, berlaku selama jumlah hari yang ditentukan setelah dikirim (bawaan 30) dan di kasir dan/atau di toko online. Letakkan{code}dan{geldig}di teks tempat yang Anda inginkan; jika tidak, kasir menaruh di bawah pesan "Uw kortingscode: … (10% korting, aan de kassa of in de webshop, geldig t/m …)". Lihat dan Kirim tes menampilkan kode contoh (TERUG-VOORBEELD, tidak berfungsi). Jika pengiriman gagal, kode tidak dibuat. Pada promo terlihat berapa kode yang diterbitkan dan dipakai. - Berhenti berlangganan ada di bawah setiap pesan: pada SMS "Berhenti berlangganan? Telepon ... atau beri tahu kami pada kunjungan berikutnya", pada email tautan berhenti berlangganan ke alamat email usaha (juga tombol Berhenti berlangganan di Gmail dan Outlook). Balasan email masuk ke usaha.
- Privasi (GDPR): hanya pelanggan dengan izin dan nomor atau alamat; tidak ada nomor atau alamat di log, hanya jumlah yang terkirim dan gagal per promo. Jika Anda menghapus pelanggan, pelanggan itu juga hilang dari daftar kirim.
- Biaya: SMS dikirim lewat akun CM.com Anda sendiri (lebih dari 160 karakter = lebih banyak SMS per pelanggan). Gmail dan server email lain punya batas harian; jika pelanggan banyak, kirim bertahap.
Tip per karyawan
Di Pengaturan → Usaha → Tip (hanya jika "Tampilkan tombol tip saat pembayaran" aktif) Anda memilih bagaimana tip per karyawan ditampilkan di laporan sementara (X), laporan Z (struk dan email), dan Omzet per periode (juga di CSV):
| Pilihan | Pembagian |
|---|---|
| Nonaktif (default) | hanya total tip, seperti biasa |
| Tip masing-masing | tip dari tagihan yang dibayar oleh masing-masing karyawan sendiri |
| Bagi per jam | semua tip digabung, dibagi menurut jam kerja tercatat dalam periode itu (memerlukan absen masuk/keluar; tidak ada yang absen = bagi rata) |
| Bagi rata | semua tip digabung, dibagi rata ke semua yang sudah absen masuk (tanpa absen: siapa saja yang memasukkan pesanan atau menerima pembayaran) |
Sisa sen diberikan kepada orang yang paling dekat dengan sen berikutnya, sehingga totalnya selalu cocok. Ini hanya ringkasan: kasir tidak membayarkan apa pun (itu bisa dengan "Uang keluar dari laci"). Laporan Z lama tetap seperti semula.
Laporan Z via email
Di Pengaturan → Usaha → Kirim laporan Z ke email, isi sekali alamat email administrator (lebih dari satu alamat: pisahkan dengan koma, maks. 3). Setelah Tutup hari, laporan Z otomatis dikirim ke alamat itu, selain struk yang dicetak. Kosong = tidak dikirim, seperti biasa.
- Pengiriman email berjalan di latar belakang, jadi server email yang lambat tidak menahan penutupan hari.
- Gagal atau perlu lagi: Laporan → Laporan Z sebelumnya → (laporan) → Kirim email lagi (dengan tanda SALINAN).
Ringkasan harian (opsional)
Jika ada alamat di Kirim laporan Z ke, di bawahnya ada kotak centang Dengan ringkasan singkat harian di bagian atas email (default nonaktif). Aktif = di bagian atas email laporan Z ada beberapa baris dalam bahasa sederhana, hanya dari data kasir sendiri (tanpa AI, tidak ada yang dikirim ke luar):
- omzet, struk, dan tamu serta belanja per struk, dibandingkan dengan periode yang sama seminggu sebelumnya (dalam persen); jika saat itu tidak ada, hal itu disebutkan;
- 5 produk terlaris, dan hal yang menonjol: produk yang terjual setidaknya 3 lebih banyak atau lebih sedikit dibanding minggu lalu;
- jumlah pembatalan (dibanding minggu lalu) dan jam tersibuk (struk dan omzet).
Laporan Z itu sendiri (struk dan email) tetap sama persis. Pratinjau hari ini menampilkan ringkasan dari penutupan harian terakhir sampai sekarang. Ringkasan ditulis dalam bahasa Belanda, sama seperti email laporan Z.
Dasbor
Tab Dasbor di Laporan (hak akses Omzet per periode), hanya baca:
- Omzet per jam dalam grafik: hari yang dipilih (biru) di samping hari yang sama minggu lalu (abu-abu). Hari ini dibandingkan dengan minggu lalu sampai jam yang sama, sehingga persentasenya adil. Pilih hari lain dengan ◀ ▶ atau tanggal.
- Ubin: omzet (± % dibanding minggu lalu), jumlah struk dan rata-rata per struk, rata-rata belanja per tamu (hanya makan di tempat; bawa pulang/antar tidak dihitung) untuk hari itu dan untuk periode yang dipilih.
- 10 produk teratas dan jam tersibuk selama 7, 28, atau 90 hari terakhir. Jam tersibuk adalah peta panas hari × jam (rata-rata omzet per hari buka) dengan tiga jam tersibuk di atasnya, praktis untuk jadwal kerja.
Voucher hadiah yang terjual tidak dihitung sebagai omzet, dan diskon serta judul menu tidak masuk 10 teratas (seperti di laporan lain). Satu hari berlangsung dari 00:00 sampai 24:00.
Laporan tambahan
Tiga tab tambahan di Laporan, masing-masing diaktifkan terpisah lewat Pengaturan → Usaha → Manajemen dan laporan → Laporan tambahan (default nonaktif: maka tidak ada tab). Tab ini memerlukan hak yang sama dengan Omzet per periode dan hanya untuk dibaca. Periode: minggu ini, minggu lalu, bulan ini, bulan lalu, 90 hari terakhir, tahun ini, atau pilih sendiri (paling lama sedikit lebih dari setahun).
- Menu engineering: per produk, seberapa sering produk terjual (porsi dari semua item yang terjual) dibandingkan dengan hasilnya per item (margin = harga jual tanpa PPN dikurangi harga pokok). Setiap produk mendapat klasifikasi: Bintang (populer dan margin tinggi: biarkan saja), Kuda bajak (populer, margin rendah: naikkan harga sedikit atau buat lebih murah), Teka-teki (jarang terjual, margin tinggi: tampilkan lebih menonjol) dan Anjing (jarang terjual, margin rendah: hapus dari menu atau ganti). Populer = minimal 70% dari porsi rata; margin tinggi = minimal margin rata-rata per item terjual. Harga pokok diambil dari Apicbase (Pengaturan → Resep), jika tidak ada dari harga beli produk (harga beli per kemasan dibagi jumlah per kemasan), jika tidak ada dari resep bahan yang memiliki harga beli (Stok). Produk tanpa harga pokok tercantum terpisah di bagian bawah. Opsional per kategori (
?groep=). - Promo dan kode: per kode diskon, per kampanye dari Pemasaran (kode pribadi digabung) dan per happy hour: berapa kali dipakai (struk; pada happy hour juga jumlah item), berapa diskonnya, omzet, dan rata-rata per struk.
- Pemborosan: apa yang dikurangi dari stok (Pengaturan → Stok, Kurangi stok (−)), per alasan (huruf besar dan spasi tidak berpengaruh) dan per produk atau bahan, dengan nilainya menurut harga pokok; serta apa yang dibatalkan setelah sudah dikirim ke dapur atau bar, dengan nilai jual dan nilai pokoknya.
Diskon
Manajer atau administrator melihat tombol % Diskon di samping total pada layar pesanan:
- untuk seluruh struk atau untuk satu baris;
- sebagai persentase (10, 15, 20, 25, 50, 100% = gratis, atau isi sendiri) atau sebagai jumlah tetap;
- selalu dengan alasan (Karyawan, Pelanggan tetap, Keluhan, Promo, Pemakaian sendiri, atau ketik sendiri).
Diskon muncul sebagai baris tersendiri di struk ("Diskon 10%", dengan alasan di bawahnya) dengan tarif PPN yang sama, sehingga total dan rincian PPN benar. Untuk seluruh struk, diskon dibagi per tarif PPN. Menghapus: ketuk jumlah pada baris diskon. Jika baris yang punya diskon sendiri dibatalkan, diskonnya ikut batal. Jika Anda menghapus produk dari struk dengan diskon persen pada seluruh struk, kasir menghitung ulang diskon itu atas sisanya (di Belgia UC226); jumlah tetap tidak berubah dan dibagi ulang ke baris saat pembayaran. Jika karena diskon 100% tidak ada yang perlu dibayar, selesaikan dengan "Selesai (tidak ada yang dibayar)". Diskon tercatat di log, serta di laporan X/Z dan ringkasan periode sebagai "termasuk diskon". Saat struk dengan diskon diretur, diskonnya ikut dihitung secara proporsional.
Kode diskon (opsional)
Kode dengan diskon untuk seluruh struk, misalnya untuk promo (ZOMER10). Aktifkan di Pengaturan → Usaha → Kode diskon (standarnya nonaktif); kode dibuat di Pengaturan → Kode diskon (hak akses Kelola produk):
- diskon dalam persen atau jumlah tetap, bisa dengan minimum pembelian, berlaku dari/sampai dan paling banyak sekian kali (kosong = tanpa batas);
- per kode: di kasir dan/atau di toko online (kasir mengirim kode bersama menu; pemakaian dihitung bersama untuk kasir dan toko online).
Di layar pesanan ada tombol Kode diskon (siapa pun boleh memasukkan kode; kode dibuat lebih dulu oleh usaha). Diskon muncul sebagai baris "Kode diskon KODE" di struk, dibagi ke tarif PPN; satu kode per struk, dan tidak bisa lagi jika sudah dibayar (sebagian). Jika baris itu dihapus atau pesanan dibatalkan, pemakaiannya tidak dihitung lagi. Menghapus kode yang sudah dipakai akan menonaktifkannya (laporan tetap benar). Semuanya tercatat di log (Kode diskon). Kode: lib/kortingscodes.ts, routes/kortingscodes.ts, Kortingscodebeheer.tsx, KortingscodeDialoog.tsx.
Kode ini tidak muncul di daftar Pengaturan → Kode diskon (jumlah per promo muncul di Laporan → Pemasaran) dan tetap dikirim ke toko online selama masih berlaku dan belum dipakai.
Laporan dan tutup hari
Tombol Laporan di bilah atas:
- Total sementara (X): omzet, PPN, metode pembayaran, per kategori, dan laci kas sejak penutupan hari sebelumnya. Bisa juga dicetak. Tidak menutup apa pun.
- Tutup hari (Z) (manajer atau administrator): hitung laci kas (selisih dengan modal awal + tunai ditampilkan), isi modal awal untuk hari berikutnya, lalu tutup. Laporan Z mendapat nomor urut, disimpan, dan dicetak di printer struk. Tidak bisa selama masih ada pesanan terbuka. Opsional: Hitung per koin dan uang kertas (alat bantu hitung) mengisi jumlah yang dihitung untuk Anda; hitungan per koin/uang kertas juga dicetak di laporan Z. Mengetik total sendiri tetap bisa seperti biasa.
- Laci kas (manajer atau administrator, opsional):
- Uang keluar dari laci (setor ke bank, pengeluaran, tip dibayarkan) atau uang masuk ke laci (uang kembalian) dengan jumlah dan alasan. Laci terbuka dan dicetak slip dengan baris paraf untuk disimpan bersama uangnya (bisa dimatikan). Ini dihitung dalam perkiraan di laci dan tercantum per baris di laporan X dan Z.
- Isi atau koreksi modal awal hari ini (biasanya diisi saat tutup hari untuk hari berikutnya).
- Buka laci tanpa penjualan, dengan alasan.
- Semua tercatat di log. Jika fitur ini tidak dipakai, tutup hari berjalan persis seperti sebelumnya (modal awal + tunai = perkiraan di laci).
- Di bawah omzet tercantum jumlah tamu (orang dari pesanan yang sudah dibayar) dan rata-rata per tamu, juga di laporan X/Z yang dicetak.
- Omzet per periode (manajer atau administrator): hari ini, kemarin, minggu ini/lalu, bulan ini/lalu, tahun ini, atau pilih sendiri dari–sampai. Menampilkan omzet, PPN, metode pembayaran, tip, tamu, kategori produk, per hari, dan per karyawan. Dengan Ekspor (Excel/CSV) Anda mendapat file untuk akuntan (titik koma dan desimal koma, langsung terbuka di Excel versi Belanda).
- Laporan Z sebelumnya: daftar dengan omzet dan selisih kas; buka dan cetak salinan (dengan tanda "SALINAN").
Ekspor ke pembukuan
Laporan → Omzet per periode → Ekspor akuntansi (jurnal) (hak akses Omzet per periode) membuat CSV dengan satu entri jurnal per hari, siap dibaca di e-Boekhouden, Exact, SnelStart, Twinfield dll. (lewat impor CSV/memorial mereka), atau salah satu format di bawah (UBL, XAF dan siap pakai untuk 14 software).
Satu bukti pembukuan per hari (KASSA-JJJJMMDD) yang selalu seimbang (debit = kredit):
| Sisi | Apa |
|---|---|
| Debit | penerimaan per metode pembayaran (tunai, kartu, voucher hadiah, online, lainnya), termasuk tip |
| Kredit | omzet per tarif PPN (tanpa PPN) dan PPN terutang per tarif |
| Kredit | tip (harus dibayarkan ke karyawan, bukan omzet) |
| +/- | selisih pembulatan (pembulatan tunai ke 5 sen) |
| +/- | uang masuk/keluar laci (manajemen kas) dengan lawan akun sementara, dan selisih kas dari laporan Z |
Retur dan diskon sudah ada di struk dan mengurangi omzet. Kolom: Datum; Boekstuk; Dagboek; Rekening; Omschrijving; Debet; Credit; Btw-code; Btw-% (titik koma, desimal koma). Setelah diunduh, kasir memberi tahu apakah ada hari yang tidak seimbang atau selisihnya lebih besar dari pembulatan.
Di samping tombol Anda memilih format (pilihan diingat di browser). Jurnalnya sama, tetapi diformat agar software bisa langsung membacanya. Daftar hanya menampilkan format untuk negara usaha (Pengaturan → Usaha), pertama standar (CSV, UBL, XAF), lalu software menurut abjad:
| Format | File | Impor ke software |
|---|---|---|
| Umum (CSV) | journaal_…csv | software apa pun dengan impor CSV/memorial (cocokkan kolom) |
| UBL 2.1 / Peppol (XML), NL dan BE | journaal_…_ubl.xml (beberapa hari: .zip) | per hari satu faktur "dagontvangsten" (penerimaan harian) kepada Kassaverkopen (sudah lunas) sesuai Peppol BIS Billing 3.0, dengan satu baris per tarif PPN dan akun omzet di AccountingCost; hanya omzet dan PPN (metode pembayaran, tip, pembulatan, laci dan selisih kas tidak termasuk dalam faktur). Untuk diunggah antara lain di Adsolut, Billit, BUNNI, DigiBoox, Expert/M, Moneybird, Popsy, Rompslomp, Storecove dan TriFact365; bukan untuk dikirim lewat jaringan Peppol. Nama, nomor PPN dan alamat diambil dari Pengaturan → Usaha |
| XML Auditfile Financieel (XAF 4.0), NL | journaal_…_xaf.xaf | auditfile dari Belastingdienst (XSD XmlAuditfileFinancieel4.0): satu file untuk periode itu, buku besar, kode PPN, periode dan satu transaksi memorial per hari; bisa dibaca antara lain di Caseware, Exact Reeleezee dan Visma Cash |
| AccountView (XML), NL | journaal_…_accountview.xml | Mutasi XML (VFPData, satu transact per baris jurnal dengan dj_code, period, inv_date, inv_nr, acct_nr, trn_desc dan amount: debit positif, kredit negatif), per hari satu bukti di jurnal memorial; dibaca dengan definisi impor (Document → Importeren → Importdefinitie aanmaken, tipe XML), nama kolomnya adalah nama dari AccountView sendiri, jadi cukup satu kali pemetaan 1:1. Minta impor pertama diperiksa |
| AFAS Profit (XML) | journaal_…_afas.xml | XML dari UpdateConnector FiEntries (mutasi keuangan), satu entri per hari dengan tahun, periode, administrasi, dan jurnal; impor ke Profit lewat Impor → XML; isi nomor administrasi (default 1) |
| Asperion (CSV), NL | journaal_…_asperion.csv | format FMUTA (Extra → Import financiële mutaties), per hari satu baris kepala dan baris pembukuan; definisi impor diatur Asperion lewat helpdesk |
| Laporan harian (HTML), NL dan BE | journaal_…_dagstaat.html | laporan harian yang mudah dibaca per hari (omzet per tarif PPN, metode pembayaran, tip, selisih kas) dan total; cetak sebagai PDF atau kirim email, untuk software tanpa impor (Accountable, Dext, Dexxter, Jortt, Kleisteen, MoneyMonk) |
| e-Boekhouden.nl (CSV) | journaal_…_eboekhouden.csv | Tanggal; No. bukti; Keterangan; Akun buku besar; Jumlah (debit positif, kredit negatif); kode PPN GEEN (PPN sudah ada di akun PPN); Impor → Mutasi, jenis memorial |
| Exact Online (XML) | journaal_…_exact.xml | eExact-XML (topik GLTransactions): satu jurnal memorial per hari (tipe 90) di jurnal; Impor/ekspor → Impor XML |
| InformerOnline (TXT), NL | journaal_…_informer.txt | memorial dipisah tab (Geavanceerd → Memoriaal → uploaden); jurnal harus bernomor 1–99 (jika tidak 90) |
| KING ERP (XML), NL | journaal_…_king.xml | KING_JOURNAAL: satu rangkaian pembukuan (belum final) dengan satu entri jurnal per hari |
| KOMAS (CSV), NL | journaal_…_komas.csv | format bebas KOMAS (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag |
| Odoo (CSV), NL dan BE | journaal_…_odoo.csv | Akuntansi → Journal Entries → Import records; jurnal dan akun berdasarkan nama atau kode |
| Sage BOB 50 (Excel), BE | journaal_…_bob.xlsx | Importation de données externes → Opérations diverses (cocokkan kolom satu kali) |
| SAP Business One (ZIP), NL dan BE | journaal_…_sapb1.zip | Data Transfer Workbench, Journal Entries: JournalEntries.csv dan JournalEntries_Lines.csv |
| SnelStart (CSV) | journaal_…_snelstart.csv | Tanggal; No. bukti; Keterangan; Akun buku besar; Debit; Kredit (dd-mm-yyyy, koma desimal, tanpa BOM); impor sebagai memorial, jurnal dipilih saat impor |
| Twinfield (XML) | journaal_…_twinfield.xml | transaksi jurnal sebagai draf (destiny="temporary"), akuntan memfinalkannya; isi kode administrasi (kosong = administrasi tujuan impor) |
| Winbooks (CSV), BE | journaal_…_winbooks.csv | K_DOC.CSV, per hari satu dokumen di jurnal (Winbooks memberi nomor sendiri) |
| Yuki (XML) | journaal_…_yuki.xml | Journal-XML (GeneralJournal), satu jurnal memorial per hari, struktur sama dengan koneksi langsung; ID administrasi opsional |
Ringkasan: software akuntansi mana dengan cara apa
Per segmen, menurut abjad. NL/BE = di negara mana software berfungsi: di Pengaturan → Akuntansi → Software akuntansi Anda hanya melihat software untuk negara usaha (software Belanda tidak berfungsi di Belgia dan sebaliknya). Live = kasir membukukan sendiri setiap hari (dipilih di Pengaturan → Akuntansi → Software akuntansi); atas permintaan = ada API, tetapi perlu registrasi mitra atau persetujuan penyedia lebih dulu (beri tahu kami). File = format di Ekspor akuntansi. Jika keduanya bisa, Anda bisa memakai keduanya. Daftar ini ada di packages/shared/src/boekhoudcatalogus.ts dan juga muncul di Pengaturan → Akuntansi.
| Software | NL | BE | Live | File | Catatan |
|---|---|---|---|---|---|
| UKM dan pekerja mandiri | |||||
| Accountable | – | ✓ | – | Laporan harian (HTML, untuk PDF atau email) | |
| AccountView (Visma) | ✓ | – | atas permintaan | AccountView (XML), Umum (CSV) | File: mutasi XML untuk definisi impor (Document → Importeren); CSV umum juga bisa dibaca dengan definisi impor. Live melalui API AccountView.Net setelah mengajukan permintaan ke AccountView. |
| Acumulus | ✓ | – | ✓ | – | Live sebagai faktur penjualan lunas per hari, dengan satu baris per tarif PPN. |
| AFAS Profit | ✓ | – | ✓ | AFAS Profit (XML) | |
| Asperion | ✓ | – | atas permintaan | Asperion (CSV) | Live setelah mendaftar sebagai mitra API di Asperion. |
| Billit | – | ✓ | atas permintaan | UBL 2.1 / Peppol (XML) | Unggah UBL lewat Fast input; live setelah disetujui Billit. |
| BUNNI | ✓ | – | – | UBL 2.1 / Peppol (XML) | Belum ada dokumentasi API publik. |
| Dexxter | – | ✓ | – | Laporan harian (HTML, untuk PDF atau email) | |
| DigiBoox (Visma DigiBTW) | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| e-Boekhouden.nl | ✓ | – | – | e-Boekhouden.nl (CSV) | Juga untuk mantan pelanggan Ficsus. |
| Exact Online | ✓ | ✓ | ✓ | Exact Online (XML) | |
| Exact Reeleezee | ✓ | – | – | XML Auditfile Financieel (XAF 4.0) | |
| Horus | – | ✓ | ✓ | – | |
| InformerOnline | ✓ | – | – | InformerOnline (TXT) | |
| Jortt | ✓ | – | – | Laporan harian (HTML, untuk PDF atau email) | Tanpa impor: bukukan omzet harian sebagai pendapatan dengan laporan harian sebagai lampiran. |
| KING | ✓ | – | atas permintaan | KING ERP (XML) | Live setelah registrasi mitra di KING Software. |
| Kleisteen | ✓ | – | – | Laporan harian (HTML, untuk PDF atau email) | |
| KOMAS (Adfinis) | ✓ | – | – | KOMAS (CSV) | |
| Minox | ✓ | – | atas permintaan | – | Live setelah koneksi mitra lewat Minox. |
| Moneybird | ✓ | – | ✓ | UBL 2.1 / Peppol (XML) | |
| MoneyMonk | ✓ | – | – | Laporan harian (HTML, untuk PDF atau email) | MoneyMonk akan punya API untuk koneksi pada 2026. |
| Octopus | – | ✓ | atas permintaan | – | Live setelah meminta software house ID di Octopus. |
| Popsy / Allegro | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Rompslomp | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| Sage BOB 50 | – | ✓ | – | Sage BOB 50 (Excel) | |
| Silvasoft | ✓ | ✓ | ✓ | – | Live sebagai entri penjualan per hari, dengan satu baris per tarif PPN; metode pembayaran, tip dan selisih kas tidak ikut. |
| SnelStart | ✓ | – | ✓ | SnelStart (CSV) | |
| Twinfield | ✓ | – | ✓ | Twinfield (XML) | |
| Visma Cash | ✓ | – | atas permintaan | XML Auditfile Financieel (XAF 4.0) | API dengan kunci dari CASHWeb; format record untuk pembukuan masih dikonfirmasi. |
| Visma eAccounting | ✓ | – | atas permintaan | – | Live setelah disetujui Visma (registrasi mitra). |
| Winbooks | – | ✓ | atas permintaan | Winbooks (CSV) | |
| Wolters Kluwer Adsolut | – | ✓ | atas permintaan | UBL 2.1 / Peppol (XML) | UBL dengan akun omzet per baris; di Adsolut aktifkan "grootboekrekening verwerken bij verkopen". |
| Wolters Kluwer Expert/M | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Yuki | ✓ | ✓ | ✓ | Yuki (XML) | |
| Internasional | |||||
| QuickBooks Online | ✓ | ✓ | ✓ | CSV umum | Tidak ada edisi Belanda atau Belgia: periksa pengaturan PPN. |
| Xero | ✓ | ✓ | ✓ | CSV umum | |
| Zoho Books | ✓ | ✓ | ✓ | CSV umum | |
| Enterprise dan jaringan usaha | |||||
| Exact Globe+ | ✓ | ✓ | – | Exact Online (XML) | XML sama dengan Exact Online; minta impor pertama diperiksa. |
| Microsoft Dynamics 365 Business Central | ✓ | ✓ | ✓ | – | |
| Odoo | ✓ | ✓ | ✓ | Odoo (CSV) | |
| Oracle NetSuite | ✓ | ✓ | atas permintaan | CSV umum | |
| SAP Business One | ✓ | ✓ | ✓ | SAP Business One (ZIP) | |
| Unit4 ERPx | ✓ | ✓ | – | CSV umum | |
| Platform dan agregator | |||||
| Apicbase | ✓ | ✓ | atas permintaan | – | Penjualan per struk untuk stok dan food cost: integrasi di Pengaturan → Resep (bukan sebagai software akuntansi). |
| Caseware | ✓ | ✓ | – | XML Auditfile Financieel (XAF 4.0) | |
| Combidesk | ✓ | – | atas permintaan | – | Combidesk membangun dan mengelola koneksinya sendiri (antara lain ke Exact, Moneybird, SnelStart dan Twinfield); atas permintaan sebagai mitra. |
| Dext | ✓ | ✓ | – | Laporan harian (HTML, untuk PDF atau email) | Kirim laporan harian (PDF) lewat email ke alamat Dext Anda. |
| Jamix | ✓ | ✓ | atas permintaan | – | Penjualan untuk stok dan food cost lewat antarmuka JAPI dari Jamix; pengembangan khusus atas permintaan ke Jamix. |
| Omniboost | ✓ | ✓ | atas permintaan | – | Lewat program mitra Omniboost terhubung lebih lanjut ke banyak sistem akuntansi dan hotel. |
| Storecove (Peppol) | ✓ | ✓ | atas permintaan | UBL 2.1 / Peppol (XML) | |
| TriFact365 | ✓ | – | – | UBL 2.1 / Peppol (XML), Laporan harian (HTML, untuk PDF atau email) | |
| Software lain apa pun | ✓ | ✓ | – | CSV umum, UBL atau XAF (NL) |
Minta akuntan memeriksa impor pertama. Formatnya ada di packages/shared/src/journaalexport.ts (dengan tes).
Pengaturan → Pembukuan (hak akses Mengatur usaha, pembayaran, dan printer): kode jurnal (default MEM) dan akun buku besar per bagian. Kosong = akun contoh (NL: 8000/8010/8020 omzet, 1500/1510 PPN, 1000 kas, 1100 kartu; BE: 7000xx omzet, 451000 PPN, 570000 kas). Minta akuntan mengisi akun yang sebenarnya.
Koneksi dengan software akuntansi
Koneksi live dengan Acumulus, AFAS Profit, Microsoft Dynamics 365 Business Central, Exact Online, Horus, Moneybird, Odoo, QuickBooks Online, SAP Business One, Silvasoft, SnelStart, Twinfield, Xero, Yuki dan Zoho Books. Setiap akhir hari kasir membukukan entri yang sama dengan ekspor di atas (omzet dan PPN per tarif, metode pembayaran, tip, pembulatan, laci dan selisih kas) sebagai jurnal memorial di software yang dipilih, dengan jurnal dan akun buku besar dari Pengaturan → Akuntansi. Selalu paling banyak satu software yang aktif.
- Daftar dibagi per segmen (UKM dan pekerja mandiri, Internasional, Enterprise dan jaringan usaha) dan hanya menampilkan software yang berfungsi di negara usaha; server menolak software dari negara lain (400) dan tidak membukukan dengannya (409). Langsung di bawahnya admin mendapat kolom yang tepat untuk software tersebut; hubungkan dan daftar hari yang sudah dibukukan ada di bawah akun buku besar, dengan di bawahnya ringkasan semua software untuk negara ini. Jika saat pembaruan ada dua yang aktif (di versi lama hal itu bisa), Exact Online tetap aktif dan software yang lain dinonaktifkan.
| Software | Negara | Hubungkan dengan | Yang dibukukan kasir |
|---|---|---|---|
| Acumulus | NL | kode kontrak, pengguna dan kata sandi pengguna API | per hari satu faktur penjualan lunas dengan satu baris per tarif PPN; kesalahan dikirim Acumulus lewat email ke ACUMULUS_FOUTMAIL |
| AFAS Profit | NL | lingkungan, token, administrasi | memorial (FiEntries) |
| Business Central | NL, BE | tenant, lingkungan, perusahaan, client ID dan secret dari aplikasi Microsoft Entra (API.ReadWrite.All) | baris di jurnal umum dengan kode dari Jurnal |
| Exact Online | NL, BE | login (OAuth, aplikasi sendiri: lihat Exact Online di bawah; Belgia: start.exactonline.be) | jurnal memorial di buku jurnal (mis. 90) |
| Horus | BE | login (OAuth, aplikasi di bawah), opsional dosir | transaksi lain-lain |
| Moneybird | NL | token API, opsional administrasi | memorial (general journal document) |
| Odoo | NL, BE | alamat, database, pengguna, kunci API | entri jurnal di jurnal dengan kode singkat (mis. MISC) |
| QuickBooks Online | NL, BE | login (OAuth, aplikasi di bawah; QUICKBOOKS_OMGEVING) | journal entry; akun berdasarkan nomor |
| SAP Business One | NL, BE | alamat Service Layer, database, pengguna, kata sandi | entri jurnal (JournalEntries) |
| Silvasoft | NL, BE | pengguna dan kunci API | entri penjualan pada relasi Kassaverkopen, satu baris per tarif PPN (metode pembayaran, tip dan selisih kas tidak ikut) |
| SnelStart | NL | kunci koneksi dan kunci langganan | memorial |
| Twinfield | NL | login (OAuth, aplikasi di bawah), opsional kantor | transaksi jurnal |
| Xero | NL, BE | login (OAuth, aplikasi di bawah), opsional organisasi | manual journal; akun berdasarkan kode |
| Yuki | NL, BE | kunci API, opsional administrasi | memorial (GeneralJournal) |
| Zoho Books | NL, BE | login (OAuth, aplikasi di bawah; standarnya pusat data Eropa), opsional organisasi | entri jurnal; akun berdasarkan kode |
- OAuth (Horus, QuickBooks, Twinfield, Xero, Zoho): daftarkan aplikasi satu kali di software tersebut.
- Untuk sejumlah software, kolom API tidak bisa dikonfirmasi sepenuhnya dari dokumentasi publik (antara lain Horus, Zoho Books, tanda di Business Central dan susunan di SAP Business One): selalu minta pemegang buku memeriksa pembukuan pertama.
- Exact Online: membukukan jurnal sebagai jurnal memorial di administrasi yang dipilih.
- Pilih di Pengaturan → Akuntansi → Software akuntansi → Exact Online (standarnya Nonaktif). Belgia: kasir otomatis memakai
start.exactonline.be. - Pengaturan → Akuntansi → Exact Online: Hubungkan dengan Exact Online membuka halaman login Exact; setelah itu tertera dengan administrasi mana kasir terhubung. Di Jurnal, isi kode jurnal memorial di Exact (mis.
90) dan pastikan akun buku besar ada di Exact. - Kapan: langsung setelah Tutup hari dan selanjutnya setiap jam, untuk semua hari yang sudah lewat (sampai kemarin) mulai dari Bukukan mulai (standar: hari koneksi dibuat; hari-hari sebelumnya sudah ada pada akuntan). Setiap hari sekali; hari tanpa omzet dilewati. Bukukan sekarang selalu bisa.
- Kesalahan (akun tidak ada di Exact, hari tidak seimbang, tidak ada internet) ditampilkan beserta alasannya pada hari itu; kasir mencoba lagi nanti, dan hari-hari berikutnya menunggu sampai berhasil (agar urutannya tetap benar). Di log: "exact_geboekt".
- PPN dicatat di akun buku besar PPN (tanpa kode PPN, sama seperti di ekspor). Minta akuntan Anda memeriksa pembukuan pertama.
- Exact: koneksi tetap berfungsi selama kasir menggunakannya (setiap 10 menit token baru, setiap kali juga refresh token baru). Jika koneksi dicabut atau terlalu lama tidak dipakai, kasir meminta Hubungkan ulang. Putuskan menghapus token; yang sudah dibukukan tetap ada.
- Pilih di Pengaturan → Akuntansi → Software akuntansi → Exact Online (standarnya Nonaktif). Belgia: kasir otomatis memakai
- AFAS Profit: nomor lingkungan (mis.
12345; produksi, uji, atau penerimaan), token konektor aplikasi dengan UpdateConnector FiEntries, dan nomor administrasi (default 1). Jurnal = kode jurnal memorial di AFAS (mis.90). - Jurnal = nomor atau nama jurnal memorial; jika hanya ada satu jurnal memorial, kasir memakai itu. Akun buku besar harus berupa nomor.
- Twinfield: login dengan OAuth. Tanpa aplikasi itu kasir tidak bisa terhubung. Kasir mencari cluster dan administrasi (kosong = yang pertama); jurnal = kode sebuah memorial (mis.
MEMO). Membukukan secara final (destiny="final"). - Yuki: kunci API administrasi (Yuki → Pengaturan → Layanan web); administrasi kosong = yang pertama untuk kunci itu. Membukukan jurnal memorial (GeneralJournal); Yuki tidak memakai kode jurnal.
- Kapan: langsung setelah Tutup hari dan setiap jam, untuk semua hari yang lewat mulai Bukukan mulai (default hari saat dihubungkan; untuk software lain mulai lagi dari hari itu). Setiap hari sekali per software; hari tanpa omzet dilewati; jika terjadi kesalahan, alasannya tampil pada hari itu dan hari-hari berikutnya menunggu. Bukukan sekarang selalu bisa. Di log: "boekhoudpakket_geboekt".
- Kunci dan token tidak pernah ditampilkan di layar (biarkan kosong saat menghubungkan ulang = tetap). Salinan kasir di portal tidak membukukan apa pun.
File audit kasir (XAA)
Untuk usaha di Belanda, di Laporan → Omzet per periode di samping ekspor akuntansi ada tombol File audit kasir (XAA): XML Auditfile Afrekensystemen 3.2 dari Belastingdienst (otoritas pajak Belanda) dan XML Platform (SRA) untuk periode yang dipilih (paling lama sedikit lebih dari satu tahun; hak Omzet per periode). Itulah file yang direkomendasikan Belastingdienst untuk menyerahkan data kasir saat pemeriksaan atau kepada akuntan; aturannya ada di Handreiking voor een betrouwbaar afrekensysteem (Panduan untuk sistem kasir yang andal) (docs/xaa).
Di dalam file (auditfile_kassa_<van>_tm_<tot>.xml, skema docs/xaa/XmlAuditfileAfrekensystemen3.2.xsd):
- data induk: usaha (nama, nomor PPN, alamat), kode PPN, semua staf (dengan peran dan tanggal dibuat; ditambah
SYSTEEMuntuk hal yang dilakukan kasir sendiri, seperti webshop dan koneksi) dan semua artikel beserta grupnya; - peristiwa: semua isi log dalam periode tersebut (masuk dan keluar, laci kas dibuka, penutupan harian, pengaturan dan harga diubah, pembatalan, diskon, retur, salinan struk, absen masuk dan keluar ...) dan pembukaan hari kasir dengan modal awal, masing-masing dengan kode Belastingdienst (18001 masuk, 18003 laci, 18006 perubahan instalasi, 18008 laporan Z, selain itu 18999);
- transaksi kas: setiap struk (penjualan, retur, dan proforma, dengan nomor struk, staf, dan status fiskal jika tidak beres) dengan semua baris (artikel, grup, jumlah, harga, PPN; juga diskon, kartu hadiah, judul menu, dan baris yang dibatalkan sebelum pembayaran, dengan jumlah 0), PPN per tarif, pembulatan, pembayaran per metode pembayaran (tunai, kartu, kartu hadiah, online; tip terpisah) dan uang masuk/keluar laci kas.
Jumlah bernilai positif dengan C (penjualan, penerimaan) atau D (retur, pengeluaran); waktu dalam waktu Belanda dengan offset. Semua kunci adalah id dari database tanpa tanda hubung, sehingga dapat ditelusuri di kasir.
Penandatanganan (bab 6 spesifikasi): jika Optimum POS telah memasang sertifikat, file audit dibuat bertanda tangan dalam amplop (XML Signature) dan nama filenya …_ondertekend.xml; jika tidak, itu file audit biasa, dan kasir memberi tahu hal itu saat mengunduh.
Bayar tempo
Pelanggan bisnis (perusahaan yang setiap minggu mengambil makan siang, hotel, perkumpulan) membeli dengan bayar tempo dan membayar nanti, dengan faktur. Aktifkan di Pengaturan → Faktur → Bayar tempo (hanya jika Faktur aktif; standarnya mati).
- Pelanggan: di Laporan → Bayar tempo Anda mencatat pelanggan bisnis dengan data untuk faktur (nama, alamat, nomor PPN, nomor KvK/perusahaan, Peppol-ID, email), jika perlu batas kredit (berapa maksimal yang boleh belum lunas) dan jangka waktu pembayaran sendiri (jika tidak, mengikuti faktur), dan apakah faktur langsung dikirim.
- Pembayaran: metode pembayaran Bayar tempo, pilih pelanggan (dengan jumlah yang sudah belum lunas dan batas kreditnya). Struk adalah penjualan biasa: omzet dan PPN pada hari itu, di Belgia tetap lewat kotak hitam, di struk tertulis "Bayar tempo". Kasir langsung membuat faktur (UBL/Peppol dan untuk dicetak) untuk jumlah yang belum lunas beserta tanggal jatuh tempo, dan mengirimnya sesuai pengaturan faktur (email, Peppol lewat Billit/Storecove/Banqup, atau alamat sendiri). Bayar tempo adalah satu jumlah untuk sisa tagihan (sebagian boleh dibayar dulu dengan cara lain), tanpa tip; kartu hadiah tidak bisa dijual dengan bayar tempo. Di atas batas kredit, kasir menolak.
- Pelunasan: pelanggan membayar di tempat usaha dengan tunai, kartu, atau kartu hadiah (Laporan → Bayar tempo → Pembayaran diterima; boleh sebagian). Ini bukan penjualan baru dan bukan struk baru: tunai masuk sebagai uang ke laci (laci terbuka), semuanya tercantum di X dan Z di bawah Diterima dari bayar tempo. Jika semuanya sudah dibayar, status faktur menjadi "lunas". Pembayaran online tidak termasuk.
- Ditransfer: jika ada IBAN di Data pada faktur, IBAN itu tercantum di faktur (dan di UBL), dengan "Bisa juga dibayar di tempat". Jika pelanggan sudah mentransfer, catat dengan Pembayaran diterima → Ditransfer (bank): tidak masuk laci, tetapi muncul di X dan Z di bawah Diterima dari bayar tempo. Tanpa IBAN tertulis "Dibayar di tempat". Di Belgia, faktur dan UBL memuat berita terstruktur (+++123/4567/89012+++, dari nomor faktur), sehingga bank ikut mengirimkannya.
- Bank: bukukan transfer tanpa mengetik ulang, lihat di bawah.
- Saldo (uang di muka): di Laporan → Bayar tempo → Setor saldo Anda menaruh uang di muka di akun pelanggan, tunai (laci terbuka) atau dengan kartu, mis. untuk serangkaian makan siang. Pada penjualan bayar tempo berikutnya, saldo dipotong lebih dulu dari faktur; jika faktur lebih besar, sisanya tetap terbuka. Saldo tampil di pelanggan (saldo € ...), di X dan Z di bawah Diterima dari bayar tempo (Saldo disetor, Dengan saldo pelanggan) dan di jurnal sebagai diterima di muka (default 1640 / 460000). Di Belgia setoran dikirim sebagai uang masuk (signMoneyInOut) ke kotak hitam (UC4100).
- Faktur gabungan (per pelanggan, default mati): dengan Satu faktur untuk semua struk pelanggan belum menerima faktur pada penjualan bayar tempo. Struk tetap terbuka pada pelanggan (Struk yang belum ditagihkan, dihitung dalam batas) dan sudah bisa dibayar. Dengan Buat faktur gabungan (mis. di akhir bulan) semua struk terbuka masuk ke satu faktur, setiap baris diawali nomor struknya; yang sudah dibayar tercantum sebagai dibayar. Retur ke rekening masuk sebagai baris negatif. Mati = seperti biasa satu faktur per penjualan. Di Belgia satu faktur dengan semua struk di kotak hitam (signInvoice, UC4121 dan UC4122).
- Belgia: jika pelanggan kemudian membayar penjualan bayar tempo (tunai, kartu, kartu hadiah, atau transfer), kasir melaporkannya sebagai koreksi pembayaran pada struk: dari kredit pelanggan ke metode pembayaran sebenarnya (signPaymentCorrection, UC4118).
- Ikhtisar: faktur yang belum lunas dengan tanggal jatuh tempo (yang terlambat berwarna merah), per pelanggan faktur dan pembayarannya. Di Pengaturan → Faktur ada kolom Belum lunas.
- Akuntansi: di jurnal, penjualan bayar tempo masuk ke Piutang (standar 1300 di Belanda, 400000 di Belgia; bisa diatur di Pengaturan → Akuntansi) dan pembayaran dari kas, kartu, kartu hadiah, atau bank (standar 1050 / 550000) ke piutang. XAA: metode pembayaran "Bayar tempo".
- Hak: Bayar dengan tempo dan terima pembayaran tempo (standar pelayan tidak, manajer ya). Semuanya tercatat di log.
- Mati: pelanggan, faktur, dan pembayaran tetap disimpan (juga di cadangan); sakelarnya ikut dalam ekspor konfigurasi, pelanggannya tidak (mereka milik satu tempat usaha).
- Di toko online (opsional, standarnya mati): dengan Juga di toko online, pelanggan bisnis memesan online dengan bayar tempo (ambil sendiri dan antar). Di Laporan → Bayar tempo Anda membuat kode pelanggan untuk tiap pelanggan dan memberikannya kepada pelanggan; kasir hanya menyimpan versi terenkripsi, jadi Anda hanya melihatnya sekali. Kode pelanggan baru = kode lama tidak berlaku lagi; Hapus kode pelanggan = pelanggan itu tidak bisa lagi memesan online dengan bayar tempo. Toko online menaati batas kredit. Di jendela Toko online Anda menyelesaikan pesanan seperti itu dengan Selesaikan (bayar tempo): pembayaran dengan bayar tempo, langsung dengan fakturnya.
Bank: bukukan transfer
Di Laporan → Bayar tempo → Bank, kasir mencari faktur bayar tempo untuk setiap dana masuk:
- Impor rekening koran: file dari internet banking, sebagai CAMT.053 (XML, semua bank di Belanda dan Belgia), MT940 (.sta/.940) atau CODA (.cod, Belgia). Hanya dana masuk; mengimpor rekening koran dua kali tidak menghasilkan baris ganda.
- Pencarian: berdasarkan nomor faktur atau berita terstruktur di keterangan (pasti), jika tidak berdasarkan jumlah (dan nama): itu berupa usulan. Setiap baris bisa Anda bukukan (ke faktur usulan atau faktur lain), abaikan, atau nanti tetap bukukan. Bukukan = Ditransfer (bank) pada tanggal bank, tidak pernah lebih dari sisa tagihan; tidak masuk laci.
- Koneksi bank (PSD2, opsional): di Pengaturan → Faktur → Koneksi bank, kasir mengambil sendiri dana masuk setiap jam melalui Enable Banking (bank di Belanda, Belgia, dan negara Eropa lainnya). Pilih bank dan masuk ke bank (rekening bisnis); izin berlaku 180 hari, setelah itu hubungkan lagi. Memutus koneksi mencabut izin; dana masuk tetap tersimpan. Tanpa kontrak dengan Enable Banking, ini hanya berfungsi untuk rekening Anda sendiri (restricted production).
- Pembukuan otomatis (standar mati): dana masuk yang pasti cocok dengan faktur langsung dibukukan oleh kasir (juga saat impor).
- Hak: membukukan dengan Bayar dengan tempo dan terima pembayaran tempo; mengatur koneksi bank dengan Atur usaha, pembayaran, dan printer. Impor, menghubungkan, mengambil, dan membukukan tercatat di log.
- Mati: jika bayar tempo dimatikan, kasir tidak mengambil apa pun; dana masuk dan koneksi tetap tersimpan (juga di cadangan).
Gambar kamera di kasir
Semua gambar kamera usaha di satu halaman, tanpa layar atau aplikasi terpisah. Aktifkan di Pengaturan → Usaha → Layar dan pengoperasian → Gambar kamera di kasir (standar nonaktif). Lalu tombol Kamera muncul di bilah atas bagi yang punya hak Lihat gambar kamera (standar manajer dan admin; di Pengaturan → Hak akses juga bisa diaktifkan untuk pelayan). Semua kamera tampil berdampingan; ketuk kamera untuk gambar besar. Saat dinonaktifkan, sistem kamera tetap tersimpan.
Juga sebagai layar terpisah: Di layar terpisah membuka http://<kassaserver>:3000/camera (mis. monitor di belakang bar), dan Di tablet atau ponsel menampilkan kode QR: karyawan memindainya dengan tablet atau ponselnya sendiri dan masuk dengan PIN-nya sendiri (di sana juga hanya dengan hak Lihat gambar kamera). Di layar sempit kamera ditampilkan bertumpuk. Lihat Layar kedua di tablet atau ponsel.
Admin menambahkan sistem kamera dengan + Sistem kamera, mengujinya dengan Tes, dan memilih per kamera nama dan apakah tampil di halaman:
- Hikvision, Dahua, Axis, dan Reolink: kamera atau perekam (NVR) di jaringan: alamat IP (bila perlu dengan
:poort), pengguna (sebaiknya hanya melihat), dan saluran, mis.1-8atau1,3,5. Login dengan Basic atau Digest; https dengan sertifikat sendiri boleh. - Synology Surveillance Station: alamat NAS (port standar 5000, dengan https 5001) dan pengguna; Ambil kamera mengambil kamera beserta namanya.
- UniFi Protect: alamat konsol (https) dan akun lokal; Ambil kamera.
- ONVIF: kamera atau perekam apa pun dengan ONVIF (mis. Hanwha, Bosch, Uniview, Annke); Ambil kamera mencari alamat foto untuk setiap sumber video.
- Alamat web sendiri: foto (JPEG), aliran MJPEG, atau alamat
rtsp://. - Halaman web sistem kamera (mis. Frigate, Blue Iris, atau go2rtc): terbuka di kasir lewat tombol Kamera (atau di jendela terpisah).
Tanpa ffmpeg: fotonya.
Privasi: kasir mengambil gambar dari sistem kamera dan hanya meneruskannya; tidak ada yang disimpan (tanpa rekaman, tanpa cache). Pengguna dan kata sandi tetap di server dan tidak pernah tampil di layar atau di log. Log mencatat siapa yang melihat kamera. Gambarnya sendiri diminta halaman dengan kunci (berlaku 12 jam, selama karyawan masih masuk), karena gambar di browser tidak bisa mengirim token. Ekspor konfigurasi hanya menyertakan aktif/nonaktif.
Log tindakan sensitif
Laporan → Log (manajer atau administrator) menunjukkan siapa melakukan apa dan kapan.
- Pilih periode (hari ini, kemarin, minggu ini, bulan ini/lalu, atau pilih sendiri dari–sampai), apa yang ingin dilihat (default Tindakan sensitif, atau mis. hanya pembatalan dan diskon, atau Semua), dan bila perlu satu karyawan.
- Di bagian atas per karyawan: jumlah dan nilai pembatalan (dihapus setelah dipesan), diskon dan retur, serta berapa kali laci dibuka tanpa penjualan, uang keluar dari laci, salinan struk, pro forma, dan pembayaran kartu manual. Ketuk nama untuk melihat karyawan itu saja. Juga berapa kali PIN yang salah dimasukkan.
- Di bawahnya setiap tindakan dengan waktu, siapa, apa, dan keterangan yang mudah dibaca (mis. "2x Cola dihapus setelah dipesan € 5,60 · meja 4 · alasan: pelanggan batal").
- Unduh (CSV) untuk Excel.
Yang dicatat: pembatalan, diskon (dan penghapusannya), retur, salinan struk, pro forma, pembayaran kartu manual, membuka laci, uang masuk/keluar laci, modal awal, tutup hari, memindahkan item atau meja, menutup pesanan kosong, mengubah harga/nama/PPN produk, produk baru atau dihapus, perubahan staf dan pengaturan, penyesuaian jam kerja, masuk dan keluar, PIN salah, serta clock-in dan clock-out. Dengan pembayaran on account juga: pelanggan, penjualan dan pembayaran on account, impor rekening koran, koneksi bank, dan pengambilan data dari bank. Dengan notifikasi waktu persiapan terlalu lama: pesanan terlambat dan permintaan maaf yang dikirim. Dengan Mailchimp atau Klaviyo: menghubungkan, memilih daftar, memutuskan koneksi, dan pembatalan langganan dari sana. Dengan kontrol musik: aktif/nonaktif serta menambah, mengubah, dan menghapus sumber musik. Dengan gambar kamera: siapa yang melihat kamera (paling banyak sekali per setengah jam per karyawan), aktif/nonaktif, dan sistem kamera. Dengan deteksi: setiap peringatan, penanganannya, serta pengaktifan dan penonaktifan.
Deteksi: penipuan dan anomali
Pengaturan → Deteksi. Dua bagian, masing-masing bisa diaktifkan terpisah dan nonaktif secara default; menonaktifkan tetap menyimpan semua peringatan dan pengaturan. Yang boleh mengatur adalah yang punya hak Atur deteksi (default manajer dan administrator); yang boleh melihat dan menangani peringatan adalah yang boleh melihat log. Kasir memeriksa setiap 5 menit (dan dengan Periksa sekarang); tidak di kasir bayangan.
Deteksi penipuan dan pencurian (per karyawan, per hari kerja mulai 05:00), setiap aturan bisa diaktifkan atau dinonaktifkan sendiri dengan batasnya sendiri:
- pembatalan setelah pro forma: dihapus setelah tamu sudah melihat tagihan;
- pembatalan, diskon, dan retur: mulai sekian kali, atau total mulai nominal tertentu (0 = tidak berdasarkan nominal);
- laci dibuka tanpa penjualan (tombol Buka laci);
- tagihan terbuka lama: sudah dipesan tetapi setelah sekian menit belum dibayar.
Notifikasi anomali, dibandingkan dengan hari dan jam yang sama pada minggu-minggu sebelumnya (default 4; hari tanpa omzet tidak dihitung, minimal dua hari pembanding):
- omzet sejauh ini lebih rendah (dan/atau lebih tinggi) dari biasa melebihi margin, hanya jika omzet normal mencapai nominal yang ditetapkan;
- waktu dapur (tagihan ke dapur sampai siap di layar dapur) satu jam terakhir di atas margin, atau di atas jumlah menit tetap;
- pembatalan hari ini di atas margin, hanya mulai jumlah minimum.
Setiap peringatan muncul satu kali (per aturan, karyawan, dan hari; waktu dapur paling banyak sekali per jam) dan dikirim ke:
- kasir: tombol Peringatan (n) di bilah atas dengan peringatan dari hari, minggu, atau 30 hari terakhir; Selesai ditangani dengan catatan. Layar lain hanya mendapat tanda kecil tanpa nama;
- pesan push dengan ntfy (aplikasi gratis; ntfy.sh atau server sendiri, topic, dan bila perlu token), Pushover (API-token aplikasi dan user key) atau Telegram (token bot dan chat-id);
Setiap saluran punya tombol Pesan uji. Token dan kunci tetap di kasir (layar hanya melihat apakah sudah terisi). Peringatan bukan bukti: periksa tagihan dan log, lalu bicarakan dengan karyawan.
Struk: salinan dan retur (nota kredit)
Tombol Struk di bilah atas:
- Daftar struk sejak penutupan hari terakhir, atau 7 hari terakhir; struk yang lebih lama dicari berdasarkan nomornya.
- Cetak salinan: struk yang sama dengan tanda "SALINAN" (di Belgia dengan blok FDM dari struk aslinya). Dicatat di log.
- Retur / nota kredit (manajer atau administrator): pilih per baris berapa yang dikembalikan, alasannya, dan cara uang dikembalikan (tunai, kartu, voucher hadiah, lainnya). Struk lama tidak diubah: dibuat nota kredit baru dengan nomor sendiri di jurnal (jenis tiket
retour, jumlah negatif, di Belgia dikirim ke FDM sebagai NR). Tidak pernah bisa mengembalikan lebih dari yang terjual. Di laporan X dan Z, retur dihitung sebagai omzet negatif. - Dengan CCV atau terminal lain: kembalikan dana dulu di terminal itu sendiri, lalu centang "Sudah dikembalikan di terminal".
- Tunai dengan pembulatan ke 5 sen: jumlah yang dikembalikan juga dibulatkan.
- Kembali ke akun (penjualan bayar tempo): jika struk itu bayar tempo pelanggan bisnis, pilih Bayar tempo. Jumlahnya dipotong dari faktur terbuka dan kasir langsung membuat nota kredit (di UBL sebuah CreditNote, tipe 381, dengan rujukan ke faktur; di Belgia ditandatangani dengan signInvoice, UC4122). Tidak bisa mengembalikan ke akun lebih dari yang terbuka di faktur; kembalikan sisanya tunai atau dengan kartu. Nota kredit ada di Faktur dan dikirim seperti faktur.
Laci kas dengan sensor dan laci per staf
Standar nonaktif. Atur di Pengaturan → Pembayaran → Laci kas.
- Sensor: banyak laci melaporkan melalui printer struk apakah sedang terbuka atau tertutup (ESC/POS
DLE EOT 1, pin 3 port DK). Ini hanya bisa dengan printer struk melalui jaringan. Ketuk Ukur: laci tertutup dan Ukur: laci terbuka; jika ada perbedaan, terapkan pengaturan yang benar (tinggi = terbuka atau rendah = terbuka). Tidak ada perbedaan = laci (atau kabel) ini tidak memiliki sensor. Tidak ada jawaban dari printer = tidak diketahui, tidak pernah "tertutup".- Jangan selesaikan pembayaran selama laci terbuka: server kasir kemudian menolak pembayaran baru dengan "Laci kas masih terbuka".
- Laci sendiri per staf: satu printer struk dapat membuka dua laci (laci 1 dan laci 2). Pilih laci untuk setiap staf; kasir lalu membuka laci milik staf yang sedang masuk saat pembayaran tunai, uang masuk/keluar laci, dan Buka laci. Di Laporan → Kas lalu muncul Laci per staf: modal awal per staf, tunai (tanpa mesin kas otomatis), seharusnya, Hitung, dan selisih per orang (di log sebagai
ladetelling). Penutupan harian biasa tetap seperti semula. - Tes laci 1 dan Tes laci 2 membuka laci untuk pemeriksaan.
- Buka laci tanpa penjualan (dengan alasan) memang selalu tercatat di log dan di file audit kasir (XAA), sebagaimana diwajibkan oleh otoritas pajak Belanda (Belastingdienst) (pengecualian seperti "no sale").
Bagian 3 · Administrator
Mulai
Instalasi. HorecaPOS dipasang dengan program instalasi untuk sistem Anda, tersedia di halaman unduhan OptimumPOS: Android (aplikasi), Windows (program instalasi), macOS (installer untuk Mac dengan Apple Silicon dan Intel), Linux (installer grafis, atau paket .deb atau .rpm), Raspberry Pi (installer grafis atau .deb untuk Raspberry Pi 3, 4, atau 5 dengan Raspberry Pi OS 64-bit), dan Chromebook (aplikasi Android dari Google Play). Pilih untuk semua pengguna untuk server kasir yang dihubungkan dengan tablet dan layar dapur, atau hanya untuk saya untuk satu kasir saja di perangkat itu. Installer memasang semua yang diperlukan, termasuk database, dan membuat cadangan setiap malam. Untuk memperbarui, pasang versi baru: data Anda tetap ada. Program instalasi dimulai dalam bahasa komputer Anda (jika tidak, bahasa Inggris); di Windows dan Linux Anda bisa memilih bahasa lain di layar pertama. Setelah itu kasir langsung berjalan dalam bahasa tersebut. Paket .deb dan .rpm serta aplikasi Android mengikuti bahasa sistem, dan jika tidak tersedia, bahasa Belanda.
Administrator mengatur kasir lewat Pengaturan. Di sana ada tab seperti Usaha, Karyawan, Hak akses, Jam kerja, Produk, Happy hour, Stok, Denah, Pembayaran, Printer, Pembukuan, Cadangan, Impor/ekspor, dan Database. Tab mana yang juga dilihat manajer tergantung pada hak aksesnya.
Database. Di Pengaturan → Database (hanya administrator) Anda memilih antara MySQL / MariaDB, database bawaan, dan PostgreSQL; saat beralih, semua data ikut dipindahkan (lihat Database). Jika Optimum POS sudah mengatur alamat tetap saat instalasi, alamat itulah yang berlaku dan tidak ada kolom isian. Jika tidak, Anda mengisi sendiri Server, Port, Database, Pengguna, dan Kata sandi. Kasir menyimpannya sendiri, lalu menampilkannya kembali dalam keadaan terisi, dan Anda selalu dapat mengubahnya dengan Ubah data MySQL/MariaDB atau Ubah data PostgreSQL. Mengosongkan kata sandi berarti: kata sandi yang tersimpan tetap dipakai (untuk pengguna yang sama). Installer dan pembaruan tidak mengubah DATABASE_URL maupun database yang dipilih.
Akuntansi
Semua untuk pembukuan ada di Pengaturan → Akuntansi. Isi jurnal dan akun buku besar bersama pemegang buku Anda. Ingin kasir membukukan omzet harian sendiri setiap hari? Pilih software Anda di bagian atas pada Software akuntansi, termasuk Exact Online: Anda hanya melihat software yang berfungsi di negara usaha Anda. Langsung di bawahnya Anda mengisi data software tersebut lalu menghubungkannya. Untuk software yang memerlukan login (seperti Exact Online, Twinfield atau Xero), isi dulu aplikasinya: client ID dan client secret. Jika Optimum POS sudah menetapkan software atau suatu data saat instalasi, pilihan atau kolom itu tidak terlihat. Di sana juga ada ringkasan semua software: mana yang bisa terhubung live dan mana yang mendapat file. File dibuat di Laporan → Omzet per periode → Ekspor akuntansi: pilih format software Anda, atau UBL (Peppol), XAF atau laporan harian. Selalu minta pemegang buku memeriksa pembukuan atau impor pertama.
Untuk usaha di Belanda, di sana juga ada File audit kasir (XAA): XML Auditfile Afrekensystemen dari Belastingdienst dengan semua struk, baris, pembayaran, dan peristiwa kasir untuk periode yang dipilih. File itu Anda berikan kepada akuntan Anda atau, saat pemeriksaan, kepada Belastingdienst.
Gaji dan penjadwalan
Jika karyawan Anda menggunakan absen masuk dan keluar, di bagian bawah Pengaturan → Jam kerja ada Gaji dan penjadwalan, dalam dua blok. Di Administrasi gaji Anda memilih paket penggajian atau (di Belgia) sekretariat sosial Anda, dan mengisi nomor karyawan setiap staf di paket tersebut. Setelah itu Anda membuat file untuk suatu periode berisi jam kerja dan omzet per staf, lalu mengimpornya ke paket penggajian Anda. Di Penjadwalan karyawan Anda memilih sistem penjadwalan: untuk Deputy, Dyflexis, dan Shiftbase omzet dikirim otomatis setiap jam, untuk yang lain Anda membuat file omzet. Dengan begitu di penjadwalan Anda melihat biaya gaji di samping omzet. Jika Anda bekerja tanpa absen masuk dan keluar, Anda tetap dapat mengirim omzet ke penjadwalan Anda: fitur itu ada di bagian bawah Pengaturan → Akuntansi, di Omzet ke penjadwalan Anda. Jika Optimum POS menetapkan sesuatu secara tetap saat instalasi, pilihan atau kolom itu tidak Anda lihat.
Backup
Kasir membuat cadangan otomatis setiap malam, dan selalu sebelum pembaruan. Di Pengaturan → Cadangan Anda melihat semua cadangan (kapan, oleh siapa atau otomatis, ukuran) dan bisa membuatnya sendiri dengan Buat cadangan. Jika cadangan terakhir sudah lebih dari dua hari, muncul peringatan merah: hubungi Optimum POS.
Memulihkan dilakukan dengan tombol Pulihkan di samping cadangan. Semua yang terjadi setelah cadangan itu akan hilang. Anda harus mencentang kotak dan memasukkan PIN Anda sendiri lagi. Kasir terlebih dulu membuat cadangan pengaman dari kondisi saat ini, lalu mengeluarkan semua pengguna. Di Belgia hal ini tidak bisa dilakukan dari kasir (penghitung kotak hitam terus berjalan); di sana Optimum POS yang melakukannya.
Database
Di Pengaturan → Database (hanya administrator) Anda melihat di mana kasir menyimpan datanya. Di bagian atas ada database saat ini beserta program, versi, tabel, baris, dan alamat atau folder. Bagi staf dan tablet, kasir bekerja sama saja dengan database mana pun. Di Windows, macOS, Linux, dan Raspberry Pi Anda memilih dari tiga database:
- MySQL / MariaDB: program database terpisah (MySQL 8.0 atau lebih baru, MariaDB 10.6 atau lebih baru), misalnya di server atau NAS yang sudah Anda miliki. Semua data lalu tersimpan di tabel biasa di MySQL atau MariaDB, bisa dibaca oleh program laporan atau BI Anda sendiri. Kasir menghitung persis sama seperti dengan PostgreSQL.
- Bawaan (PGlite): ada di dalam kasir itu sendiri, tidak perlu instal apa pun. Pilihan terbaik untuk sebagian besar usaha, dan database di Android serta Chromebook.
- PostgreSQL: program database terpisah di PC kasir atau di tempat lain dalam jaringan.
Kapan MySQL atau MariaDB? Jika usaha Anda sudah punya server MySQL atau MariaDB, jika administrator TI Anda memakainya, atau jika Anda ingin membaca data di laporan, Excel, atau program BI Anda sendiri. Ragu? Pilih bawaan: langsung berfungsi.
Apa yang diperlukan untuk MySQL atau MariaDB?
- MySQL 8.0 atau lebih baru, atau MariaDB 10.6 atau lebih baru, yang bisa dijangkau dari server kasir.
- Satu database sendiri untuk kasir (atau untuk kasir-kasir dalam satu jaringan usaha), dengan set karakter utf8mb4.
- Pengguna database yang boleh membuat, mengubah, mengganti nama, dan menghapus tabel di database itu (CREATE, ALTER, DROP, INDEX, SELECT, INSERT, UPDATE, DELETE), misalnya seperti ini:
CREATE DATABASE horecapos CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'horecapos'@'localhost' IDENTIFIED BY 'wachtwoord';
GRANT ALL PRIVILEGES ON horecapos.* TO 'horecapos'@'localhost';
Jika MySQL atau MariaDB berjalan di komputer lain, isikan di dua baris terakhir alamat IP server kasir sebagai ganti localhost.
Migrasi ke MySQL / MariaDB:
- Di Alamat MySQL/MariaDB, isi kolomnya: Server (bawaan localhost), Port (bawaan 3306), Database (bawaan horecapos), Pengguna, dan Kata sandi; sama untuk MariaDB. Jika alamat sudah diatur, kolom sudah terisi; jika kata sandi dibiarkan kosong, kata sandi yang tersimpan tetap dipakai (untuk pengguna yang sama). Kasir menyimpan alamatnya sendiri; jika Optimum POS sudah mengatur alamat tetap, alamat itulah yang berlaku dan tidak ada kolom. Jika kasir sudah berjalan dengan MySQL/MariaDB, ubah datanya nanti dengan Ubah data MySQL/MariaDB. Koneksi terenkripsi diatur oleh Optimum POS untuk Anda.
- Ketuk Tes koneksi: Anda melihat program dan versinya, atau alasan koneksi gagal.
- Ketuk Migrasikan ke MySQL/MariaDB, centang bahwa Anda mengerti, lalu masukkan PIN Anda sendiri.
Migrasi bisa ke segala arah di antara ketiga database, dan semua data ikut pindah:
- Kasir sebentar tidak menerima permintaan (biasanya kurang dari satu menit); setelah itu tablet lanjut sendiri.
- Pertama kasir membuat cadangan kondisi saat ini (di Pengaturan → Cadangan).
- Semuanya dipindahkan ke database baru dan kasir menghitung per tabel apakah semuanya ada dengan tepat.
- Baru jika semuanya cocok, kasir lanjut dengan database baru. Staf yang sudah masuk tetap masuk.
Jika ada yang gagal, tidak ada yang berubah dan kasir tetap bekerja dengan database lama. Database lama tetap ada, jadi Anda selalu bisa kembali. Data kasir yang sudah ada di database MySQL/MariaDB atau PostgreSQL yang baru akan diganti. Di Belgia juga bisa: penghitung kotak hitam ikut pindah dengan tepat.
Cadangan dan pemulihan bekerja sama di ketiga database (Pengaturan → Cadangan). Cadangan dari satu database bisa dipulihkan di database lain mana pun, termasuk cadangan PostgreSQL di MySQL atau MariaDB.
Apa isi MySQL atau MariaDB? Setiap tabel kasir, dengan nama dan kolom yang sama (waktu dalam UTC). Setiap tabel mendapat tambahan kolom kunci _hp_sleutel, dan di tabel bantu _horecapos_stand, _horecapos_kolom, _horecapos_reeks, dan _horecapos_wijziging (log perubahan, disimpan 14 hari) kasir mencatat kondisi, jenis kolom, penghitung, dan perubahan. Program lain membaca data; hanya kasir-kasir yang menulis.
Cara kerjanya: kasir menghitung di salinan kerja yang cepat di server kasir dan menulis setiap perubahan ke MySQL/MariaDB dalam langkah yang sama. Jika gagal, perubahan tidak dijalankan dan kasir menampilkan kesalahan; jadi pastikan MySQL/MariaDB selalu bisa dijangkau. Saat mulai, kasir membaca semuanya dari MySQL/MariaDB.
Beberapa kasir dalam satu database. Sama seperti PostgreSQL, beberapa kasir bisa memakai database MySQL/MariaDB yang sama, misalnya setiap cabang dalam jaringan usaha dengan server kasirnya sendiri. Perubahan dilakukan bergantian dan setiap kasir lebih dulu mengambil apa yang dilakukan kasir lain, sehingga tidak ada yang hilang saat diubah bersamaan. Jika satu kasir memulihkan cadangan atau kasir dengan versi lebih baru memperbarui database, kasir lain otomatis membaca ulang semuanya; karena itu perbarui semua kasir bersamaan. Kasir yang mati lebih dari 14 hari membaca ulang semuanya saat dinyalakan.
Saat instalasi Anda juga memilih database: MySQL / MariaDB, bawaan (disarankan), atau PostgreSQL beserta alamatnya. Jika tidak bisa dijangkau, kasir terpasang dengan database bawaan; migrasi bisa dilakukan di sini setelahnya. Saat pembaruan, pilihan tetap sama.
Hubungkan tablet dan layar
- Di setiap tablet/kasir, buka alamat server kasir, mis.
http://192.168.1.20:3000, dan tambahkan sebagai pintasan di layar utama (Chrome: Tambahkan ke layar utama). - Layar dapur:
http://192.168.1.20:3000/keuken. - Layar pelanggan (menghadap pelanggan, opsional):
http://192.168.1.20:3000/klantscherm, lihat Layar pelanggan. - Layar-layar menemukan server kasir secara otomatis (alamat yang sama, port 4000).
Layar pelanggan
Layar di kasir yang menghadap ke pelanggan. Pelanggan melihat kira-kira apa yang dipesan dan dengan sangat jelas jumlahnya serta cara pembayarannya. Layar ini tidak punya kontrol: layar hanya mengikuti apa yang dilakukan kasir. Default nonaktif; aktifkan lewat Pengaturan → Usaha → Layar pelanggan. Di PC kasir dengan dua layar, kasir mengaktifkannya otomatis pada kali pertama; jika setelah itu dinonaktifkan, layar tetap nonaktif. Tanpa layar pelanggan (nonaktif, atau tidak terpasang) semuanya berjalan persis seperti biasa: kasir mengirim tampilan di latar belakang dan karyawan tidak pernah terganggu oleh error atau layar yang tidak ada.
Yang dilihat pelanggan:
- Diam (tidak ada yang sedang membayar): nama usaha dan teks sambutan Anda sendiri (Pengaturan → Usaha; kosong = "Selamat datang").
- Memesan: produk dengan jumlah dan harga (baris yang sama digabung, menu sebagai satu baris dengan isinya kecil di bawahnya, diskon sebagai satu baris), dan totalnya besar. Yang sudah dibayar pada pembayaran terpisah tercantum di bawahnya. Dengan Pengaturan → Usaha → Foto produk → di layar pelanggan, setiap produk ditampilkan dengan foto kecil.
- Pembayaran: metode pembayaran (Kartu, Tunai, Voucher hadiah), tip, dan dengan huruf besar Harus dibayar. Tunai: uang yang diberikan pelanggan dan kembaliannya, begitu diisi di kasir. Kartu: "Ikuti petunjuk di mesin EDC".
- Terima kasih: setelah pembayaran, selama beberapa detik "Terima kasih!" dengan jumlah yang dibayar (tunai: kembalian pelanggan), lalu kembali ke layar diam.
Menghubungkan, dengan dua cara (keduanya diatur di perangkat itu sendiri):
- Monitor kedua di PC kasir (Windows, Linux/Raspberry Pi, macOS): otomatis. Saat masuk dan setelah instalasi, kasir membuka layar pelanggan dalam layar penuh di layar terkecil yang bukan layar utama (jika ukurannya sama, yang paling kanan); di Windows selalu di layar lain selain layar kasir (kasir ada di layar sentuh dan juga terbuka sendiri saat dinyalakan). Ukuran dan posisi diambil dari sistem, jadi semua ukuran bisa. Tanpa layar kedua tidak terjadi apa-apa. Di Windows, layar pelanggan yang ditutup akan kembali dengan sendirinya; di Linux dan macOS, pintasan HorecaPOS layar pelanggan di menu membetulkannya lagi. Di Windows layar ini terbuka dalam mode kios Chrome (atau Edge): layar penuh, tanpa bilah judul dan tanpa bilah tugas (tutup dengan Alt+F4). Layar ini mengikuti kasir di PC yang sama tanpa kode penautan.
- Di setiap browser, tekan lama tidak memunculkan menu browser di mana pun dan tidak muncul pertanyaan untuk menerjemahkan halaman.
- Kasir ditutup = layar pelanggan ditutup. Jika perangkat lunak kasir berhenti (Mulai ulang, pembaruan, kasir dihentikan atau dihapus), layar pelanggan juga tertutup setelah sedikit lebih dari 10 detik; begitu kasir berjalan lagi, layar itu kembali sendiri. Di Windows layar itu juga tertutup jika Anda hanya menutup jendela kasir. Di Wayland (Linux) kasir tidak dapat menutup jendela itu sendiri.
- Layar pelanggan tidak sengaja tertutup? Di Windows layar itu kembali sendiri setelah beberapa detik, selama kasir terbuka dan layar kedua tersambung.
- Selalu hanya satu layar pelanggan. Di Windows layar pelanggan hanya tampil dalam mode kios di layar kedua. Layar pelanggan di dalam jendela kasir (mis. dipulihkan oleh Edge setelah listrik padam, atau dibuka dengan tombol di kasir) akan tertutup sendiri dalam beberapa detik; layar pelanggan yang benar lalu menggantikannya.
- Tidak ada yang masuk = hanya sambutan. Jika kasir berada di layar kode PIN (juga setelah mulai ulang atau keluar), layar pelanggan hanya menampilkan teks sambutan, tidak pernah tagihan sebelumnya.
- Di Windows, pembukaan otomatis juga bisa dimatikan dengan centang Layar pelanggan otomatis ... di installer.
- Di Linux, kasir memindahkan jendela dengan wmctrl (sudah termasuk dalam paket). Di Wayland (mis. Raspberry Pi OS dengan labwc) hal ini tidak bisa: pindahkan layar pelanggan sendiri sekali ke layar kedua (browser akan mengingatnya), atau pilih X11 di raspi-config. Di macOS, Mac meminta izin pertama kali di Aksesibilitas.
- Manual: Pengaturan → Usaha → Layar pelanggan → Buka layar pelanggan (monitor kedua). Di Chrome dan Edge (juga di Chromebook) tombol ini langsung menaruh jendela di layar pelanggan (pertama kali browser meminta izin); satu klik di layar pelanggan membuatnya layar penuh. Di browser lain: seret lalu tekan F11.
- Kasir Android dengan layar pelanggan bawaan (mis. Sunmi D2/T2) atau monitor lewat HDMI/USB-C: juga otomatis. Begitu aplikasi terpasang di kasir, layar pelanggan muncul di layar kedua; colok dan cabut langsung berfungsi.
- Sunmi T1 mini / T2 mini dengan layar teks kecil (2 baris): aplikasi otomatis menampilkan jumlahnya di sana: Total, Harus dibayar, untuk tunai Kembalian, setelah pembayaran Terima kasih! dan saat diam nama usaha. Layar pelanggan harus aktif.
- iPad (layar operasional) dengan layar eksternal lewat HDMI/USB-C atau AirPlay: aplikasi otomatis menaruh layar pelanggan di layar itu (sudah disiapkan; aplikasi iOS belum dirilis).
- Chromebook: sebagai layar operasional di Chrome, tombol Buka layar pelanggan (monitor kedua) bekerja seperti di atas. Di aplikasi Android, layar pelanggan otomatis muncul di layar kedua begitu ChromeOS meneruskan layar itu ke aplikasi Android; jika tidak, gunakan perangkat terpisah dengan kode penautan.
- Perangkat terpisah (tablet atau PC sendiri di samping kasir): buka
http://<kassaserver>:3000/klantscherm. Layar menampilkan kode pasangan 6 karakter di kanan bawah. Masukkan kode itu di kasir di Pengaturan → Usaha → Layar pelanggan → Pasangkan. Putuskan mengembalikan layar ke kode pasangan. Pasangan disimpan per kasir (di browser kasir itu), jadi setiap kasir bisa punya layar pelanggannya sendiri.
Layar pelanggan tidak meminta PIN (tidak ada yang bisa dioperasikan) dan hanya menampilkan tampilan kasir yang dipasangkan dengannya. Tampilan hanya disimpan di memori server kasir; setelah restart, layar kosong sampai ada perubahan berikutnya. Pengaturannya (aktif/nonaktif dan teks sambutan) ikut tersimpan di cadangan dan di Impor/ekspor (Pengaturan lainnya).
Struk digital lewat QR (opsional)
Default nonaktif. Aktifkan lewat Pengaturan → Usaha → Dapur dan layar pelanggan → Struk digital (pilihan ini muncul jika layar pelanggan tersimpan dalam keadaan aktif). Setelah pembayaran, muncul kode QR pada Terima kasih; kode itu lalu tetap tampil 45 detik, bukan hanya beberapa detik. Tamu memindainya dengan ponselnya sendiri dan melihat struk persis seperti struk kertas (teks yang sama, pada kasir Belgia juga dengan blok FDM). Di ponsel, tamu bisa mencetak struk, menyimpannya sebagai PDF, atau mengunduhnya sebagai file teks.
- Ini berjalan melalui portal manajemen:
https://kassa.<portaal>/__bon/<kassa>/<sleutel>. Jadi kasir harus terhubung dengan portal; jika tidak, kode QR tidak muncul dan tidak ada yang berubah. - Kuncinya acak dan tidak bisa ditebak, serta berlaku 30 hari. Setelah itu kasir menghapusnya sendiri. Portal tidak menyimpan apa pun.
- Bekerja dengan monitor kedua maupun dengan layar pelanggan terpisah. Struk kertas dan struk lewat email tetap berfungsi seperti biasa.
Layar pelanggan saat tidak dipakai: tayangan slide (opsional)
Default nonaktif. Aktifkan lewat Pengaturan → Usaha → Dapur dan layar pelanggan → Layar pelanggan saat tidak dipakai. Jika tidak ada tagihan di layar pelanggan, slide tampil bergantian (default setiap 8 detik, bisa diatur dari 4 sampai 60):
- Promo: happy hour (jika happy hour aktif), dengan diskon, hari dan jam, serta produk atau kategorinya; yang sedang berlaku tampil paling depan, dengan "Sekarang!".
- Produk unggulan (paling banyak 12, misalnya baru di menu), dengan harga dan (jika foto produk di layar pelanggan aktif) fotonya. Produk yang habis dilewati oleh layar.
- Kartu poin: poin per euro, hadiah, dan kartu stempel (hanya jika kartu pelanggan aktif).
- Teks sendiri: paling banyak 5, masing-masing di slide sendiri (misalnya "Baru mulai Jumat: menu musim panas kami").
Tanpa slide, layar pelanggan menampilkan layar sambutan seperti biasa.
Happy hour
Default nonaktif. Aktifkan lewat Pengaturan → Usaha → Gunakan happy hour; setelah itu muncul tab Pengaturan → Happy hour.
- Per happy hour: nama (dicetak di struk), hari, dari–sampai (boleh melewati tengah malam, mis. 23:00–01:00), diskon dalam % atau harga tetap, dan untuk kategori produk dan/atau produk satuan mana.
- Dalam rentang waktu itu, kasir otomatis memakai harga happy hour saat produk dimasukkan (tidak pernah lebih mahal dari biasanya; dengan harga tetap, opsi pilihan tetap ditambahkan seperti biasa). Tombol produk menampilkan harga lama dicoret dengan harga baru dan HH; di pesanan dan di struk tercantum nama happy hour-nya. Yang sudah dimasukkan tetap dengan harganya.
- Promo harian: centang Sepanjang hari (00:00–24:00) dan pilih harinya, misalnya setiap Selasa iga bakar dengan harga tetap.
- Musim: centang Hanya pada musim tertentu (setiap tahun) dan pilih dari dan sampai dengan (tanggal dan bulan, misalnya 1 Juni s.d. 31 Agustus; melewati pergantian tahun juga bisa, misalnya 1 Desember s.d. 28 Februari). Di luar musim, happy hour tidak berlaku.
- Perubahan dicatat di log.
Waktu menu dan musim
Default nonaktif. Aktifkan lewat Pengaturan → Usaha → Waktu menu dan jenis pesanan → Produk per waktu menu dan musim; setelah itu muncul tab Pengaturan → Waktu menu. Jika dinonaktifkan, semua produk kembali selalu dijual dan waktu menu tetap tersimpan.
- Per waktu menu: nama (misalnya Sarapan, Makan siang, Makan malam, Menu musim panas), hari, dari–sampai (boleh melewati tengah malam; Sepanjang hari = 00:00–24:00), bila perlu musim (setiap tahun, tanggal dan bulan), serta kategori dan/atau produk tunggal yang termasuk.
- Produk dan kategori yang ada di satu atau beberapa waktu menu hanya dijual saat salah satu waktu menu itu berlangsung; yang tidak ada di waktu menu mana pun selalu dijual. Layar pesanan hanya menampilkan yang sedang dijual dan berganti sendiri saat waktu menu dimulai atau berakhir; server menolak sisanya ("saat ini tidak dijual, hanya saat Sarapan").
- Toko online menampilkan dan menghitung produk yang sama (pada saat pemesanan).
- Harga lain pada hari atau musim tertentu adalah happy hour (promo harian, lihat di atas).
- Menu per lokasi: setiap kasir (cabang) punya produk, waktu menu, dan harganya sendiri.
- Perubahan dicatat di log.
Produk dan harga per jenis pesanan
Default nonaktif. Aktifkan lewat Pengaturan → Usaha → Waktu menu dan jenis pesanan → Produk dan harga per jenis pesanan. Jika dinonaktifkan, harga biasa kembali berlaku di mana pun dan semuanya dijual di mana pun; harga yang sudah diisi tetap tersimpan.
- Di Pengaturan → Produk per produk: Harga bawa pulang dan Harga antar (kosong = harga biasa) serta Dijual untuk (makan di tempat, bawa pulang, antar; minimal satu). Pada kategori juga ada Dijual untuk, untuk semua produk dalam kategori itu.
- Untuk pesanan bawa pulang atau antar, layar pesanan menampilkan harga jenis pesanan itu dan hanya produk yang dijual di sana; server menghitung harga itu dan menolak sisanya. Happy hour, menu paket, dan opsi pilihan dihitung dengan harga itu.
- Tarif PPN untuk bawa pulang (pada produk) tetap terpisah dari ini, seperti biasa.
- Toko online menampilkan harga dan produk sesuai pilihan untuk ambil sendiri dan antar (saat berganti, halaman menu dimuat ulang), dan di meja harga makan di tempat.
- Ekspor dan impor konfigurasi (Pengaturan → Impor/ekspor) ikut membawa harga per jenis pesanan, "dijual untuk", waktu menu, dan musim happy hour.
Menu
Default nonaktif. Aktifkan lewat Pengaturan → Usaha → Gunakan menu.
- Menu adalah produk biasa (dengan harga menu) yang komponennya Anda atur di Pengaturan → Produk → (produk) → Menu:
- tetap: selalu produk ini (mis. "Minuman: Anggur rumah");
- pilihan: pilih 1 (atau lebih) dari satu kategori produk, bisa dibatasi ke produk tertentu (mis. "Hidangan utama: pilih 1 dari Hidangan utama").
- Per komponen ada babak hidangan (1 = langsung, 2/3 = tunggu sampai dipanggil).
- Saat menu dimasukkan, Anda memilih hidangan untuk setiap komponen. Untuk setiap hidangan (juga yang tetap) Anda bisa memilih opsi pilihan seperti pada produk satuan (tingkat kematangan, ekstra keju; opsi wajib harus dipilih) dan catatan. Biaya tambahan opsi ditambahkan ke harga menu. Menu tampil sebagai satu baris dengan hidangan (dan opsinya) di bawahnya.
- Hidangan dikirim ke dapur/bar sebagai baris terpisah (tiket dapur dan layar dapur), dalam babak hidangannya sendiri. Baris menu itu sendiri tidak.
- Untuk PPN, harga menu dibagi ke komponen sesuai perbandingan harga normalnya, sehingga makanan dan minuman masing-masing mendapat tarif yang benar. Di struk tercantum menu dengan harga totalnya dan hidangan di bawahnya.
- Jika menu itu sendiri punya opsi pilihan (mis. ukuran), Anda memilihnya di bagian atas jendela menu. Opsi itu tercantum pada baris menu di struk, dan pada setiap hidangan menu di tiket dapur dan layar dapur sebagai "(menu)".
- Menghapus/membatalkan dilakukan per menu utuh (ketuk baris menu).
- Pisah / pindahkan: pilih baris menu; hidangannya ikut. Dengan 2× menu yang sama Anda juga bisa memindahkan 1 (judul dan hidangan dipisah).
- Tanpa koneksi Anda tetap bisa memasukkan menu; menu disimpan di tablet dan dikirim begitu koneksi kembali (sama seperti produk satuan).
- Happy hour juga bisa berlaku untuk menu.
Resep dan harga pokok (Apicbase)
Integrasi dengan Apicbase (resep, harga pokok, stok, dan pembelian) melalui Generic POS API dari Apicbase (standarnya nonaktif, setiap bagian bisa diaktifkan atau dinonaktifkan terpisah). Diatur di Pengaturan → Resep (hak Atur usaha, pembayaran, dan printer). Kasir berkomunikasi sendiri dengan Apicbase (hanya lalu lintas keluar, portal tidak diperlukan).
- Hubungkan (semua diisi oleh admin), dengan salah satu dari tiga cara:
- Tempel token: di Apicbase Library Settings → API Settings → New token → Service Account Token (scope accounts, library, sales); tempel access token dan refresh token;
- Masuk dengan API-app milik usaha sendiri (client-id dan rahasia dari API Settings): Masuk ke Apicbase, lalu tempel kode yang ditampilkan Apicbase setelahnya;
- Token yang kedaluwarsa (setelah 7 hari) diperbarui otomatis oleh kasir dengan refresh token.
- Outlet: Ambil outlet dan pilih outlet usaha ini. Kasir mengatur POS di sana ke Generic POS API dengan location-id sendiri (bisa diisi; default
HORECAPOS-…, unik per kasir). - Aktif, dengan centang:
- Produk, grup, dan opsi pilihan ke Apicbase: grup produk, produk (PLU = nomor PLU produk, jika tidak ada kode, jika tidak ada id), opsi pilihan sebagai modifier, dengan harga dan PPN. Otomatis setelah setiap perubahan (setelah satu menit) dan setiap hari. Setelah itu di Apicbase kamu menautkan setiap produk kasir ke sebuah resep;
- Setiap struk yang dibayar ke Apicbase: yang terlama dulu, paling banyak 100 sekali kirim, dalam seperempat jam setelah pembayaran (dan setiap 5 menit). Diskon dibagi ke baris-baris; nominal bebas, biaya kemasan sekali pakai, dan deposit menjadi produk tersendiri di Apicbase; produk timbang sebagai 1 buah dengan total harga. Jika gagal, kasir berhenti (Apicbase memerlukan struk berurutan) dan mencoba lagi nanti: pembayaran tidak terpengaruh. Saat mengaktifkan, kamu memilih mulai hari apa (default mulai sekarang);
- Ambil harga pokok per porsi (setiap 6 jam): per resep tertaut food cost (bahan dan susut), dengan biaya karyawan, harga jual, dan margin menurut Apicbase. Dihitung dengan pemasok termurah, harga pesanan terakhir, atau nilai stok rata-rata;
- Ambil harga jual dari Apicbase (default nonaktif): mengatur harga jual produk tertaut di kasir (tercatat di log).
- Di bawah: Harga pokok per produk dengan harga pokok, harga pokok dengan karyawan, harga di kasir, harga pokok %, dan margin. Tombol Kirim katalog sekarang, Kirim struk sekarang, dan Ambil harga pokok sekarang.
Kode: apps/pos-server/src/lib/apicbase.ts, routes/apicbase.ts; layar Apicbase.tsx. Log: Apicbase. Syarat: modul API Apicbase. Untuk aplikasi Pin Voordeel bagi semua pelanggan: kemitraan dan sertifikasi di Apicbase (lihat backlog). Dokumentasi: https://developers.apicbase.com/docs/generic-pos-api-guide
Software hotel: tagih ke kamar
Untuk restoran atau bar di hotel: menagihkan tagihan ke kamar tamu. Default nonaktif: Pengaturan → Hotel (hak Atur usaha, pembayaran, dan printer).
- Satu daftar berisi semua perangkat lunak hotel (Perangkat lunak hotel milik hotel). Koneksi bawaan:
- Mews (Connector API: client token dan access token, layanan restoran, dan untuk setiap tarif PPN kode PPN di Mews), apaleo (aplikasi sendiri dengan client ID dan client secret, property ID; untuk setiap tarif PPN bila perlu jenis PPN) dan Cloudbeds (kunci API dan property ID), masing-masing dengan lingkungan uji dan lingkungan nyata;
- Oracle OPERA Cloud (OHIP), protel (protel I/O), RoomRaccoon, Booking Experts, Amadeus (XMLPOS), VIPS, Stayntouch, Clock PMS+, Guestline (Rezlynx), Hotelogix, eviivo, Little Hotelier, Shiji dan Infor HMS (Databridge). Setelah memilih, muncul tepat kolom-kolom yang dibutuhkan perangkat lunak hotel tersebut (kunci, ID hotel, bila perlu alamat API mereka dan kode mereka untuk setiap tarif PPN), dengan penjelasan singkat tentang apa yang perlu diminta dari penyedia. Koneksi ini dibuat berdasarkan dokumentasi penyedia; minta penyedia mengonfirmasi koneksinya dan coba dulu dengan Tes koneksi dan satu struk;
- demo (empat suite, kamar 4 sampai 7) untuk mencoba;
- Sirvoy, sebagai koneksi setengah dan hanya dengan Sirvoy Pro. Sirvoy tidak punya API agar kasir bisa menambahkan sesuatu ke pemesanan, juga tidak lewat file (impor CSV hanya membuat pemesanan baru). Dengan ini kasir mengenal tamu (kamar, nama, kedatangan, keberangkatan): pencarian di Tagih ke kamar serta swalayan di kios dan di toko online berjalan seperti biasa. Struk tidak otomatis masuk ke Sirvoy: setelah pembayaran, struk tampil di Pengaturan → Hotel pada Perlu dimasukkan ke Sirvoy, dengan kamar, tamu, nomor struk, dan jumlah per tarif PPN. Hotel memasukkannya secara manual sebagai ekstra pada pemesanan dan mengklik Sudah masuk (batalkan dengan Ternyata belum). Yang diperlukan:
- sebaiknya kasir yang terhubung ke portal manajemen: alamatnya lalu melewati portal (
https://<portaal>/hotel/<kassa-id>/sirvoy?sleutel=...) dan tidak perlu membuka port di hotel. Jika tidak, kasir itu sendiri harus dapat diakses dari internet lewat https (domain sendiri dengan sertifikat atau port forwarding; Sirvoy memerlukan TLS 1.2 atau lebih tinggi) dan Anda memasukkan alamat tersebut; - Alamat hanya terlihat sekali; kasir hanya menyimpan hash-nya. Membuat alamat baru = alamat lama tidak berfungsi lagi;
- sebaiknya kasir yang terhubung ke portal manajemen: alamatnya lalu melewati portal (
Sirvoy hanya mengirim sesuatu jika pemesanan berubah: pemesanan dari sebelum penghubungan baru dikenal kasir setelah ada perubahan di Sirvoy. Pesan bisa datang tidak berurutan; pesan yang lebih lama (generatedAt) daripada yang sudah dimiliki kasir dilewati. Di hotel = tidak dibatalkan dan belum check-out, sudah check-in atau kedatangan hari ini atau lebih awal, dan keberangkatan hari ini atau nanti. Tes koneksi menunjukkan berapa pemesanan yang masuk.
Semua perangkat lunak hotel dijual di Belanda dan/atau Belgia. Tes koneksi memeriksa datanya. Kode per koneksi: apps/pos-server/src/lib/pms/<naam>.ts.
- Swalayan (default nonaktif): tamu hotel menagihkan pesanannya sendiri ke kamarnya, di kios dan/atau di toko online (ambil sendiri dan antar, tidak saat memesan di meja). Ia mengisi nomor kamar dan nama belakang; kasir memeriksa di perangkat lunak hotel apakah tamu itu sekarang menginap di kamar tersebut. Dengan batas maksimum per pesanan (default € 150), dan setelah 5 kali salah dalam lima belas menit, tamu harus ke resepsionis dulu. Pesan tidak pernah menyebutkan siapa yang menginap di suatu kamar.
- Bayar: jika koneksi aktif, ada metode pembayaran Tagih ke kamar. Cari tamu berdasarkan nama atau nomor kamar (hanya tamu yang sedang menginap) dan ketuk Tagih ke kamar .... Kasir membukukan struk per tarif PPN ke tagihan hotel tamu; tamu membayar saat check-out.
- Belgia: jika pesanan sudah tercatat di meja pada kotak hitam, pesanan dipindah dulu dari meja ke kamar (signCostCenterChange ke ROOM, UC4101); struk dikirim sebagai kredit kamar (ROOM_CREDIT) ke kotak hitam.
- Jika pembukuan di software hotel gagal (tidak ada internet), penjualan tetap tercatat dan pembukuan tampil sebagai Gagal di Pengaturan → Hotel, dengan Coba lagi.
- Laporan dan akuntansi: Tagih ke kamar (hotel) adalah metode pembayaran tersendiri di laporan X dan Z, laporan harian, dan auditfile (XAA).
Kode: apps/pos-server/src/lib/hotel.ts, routes/hotel.ts, koneksi di lib/pms/, katalog packages/shared/src/hotelcatalogus.ts; layar Hotel.tsx. Log: Hotel. Rahasia (token) hanya disimpan di database, tidak pernah di layar.
Manajemen wine dengan Vinify
Pengaturan → Manajemen wine (standarnya nonaktif; menonaktifkannya tetap menyimpan semuanya). Vinify mencatat gudang wine, daftar wine, dan stok, serta menjadi sumber utama data wine. Sesuai persyaratan POS dari Vinify, kasir menyediakan API yang memungkinkan Vinify:
Masuk, ketiga cara yang dikenal Vinify (admin memilih mana yang aktif):
- API-id dan kunci API (
X-Api-IddanX-Api-Key, atauAuthorization: Bearer <id>:<sleutel>); - Kunci API dan API-secret dengan tanda tangan:
X-Api-Key,X-TimestampdanX-Signature= hex HMAC-SHA256(secret,<timestamp>\n<METHODE>\n<pad met query>\n<sha256 van de body>), paling lama 5 menit.
Kunci dan secret dibuat oleh kasir (ditampilkan sekali); layar hanya melihat apakah sudah terisi. Dapat diakses lewat portal di https://<portaal>/vinify/<kassa-id>/... (tidak ada port terbuka di lokasi usaha; alamatnya ada di Pengaturan → Manajemen wine). Produk mana yang wine: yang dibuat Vinify, ditambah grup yang Anda centang. Jika Vinify memberikan alamat untuk mengirim penjualan, kasir juga mengirimnya sendiri (push, dengan token): setelah setiap struk yang dibayar dan setiap 5 menit yang belum berhasil. Vinify mengaktifkan koneksi dengan HorecaPOS (hello@vinify.no). Semua tercatat di log. Jangan tertukar dengan Vinify.nl, toko wine online: itu ada di daftar pemasok (Pesan ke pemasok).
Isi alamat cepat dengan kode pos dan nomor rumah
Aktifkan di Pengaturan → Usaha → Isi alamat cepat (standarnya nonaktif; hanya untuk usaha di Belanda). Ketik kode pos dan nomor rumah (juga dengan huruf atau tambahan, mis. 12A atau 12-1) lalu ketuk Cari alamat: jalan, nomor rumah, kode pos dan kota akan terisi. Jika ada beberapa alamat pada nomor itu (12, 12A, 12B), pilih yang benar. Setelah itu Anda masih bisa mengubah semuanya sendiri.
- Di data usaha (Pengaturan → Usaha, di atas alamat).
- Di pelanggan kartu pelanggan: di kasir saat pelanggan baru dan di Laporan → Pelanggan. Untuk itu pelanggan mendapat alamat (opsional): jalan dan nomor rumah, kode pos dan kota.
- Alamat diambil dari Locatieserver PDOK yang gratis (alamat resmi Belanda, BAG): tidak perlu akun atau kunci, tetapi perlu internet. Tanpa internet atau untuk alamat Belgia, ketik saja alamatnya sendiri.
Notifikasi versi baru
Aktifkan di Pengaturan → Usaha → Notifikasi pembaruan (standarnya nonaktif).
- Kasir diperbarui: jika server kasir diperbarui sementara tablet masih membuka layar lama, di bagian atas muncul "Kasir telah diperbarui (versi …)" dengan Muat ulang. Tablet memeriksa setiap 5 menit, saat layar terlihat lagi, dan setelah server di-restart.
- Pembaruan tersedia: jika kasir terhubung ke portal manajemen (
PORTAAL_URL/PORTAAL_SLEUTEL) danNIEUWSTE_VERSIEdiisi di sana, pengguna yang boleh mengelola pengaturan melihat "Pembaruan tersedia: versi …" (dengan penjelasan dariUPDATE_NOTITIE). Nanti menyembunyikan notifikasi di tablet itu sampai ada versi yang lebih baru lagi. Memperbarui tetap seperti biasa denganscripts\windows\update.cmd(lihat Memperbarui).
Platform reservasi
Reservasi dari TheFork, Formitable, Zenchef, Resengo (hanya Belgia), OpenTable (hanya Belanda), PlanPanther, RestoManager, dan Aqqo (hanya Belanda) otomatis masuk ke kasir dan denah meja. Aktifkan di Pengaturan → Platform reservasi (default mati). Hanya jika Reservasi aktif.
- Negara usaha: Anda hanya dapat memilih platform yang berfungsi di negara usaha (Resengo hanya di Belgia, OpenTable dan Aqqo hanya di Belanda). Server juga memeriksanya.
- Beberapa platform sekaligus: Anda dapat menghubungkan beberapa platform berdampingan, misalnya TheFork dan Formitable. Dua platform tidak pernah mendapat meja yang sama pada slot waktu yang sama; reservasi kedua lalu masuk tanpa meja.
- + Hubungkan platform: pilih platform dan isi datanya. Rahasia (Client secret, kunci callback) tidak pernah tampil di ikhtisar; dibiarkan kosong = tetap, Hapus = dihapus.
- TheFork (API B2B publik): Restaurant-UUID, Client ID, dan Client Secret (diminta ke TheFork). Jika kasir membatalkan, pembatalan juga dilakukan di TheFork.
- Formitable, Zenchef, Resengo, OpenTable, PlanPanther, RestoManager, Aqqo: API mereka hanya untuk mitra atau tidak publik (PlanPanther, RestoManager, dan Aqqo: koneksi kasir dibicarakan dengan mereka). Event Formitable (
booking.created,.changed,.canceled,.checkin,.checkout) dikenali. - Di denah meja: jika meja di kasir bernama sama dengan meja di platform dan kosong pada slot waktu itu, reservasi ditempatkan di meja tersebut; jika tidak, tanpa meja (pilih saat tamu tiba). Reservasi yang masuk lagi diperbarui, bukan diduplikasi. Di ikhtisar tertulis "via TheFork".
- Status: jika platform membatalkan atau melaporkan no-show, kasir mengikutinya. Yang sudah tiba di kasir tetap berstatus tiba.
- Laporan balik (no-show dilaporkan kembali): isi URL callback (misalnya dari layanan integrasi Anda). Kasir mengirim setiap perubahan dari kasir (tiba, no-show, dibatalkan, dibayar dengan jumlah) sebagai JSON:
{ platform, id, status, statusEn, bedrag, valuta, tafel, tijdstip, gemeldOp }(jumlah dalam sen, hanya jika dibayar), denganAuthorization: Bearer <terugmeld-sleutel>jika Anda mengisinya. Jika gagal, kasir mencoba lagi setiap menit dan kesalahannya tampil di platform. Data yang berasal dari platform itu sendiri tidak dikirim kembali. - Reservasi uji: membuat reservasi seperti yang akan dikirim platform.
- Hapus: koneksi dan kunci dihapus; reservasi tetap ada.
- Semua perubahan tercatat di log (tanpa rahasia).
Program loyalitas dan ulasan
Dua sakelar terpisah di Pengaturan → Poin dan ulasan (keduanya standarnya nonaktif, dan saat itu tidak terlihat di mana pun). Jika Anda mematikannya, pengaturan dan apa yang sudah terjadi tetap tersimpan.
Program loyalitas dari platform lain: tamu mengumpulkan poin di Joyn (Belgia) dan/atau Piggy (Leat; Belanda dan Belgia). Ini terpisah dari kartu pelanggan milik kasir sendiri; keduanya bisa aktif bersamaan.
- Beberapa sekaligus: di Belgia Piggy dan Joyn bisa aktif bersama, masing-masing dengan datanya sendiri (pilih platform, isi, Simpan; Ubah dan Hapus per platform). Tamu mendapat kode QR sendiri di struk, tautan sendiri di struk yang dikirim lewat email, dan tombol sendiri di toko online untuk tiap program, dan mengumpulkan poin sekali per pesanan di tiap program. Yang sudah diatur sebelumnya tetap berjalan seperti biasa.
- Kode QR di struk: setelah pembayaran, di bawah struk ada kode QR dengan "Pindai dan kumpulkan poin di ...". Di struk lewat email ada tautan, dan di toko online (ambil sendiri dan antar) ada tombol di halaman pesanan dan tautan di email konfirmasi. Satu pesanan hanya memberi poin satu kali: struk, email dan toko online memakai kode unik yang sama (nomor pesanan). "Kode QR di struk cetak" bisa Anda matikan; email dan toko online tetap mendapat tautannya.
- Piggy, cara "Kode QR dan tautan": isi alamat portal pelanggan Piggy Anda, Shop UUID dan Account secret (Piggy Business Dashboard). Bekerja tanpa internet: kasir membuat tautannya sendiri.
- Piggy, cara "Langsung tambahkan poin": isi juga personal access token (Piggy → Marketplace → Private App). Jika kasir mengirim struk lewat email dan tamu dengan alamat email itu sudah menjadi anggota, kasir langsung menambahkan poinnya; di struk tertulis "Poin ditambahkan di Piggy". Kasir tidak pernah membuat anggota baru; bukan anggota (atau tanpa alamat email) = kode QR.
- Joyn, cara "Kode QR dan tautan": dengan partner key, shop reference dan shared secret dari Joyn (minta lewat api-integration@joyn.be). Bekerja tanpa internet. Kode QR berlaku 2 jam.
- Joyn, cara "Lewat API": dengan shop API key (aktifkan koneksi di portal merchant Joyn). Saat pembayaran, kasir meminta kode poin ke Joyn. Penukaran tetap seperti biasa di Joyn-iPad.
- Buat tautan contoh: memeriksa apakah datanya benar (tautan senilai € 10; buka hanya untuk melihat).
- Hanya platform dari negara usaha yang bisa dipilih; rahasia hanya disimpan di database dan tidak pernah tampil di layar (biarkan kosong = tetap).
Minta ulasan: setelah kunjungan satu email dengan tombol ke Google dan/atau Trustpilot.
- Beberapa jam kemudian (bisa diatur, standar 3) tamu menerima email, dalam bahasa struk.
- Toko online: untuk ambil sendiri dan antar, toko online mengirim email sendiri, beberapa jam setelah pesanan diselesaikan di kasir, dalam bahasa tamu.
- Google: tempel tautan ulasan dari Profil Bisnis Anda (Google → Profil Bisnis Anda → Minta ulasan,
https://g.page/r/.../review) atau isi Place ID. - Trustpilot: isi domain usaha Anda (tombol mengarah ke
trustpilot.com/evaluate/<domein>). Jika Anda punya alamat undangan di Trustpilot (Automatic Feedback Service,...@invite.trustpilot.com), isi juga: email lalu dikirim sebagai BCC ke Trustpilot, dengan nama, alamat email dan nomor struk secara tersembunyi, dan Trustpilot sendiri mengirim undangannya (maka tanpa tombol Trustpilot sendiri). Hanya Trustpilot dengan alamat undangan: kasir hanya mengirim email ke Trustpilot. - Tidak terlalu sering: tamu yang sama (alamat email) paling banyak menerima satu permintaan per periode (standar 90 hari; 0 = setiap kali). Untuk itu kasir hanya menyimpan hash dari alamatnya; alamat email itu sendiri dihapus segera setelah email terkirim (jika gagal, setelah tiga percobaan, dan selain itu setelah 14 hari).
- Kode QR di struk (opsional): juga kode QR untuk ulasan di bawah struk cetak.
- Contoh email dan Hapus email yang menunggu (alamatnya langsung dihapus). Log menampilkan review_gevraagd dengan a***@domein.nl.
- Google dan Trustpilot melarang memberi hadiah untuk ulasan dan hanya meminta tamu yang puas ("review gating"). Karena itu kasir meminta semua orang dengan cara yang sama dan tidak memberi apa pun sebagai imbalan ulasan.
- Baca dan balas ulasan di kasir: lihat Manajemen ulasan di bawah.
Koneksi dengan Mailchimp dan Klaviyo
Pelanggan kartu pelanggan Anda di program email Anda sendiri: di Pengaturan → Usaha → Mailchimp dan Klaviyo (di bawah pemasaran SMS dan email). Tidak ada sakelar: tanpa koneksi dengan daftar yang dipilih, tidak terjadi apa-apa.
- Menghubungkan: dengan kunci API (Mailchimp: Profil → Extras → API keys; Klaviyo: kunci privat
pk_…dengan hak tulis untuk Lists, Profiles, Subscriptions, Events, Campaigns, dan Templates). Client secret dan kunci tidak akan pernah ditampilkan lagi di layar (biarkan kosong = tetap). Setelah itu Anda memilih daftar (Mailchimp: audience). - Pelanggan: siapa pun yang memberi izin email masuk ke daftar (berlangganan), dengan nama depan, nama belakang, telepon, ulang tahun, dan poin (Mailchimp: kolom
PUNTEN, dibuat sendiri oleh kasir; Klaviyo: propertipunten). Izin dicabut, alamat email diubah, atau pelanggan dihapus: berhenti berlangganan. Hanya yang berubah yang dikirim ulang. Dengan koneksi ini, kasir (dan centang "penawaran" di toko online) juga meminta izin email kepada pelanggan baru, dan izin itu bisa diubah di Laporan → Pelanggan, bahkan tanpa pemasaran email bawaan. - Berhenti berlangganan: siapa pun yang berhenti berlangganan di Mailchimp atau Klaviyo juga tidak lagi punya izin email di kasir (log: "berhenti berlangganan di Mailchimp"). Orang yang berhenti berlangganan sendiri tidak didaftarkan ulang oleh kasir.
- Pesanan: setiap struk yang dibayar dari pelanggan di daftar ikut dikirim sebagai event (Mailchimp:
bestelling, dengan jumlah, nomor struk, dan kuantitas; Klaviyo:Placed Order, dengan nilai dalam euro). Dengan itu Anda membuat email otomatis di program email, misalnya setelah pesanan pertama atau jika seseorang sebulan tidak datang. Struk dari sebelum daftar dipilih tidak ikut dikirim. - Promo: di Laporan → Pemasaran Anda juga bisa mengirim promo melalui Mailchimp atau Klaviyo (lihat Pemasaran SMS dan email); kasir lalu membuat kampanye di sana dan mengirimnya.
- Pembaruan: setiap 5 menit, atau dengan Perbarui sekarang. Putuskan: hilang dari kasir; di Mailchimp dan Klaviyo semuanya tetap ada. Kunci disimpan di database (ada di cadangan, tidak di ekspor konfigurasi).
Kode: lib/mailinglijst.ts, routes/mailinglijst.ts, dan MailingKoppelingen.tsx.
BI dan ekspor data
Data penjualan ke Power BI, Looker Studio, Excel, Google Sheets, Tableau, Qlik Sense, Metabase, layanan BI (misalnya YourBI, BI4Horeca atau Moore DRV) atau data warehouse Anda sendiri. Aktifkan di Pengaturan → BI dan ekspor data (standarnya nonaktif). Hanya baca: melalui koneksi tidak ada yang bisa diubah di kasir. Tanpa data tamu.
- Data: struk (termasuk nota kredit), produk terjual (baris struk), pembayaran, omzet per hari, omzet per jam, pembatalan, produk, karyawan (tanpa PIN), dan jam kerja. Nominal dalam euro dengan titik sebagai pemisah desimal, waktu sesuai waktu tempat usaha.
- + Koneksi: pilih paket dan caranya. Setiap paket mendukung satu atau beberapa cara; Anda dapat memiliki beberapa koneksi sekaligus (juga untuk paket yang sama).
- Paket mengambil sendiri (API): kasir memberikan satu kali kunci hanya-baca. Periode dengan
?van=&tot=(YYYY-MM-DD) atau alamat tetap dengan?periode=(vandaag, gisteren, 7d, 30d, 90d, 365d, week, maand, vorigemaand, jaar); paling banyak 366 hari, paling banyak 200.000 baris. Kunci diAuthorization: Bearer,X-Sleutelatau?sleutel=. - Melalui portal: jika kasir terhubung ke portal pelanggan, alamat yang sama juga berfungsi dari luar tempat usaha, tanpa membuka port:
https://<portaal>/bi/<kassa-id>/<gegevens>?periode=90d&formaat=csv&sleutel=.... Dengan begitu layanan Power BI memperbaruinya sesuai jadwal (tanpa gateway) dan Google Sheets dapat mengambilnya dengan=IMPORTDATA("...")(juga sumber untuk Looker Studio). Kasir menampilkan alamat di koneksi. - Ringkasan jaringan gerai lewat portal pelanggan (beberapa gerai): satu alamat dan satu kunci untuk semua kasir Anda sekaligus. Di setiap kasir yang ikut serta, aktifkan Ringkasan jaringan gerai lewat portal pelanggan (di bawah sakelar BI) dan buat kunci di portal pelanggan pada Kasir saya → BI untuk semua gerai Anda. Lalu:
https://<portaal>/bi/keten/<gegevens>?periode=90d&formaat=csv&sleutel=hpk_.... Portal mengambil data dari setiap kasir dan menggabungkannya, dengankassaIddanzaakdi setiap baris. Kasir yang offline atau tidak ikut serta tercantum diontbrekend(JSON) dan di headerX-Ontbrekend. Kasir itu sendiri tidak memerlukan kunci tersendiri untuk ini; menonaktifkannya di kasir atau di portal pelanggan akan menghentikannya. - Dengan token, token dikirim sebagai
Authorization: Bearerdan ada tanda tangan diX-HorecaPOS-Handtekening(sha256=HMAC dari isi). Jika gagal, kasir mencoba lagi setiap menit; tidak ada yang terkirim ganda. Dengan mulai dari, kasir juga mengirim struk lama. - Kasir menyediakan file: setiap hari (pada waktu tertentu, untuk hari sebelumnya; hari yang terlewat akan disusulkan) atau setiap jam (hari ini sampai sekarang), sebagai CSV (koma, atau titik koma untuk Excel Belanda) atau JSON, ke folder di komputer kasir (misalnya folder OneDrive atau SharePoint untuk Power BI atau Excel), server FTP(S) atau SFTP, atau lewat email. Nama file:
horecapos_<gegevens>_<datum>.csv. - Kirim uji (push) dan Ekspor sekarang (file) di koneksi.
- Unduh sendiri: pilih data, periode, dan format.
- Templat Power BI (
.pbit): laporan siap pakai untuk Power BI Desktop, dengan Unduh templat Power BI di BI dan ekspor data. Buat dulu koneksi API (Power BI). Di dalam model: satu tabel per set data dengan tipe yang benar, kalender (tahun, bulan, minggu, hari dalam seminggu), relasi (tanggal → kalender, baris struk → produk, jam kerja → karyawan), dan ukuran (omzet termasuk dan tanpa PPN, PPN, tip, struk, tamu, rata-rata per struk dan per tamu, jumlah terjual, omzet produk, dibayar, storno, jam kerja, omzet per jam kerja). Tiga halaman: Ikhtisar (angka utama, omzet per hari, hari dalam seminggu, dan jam, metode pembayaran), Produk (per grup dan per produk), dan Staf (jam dan omzet per karyawan). Melalui portal, layanan Power BI juga memperbaruinya sesuai jadwal. - Rahasia (token, kata sandi, kunci) tidak pernah ditampilkan di ikhtisar; biarkan kosong = tetap, Hapus = dihapus. Semuanya tercatat di log (tanpa rahasia).
Gaji dan penjadwalan
Dengan Absen masuk dan keluar aktif (Pengaturan → Usaha), di bagian bawah Pengaturan → Jam kerja ada Gaji dan penjadwalan (hak Kelola pengaturan), dalam dua blok terpisah. Jika absen dimatikan, tidak ada jam kerja: maka hanya blok Penjadwalan karyawan (omzet, live atau sebagai file omzet) yang ada di bagian bawah Pengaturan → Akuntansi, di bawah judul Omzet ke penjadwalan Anda:
- Administrasi gaji (payroll): pilih paket penggajian atau (Belgia) sekretariat sosial, isi kolom-kolomnya dan untuk setiap staf nomor karyawannya di paket tersebut. Setelah itu Anda membuat file untuk suatu periode berisi jam kerja (shift yang sudah ditutup, per staf per hari absen masuk) dan omzet per staf (tanpa PPN, yang ia tagih): siap pakai untuk Loket.nl (Variabele gegevens, total per staf selama periode, baris judul
aanslnr;persnr;ploeg;<looncomponent>) dan SD Worx Belgia (Tijdsregistratie, posisi tetap, per staf per hari), selain itu daftar jam (CSV: Tanggal; Nomor karyawan; Nama; Jam; Omzet tanpa PPN). Staf tanpa nomor karyawan tidak masuk ke file Loket atau SD Worx; kasir memberi tahu siapa saja mereka. - Penjadwalan karyawan (WFM): pilih sistem penjadwalan. Mengirim ulang akan menimpa. Selain itu daftar omzet (CSV per hari dan jam, tanpa dan dengan PPN) dan untuk Strobbo file Excel untuk Importeer omzet.
- Hanya paket yang berfungsi di negara usaha, per kelompok dan menurut abjad; server menolak paket dari negara lain (400).
- Kunci dan token tidak pernah ditampilkan di layar.
- Menyangkut akuntansi: biaya gaji dibukukan oleh paket penggajian di akuntansi, omzet dibukukan oleh kasir (Pengaturan → Akuntansi). AFAS Payroll dan Exact Online Loon berada di lingkungan yang sama dengan akuntansi AFAS dan Exact.
- Pada salinan kasir di portal hal ini tidak bisa dilakukan (kasir di tempat usaha yang melakukannya).
- Untuk beberapa paket, API-nya tidak publik atau hanya untuk mitra (a.l. Loket, Nmbrs, Nostradamus, Employes, Shyfter, Planday, Eitje): paket tersebut tercantum atas permintaan; sampai saat itu file. Format SD Worx dan Strobbo berasal dari dokumentasi mereka: minta agar impor pertama diperiksa.
| Software | NL | BE | Live | File | Catatan |
|---|---|---|---|---|---|
| Perangkat lunak penggajian dan biro penggajian | |||||
| ADP | ✓ | ✓ | atas permintaan | Daftar jam per staf dan per hari (CSV) | Koneksi melalui ADP (atas permintaan); sampai saat itu daftar jam per staf dan per hari. |
| AFAS Payroll | ✓ | – | atas permintaan | Daftar jam per staf dan per hari (CSV) | Administrasi gaji di AFAS Profit (lingkungan yang sama dengan akuntansi di AFAS); koneksi atas permintaan, sampai saat itu daftar jam. |
| BCS HR | ✓ | – | atas permintaan | Daftar jam per staf dan per hari (CSV) | Koneksi melalui BCS (atas permintaan); sampai saat itu daftar jam. |
| Buddee | ✓ | – | atas permintaan | Daftar jam per staf dan per hari (CSV) | Perangkat lunak HR dan penggajian; koneksi atas permintaan, sampai saat itu daftar jam per staf dan per hari. |
| Employes | ✓ | – | atas permintaan | Daftar jam per staf dan per hari (CSV) | Employes memiliki API untuk jam kerja (token dari pelanggan); koneksi menyusul setelah koordinasi dengan Employes. Sampai saat itu daftar jam. |
| Exact Online Loon | ✓ | – | atas permintaan | Daftar jam per staf dan per hari (CSV) | Administrasi gaji di Exact Online (lingkungan yang sama dengan akuntansi di Exact); koneksi atas permintaan, sampai saat itu daftar jam. |
| Humanwave | ✓ | – | atas permintaan | Daftar jam per staf dan per hari (CSV) | Koneksi melalui Humanwave (atas permintaan); sampai saat itu daftar jam. |
| Loket.nl | ✓ | – | atas permintaan | Loket.nl Variabele gegevens (CSV), Daftar jam per staf dan per hari (CSV) | File untuk Werkgever → Collectieve mutaties → Importeren → Variabele gegevens (jam per staf selama periode). Live melalui API Loket setelah mendaftar di Loket. |
| Nmbrs | ✓ | – | atas permintaan | Daftar jam per staf dan per hari (CSV) | Daftar jam per staf dan per hari, untuk dimasukkan ke Nmbrs. Live melalui API Nmbrs setelah mendaftarkan aplikasi di Nmbrs. |
| Salar (Van Winckel) | ✓ | – | – | Daftar jam per staf dan per hari (CSV) | Daftar jam per staf dan per hari untuk kantor administrasi; format impor Salar tidak publik. |
| Sekretariat sosial | |||||
| Acerta | – | ✓ | atas permintaan | Daftar jam per staf dan per hari (CSV) | Sekretariat sosial: format file prestasi Anda dapatkan dari Acerta; sampai saat itu daftar jam. |
| Group S | – | ✓ | atas permintaan | Daftar jam per staf dan per hari (CSV) | Sekretariat sosial: format file prestasi Anda dapatkan dari Group S; sampai saat itu daftar jam. |
| Liantis | – | ✓ | atas permintaan | Daftar jam per staf dan per hari (CSV) | Sekretariat sosial dengan API yang dibuka Liantis per perusahaan; sampai saat itu daftar jam. |
| Partena Professional | – | ✓ | atas permintaan | Daftar jam per staf dan per hari (CSV) | Sekretariat sosial: format file prestasi Anda dapatkan dari Partena; sampai saat itu daftar jam. |
| SD Worx | ✓ | ✓ | – | SD Worx Tijdsregistratie (TXT), Daftar jam per staf dan per hari (CSV) | Belgia: file Tijdsregistratie (posisi tetap, per staf per hari) untuk "Tijdsregistratie importeren". Belanda: daftar jam. |
| Securex | – | ✓ | atas permintaan | Daftar jam per staf dan per hari (CSV) | Sekretariat sosial: koneksi berjalan melalui mitra; sampai saat itu daftar jam. |
| Penjadwalan dan pencatatan jam kerja | |||||
| Book'u | – | ✓ | atas permintaan | Omzet per hari dan jam (CSV) | Book'u mengurus pelaporan Dimona; koneksi kasir tersedia atas permintaan. Sampai saat itu daftar omzet. |
| Deputy | ✓ | ✓ | ✓ | Omzet per hari dan jam (CSV) | Live: omzet per jam dikirim setiap jam ke Deputy (Sales). Token permanen Anda buat di Deputy pada integrasi API. |
| Dyflexis | ✓ | – | ✓ | Omzet per hari dan jam (CSV) | Live: omzet per jam dikirim setiap jam ke Dyflexis (information streams). Token API Anda dapatkan melalui Dyflexis. |
| Eitje | ✓ | – | atas permintaan | Omzet per hari dan jam (CSV) | Eitje terhubung melalui program mitranya; sampai saat itu daftar omzet per hari dan jam. |
| Exact Horeko | ✓ | – | atas permintaan | Omzet per hari dan jam (CSV) | Koneksi melalui Horeko (atas permintaan); sampai saat itu daftar omzet. |
| Fooks | ✓ | – | atas permintaan | Omzet per hari dan jam (CSV) | Fooks membangun koneksi kasir sendiri; sampai saat itu daftar omzet per hari dan jam. |
| L1NDA | ✓ | – | atas permintaan | Omzet per hari dan jam (CSV) | L1NDA membangun koneksi kasir bersama mitra; sampai saat itu daftar omzet per hari dan jam. |
| Mr. Einstein | ✓ | – | atas permintaan | Omzet per hari dan jam (CSV) | HR, jadwal, dan biaya gaji untuk horeka; Mr. Einstein membangun koneksi kasir bersama penyedia kasir (ajukan melalui mreinstein.nl/contact). Sampai saat itu daftar omzet per hari dan jam. |
| Nostradamus | ✓ | ✓ | atas permintaan | Omzet per hari dan jam (CSV) | Nostradamus menerima omzet melalui antarmuka kasirnya (token API dan domain usaha, setelah mengajukan permintaan ke Nostradamus); sampai saat itu, daftar omzet per hari dan jam. |
| Plan-Me | – | ✓ | atas permintaan | Omzet per hari dan jam (CSV) | Plan-Me mengurus pelaporan Dimona; koneksi kasir tersedia atas permintaan. Sampai saat itu daftar omzet. |
| Planday | ✓ | ✓ | atas permintaan | Omzet per hari dan jam (CSV) | Planday memiliki API terbuka untuk sistem kasir; koneksi menyusul setelah koordinasi. Sampai saat itu daftar omzet. |
| Shiftbase | ✓ | – | ✓ | Omzet per hari dan jam (CSV) | Live: omzet per hari dikirim setiap jam ke buku harian departemen di Shiftbase. Kunci API Anda buat di Shiftbase pada App center. |
| Shyfter | – | ✓ | atas permintaan | Omzet per hari dan jam (CSV) | Shyfter mengurus pelaporan Dimona dan menerima omzet per hari melalui API-nya; koneksi menyusul setelah koordinasi dengan Shyfter. Sampai saat itu daftar omzet. |
| Strobbo | ✓ | ✓ | – | Impor omzet Strobbo (Excel), Omzet per hari dan jam (CSV) | File Excel untuk Planning → € → Importeer omzet (omzet per hari per tempat kerja). |
| Tamigo | ✓ | ✓ | atas permintaan | Omzet per hari dan jam (CSV) | Koneksi melalui Tamigo (atas permintaan); sampai saat itu daftar omzet. |
| Werktijden.nl | ✓ | – | – | Omzet per hari dan jam (CSV), Daftar jam per staf dan per hari (CSV) | Werktijden.nl mencatat jam sendiri dan (belum) menerima omzet melalui API-nya; daftar-daftar tersedia untuk perbandingan. |
| XPS Logic | ✓ | – | atas permintaan | Omzet per hari dan jam (CSV) | XPS Logic berfokus pada tenaga kerja fleksibel dan tenaga alih daya; koneksi tersedia atas permintaan. Sampai saat itu daftar omzet. |
Persyaratan hukum di Belgia dan Belanda
Apa yang diwajibkan hukum dan apa yang dilakukan HorecaPOS untuk itu (minta pemegang buku Anda mengonfirmasi apa yang berlaku untuk usaha Anda):
| Negara | Persyaratan | HorecaPOS |
|---|---|---|
| Belgia | Sistem kasir terdaftar (GKS 2.0) dengan kotak hitam untuk usaha horeka yang wajib memenuhinya (antara lain bila omzet dari makanan lebih dari € 25.000 per tahun, belum termasuk PPN) | koneksi dengan kotak hitam (FDM), data wajib di struk dan penghitung pada laporan Z (negara Belgia di Pengaturan → Usaha, FDM_API_KEY dan FDM_TERMINAL_ID); di bagian atas Pengaturan → Usaha Anda memilih apakah usaha wajib GKS: Ya = pembayaran hanya dengan kotak hitam yang berfungsi, Tidak = tanpa, dengan pernyataan admin (diperbarui setiap tahun); selama belum dipilih, pembayaran tidak bisa dilakukan. Kasir menghitung omzet makanan dan memberi peringatan di atas € 25.000 |
| Belgia | E-faktur lewat Peppol: sejak 1 Januari 2026 faktur antar perusahaan Belgia yang wajib PPN harus elektronik terstruktur (UBL, Peppol BIS 3); struk kasir untuk konsumen tidak termasuk | ekspor omzet harian sebagai UBL sesuai Peppol BIS Billing 3.0 untuk paket akuntansi (Ekspor akuntansi); dan faktur dari struk untuk pelanggan bisnis (Pengaturan → Faktur): UBL sesuai Peppol BIS Billing 3.0 ditambah faktur untuk dicetak, kirim lewat email, melalui Billit ke jaringan Peppol, ke alamat sendiri, atau unduh (lihat Faktur untuk pelanggan bisnis) |
| Belgia | PPN horeca sejak 1 Maret 2026: makanan bawa pulang dan minuman non-alkohol 12% (makan di tempat maupun bawa pulang), alkohol 21%, makanan yang masih dimasak sendiri oleh pelanggan (fondue, gourmet) 6% | Asisten PPN (Pengaturan → Hukum dan peraturan): jenis per produk, tarif yang tepat langsung atau mulai tanggal tertentu; deskripsi tarif A/B/C sudah diperbarui |
| Belanda | Alcoholwet: tidak ada alkohol untuk anak muda di bawah 18, juga tidak pada penjualan online dan pengantaran (usia diperiksa saat penyerahan) | Pemeriksaan usia: produk beralkohol; di toko online pelanggan sendiri menyatakan 18+ (kotak tidak dicentang sebelumnya) dengan pemberitahuan bahwa usia diperiksa saat penyerahan; "18+" pada tiket dapur, struk pengantaran, dan struk kasir |
| Belanda | Gelas dan wadah sekali pakai (SUP): sejak 2024 harga terpisah yang terlihat untuk kemasan plastik sekali pakai saat bawa pulang dan antar | Biaya kemasan sekali pakai per produk, sebagai baris terpisah pada struk (PPN produk) dan terpisah dalam omzet |
| Belanda | Deposit untuk kaleng dan botol plastik | Deposit per produk (€ 0,15 / € 0,25), baris terpisah tanpa PPN saat bawa pulang dan antar, terpisah dalam omzet |
| Belanda | Pembayaran tunai: sejak 1 Januari 2026 tidak boleh € 3.000 atau lebih tunai untuk barang | Peringatan saat bawa pulang dan antar (juga di mesin uang tunai); konfirmasi dimungkinkan, dicatat di log |
| Belanda dan Belgia | Perubahan PPN: tarif atau produk mendapat persentase PPN lain mulai tanggal tertentu | Menjadwalkan perubahan PPN: kasir menjalankannya pada hari itu juga (di Belgia per produk, huruf A/B/C/D sudah tetap) |
| Belanda | Penginapan (menginap) 21% sejak 1 Januari 2026 | tarif PPN dapat diatur per produk |
| UE | Direktif Omnibus: harga "dari" yang dicoret hanya boleh harga terendah dalam 30 hari terakhir | toko online hanya mencoret terhadap harga terendah dalam 30 hari (kasir menyimpan riwayat harga; happy hour yang berulang setiap minggu ikut dihitung) |
| UE | European Accessibility Act (sejak 28 Juni 2025): toko online dapat diakses (WCAG 2.1 AA) | toko online berfungsi dengan keyboard dan pembaca layar (tautan "Ke konten", fokus terlihat, label) dan memiliki pernyataan aksesibilitas (tautan di bawah) |
| Belanda | XML Auditfile Financieel (XAF): standar Belastingdienst (otoritas pajak Belanda) untuk menyerahkan (sebagian) administrasi; XAF 4.0 wajib mulai 2027 | ekspor sebagai XAF 4.0 (Ekspor akuntansi) |
| Belanda | Sistem kasir yang andal: menyimpan data kasir (semua struk, koreksi, dan peristiwa) dan dapat menyerahkannya secara digital saat pemeriksaan; untuk itu Belastingdienst merekomendasikan XML Auditfile Afrekensystemen (XAA) | ekspor sebagai XAA 3.2 (Laporan → Omzet per periode → File audit kasir), bila diinginkan ditandatangani dengan sertifikat pemasok |
| Belgia | Pencatatan kehadiran pada sistem kasir terdaftar: mencatat awal dan akhir waktu kerja pekerja di sistem kasir | Absen masuk dan keluar (Pengaturan → Usaha; Wajib = absen masuk terlebih dahulu) dicatat di kotak hitam |
| Belgia | Dimona: setiap hubungan kerja (termasuk flexi-job dan pelajar) dilaporkan ke RSZ sebelum mulai | itu dilakukan oleh sekretariat sosial atau alat penjadwalan Anda (mis. Shyfter, Book'u, Plan-Me); HorecaPOS menyediakan jam kerja dan omzet (Pengaturan → Jam kerja → Gaji dan penjadwalan) |
| Belanda | Pencatatan waktu kerja dan waktu istirahat (Arbeidstijdenwet, Undang-Undang Waktu Kerja Belanda) | Absen masuk dan keluar dengan jam kerja per staf, dapat diubah oleh pengelola (dengan log), dan daftar jam untuk paket penggajian |
| Belanda dan Belgia | HACCP / keamanan pangan: mencatat suhu (pendingin, freezer, penghangat, pemanasan, pendinginan kembali, penerimaan) dan kebersihan; NL Hygiënecode voor de Horeca (NVWA), BE autokontrol FAVV (panduan G-023) | Pencatatan HACCP di kasir (Pengaturan → Hukum dan peraturan, tombol HACCP di atas): titik ukur dengan batas, tugas kebersihan dan pemeriksaan, tindakan korektif wajib saat ada penyimpangan, tidak dapat diubah, ikhtisar dengan catatan yang terlewat sebagai CSV atau cetak (lihat Pencatatan HACCP) |
| Belanda dan Belgia | Kewajiban penyimpanan (NL 7 tahun, BE 10 tahun) | struk, laporan Z dan log tersimpan di database dan di cadangan; log tidak bisa diubah atau dihapus dari kasir |
Hukum dan peraturan
Pengaturan → Hukum dan peraturan (admin; asisten PPN juga dengan hak Kelola produk). Semuanya nonaktif secara bawaan; tanpa pengaturan ini kasir bekerja seperti biasa.
- Pemeriksaan usia alkohol (18+): centang Mengandung alkohol di Produk (atau gunakan asisten PPN). Saat bawa pulang dan antar dengan alkohol, "18+" tercantum pada tiket dapur, struk kasir, dan di layar pesanan. Di toko online pelanggan sendiri menyatakan berusia 18 tahun atau lebih (kotaknya tidak dicentang sebelumnya) dan melihat bahwa usia akan diperiksa saat penyerahan.
- Biaya kemasan sekali pakai (Belanda): jumlah per produk (harga acuan: gelas € 0,25, wadah makanan € 0,50, wadah kecil € 0,05). Saat bawa pulang dan antar kasir otomatis menambahkan baris "Biaya kemasan sekali pakai" pada struk (dengan PPN produk); baris itu otomatis ikut dengan produk (database mencatatnya, juga setelah dihapus, dipindahkan, atau jenis pesanan lain) dan terpisah dalam omzet. Makan di tempat tanpa biaya. Thuisbezorgd.nl dan toko online mengenakan biayanya sendiri.
- Deposit (Belanda): per produk (€ 0,15 kaleng/botol, € 0,25 botol besar), baris "Deposit" tanpa PPN, hanya saat bawa pulang dan antar.
- Tunai € 3.000 atau lebih (Belanda, sejak 1-1-2026 dilarang untuk barang): saat bawa pulang dan antar ada peringatan saat pembayaran dan di mesin uang tunai; karyawan dapat mengonfirmasi (mis. katering sebagai jasa), dan itu dicatat di log. Makan dan minum di tempat adalah jasa: tanpa peringatan.
- Asisten PPN: jenis per produk (makanan, minuman non-alkohol, minuman beralkohol, makanan tanpa pengolahan, lainnya; awalnya tebakan berdasarkan nama dan grup). Kasir menampilkan tarif yang tepat untuk makan di tempat dan bawa pulang (Belgia sejak 1-3-2026: makanan dan minuman ringan 12%, juga bawa pulang; alkohol 21%; makanan tanpa pengolahan 6%. Belanda: 9% dan 21%) dan menerapkannya, langsung atau mulai tanggal tertentu.
- Menjadwalkan perubahan PPN: produk ke tarif lain, atau (hanya Belanda) tarif dengan persentase baru, mulai tanggal tertentu. Kasir menjalankannya sendiri pada hari itu (diperiksa setiap 15 menit, dan saat dinyalakan).
Faktur (di Belgia wajib antarperusahaan) ada di Faktur untuk pelanggan bisnis. Masih harus dilakukan: GKS 2.0, tanyakan status sertifikasinya (lihat docs/backlog-concurrenten.md).
Faktur untuk pelanggan bisnis
Pengaturan → Faktur (admin; standarnya mati): aktifkan Faktur untuk pelanggan bisnis (UBL / Peppol). Jika aktif, di bawahnya ada Bayar tempo, Data pada faktur, Layanan Peppol, Koneksi bank (dengan bayar tempo), dan daftar semua faktur. Di Belgia e-faktur antarperusahaan wajib sejak 1-1-2026.
- Faktur untuk pelanggan bisnis: Struk → pilih struk → Faktur. Isi data pelanggan (atau pilih pelanggan sebelumnya); kasir membuat faktur bernomor (mis. F2026-0001, berurutan per tahun), sebagai UBL sesuai Peppol BIS Billing 3.0 dan sebagai faktur untuk dicetak atau disimpan sebagai PDF. Kirim melalui email (keduanya sebagai lampiran, opsional salinan ke akuntan), melalui Billit ke jaringan Peppol (
BILLIT_API_KEY,BILLIT_PARTY_ID), melalui Storecove (STORECOVE_API_KEY,STORECOVE_LEGAL_ENTITY_ID; penerima ditentukan dari ID Peppol pelanggan, mis. 0208 → BE:EN, 0106 → NL:KVK, jika tidak, melalui email lewat Storecove) atau melalui Banqup dari Unifiedpost (BANQUP_CLIENT_ID,BANQUP_CLIENT_SECRET,BANQUP_SPACE_ID;BANQUP_SANDBOX=1untuk lingkungan uji; Banqup memeriksa UBL dan mengirimkannya sendiri), ke alamat sendiri (FACTUUR_HTTP_URL, mis. perangkat lunak akuntansi atau layanan Peppol lain) atau unduh. Satu faktur per struk; struk sudah dibayar, jadi "lunas". Nomor KvK/perusahaan, IBAN, ID Peppol, awalan, dan jangka waktu pembayaran di Data pada faktur. Semua faktur di bagian bawah tab (hak akses Omzet per periode). - Kunci, secret, dan header tidak pernah ditampilkan (hanya "terisi"; biarkan kosong = tetap, Hapus = dihapus) dan tidak dicatat di log (hanya kolom mana yang berubah). Disimpan di database (
vestiging.peppol_gegevens): ada di cadangan, tidak di ekspor konfigurasi.
Kios swalayan
Tamu memesan sendiri di tiang atau tablet, seperti di restoran cepat saji, dan membayar di kasir atau dengan kartu di kios. Layar pemesanan adalah bagian dari kasir itu sendiri, jadi menu, harga, opsi, paket, happy hour, waktu dalam sehari, foto, alergen, bahasa, dan struk berasal dari kasir dan tidak perlu diatur di tempat lain. Di kios berjalan aplikasi PinPortal Kiosk 2 (Android, termasuk Sunmi, serta Windows, Linux, dan macOS), yang menampilkan halaman dan mencetak struk. Nonaktif secara default.
Mengaktifkan dan mengatur (administrator): Pengaturan → Usaha → Layar dan pengoperasian → Kios swalayan.
- Pilih apa yang bisa dipilih tamu: Makan di sini dan/atau Bawa pulang (bawa pulang memakai harga bawa pulang dan tarif PPN bawa pulang, jika diatur).
- Teks sambutan, setelah berapa detik tanpa sentuhan kios kembali ke awal (keranjang lalu dikosongkan), dan grup produk mana yang ada di kios (tidak ada yang dicentang = semua).
- Ada tambahan lagi?: centang grup produk (mis. minuman, hidangan penutup); di keranjang kios lalu menyarankan beberapa produk dari grup itu.
- Pembayaran, per kios (lihat Menambah dan menghubungkan kios):
- Di kasir (default, seperti kios lama): tamu memesan, mendapat nomor pengambilan, dan membayar di kasir. Tidak perlu mesin EDC di kios.
- Dengan kartu di kios: tamu membayar di mesin EDC dekat kios.
- Tamu memilih: di kasir atau dengan kartu. Jika kios tidak punya mesin EDC, pembayaran di kasir.
- Ke dapur (saat bayar di kasir): langsung setelah memesan di kios (default), atau baru setelah dibayar di kasir.
- Struk: di printer kios (default), di printer struk kasir, atau tanpa struk (hanya nomor di layar). Saat bayar di kasir, kios mencetak lembar dengan nomor dan belum dibayar; struk keluar saat pembayaran di kasir.
- Status pesanan di ponsel (opsional, default nonaktif): kode QR muncul di struk kios dan di layar akhir. Tamu memindainya, melihat nomornya dan statusnya (dipesan, sedang disiapkan, siap) dan mendapat notifikasi saat pesanan siap. Ini berjalan melalui portal manajemen, jadi kasir harus terhubung ke portal.
- Alkohol dan produk per kilo tidak pernah ada di kios: tanpa staf, usia tidak bisa diperiksa dan tidak ada timbangan.
- Pemindai barcode (opsional, default semua nonaktif): centang apa yang boleh dilakukan pemindaian di kios:
- produk ke keranjang (kode produk);
- kode diskon;
- kartu pelanggan (tamu mengumpulkan poin);
- kartu hadiah atau kartu prabayar sebagai pembayaran. Jika saldonya cukup, pesanan langsung lunas. Jika tidak, kartu membayar sebagian dan tamu membayar sisanya dengan kartu atau di kasir (itu juga boleh di kios yang hanya menerima kartu). Setelah pembayaran sebagian seperti itu, tamu tidak bisa membatalkan lagi; pesanan muncul di kasir sebagai Kios … · nomor.
Pemindainya sendiri diatur di kios: di aplikasi PinPortal Kiosk 2 pada manajemen → Pemindai barcode (sebagai keyboard, pemindai bawaan, atau port COM), dengan tes pemindai. Pemindai yang bekerja sebagai keyboard juga berfungsi tanpa aplikasi.
- Isi ulang saldo (opsional, default nonaktif; hanya berfungsi jika Saldo isi ulang aktif): di layar awal kios lalu muncul Isi ulang saldo. Tamu memindai kartu atau kartu hadiahnya (atau mengetik kodenya), melihat saldo, dan memilih jumlah. Jumlahnya Anda atur sendiri (1 sampai 6, default € 10, € 20, dan € 50). Pembayaran berjalan sesuai pengaturan kios: dengan kartu, atau di kasir dengan nomor pengambilan. Setelah pembayaran, jumlahnya masuk ke saldo. Isi ulang seperti ini tidak dikirim ke dapur, tidak tampil di layar panggilan, dan tidak mendapat kode QR. Saldo maksimal dari pengaturan Saldo isi ulang juga berlaku di sini.
- Tagih ke kamar saya (koneksi hotel, default nonaktif; Pengaturan → Hotel → Swalayan): di keranjang kemudian ada Tagih ke kamar saya. Tamu hotel mengisi nomor kamar dan nama belakang; jika cocok dengan tamu yang sekarang menginap di kamar itu, pesanan masuk ke dapur dan tercatat lunas di tagihan kamar (lihat Software hotel: tagih ke kamar).
- Belgia (kotak hitam): fitur yang belum diuji dengan kotak hitam otomatis nonaktif di kios (voucher hadiah atau saldo sebagai pembayaran, isi ulang, kode diskon, menu paket, pilihan dengan biaya tambahan, happy hour), sama seperti di kasir.
Menambah dan menghubungkan kios
- Di Kios, isi nama (mis. Kios pintu masuk) lalu pilih Tambah kios. Anda mendapat kode penghubung 6 digit (berlaku 30 menit).
- Pilih di kios cara tamu membayar: default di kasir. Jika kios punya mesin EDC, pilih dengan kartu atau tamu memilih, lalu pilih mesin EDC kios ini (dari Pengaturan → Pembayaran).
- Buka halaman kios di kios:
- di tempat usaha: di aplikasi pada pengelolaan → Vast adres, alamat yang tertera di pengaturan, mis.
http://192.168.1.20:3000/kiosk; - atau lewat portal pengelolaan (https, juga jika kios tidak di jaringan yang sama): hubungkan alamat kios yang tertera di pengaturan ke kode kios aplikasi, sama seperti dengan kios lama.
- di tempat usaha: di aplikasi pada pengelolaan → Vast adres, alamat yang tertera di pengaturan, mis.
- Masukkan kode penghubung di kios. Selesai: kios mengingat kuncinya sendiri. Hubungkan lagi memberi kode baru; Hapus memutuskannya.
Setiap kios menunjukkan apakah sedang online.
Cara tamu memesan
- Layar awal dengan teks sambutan; tamu memilih bahasa (semua bahasa kasir) lalu mengetuk untuk memesan.
- Makan di sini atau bawa pulang.
- Menu per grup produk, dengan foto, harga (dengan happy hour), alergen dan yang sudah habis. Produk dengan pilihan atau paket membuka jendela pilihan.
- Keranjang: ubah jumlah dan bila perlu Ada tambahan lagi?.
- Pesan (bayar di kasir): tamu melihat nomor pengambilan-nya besar di layar beserta jumlahnya, mendapat lembarnya, dan membayar di kasir. Di kasir pesanan terbuka sebagai Kios Pintu masuk · 42 (nomor yang disebutkan tamu); selesaikan pembayaran seperti biasa. Setelah itu tampil sebagai lunas di layar panggilan dan masuk ke dapur jika memang baru setelah dibayar.
- Bayar dengan kartu: kasir mengirim jumlahnya ke mesin EDC kios ini (koneksi pembayaran yang sama seperti di kasir). Jika gagal, tamu bisa mencoba lagi atau membatalkan (atau, jika boleh memilih, tetap membayar di kasir). Hanya setelah pembayaran berhasil, pesanan masuk ke dapur dan diselesaikan. Tamu melihat nomor pengambilan-nya besar di layar dan mendapat struk.
- Setelah beberapa detik, kios kembali ke awal.
Saat gangguan: notifikasi dan mode darurat (di aplikasi kios, pengelolaan → Bij storing; default nonaktif). Jika kios tidak dapat menjangkau kasir, kios menampilkan Even gesloten. Dua tambahan:
- Teams, Slack, Discord, ntfy, Home Assistant, Make, atau Zapier), dan pesan hersteld saat berfungsi lagi. Dengan Testmelding sturen alamatnya bisa diperiksa.
- Mode darurat: kios menyimpan menu sederhana yang diteruskan oleh halaman kios: produk tanpa pilihan atau paket menu, dengan harga makan di sini (atau bawa pulang jika hanya itu pilihannya).
- Jika kasir tidak ada untuk beberapa waktu (default 60 detik), tamu memesan dari menu itu.
- Tamu membayar dengan kartu atau di konter. Bayar kartu hanya bisa jika Pinbetaling aktif di aplikasi.
- Ada dua nota darurat: satu untuk tamu (N1, N2 …) dan satu untuk konter/dapur. Di nota tertulis bahwa itu bukan struk kasir.
- Saat kasir kembali, halaman kios memasukkan pesanan darurat ke kasir sebagai Nood N… <kios>. Pesanan ini tidak dikirim ke dapur (dapur sudah punya nota darurat) dan tidak tampil di layar panggilan.
- Dibayar dengan kartu dan jumlahnya sama dengan di kasir: diselesaikan sebagai Bayar kartu manual. Jika tidak (bayar di konter, atau jumlah berbeda), pesanan tetap terbuka untuk pelayan.
- Semuanya tercatat di log.
- Belgia: dengan sistem kasir terdaftar (GKS, kotak hitam), setiap penjualan harus langsung melalui kasir dan FDM. Mode darurat kemungkinan besar tidak diizinkan; tanyakan dulu. Di Belgia, aplikasi kios hanya mengaktifkannya setelah konfirmasi tambahan, dan kasir memberi peringatan di bagian kios.
Di kasir, pesanan kios adalah pesanan biasa (bawa pulang atau makan di tempat, bernama Kios Pintu masuk) atas nama karyawan Kiosk. Kasir membuatnya sendiri; tidak ada yang bisa masuk dengannya. Jangan jadikan nonaktif, kalau tidak kios tidak bisa memesan. Pesanan kios ada di laporan, di Struk, dan di layar panggilan. Pesanan yang tidak diselesaikan di kios (belum dipesan atau belum dibayar dengan kartu) kedaluwarsa sendiri setelah 30 menit.
Pembayaran kartu dalam mode uji (Pengaturan → Pembayaran)? Maka kios tidak benar-benar menagih; berguna untuk mencoba. Tanpa internet tidak bisa membayar dengan kartu; kios lalu memberi tahu bahwa bisa memesan di konter.
Gangguan: jika kasir tidak dapat dijangkau, aplikasi kios menampilkan "Tutup sementara" dan melanjutkan sendiri. Jika kios berjalan melalui portal manajemen dan internet putus, aplikasi dapat beralih ke kasir di jaringan lokal (di aplikasi: pengelolaan → Ekstensi → Saat gangguan, beralih ke jaringan lokal); kios meneruskan alamat itu sendiri.
Menonaktifkan: kios menunjukkan bahwa sedang tutup sebentar. Kios dan pengaturan tetap tersimpan. Di log tercatat aktif/nonaktif, pengaturan, kios yang ditambah dan dihapus, penghubungan dan pesanan yang dibatalkan.
Papan menu digital
Menu dengan harga di TV (atau monitor lain dengan browser), langsung dari kasir. Default nonaktif; aktifkan lewat Pengaturan → Usaha → Layar dan pengoperasian → Papan menu digital. Lalu buka di TV http://<kassaserver>:3000/menubord (atau gunakan tombol Di layar terpisah / Di tablet atau ponsel dengan kode QR). Tanpa login dan tanpa pemasangan.
- Per kategori, produk beserta harganya, dalam urutan seperti di kasir. Pilih sendiri kategori mana (dan urutannya), 1 sampai 4 kolom, gelap atau terang, judul sendiri (kosong = nama usaha), foto produk, dan alergen.
- Selalu tepat: papan mengambil menu setiap 10 detik (dan langsung saat ada perubahan), sehingga produk yang habis (dicoret dengan Habis, atau dihapus dari papan), stok kosong, happy hour (harga promo dengan harga normal dicoret, serta nama dan jam berakhir di atas) dan waktu menu (hanya yang sedang dijual) otomatis tampil dengan benar.
- Jika tidak semuanya muat di layar, halaman tampil bergantian (default setiap 12 detik, bisa diatur dari 5 sampai 120).
Karyawan dan PIN
Pengaturan → Karyawan (hanya administrator): tambah karyawan, ubah nama, peran, dan PIN, serta nonaktifkan.
- Peran: pelayan (memesan, menerima pembayaran, laporan X), manajer (ditambah diskon, retur, tutup hari, laci kas, dan log), dan administrator (semuanya, termasuk semua Pengaturan). Itu default-nya; apa yang boleh dilakukan pelayan dan manajer bisa diubah (lihat Hak akses per peran).
- PIN 4 sampai 8 angka, unik di antara karyawan aktif. PIN hanya disimpan terenkripsi (hash) di database dan tidak bisa dibaca kembali.
- Menghapus permanen tidak bisa (struk dan log merujuk ke karyawan); nonaktif = tidak bisa login lagi.
- Selalu tersisa minimal satu administrator aktif.
- Peran lain, PIN baru, atau nonaktif: sesi aktif karyawan itu langsung diakhiri.
- Belgia: opsional nomor registrasi nasional untuk pendaftaran karyawan.
- Bahasa: bahasa layar untuk karyawan ini (atau "Bahasa perangkat"). Setelah login, kasir langsung tampil dalam bahasa itu; karyawan juga bisa mengubahnya sendiri lewat bendera kecil di kanan bawah (lihat Bahasa).
- Tips: ganti PIN demo 1111 dan 2222 sebelum kasir mulai dipakai.
Masuk dengan kartu (opsional)
Default nonaktif. Untuk mengaktifkan: Pengaturan → Karyawan, centang Masuk dengan kartu (NFC, RFID atau iButton). Diperlukan: pembaca kartu USB yang bekerja sebagai keyboard (untuk kartu NFC atau RFID, gantungan kunci, gelang atau kunci iButton). Pembaca seperti itu "mengetik" nomor kartu dan menekan Enter; tidak perlu driver atau koneksi.
- Memasangkan: ketuk staf, lalu Pasangkan kartu dan tempelkan kartu ke pembaca. Satu kartu hanya untuk satu staf. Hapus kartu jika kartu hilang.
- Masuk: di layar masuk, tempelkan kartu ke pembaca. PIN juga tetap berfungsi seperti biasa.
- Absen masuk dan keluar (jika aktif): di layar masuk ketuk Absen masuk / keluar dan tempelkan kartu ke pembaca.
- Nomor kartu hanya disimpan terenkripsi (hash) di database, sama seperti PIN. Staf yang nonaktif juga tidak bisa masuk dengan kartunya.
- Nonaktif: masuk hanya dengan PIN, seperti biasa. Kartu yang sudah dipasangkan tetap tersimpan.
Hak akses per peran
Pengaturan → Hak akses (hanya administrator): centang per peran apa yang boleh dilakukan pelayan dan manajer. Secara default semuanya persis seperti di atas (seperti kasir selama ini); kotak yang berbeda diberi warna.
| Hak akses | Pelayan | Manajer |
|---|---|---|
| Hapus baris setelah dipesan (storno) | ya | ya |
| Beri diskon / hapus diskon | tidak | ya |
| Tandai produk sebagai "habis" | ya | ya |
| Cetak salinan struk | ya | ya |
| Retur (struk kredit) | tidak | ya |
| Bayar dengan tempo dan terima pembayaran tempo (hanya jika bayar tempo aktif) | tidak | ya |
| Saldo sementara (laporan X) | ya | ya |
| Tutup hari (laporan Z) | tidak | ya |
| Omzet per periode | tidak | ya |
| Kelola laci kas | tidak | ya |
| Kelola voucher hadiah (hanya dengan voucher hadiah bersaldo) | tidak | ya |
| Baca dan balas ulasan (hanya jika manajemen ulasan aktif) | tidak | ya |
| Kelola kartu pelanggan (hanya jika kartu pelanggan aktif) | tidak | ya |
| Lihat log | tidak | ya |
| Lihat gambar kamera (hanya jika gambar kamera aktif) | tidak | ya |
| Kelola stok (hanya jika stok aktif) | tidak | ya |
| Kelola produk | tidak | tidak |
| Kelola denah | tidak | tidak |
| Atur usaha, pembayaran, dan printer | tidak | tidak |
| Lihat dan ubah jam kerja | tidak | tidak |
- Admin selalu boleh melakukan semuanya. Mengubah personel dan hak akses selalu hanya untuk admin (jika tidak, seseorang bisa memberi dirinya sendiri hak lebih).
- Tombol dan tab yang tidak diizinkan untuk suatu peran akan disembunyikan untuk peran itu; server kasir juga memeriksanya. Misalnya jika manajer mendapat hak Kelola produk, ia akan melihat tombol Pengaturan dengan hanya tab Produk.
- Perubahan langsung berlaku di semua kasir dan dicatat di log. Kembali ke standar mengembalikan semuanya seperti semula.
Data usaha
Pengaturan → Usaha (hanya admin): nama, alamat, kode pos, kota, telepon, dan nomor PPN/BTW cabang. Data ini tercetak di bagian atas setiap struk kasir dan pro forma. Teks di bagian bawah struk juga bisa diatur di sini (boleh beberapa baris; kosong = tanpa teks; standar "Bedankt en tot ziens!"), dan di bawahnya bahasa struk kasir (standar Belanda; lihat Bahasa). Contoh struk ikut berubah secara langsung. Setelah disimpan, struk berikutnya langsung memakai data baru. Negara dan data fiskal (GKS) sengaja tidak bisa diubah di sini. Di Belgia nomor PPN/BTW wajib. Dengan centang Bulatkan pembayaran tunai ke 5 sen (standarnya nonaktif), total pembayaran tunai akan dibulatkan (€ 6,62 → € 6,60, € 6,63 → € 6,65); selisihnya tercetak sebagai "Pembulatan" di struk. Pembayaran kartu (PIN) selalu tepat sampai sen.
Kelola produk
Masuk sebagai admin dan pilih Pengaturan → Produk.
- Tambah, ubah (nama, harga, grup, tarif PPN untuk makan di tempat dan bawa pulang, nama di struk, kode, habis terjual), dan hapus grup produk dan produk. Grup maupun produk bisa diberi warna sendiri; produk berwarna mendapat tombol berwarna di layar pesanan (teks otomatis putih atau gelap agar mudah dibaca).
- Ubah urutan dengan menyeret grup atau produk pada ≡. Bisa dengan mouse maupun jari di tablet. Urutan itulah yang kemudian tampil di layar pesanan; layar kasir yang terbuka langsung diperbarui sendiri.
- Menghapus akan mengeluarkan produk dari kasir, tetapi pesanan lama dan jurnal fiskal tetap mengenal produk itu. Grup baru bisa dihapus jika sudah kosong.
- Opsi pilihan: buka produk atau grup produk dan tambahkan grup pilihan di bawah "Opsi pilihan", misalnya "Tingkat kematangan" (tepat satu, wajib), "Saus" (maksimal satu), atau "Ekstra" (beberapa, dengan minimum dan maksimum; maksimum kosong = tanpa batas). Setiap pilihan punya nama dan harga tambahan (boleh negatif, mis. -0,50). Grup pilihan dari grup produk berlaku untuk semua produk di grup itu, ditambah pilihan milik produk itu sendiri. Urutan dengan ▲▼. Menghapus selalu bisa: pesanan dan struk yang sudah ada menyimpan sendiri opsi yang dipilih. Server juga memeriksa pilihan wajib dan batas maksimum.
- Foto per produk: lihat Foto produk.
- Harga per kilo, nomor PLU, dan tara (hanya jika timbangan aktif): lihat Mengatur timbangan. Tanpa centang, produk tetap dijual per buah.
Foto produk
Setiap produk bisa diberi foto.
- Pasang foto: Pengaturan → Produk → pilih produk → Pilih foto (di tablet atau ponsel juga bisa langsung dengan kamera). Foto diperkecil di browser hingga maksimal 512 × 512 piksel (JPEG, biasanya 20–80 kB) dan langsung disimpan; Foto lain menggantinya, Hapus foto menghapusnya. Di daftar produk ada foto kecil di depan nama. Hanya dengan hak Kelola produk; jpg, png, dan webp, maksimal 512 kB.
- Tampilan dipilih admin di Pengaturan → Usaha → Foto produk, terpisah satu sama lain dan standarnya nonaktif:
- Foto produk di tombol layar pesanan: foto di bagian atas tombol produk, dengan nama dan harga di bawahnya.
- Foto produk di daftar produk pada layar pelanggan: foto kecil di depan setiap baris di layar pelanggan (layar pelanggan sendiri juga harus aktif). Produk tanpa foto tetap seperti biasa; jika nonaktif, semuanya bekerja persis seperti sebelumnya.
Pemindai barcode
Dengan pemindai barcode di kasir Anda memindai produk, kode diskon, kartu pelanggan, dan kartu hadiah. Aktifkan di Pengaturan → Pemindai (tab di samping printer dan timbangan; default nonaktif). Centang apa yang dilakukan pemindaian di layar pesanan:
- Produk ke struk: produk dengan kode itu (Pengaturan → Produk, kolom Kode; mis. barcode EAN pada kemasan). Dengan pilihan, menu, atau harga per kilo, jendela pilihan atau timbangan terbuka dulu, sama seperti saat mengetuk. Hal ini juga dilakukan oleh Memindai di layar pesanan di Cetak label; fitur itu tetap berfungsi seperti biasa.
- Kode diskon ke struk (jika Kode diskon aktif).
- Kartu pelanggan: pelanggan dengan nomor kartu itu masuk ke struk (jika kartu pelanggan aktif). Jika Anda memindai kode tidak dikenal pada struk dengan pelanggan, kasir bertanya apakah itu kartu barunya.
- Kartu hadiah atau kartu prabayar: kasir menampilkan saldo (jika kartu hadiah dengan saldo aktif). Pembayaran dilakukan di Bayar → Kartu hadiah; di sana kartu juga bisa dipindai.
Kasir mencari dulu di produk, lalu di kartu pelanggan, kartu hadiah, dan kode diskon. Pemindaian berfungsi di layar pesanan, jika Anda tidak berada di kolom input. Di kolom input, kode masuk begitu saja ke kolom itu.
Tes pemindai: di Pengaturan → Pemindai Anda melihat kode setiap pemindaian dan bagaimana kasir membacanya, juga saat pemindai masih nonaktif. Jika tidak berfungsi:
- Atur pemindai ke keyboard (USB-HID), dengan Enter setelah kode. Pada kebanyakan pemindai ini sudah begitu.
- Pemindai bawaan (mis. pada kasir Sunmi) diatur di pengaturan pemindai perangkat ke input keyboard.
- Label timbangan TS6X (berat dan harga) ditangani oleh timbangan itu sendiri, juga saat pemindai aktif.
Di kios pemindai diatur terpisah (Pengaturan → Usaha → Kios); lihat Kios swalayan.
Cetak label
Label produk dengan nama, harga, dan barcode, di printer label (Brother, Dymo, Zebra ...) yang terpasang di komputer atau tablet. Aktifkan di Pengaturan → Usaha → Cetak label (default nonaktif). Di sana Anda juga memilih format label (38 × 25, 57 × 32, 62 × 29, atau 100 × 50 mm) dan apakah harga serta barcode ikut dicetak. Cetak contoh mencetak satu label uji.
- Pengaturan → Produk → (produk) → Label: pilih jumlah lalu Cetak.
- Pembelian → (pesanan diterima) → Cetak label: untuk setiap produk, label sebanyak jumlah yang diterima (satuan pesanan diterima × isi per satuan pesanan; bahan tidak). Maksimal 500 label sekaligus.
- Kasir membuka dialog cetak: pilih printer label dan ukuran kertas gulungan di sana. Setiap label adalah satu halaman.
- Barcode adalah kode produk (Pengaturan → Produk): 8 atau 13 digit dengan digit kontrol yang benar = EAN (12 digit: digit kontrol ditambahkan), selain itu Code 128 (huruf, angka, dan tanda baca, hingga 30 karakter). Tanpa kode tidak ada barcode.
- Memindai di layar pesanan (kotak centang, default nonaktif): pemindai barcode yang bekerja sebagai keyboard menambahkan produk dengan kode itu, dengan pilihan biasa (opsi, timbangan, alergi). Tidak bersamaan dengan timbangan TS6X, yang memiliki label sendiri dengan berat dan harga.
- Hak akses: Kelola produk atau Kelola stok.
Atur timbangan (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)
Tab tersendiri Pengaturan → Timbangan (hak Atur usaha, pembayaran, dan printer, standarnya hanya admin; tab ini selalu ada, juga saat timbangan masih nonaktif). Standarnya nonaktif: kasir bekerja persis seperti sebelumnya. Tidak melihat tab ini?
Cari otomatis. Jika belum ada yang diatur, kasir otomatis mencari saat bagian ini dibuka (tombol Cari mengulanginya):
- apakah kasir (server) sendiri berjalan di timbangan PC atau AI Aclas (TS6X, TS3X, TS5EX/NX/GX, iS6X, iS2X, iR6X, Ti6X, iL8X; merek/model perangkat: Windows lewat WMI, Android lewat
getprop, Linux lewat DMI) dan apakah Aclas Scale Module merespons? Jika ya, timbangan itu disiapkan sebagai Di perangkat ini, begitu juga timbangan labelnya; di Linux (tanpa Scale Module) timbangan bawaan pada port internal yang ditemukan (/dev/ttyS...) sebagai "TS6X (bawaan)", beserta modelnya; - apakah ada OS6X di port COM/USB? Setiap port dicoba dengan 9600, 4800, 2400, dan 19200 baud: pertama mendengarkan sebentar (kontinu), lalu mengirim
W(Toledo), dan jika tidak, Dialog 06 (9600, 7 bit data, paritas ganjil: meminta status).
Ditemukan = dimasukkan ke formulir dengan tombol Aktifkan dan gunakan: sekali ketuk dan langsung jalan. (Pencarian mengirim W ke setiap port COM yang bebas; port yang sedang dipakai, mis. oleh mesin EDC, dilewati.)
Semua timbangan Aclas. Untuk setiap timbangan Anda memilih model; kasir lalu tahu cara menghubungkannya. Ada dua jenis:
- Di perangkat ini (atur sekali): kasir berjalan di timbangan (timbangan PC atau AI). Dengan Windows atau Android, penimbangan lewat Aclas Scale Module, tanpa port, kecepatan, atau protokol; dengan Linux (tanpa Scale Module) lewat port internal timbangan (biasanya
/dev/ttyS0atau/dev/ttyS1), dengan port, kecepatan, dan protokol. Hanya ada satu per kasir; Cari menemukannya otomatis. Timbangan PC atau AI (TS6X, iS6X ...) selalu Di perangkat ini: di daftar hanya bisa satu kali, model PC/AI lain tidak bisa dipilih lagi. TS6X di tempat lain di usaha bisa mencetak label (aktifkan saja Pindai label). - Terhubung (beberapa sekaligus): timbangan terhubung ke server kasir lewat kabel (RS232/USB), Bluetooth, atau jaringan. Sebanyak yang diperlukan (maksimal 8), masing-masing dengan nama sendiri.
Satu daftar, dua centang. Semua timbangan ada dalam satu daftar. Untuk setiap timbangan Anda aktifkan fungsinya: Timbang di kasir (kasir meminta berat saat memesan) dan/atau Pindai label (timbangan mencetak label dengan barcode yang dipindai kasir, dan menerima PLU dari kasir). Timbangan PC atau AI seperti TS6X bisa keduanya; timbangan label LS hanya label. Label hanya bisa berasal dari satu timbangan per usaha.
| Model | Jenis | Koneksi | Di kasir |
|---|---|---|---|
| OS6X | Timbangan POS | RS232, USB, Bluetooth | terhubung, beberapa sekaligus |
| OS2X | Timbangan POS | RS232, USB | terhubung, beberapa sekaligus |
| CS6X, CS3X | Timbangan kasir | RS232, USB, Ethernet, Wi-Fi | terhubung, beberapa sekaligus |
| TS6X, TS3X, TS5EX, TS5NX, TS5GX | Timbangan PC (Windows, Android, Linux) | RS232, USB, Ethernet, Wi-Fi | di perangkat ini (1x), juga sebagai timbangan label |
| iS6X, iS2X, iR6X, Ti6X, iL8X | Timbangan AI dengan pengenalan produk (Windows, Android, Linux) | RS232, USB, Ethernet, Wi-Fi | di perangkat ini (1x), juga sebagai timbangan label |
| iS5X, OiT2X | Timbangan AI (hanya Linux) | RS232, USB, Ethernet | terhubung atau sebagai timbangan label |
| LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NX | Timbangan label | RS232, Ethernet, Wi-Fi | pindai label dan PLU |
| PS1CX, PS1DX, PS6CX, PS6DX | Timbangan harga | RS232 | terhubung, beberapa sekaligus |
| PS1BX | Timbangan harga tanpa koneksi | tidak ada | berat dimasukkan manual |
| LH15X | Timbangan gantung dengan printer label | RS232, Ethernet, Wi-Fi | terhubung atau sebagai timbangan label |
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, dan Zebra. Dari merek-merek ini tersedia model yang umum dipakai yang sudah pasti cara kasir berkomunikasi dengannya (perlu diuji = protokolnya tidak tertulis secara harfiah di sumber mana pun; kasir memilih yang paling mungkin). Semuanya terhubung (beberapa sekaligus), atau sebagai timbangan label yang labelnya dipindai kasir:
| Merek | Model | Jenis | Koneksi | Protokol (bawaan pabrik) | Di kasir |
|---|---|---|---|---|---|
| A&D | EK-i (antara lain EK-610i), HV-WP | Timbangan kasir (hanya berat) | RS232, EK-i juga USB | Kontinu (mode stream), 2400 baud, 7E1 | terhubung, beberapa sekaligus |
| Adam Equipment | Swift | Timbangan harga | RS232, USB (opsi) | Kontinu (kontinu ke PC), 9600 8N1 (perlu diuji) | terhubung, beberapa sekaligus |
| Avery Berkel | FX110, FX120, FX131 (versi tanam dengan pemindai) | Timbangan kasir | RS232, FX131 juga USB | Mettler Toledo 82/7 = Toledo 8217 (kasir mengirim W), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| Avery Berkel | FX125 | Timbangan harga | RS232 | Checkout-Dialog 06 (9600, 7O1) | terhubung, beberapa sekaligus |
| Avery Berkel | Xs, XTs, XTi | Timbangan label | Ethernet, Wi-Fi, USB | PLU sendiri di timbangan | pindai label |
| Avery Weigh-Tronix | 7820, 7829, ZP900 | Timbangan kasir | RS232, 7820 juga USB, ZP900 juga USB dan Ethernet | NCI (kasir mengirim W), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| Balanzas Marques | BM1000P TOP | Timbangan kasir (hanya berat) | RS232 | METTLER (kasir mengirim W, Toledo), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| Balanzas Marques | BM5 Junior Tower Label, BM500 ETQ | Timbangan label | Ethernet, USB, RS232, BM500 ETQ juga Wi-Fi | PLU sendiri di timbangan | pindai label |
| Baxtran | TW, VW, XTA, XTA-P | Timbangan harga | RS232 | Toledo (kasir mengirim W), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| Bizerba | CS 300 (juga versi tanam) | Timbangan kasir | RS232 | Checkout-Dialog 06 (9600, 7O1) | terhubung, beberapa sekaligus |
| Bizerba | K-Class Flex, KH II | Timbangan label | Ethernet | PLU sendiri di timbangan | pindai label |
| Brecknell | 6702U, 6710U, 6720U | Timbangan kasir | RS232, USB (port COM virtual) | NCI (kasir mengirim W), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| CAS | PD-II, PDN, PDI, PDS-B | Timbangan kasir | RS232, PDN juga USB dan Bluetooth, PDI juga USB | ECR type 2 = Toledo (kasir mengirim W), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| CAS | CL3000, CL5500, CL7200 | Timbangan label | Ethernet, USB, RS232, CL5500 dan CL7200 juga Wi-Fi | PLU sendiri di timbangan | pindai label |
| Datalogic | Magellan 9300i, 9400i, 9800i (pemindai dengan timbangan) | Timbangan kasir | RS232 (port timbang terpisah), USB | Mettler Toledo 8217 (kasir mengirim W), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| Dibal | KS-400, D-POS 400 | Timbangan kasir | RS232, D-POS 400 juga USB | Checkout-Dialog 06 (9600, 7O1) | terhubung, beberapa sekaligus |
| Dibal | G-325, PI-100 | Timbangan harga | RS232 | Checkout-Dialog 06 (9600, 7O1) | terhubung, beberapa sekaligus |
| Dibal | M-500 (Mistral), D-900, CS-2200 | Timbangan label | Ethernet, Wi-Fi, USB | PLU sendiri di timbangan | pindai label |
| DIGI | DS-781 | Timbangan harga | RS232 | DIGI Type B (kasir mengirim ENQ), 9600 8N1 | terhubung, beberapa sekaligus |
| DIGI | SM-120, SM-6000 | Timbangan label | Ethernet, Wi-Fi | PLU sendiri di timbangan | pindai label |
| Dini Argeo | DFW, DGT, 3590E | Timbangan kasir (hanya berat) | RS232, USB, Ethernet, DFW dan 3590E juga Wi-Fi | Kontinu (ST,GS, 0.512,kg), 9600 8N1 | terhubung, beberapa sekaligus |
| Excell Precision | TPE, AM4, FD4-P, FDP4-P, GE4, GEP4 | Timbangan harga | RS232 | Kontinu (ST,GS,+0.876kg), 9600 8N1 (kecuali TPE, perlu diuji) | terhubung, beberapa sekaligus |
| Gram | XFOC RS, XFOC+ RS, ZFOC RS | Timbangan harga | RS232, USB (kabel dari Gram) | Gram (kasir mengirim ENQ, lalu DC1), 9600 8N1 (XFOC perlu diuji) | terhubung, beberapa sekaligus |
| Ishida | Uni-3, Uni-5, Uni-7, Uni-9 | Timbangan label | Ethernet, Wi-Fi, USB | PLU sendiri di timbangan | pindai label |
| Kern & Sohn | RPB, RFC | Timbangan harga | RS232, USB | Checkout-Dialog 06 (Prot = DLG-06, 9600, 7O1) | terhubung, beberapa sekaligus |
| Kern & Sohn | RFE (harga), IFB, EOC | Timbangan harga/kasir | RS232 | Kontinu, 9600 8N1 | terhubung, beberapa sekaligus |
| Mettler Toledo | Ariva-S | Timbangan kasir | RS232, USB (port COM virtual) | Toledo 8217 (kasir mengirim W), 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| Mettler Toledo | Viva | Timbangan kasir | RS232 | Toledo 8217, 9600 baud, 7E1 | terhubung, beberapa sekaligus |
| Mettler Toledo | bPlus, UC Evo | Timbangan label | Ethernet, Wi-Fi | PLU sendiri di timbangan | pindai label |
| Minebea Intec | Signum, Combics, Midrics, Puro | Timbangan kasir (hanya berat) | RS232, USB, Signum dan Combics juga Ethernet | Kontinu (SBI, cetak otomatis), 9600 8N1 | terhubung, beberapa sekaligus |
| Ohaus | Aviator 7000 | Timbangan harga | RS232 atau USB | Checkout-Dialog 06 (9600, 7O1) | terhubung, beberapa sekaligus |
| Ohaus | Valor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000 | Timbangan kasir (hanya berat) | RS232, USB, Ethernet | Kontinu (Auto Print Continuous), 9600 8N1 | terhubung, beberapa sekaligus |
| Precia Molen | DP400 | Timbangan kasir | RS232, USB | Checkout-Dialog 06 (9600, 7O1) | terhubung, beberapa sekaligus |
| Precia Molen | DPOS CR, C 210 B, C 210 C | Timbangan harga | RS232 | Checkout-Dialog 06 (9600, 7O1; C 210 perlu diuji) | terhubung, beberapa sekaligus |
| Precia Molen | Corail 500 | Timbangan label | Ethernet, Wi-Fi | PLU sendiri di timbangan | pindai label |
| Precisa | XB, XT, LS, LX (timbangan presisi) | Timbangan kasir (hanya berat) | RS232, LS dan LX juga USB | Kontinu (mode cetak CONTINUOUS), 9600 8N1 | terhubung, beberapa sekaligus |
| Rice Lake | BenchPro BP-S, BenchPro BP-R | Timbangan kasir | RS232 | BP-S Toledo 8213, BP-R NCI (keduanya: kasir mengirim W), 9600 baud, 7E1 (perlu diuji) | terhubung, beberapa sekaligus |
| Rongta | RLS1000, RLS1100 | Timbangan label | Ethernet, RS232, Wi-Fi | PLU sendiri di timbangan | pindai label |
| Sartorius | Entris, Quintix | Timbangan kasir (hanya berat) | RS232, USB | Kontinu (SBI, cetak otomatis), 9600 8N1 | terhubung, beberapa sekaligus |
| Star Micronics | mG-T12, mG-T30, mG-T60, mG-S8200 | Timbangan kasir (hanya berat) | RS232, USB (port COM virtual) | Kontinu, 9600 8N1 (perlu diuji) | terhubung, beberapa sekaligus |
| T-Scale | PA10, PA15, PEA10 | Timbangan label | Ethernet | PLU sendiri di timbangan | pindai label |
| UWE | ASEP | Timbangan harga | RS232 | Kontinu, 9600 8N1 (perlu diuji) | terhubung, beberapa sekaligus |
| Wedderburn | TSDS983 | Timbangan kasir | RS232 | DIGI Type B (kasir mengirim ENQ), 9600 8N1 (perlu diuji) | terhubung, beberapa sekaligus |
| Wedderburn | TSDS781T, TSDS782T | Timbangan harga | RS232 | DIGI Type B, 9600 8N1 (perlu diuji) | terhubung, beberapa sekaligus |
| Wedderburn | TSSM120 | Timbangan label | Ethernet, RS232 | PLU sendiri di timbangan | pindai label |
| Wintec | ScalePOS ACS-S60E (kasir dengan timbangan bawaan) | Timbangan kasir | COM6 internal (Windows) atau COM4 (Android) | Kontinu, 9600 8N1 (perlu diuji) | terhubung |
| Zebra | MP7000, MP72 (pemindai dengan timbangan) | Timbangan kasir | RS232 (port AUX) | SASI = Toledo (kasir mengirim W), 9600 baud, 7E1 (perlu diuji) | terhubung, beberapa sekaligus |
- A&D EK-i dan HV-WP: atur timbangan ke stream (EK-i:
prt 0; dari pabrik diatur ke tombol PRINT) dan kasir ke Kontinu dengan 2400 baud dan 7E1 (begitulah pengaturan pabrik A&D). PesannyaST,+00512.00 g(US= masih bergerak,OL= terlalu berat). - Adam Equipment Swift: atur timbangan ke kontinu ke PC (8N1); kasir lalu diatur ke Kontinu.
- Avery Berkel FX110, FX120, dan FX131: di timbangan, pilih protokol Mettler Toledo 82/7 dan atur kasir ke Minta (Toledo) dengan 7E1 (9600 baud). Dialog 06 juga bisa. FX125 (dengan layar harga) tidak mendukung Toledo: di sana pakai Dialog 06. Kasir menyiapkannya otomatis saat Anda memilih model.
- Avery Weigh-Tronix 7820, 7829, dan ZP900 serta Brecknell 6702U, 6710U, dan 6720U: NCI, protokol Weigh-Tronix. Kasir mengirim
W(sama seperti Toledo), timbangan menjawab dengan berat (1.234KG) dan baris status; baris ini menunjukkan apakah berat masih bergerak, terlalu berat, atau terlalu ringan. Kasir diatur ke Minta (Toledo) dengan 7E1 (9600 baud). USB bekerja sebagai port COM virtual. Untuk ZP900, atur kasir ke port 2 (NCI). Untuk 67xxU, di timbangan juga bisa dipilih 8213 (SCP03). - Balanzas Marques BM1000P TOP: di port COM, pilih protokol B (METTLER) dan 9600 baud, 7 bit data, paritas genap; kasir lalu diatur ke Minta (Toledo) dengan 7E1.
- Baxtran TW, VW, XTA, dan XTA-P (timbangan penghitung harga; VW dan XTA-P dengan tiang): di menu RS232 timbangan, pilih protokol Toledo, 9600 baud, dan 7 bit data dengan paritas genap (7E1); kasir lalu diatur ke Minta (Toledo) dengan 7E1. Kasir menyiapkannya otomatis saat Anda memilih model. CONT (timbangan mengirim sendiri) juga bisa: atur kasir ke Kontinu dengan kecepatan dan bit data yang sama. Sambungkan dengan kabel RS232 (9 pin) atau kabel USB-ke-RS232.
- Bizerba CS 300: Checkout-Dialog 06 (spesifikasi Bizerba): kasir mengirim harga per kilo, timbangan yang sudah ditera menghitung jumlahnya. Jika timbangan meminta kode kontrol, Anda bisa mendapatkannya dari Bizerba atau pemasok.
- CAS PD-II, PDN, PDI, dan PDS-B (PDS-B antara lain di LRE): di timbangan, pilih ECR type 2 (Toledo) dan atur kasir ke Minta (Toledo) dengan 7E1 (9600 baud).
- Datalogic Magellan 9300i, 9400i, dan 9800i: atur Scale Interface Type pada port timbang terpisah ke Mettler Toledo 8217 dan kasir ke Minta (Toledo) dengan 7E1.
- Dibal KS-400, D-POS 400, G-325, dan PI-100: di timbangan, pilih protokol Checkout_Dialog06 (protokol 24) dan 9600 baud, 7 bit data, paritas ganjil (tipe parameter 5); kasir lalu diatur ke Dialog 06. D-POS 400 juga bisa lewat USB.
- DIGI DS-781: atur timbangan ke Type B / perintah standar (data transmission
00011); kasir mengirimENQdan menerima berat bersih, tara, harga per kilo, dan jumlah. - Dini Argeo DFW, DGT, dan 3590E: atur port serial ke pengiriman kontinu (9600 8N1); kasir lalu diatur ke Kontinu.
- Excell Precision TPE (dan generasi ke-4 AM4, FD4-P, FDP4-P, GE4, GEP4): atur output RS232 ke kontinu (9600 8N1); kasir lalu diatur ke Kontinu.
- Gram XFOC RS, XFOC+ RS, dan ZFOC RS: protokol Gram (9600 8N1). Kasir mengirim
ENQ, timbangan menjawabACK, kasir mengirimDC1, lalu timbangan mengirim beratnya:SOH STX S/U/F teken gewicht eenheid BCC ETX EOT(S= stabil,U= bergerak,F= galat; BCC = XOR dari status sampai dengan satuan). Sambungkan dengan RS232 atau kabel USB dari Gram. - Kern & Sohn RPB dan RFC: atur
Prot = DLG-06di timbangan (sambungan kasir adalah opsi 965-419); kasir lalu diatur ke Dialog 06. RFE, IFB, dan EOC: pengiriman kontinu (8N1), kasir ke Kontinu. - Mettler Toledo Ariva/Viva: atur timbangan ke protokol Toledo (8217) dan kasir ke Minta (Toledo) dengan Bit data / paritas = 7E1 (Mettler: 9600 baud, 7 bit data, paritas genap; Ariva juga bisa lewat USB sebagai port COM virtual). Kasir menyiapkannya otomatis saat Anda memilih model.
- Minebea Intec Signum, Combics, Midrics, dan Puro serta Sartorius Entris dan Quintix: SBI dengan cetak otomatis (9600 8N1); kasir lalu diatur ke Kontinu. Pesannya
N + 0.512 kg; tanpa satuan berarti berat masih bergerak. - Ohaus Aviator 7000: di pengaturan timbangan (langkah 20), pilih protokol Dialog 06; kasir lalu diatur ke Dialog 06. RS232 atau USB, tergantung kabelnya.
- Ohaus Valor 7000, Ranger 3000/4000/7000, dan Defender 3000 (menimbang tanpa harga): atur timbangan ke Auto Print Continuous (9600 baud, 8N1) dan kasir ke Kontinu. Timbangan mengirim
0.512 kg G;?setelah berat berarti beratnya masih bergerak. Ranger 7000 juga bisa lewat Ethernet (port TCP 9761). - Precia Molen DP400, DPOS CR, dan C 210 (timbangan dagang sejak 2025 milik Dibal): Dialog 06 (9600 7O1), sama seperti Dibal. Jika tidak berhasil pada C 210, coba Minta (Toledo) dengan 7E1.
- Precisa XB, XT, LS, dan LX: atur mode cetak ke CONTINUOUS dan 9600 8N1, tanpa tanggal, waktu, dan ID di baris; kasir lalu diatur ke Kontinu. Tanpa satuan berarti berat masih bergerak.
- Rice Lake BenchPro BP-S (Toledo 8213) dan BP-R (NCI): kasir diatur ke Minta (Toledo) dengan 7E1.
- Star Micronics mG-T dan mG-S8200: lewat RS232 atau USB (port COM virtual, dengan driver dari Star) pada Kontinu.
- UWE ASEP: RS232 ke PC/kasir, kasir ke Kontinu (perlu diuji).
- Wedderburn TSDS983, TSDS781T, dan TSDS782T adalah timbangan DIGI dengan nomor sendiri: DIGI (Type B), sama seperti DIGI DS-781. Jika tidak berhasil, coba Minta (Toledo) dengan 7E1.
- Wintec ScalePOS ACS-S60E: kasir berjalan di ScalePOS itu sendiri; timbangan bawaannya ada di COM6 (Windows) atau COM4 (Android), 9600 8N1. Pilih Kontinu; jika timbangan tidak mengirim apa pun, Cari menemukan protokol yang benar.
- Zebra MP7000 dan MP72: port AUX RS232 dari pabrik diatur ke SASI (9600 7E1, kasir mengirim
W): atur kasir ke Minta (Toledo) dengan 7E1. - Timbangan label dari merek-merek ini (Avery Berkel, Balanzas Marques, Bizerba, CAS, Dibal, DIGI, Ishida, Mettler Toledo, Precia Molen, Rongta, T-Scale, Wedderburn) adalah sistem mandiri dengan file PLU sendiri. Aktifkan Pindai label pada timbangan dan atur barcode yang sama seperti di timbangan (EAN-13, awalan 20–29, PLU dan berat atau harga). PLU diatur di timbangan itu sendiri atau dengan software dari mereknya; Kirim ke TS6X dan Unduh file PLU hanya tersedia untuk Aclas.
Daftar yang sama ada di kasir di Pengaturan → Timbangan → Semua timbangan (ACLAS_MODELLEN di packages/shared/src/weegschaal.ts, dengan merek per model).
Isi sesedikit mungkin: jika Anda memilih model, kasir sudah menyiapkan sisanya sesuai pengaturan pabrik merek tersebut: koneksi Port COM / USB pada port bebas pertama, 9600 baud (A&D: 2400) dan protokol merek itu (Toledo: Aclas dengan 8N1, dan dengan 7E1 Avery Berkel FX, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo, Rice Lake, dan Zebra; Dialog 06: Avery Berkel FX125, Bizerba, Dibal, Kern & Sohn RPB/RFC, Ohaus Aviator, dan Precia Molen; DIGI Type B: DIGI dan Wedderburn; Gram: Gram; Kontinu: A&D, Adam Equipment, Dini Argeo, Excell Precision, Kern & Sohn lainnya, Minebea Intec, Ohaus lainnya, Precisa, Sartorius, Star Micronics, UWE, dan Wintec), serta sebuah nama (mis. OS6X, OS6X 2). Timbangan PC atau AI menjadi Di perangkat ini (mis. TS6X (bawaan); di Linux pada port internal /dev/ttyS0). Jika ada yang tidak cocok, Cari menemukan port, kecepatan, dan protokol yang benar.
Di perangkat ini (Aclas Scale Module): timbangan menampilkan berat yang sudah ditera; kasir mengirim harga per kilo dan tara (sebagai pra-tara) dan mengambil jumlah yang dihitung timbangan, sama seperti pada Dialog 06.
- Android: aplikasi Aclas AclasScaleDriver (
com.aclas.aclasscaledriver) biasanya sudah ada di timbangan; jika belum, pasangaclas-android/AclasScaleDriver.apk. Aplikasi HorecaPOS berkomunikasi langsung dengan layanan aplikasi itu, jadi tidak perlu library tambahan. - Linux: Aclas tidak punya Scale Module untuk Linux. Cukup pilih modelnya (mis. TS6X): koneksinya lalu menjadi Di perangkat ini (port internal) pada
/dev/ttyS0, 9600 baud, Toledo. Timbangan bawaan biasanya ada di/dev/ttyS0atau/dev/ttyS1; Cari mencobanya dan mengisi port, kecepatan, dan protokol yang benar. Di sini juga hanya bisa satu kali.
Perangkat lunak Aclas disertakan dengan kasir: Scale Module untuk Windows (aclas-module), AclasScaleDriver untuk Android (aclas-android) dan Aclas Sync SDK untuk Windows dan Linux (aclas-sdk). Aclas mengizinkan kami menyertakannya. Penginstal Windows dan Linux sudah memuatnya; tidak ada yang perlu diunduh atau dipasang terpisah.
Bluetooth (mis. OS6X): pasangkan timbangan terlebih dahulu. Windows membuat port COM untuknya (Pengaturan Bluetooth → Opsi Bluetooth lainnya → Port COM), Linux /dev/rfcomm0: isi port itu. Di aplikasi Android Anda mengisi alamat Bluetooth (00:11:22:AA:BB:CC); aplikasi meminta izin sekali untuk Perangkat di sekitar dan terhubung lewat Bluetooth SPP.
Timbangan AI (pengenalan produk): kamera mengenali produk di software Aclas pada timbangan. Penimbangan lewat Scale Module (di perangkat ini) atau port RS232; timbangan label AI mencetak label dengan barcode setelah mengenali produk, lalu dipindai kasir (seperti pada TS6X).
Aclas AI Recognition Plugin (timbangan AI yang menjalankan kasir, mis. iS6X dengan Windows): plugin dari Aclas mengenali produk dan mengetikkan barcode-nya ke kasir, sama seperti scanner (diikuti Enter); layar pesanan memasukkan produk beserta beratnya ke pesanan. Cara mengaturnya:
- Aktifkan Pindai label pada timbangan dengan barcode yang sama seperti di plugin. Disarankan: diawali
27, PLU 5 digit, berat (Aclas tipe 17): kasir lalu menghitung sendiri dengan harga per kilo. Dengan harga (tipe 12, diawali22) juga bisa. - Nonaktifkan Timbang di kasir pada timbangan tersebut: plugin dan Scale Module tidak bisa mengakses timbangan bersamaan. Berat diambil dari barcode. Jika plugin merespons saat Cari, kasir mengusulkan hasilnya dan tidak menjalankan Scale Module. Tanpa kode aktivasi, plugin tetap menimbang dan menghitung jumlahnya, tetapi tidak mengenali produk.
- Di plugin itu sendiri: barcode di Scale and Barcode Format Settings → Default Barcode Format (tipe 17), dan di pengaturan jendela titik tempat plugin mengklik dan mengetik kode. Pilih tempat kosong di layar pesanan untuk itu, bukan pada tombol. Produk baru diajarkan sendiri oleh usaha ke plugin di timbangan (pelatihan AI).
- Beri produk yang ditimbang nomor PLU dan kirim PLU ke timbangan (Kirim ke TS6X atau file PLU); plugin mengenali berdasarkan nomor PLU.
- Kasir hanya membiarkan plugin mengenali selama layar pesanan terbuka di timbangan itu sendiri (
POST /aiplugin/resume, saat ditutup/aiplugin/suspend, port 5003 di timbangan; pertama kali juga EmployeeMode: layar pelanggan timbangan tidak menampilkan produk). Di kasir dan tablet lain serta lewat portal manajemen tidak terjadi apa-apa. - Plugin selalu mulai dalam mode Resume dan tidak bisa melaporkan statusnya. Karena itu layar pesanan mengirim resume lagi setiap 30 detik; jika itu berhenti (layar ditutup, plugin atau timbangan dimulai ulang), kasir mengalihkan plugin ke Suspend dalam satu menit dan menahannya di sana.
- Plugin memerlukan kode aktivasi dari Aclas per timbangan (terkait nomor seri). Saat ini berjalan di Windows; versi Android dari Aclas menyusul (kasir melakukan hal yang sama di sana).
Aclas OS6X (timbangan POS di kasir, RS232/USB; timbangan terhubung lainnya juga bekerja seperti ini):
- Satu atau beberapa timbangan (maksimal 8), masing-masing dengan nama (mis. Konter, Bar) dan koneksi sendiri: Port COM / USB (
COM3di Windows,/dev/ttyUSB0di Linux/Android) dengan kecepatannya, atau jaringan lewat konverter serial-ke-jaringan (alamat IP dan port TCP, mis. 4001). - Protokol: Minta (Toledo) = kasir mengirim
Wdan timbangan menjawab dengan berat (Toledo 8217, biasanya pengaturan OS6X; juga pesan status tidak stabil/kelebihan beban/di bawah nol) atau Kontinu = timbangan sendiri terus mengirim berat (ST,GS, 0.512kg,US= tidak stabil) atau Dialog 06 (ditera), lihat di bawah, atau DIGI (Type B) = kasir mengirimENQdan DIGI menjawab dengan status, berat bersih, tara, harga per kilo, dan jumlah (37 karakter:<status> <toestand> CR 0<netto> CR 4<tarra> CR U<kiloprijs> CR T<bedrag> CR LF; keadaan bit 1 = stabil, bit 2 = di bawah nol, bit 3 = terlalu berat, bit 4 = terlalu ringan), atau Gram = kasir mengirimENQ, menungguACK, mengirimDC1, dan membacaSOH STX <S/U/F> <teken> <gewicht> <eenheid> <BCC> ETX EOT. Atur protokol dan kecepatan yang sama di timbangan. Bit data / paritas: 8N1 (Aclas, Adam Equipment, DIGI, Dini Argeo, Excell Precision, Gram, Kern & Sohn, Minebea Intec, Ohaus, Precisa, Sartorius, Star Micronics, UWE, Wedderburn, Wintec) atau 7E1 (A&D, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo 8217, Rice Lake, Zebra); Dialog 06 selalu 7O1. Minta juga membaca NCI (Avery Weigh-Tronix, Brecknell, Rice Lake BP-R): atasWtimbangan menjawabLF 1.234KG CR LF S00 CR ETX; baris status (S+ 2 atau 3 byte) menunjukkan apakah berat masih bergerak (byte 1 bit 0), terlalu ringan (byte 2 bit 0), atau terlalu berat (byte 2 bit 1);^^^^^= terlalu berat,_____= terlalu ringan. - Dialog 06 (Checkout-Dialog 06, protokol Eropa untuk timbangan yang ditera di kasir): kasir mengirim harga per kilo (dan tara produk) ke timbangan; timbangan menimbang, menghitung sendiri jumlahnya, dan menampilkan harga per kilo, berat, dan jumlah di layarnya sendiri (yang ditera). Kasir mengambil berat dan jumlah; di jendela timbang tertulis "dihitung oleh timbangan". Selalu 9600 baud, 7 bit data, paritas ganjil, 1 stop bit (kecepatan di pengaturan lalu tidak berlaku). Alur:
EOT STX 01 ESC <kiloprijs 6> ESC ETX(dengan tara: record03dengan 4 digit gram) → ACK;ENQ→STX 02 ESC 3 ESC <gram 5> ESC <kiloprijs 6> ESC <bedrag 6> ETX; NAK →EOT STX 08 ETX→STX 09 ESC <code> ETX(22 = belum siap, ulangi setelah 100 ms; 20 = bergerak; 21 = angkat dulu; 30/31 = terlalu ringan; 32 = terlalu berat; 11 = harga tidak valid). Kode kontrol: banyak timbangan Dialog 06 sesekali (mis. setiap 30 penimbangan) meminta kode kontrol dari software kasir (record 11 → record 10). Kode-kode itu dan cara menghitungnya hanya diberikan pabrik timbangan kepada pemasok kasir. Isi di Kode kontrol (pasangan 4 karakter heksadesimal, mis.74AE 1B2C); kasir mengirimnya saat timbangan memintanya. Jika timbangan menghitung dengan angka yang berubah-ubah (Z) sehingga kode tetap tidak cocok, kasir akan memberi tahu; minta pemasok untuk mengatur timbangan tanpa kontrol ini, atau gunakan Toledo. - Timbangan terhubung ke PC atau perangkat tempat server kasir berjalan; semua kasir dan tablet menimbang lewat server kasir dan memilih di jendela timbang timbangan mana yang dipakai. Uji menimbang satu kali.
- Jaringan berfungsi di mana saja.
- Berat juga bisa diketik manual: aktif = berat boleh diketik meski ada timbangan; tanpa OS6X selalu bisa.
Pindai label (centang pada timbangan: Aclas TS6X, timbangan PC atau AI lain, seri LS, atau LH15X; timbangan + printer label, satu per usaha):
- Alamat IP: hanya perlu untuk Kirim ke TS6X. Menimbang dan memindai label bisa tanpanya. Jika kasir berjalan di TS6X itu sendiri, biarkan kosong: kasir lalu mengirim ke dirinya sendiri (127.0.0.1). Jika timbangan yang sama juga menimbang di kasir, kedua centang ada pada timbangan yang sama (Cari menyiapkannya seperti itu).
- Pindai label: memindai label di layar pesanan. Atur bentuk barcode-nya, sama seperti di TS6X: diawali dengan (20–29, standar
28), jumlah digit untuk PLU (4, 5, atau 6), lalu berat dalam gram atau harga dalam sen, ditambah digit kontrol (EAN-13). Di bawah pengaturan ada contohnya. - Nomor PLU: di Pengaturan → Produk, produk yang ditimbang mendapat harga per kilo, tara jika perlu, dan nomor PLU (unik). Nomor PLU dipilih dari daftar (Tanpa PLU, berikutnya yang kosong, Nomor lain…); saat mencentang Harga per kilo, nomor kosong berikutnya sudah terisi. Hanya perlu untuk label dan PLU di TS6X: tanpa TS6X boleh tetap Tanpa PLU.
- Pengiriman langsung berfungsi di Windows dan Linux; di Android dan macOS gunakan file PLU. Saat instalasi pertama, periksa nama kolom file PLU dan kode di
aclas-plu.ps1dengan panduan SDK timbangan yang dikirim (satu tempat untuk diubah:ACLAS_PLU_KOLOMMENdipackages/shared/src/weegschaal.ts).
Portal manajemen: laporan ke portal memuat fungsi Timbangan (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) dengan aktif/nonaktif dan timbangan apa saja per model (mis. TS6X (op dit apparaat), 2x OS6X, PS1CX, Ariva-S, DS-781, LS6RX, 5 producten per kilo); tanpa alamat IP, port COM, atau alamat Bluetooth.
Undang-undang metrologi: timbangan yang dipakai untuk berjualan harus ditera (kelas III, seperti OS6X). Dengan Toledo/kontinu, kasir menghitung dengan berat yang diberikan timbangan; dengan Dialog 06, timbangan yang ditera menghitung harganya sendiri.
Kode: packages/shared/src/weegschaal.ts (protokol, label, file PLU), apps/pos-server/src/lib/weegschaal.ts dan routes/weegschaal.ts; layar WeegschaalInstellingen.tsx dan WeegDialoog.tsx.
Thuisbezorgd.nl / Takeaway.com
Pesanan dari Thuisbezorgd.nl masuk langsung ke kasir, tanpa perantara (tanpa Deliverect, HubRise, dsb.): Just Eat Takeaway JET Connect berkomunikasi dengan portal manajemen Pin Voordeel, dan kasir mengambil pesannya dari sana.
Di Belgia platform ini bernama Takeaway.com: perusahaan yang sama (Just Eat Takeaway) dan koneksi yang sama. Untuk usaha di Belgia, di layar, notifikasi, tiket kerja, dan portal manajemen di mana-mana tertulis Takeaway.com, bukan Thuisbezorgd.nl. Di bawah ini Thuisbezorgd berarti keduanya.
Mengapa lewat portal? Kasir hanya memerlukan PORTAAL_URL dan PORTAAL_SLEUTEL (lihat Portal manajemen) dan hanya melakukan permintaan keluar.
Pengaturan (Pengaturan → Platform pengantaran → Thuisbezorgd.nl / Takeaway.com, hak Atur usaha, pembayaran, dan printer; sebelumnya ini ada di Pengaturan → Usaha):
- Aktifkan Gunakan Thuisbezorgd (langsung berlaku, terpisah dari Simpan).
- Daftar di Thuisbezorgd. Setelah itu usaha memilih OptimumPOS / Pin Voordeel sebagai kasir di Thuisbezorgd (Partner Hub atau account manager). JET lalu memulai sesi onboarding; portal mencari kasir yang terdaftar (berdasarkan kode pos dan nama, jika tidak Pin Voordeel menghubungkan sesi secara manual di portal), mengirim konfigurasi, dan meminta menu dari kasir. Setelah itu koneksi aktif.
- Centang produk yang bisa dipesan lewat Thuisbezorgd (per grup atau satu per satu), dengan deskripsi untuk Thuisbezorgd jika perlu. Menu (harga, opsi pilihan sebagai modifier, alergen, PPN) ikut otomatis; PLU = id produk/opsi. Setelah ada perubahan di katalog, kasir memperbarui menu dalam 30 detik; hanya "habis"/"tersedia lagi" yang lewat API ketersediaan.
- Jam buka Thuisbezorgd: terpisah untuk antar dan bawa pulang (mis.
16:00-22:00, beberapa blok dipisahkan koma). Jam ini disimpan dengan tombol Simpan jam buka di bawahnya dan dikirim ke Thuisbezorgd sebagai service times begitu integrasi siap. - Tutup sementara / Buka lagi (di NL/BE paling lambat buka lagi besok pagi pukul 07:00).
Pesanan. Pesanan menjadi pesanan biasa tanpa meja (bezorgen atau afhalen, nama grup TB <ordernummer>) dengan harga yang dibayar pelanggan, ditambah ongkos antar/biaya layanan sebagai baris tersendiri dan diskon dari Thuisbezorgd sebagai baris diskon; jika totalnya tetap tidak cocok, ada baris "Selisih Thuisbezorgd". Tiket kerja langsung dikirim ke dapur/bar (bisa dinonaktifkan). Kasir mengonfirmasi dalam hitungan detik ke portal, yang meneruskannya ke JET; jika itu gagal dalam 3 menit atau kasir offline, JET menerima "gagal" dan usaha kembali memakai Orderpad.
Tombol Thuisbezorgd di bilah atas (dengan jumlah pesanan yang berjalan): daftar, pelanggan dan alamat, waktu siap/antar, dan linimasa (track & trace): diterima, kurir menuju usaha, kurir di usaha, menuju pelanggan, terkirim (dari JET), ditambah langkah sendiri (sedang disiapkan, siap, dalam perjalanan/terkirim saat antar sendiri, sudah diambil). Peta langsung dengan posisi kurir tidak disediakan JET Connect untuk kasir; pelanggan melihatnya di aplikasi Thuisbezorgd. Pesanan baru, pembatalan, dan "kurir di usaha" memunculkan bilah oranye dan suara. Selesaikan (dibayar online) membayar dengan metode pembayaran online; jika pelanggan membayar di pintu, cukup bayar seperti biasa. Pembatalan dari Thuisbezorgd membatalkan pesanan dan mencetak tiket kerja "DIBATALKAN".
Kode: apps/pos-server/src/lib/thuisbezorgd.ts, routes/thuisbezorgd.ts; layar ThuisbezorgdInstellingen.tsx dan Thuisbezorgd.tsx. Sisi portal: horecapos-portaal/src/thuisbezorgd.mjs (lihat README portal).
Hitungan di portal manajemen. Jumlah pesanan Thuisbezorgd per hari ikut dalam laporan ke portal manajemen (verkoopTelling di lib/portaal.ts): yang masuk dan tidak dibatalkan, pada hari masuknya. Pesanan Thuisbezorgd yang dibayar di kasir (juga Selesaikan (dibayar online)) tidak dihitung lagi di bawa pulang/antar. Data Thuisbezorgd tersimpan di database kasir dan karena itu ikut masuk cadangan kasir.
Toko online dan pemesanan online
Setiap usaha bisa mendapatkan toko online sendiri: situs pemesanan (dan aplikasi) dengan identitas merek sendiri untuk bawa pulang, antar, pesan di meja dengan kode QR, dan reservasi, dengan pembayaran online (MultiSafepay atau Buckaroo) atau bayar saat ambil/antar. Toko online adalah proyek terpisah, horecapos-webshop (Node.js, lihat README di sana), dan berjalan di server yang sama dengan portal manajemen.
Mengaktifkan dan mengatur dilakukan di pengelolaan toko online: tombol Kelola toko online di portal pelanggan (pemilik) atau pada instalasi di portal manajemen (Pin Voordeel). Di sana ada aktif/nonaktif, alamat web (<zaak>.<webshopdomein> atau domain sendiri), identitas merek (warna, logo, foto header, huruf), jam buka dan slot waktu untuk bawa pulang dan antar, area antar (kode pos, radius, atau area di peta, dengan biaya dan minimum), pembayaran, kode diskon, teks, bahasa, kode QR untuk meja, reservasi, dan aplikasi (bisa dipasang sebagai PWA; aplikasi Android lewat Trusted Web Activity). Selain itu, notifikasi push (opsional, default nonaktif): tamu mengaktifkan notifikasi di halaman pesanannya dan menerima notifikasi push saat pesanan siap atau dalam perjalanan; yang mau juga sesekali menerima penawaran yang dikirim usaha dari pengelolaan toko online (tab Notifikasi push). Berfungsi di Android dan komputer (Chrome, Edge, Firefox, Samsung Internet), di aplikasi Android, serta di iPhone dan iPad (iOS 16.4 atau lebih baru) jika tamu menambahkan toko online ke layar utama. Tidak ada SMS atau email yang dikirim dan tidak ada nama atau nomor yang disimpan. Detail ada di README toko online.
Menu. Kasir mengirim menu secara otomatis: semua produk aktif (bukan per kilo), per grup produk, dengan harga, pilihan, alergen, habis, dan foto produk, ditambah meja dan data usaha, serta kanal pemasaran mana yang aktif (untuk kotak centang "terima penawaran" saat pembayaran, lihat Pemasaran SMS dan email). Ini terjadi saat mulai, segera setelah toko online diaktifkan, dalam 30 detik setelah perubahan katalog, dan dalam beberapa detik setelah perubahan di Pengaturan → Usaha, seperti pemasaran atau kartu pelanggan (atau dengan Kirim menu sekarang). Produk bisa disembunyikan dari toko online di pengelolaan toko online (sembunyikan), atau di database dengan artikel.webshop = false.
Pesanan. Bawa pulang dan antar menjadi pesanan biasa tanpa meja (nama grup WEB <bestelnummer>) dengan harga yang dilihat tamu, ditambah ongkos kirim dan biaya transaksi sebagai baris tersendiri dan kode diskon sebagai baris diskon; jika total tetap tidak cocok, ditambahkan baris "Verschil webshop". Tip dari tamu tidak dihitung sebagai omzet: tip masuk saat Selesaikan (dibayar online) sebagai tip dalam pembayaran. Pesan di meja (kode QR) masuk ke tagihan terbuka meja itu (dibayar online: sebagai grup tersendiri di meja itu). Tiket kerja langsung ke dapur/bar (bisa dinonaktifkan di jendela Toko online). Kasir mengonfirmasi dalam hitungan detik dengan nomor struk; tamu lalu mendapat "diterima" dan email. Jika kasir offline, toko online tidak menerima pesanan (tamu langsung melihatnya) dan mengirim email ke usaha jika pesanan terlalu lama tertahan. Reservasi dari toko online masuk ke Reservasi (hanya jika reservasi di kasir aktif). Jika ada maksimum per slot waktu (Antar dan slot waktu), pesanan toko online yang memiliki waktu di slot itu ikut dihitung.
Belgia (kotak hitam). Pesanan toko online langsung dikirim sebagai pesanan (signOrder) ke kotak hitam, sebelum tiket dapur, sama seperti Pesan di kasir. Jika gagal, pesanan tidak masuk ke kasir dan toko online mengirimnya ulang nanti. Fitur yang belum diuji dengan kotak hitam dinonaktifkan di menu toko online (voucher hadiah, kode diskon, bayar dengan tagihan, tagih ke kamar, menu paket, pilihan dengan biaya tambahan, happy hour dan tip) dan ditolak jika toko online lama tetap mengirimnya. Selesaikan memeriksa tip, bayar dengan tagihan, dan tagih ke kamar seperti kasir.
Tagih ke kamar (koneksi hotel, Pengaturan → Hotel → Swalayan → Di toko online): menu mendapat kamer: { maxBedrag }; toko online mengirim betaling.wijze = "kamer" dengan kamer dan achternaam. Kasir memeriksa tamu di perangkat lunak hotel (tidak di meja, tidak dengan voucher hadiah) dan menyimpannya bersama pesanan; Selesaikan (tagih ke kamar) menyelesaikan pembayaran ke kamar dan membukukan struk ke tagihan hotel. Faktur gabungan untuk bayar dengan tagihan: struk kemudian tercatat sebagai pos terbuka.
Tombol Toko online di bilah atas (dengan jumlah pesanan berjalan): daftar, pelanggan dan alamat, waktu yang diinginkan atau "secepatnya", cara bayar, dan linimasa. Tahap Sedang disiapkan, Siap, dan Dalam perjalanan dilihat tamu secara langsung di toko online (dan lewat email, jika usaha menginginkannya). Dibayar di kasir = Selesai; Batal hanya membatalkan baris pesanan toko online itu, mencetak tiket kerja "GEANNULEERD", dan pesanan yang dibayar online dikembalikan dananya oleh toko online. Status tiba, tidak datang, atau batal pada reservasi juga dikirim kembali ke toko online. Pesanan atau reservasi baru memunculkan bilah oranye dan suara.
Kode: apps/pos-server/src/lib/webshop.ts, routes/webshop.ts; layar Webshop.tsx. Sisi portal: horecapos-portaal/src/webshop.mjs.
Kasir dan toko online sama (setiap bagian bisa diaktifkan terpisah, standarnya nonaktif; toko online versi lama mengabaikan kolom baru). Apa yang aktif di kasir juga berfungsi di toko online:
- Happy hour: toko online memakai harga yang sama dengan kasir saat itu (harga normal dicoret dan nama happy hour), juga dengan musim.
- Waktu menu dan jenis pesanan (jika diaktifkan): toko online hanya menampilkan yang sedang dijual, dan untuk ambil sendiri dan antar harga serta produk sesuai pilihan itu (di meja: makan di tempat). Menu mendapat per produk
prijzen(afhalen,bezorgen) dannietBij, serta daftardagdelen. - Menu paket: tamu memilih hidangannya (tetap dan pilihan, dengan opsinya); di kasir muncul sebagai baris menu dengan hidangan di bawahnya dan harga menu dibagi (PPN per hidangan tepat). Hidangan yang hanya ada dalam menu ikut sebagai
menuArtikelen. Toko online lama tanpa pilihan: menu muncul sebagai produk biasa di struk, seperti sebelumnya. - Stok habis = habis terjual, juga opsi pilihan dengan bahan yang sudah habis.
- Alergen: nonaktif di kasir = tidak tampil di toko online.
- Kartu pelanggan: saat checkout tamu bisa ikut mengumpulkan poin (dengan nomor telepon atau email); kasir menautkan pelanggan ke pesanan, poin ditambahkan saat pembayaran (penukaran dilakukan di tempat usaha). Toko online menampilkan saldonya.
- Kartu hadiah (Pengaturan → Usaha → Kartu hadiah → Jual kartu hadiah di toko online, hanya dengan saldo): tamu membeli kartu dan membayar online; kasir membuat kartu yang langsung aktif, dan kodenya dikirim lewat portal kembali ke toko online (status dan email). Jika Kartu hadiah sebagai metode pembayaran juga aktif, tamu bisa memilih "dengan kartu hadiah di tempat" saat bawa pulang.
- Kode diskon (Pengaturan → Kode diskon, dengan sakelar di Usaha): per kode di kasir dan/atau di toko online; pemakaian dihitung bersama untuk keduanya.
- Jeda dan sibuk: tombol Toko online di bilah atas: Jeda toko online (dengan teks untuk tamu) dan Sibuk (menit tambahan). Sampai ke toko online dalam beberapa detik.
- Reservasi online dengan aturan kasir (Pengaturan → Usaha → Reservasi): maksimum orang, hari ke depan, slot waktu, minimal sebelumnya, dan waktu per hari.
- Antar dan slot waktu: lihat Toko online mengikuti kasir di Antar dan slot waktu.
- All-you-can-eat di meja (Pengaturan → Usaha → All-you-can-eat → Juga saat memesan di meja lewat kode QR): jika di meja sedang berjalan paket, tamu melihat hidangan yang termasuk sebagai Termasuk seharga € 0, dengan ronde, maksimum per orang, waktu tunggu, dan batas waktu. Sisanya ia bayar seperti biasa; semuanya masuk ke tagihan meja. Jika status di meja baru saja berubah, kasir menolak pesanan dan tamu memesan lagi.
- Bayar tempo (Pengaturan → Faktur → Bayar tempo → Juga di toko online): lihat Di toko online pada Bayar tempo.
- Daftar tunggu online (Pengaturan → Usaha → Daftar tunggu): lihat Daftar tunggu online pada Daftar tunggu untuk tamu tanpa reservasi.
- Upsell: "Ada tambahan lagi?" (opsional, default nonaktif; Pengaturan → Usaha → Bayar → Upsell di toko online): pilih kategori (mis. minuman, saus, hidangan penutup) dan berapa banyak saran. Di toko online, di keranjang dan saat checkout lalu muncul produk dari kategori itu yang belum ada di keranjang (hanya yang sedang dijual, tidak habis dan tanpa pilihan wajib); tamu menambahkannya dengan satu ketukan. Tidak ada kategori dipilih = nonaktif, seperti sebelumnya. Kios punya upsell sendiri (lihat Kios swalayan).
Untuk itu menu toko online memakai versie: 2 dengan kolom menuArtikelen, allergenenAan, happyhours, menus, klantenkaart, cadeaubon, kortingscodes, pauze, drukteMin, volgt, bezetting, reserveren.online, ayce, opRekening, wachtlijst dan upsell. Konfirmasi ke portal juga berisi cadeaubonnen (kode), klant (poin) dan plek (daftar tunggu).
Hitungan di portal manajemen. Bawa pulang dan antar lewat toko online dihitung terpisah (webshop, webshopGeannuleerd di verkoopTelling), pada hari pesanan masuk, dan tidak dihitung lagi di bawa pulang/antar. Pesan di meja dihitung biasa di meja.
Pembayaran kartu dan mesin EDC
Pengaturan → Pembayaran (hanya admin):
- Terminal: per terminal sebuah nama, ID terminal, dan kunci API sendiri dari PinPortal (Klant → Bewerk klant → Overige → API Keys). Setelah disimpan, hanya bagian akhir kunci yang terlihat; kunci tidak pernah dikirim kembali ke browser. Dengan Uji koneksi Anda memeriksa kunci dan terminal.
- Mode uji: meniru terminal (berhasil setelah ±7 dtk; jumlah yang berakhiran 13 sen ditolak). Berguna untuk menguji tanpa mesin EDC.
Jika ada minimal satu terminal dengan kunci API (atau mode uji aktif), Bayar → Pin / Bancontact otomatis memulai pembayaran di terminal, sebesar jumlah yang dihitung server.
Selama koneksi aktif, server hanya menerima "pin" dengan pembayaran terminal yang berhasil untuk pesanan dan jumlah itu persis. Permintaan dikirim sebagai formulir biasa seperti di PHP-SDK resmi, dengan API cadangan (api-backup.pinvandaag.com) jika API utama tidak merespons. Setiap jawaban API tampil dengan [pin] di jendela server, berguna saat ada gangguan. Pembayaran berhasil yang belum diproses (mis. tablet mati) ditemukan kembali saat pesanan itu dibayar berikutnya.
Tip (kartu, tunai, dan voucher hadiah)
Di layar pembayaran, pada setiap metode pembayaran ada deretan tombol tip: Tidak ada, 5%, 10%, 15% (dibulatkan ke atas ke 10 sen), Bulatkan (ke euro bulat berikutnya), dan Jumlah lain. Dengan kartu, pelanggan membayar jumlah + tip sekaligus di terminal; dengan tunai, tip ikut dihitung dalam kembalian dan di laci kas. Di struk tertulis jumlah yang dibayar dengan kartu dengan "termasuk tip" di bawahnya; TOTAL dan PPN tetap sama, karena tip bukan omzet. Di laporan X/Z tip ditampilkan per metode pembayaran dan sebagai "Total tip".
Admin mengatur tombol tip di Pengaturan → Usaha → Tip: aktif/nonaktif, persentase mana (maksimal 4, mis. "5, 10, 15"), apakah tombol "Bulatkan" ada, dan untuk metode pembayaran mana (kartu, tunai, voucher hadiah) tip bisa diberikan. "Tidak ada" dan "Jumlah lain" selalu tersedia.
"Jadikan saja …" selalu tersedia, di setiap metode pembayaran, juga saat tombol tip nonaktif (tanpa pengaturan): pelanggan membulatkan tagihan ke atas sendiri dan selisihnya menjadi tip. Ada tombol dengan euro bulat berikutnya dan jumlah bulat berikutnya (mis. € 28,00 → 29, 30, 40; € 44,00 → 45, 50, 60) dan Total lain untuk mengetik total sendiri. Ketuk lagi tombol yang dipilih = tidak dibulatkan. Tip maksimal € 500 (batas yang sama dengan server kasir).
Tidak ada internet
Kasir bekerja di jaringan lokal dan tidak memerlukan internet; hanya pembayaran kartu lewat koneksi yang memerlukannya. Jika usaha tidak ada internet, di bilah atas tertulis Tidak ada internet · kartu manual (diperiksa setiap menit). Di layar pembayaran, dan juga setelah gagal memulai di terminal, muncul tombol Sudah dibayar dengan kartu di terminal: proses jumlahnya di terminal itu sendiri dan catat dengan tombol ini.
Denah dan meja
Pengaturan → Denah (hanya admin):
- Tambah denah (mis. Ruang utama, Teras, Ruang kaca), ganti nama, hapus, dan ubah urutan dengan ◀ ▶.
- Tambah meja dengan tombol di atas kisi (bulat, persegi, panjang, meja berdiri) dan seret ke tempatnya dengan mouse atau jari. Sudut biru pada meja yang dipilih membuatnya lebih besar atau lebih kecil.
- Atur nama/nomor, jumlah orang (kursi kecil di sekeliling meja ikut dihitung), dan bentuk per meja; duplikat atau hapus.
- Dengan keyboard: tombol panah menggeser (Shift = langkah lebih besar), Delete menghapus.
- Perubahan baru berlaku setelah Simpan; "Urungkan" mengembalikan semuanya.
- Meja atau denah dengan pesanan terbuka tidak bisa dihapus. Meja yang dihapus tetap tersimpan di pesanan lama.
Salin konfigurasi ke usaha kedua
Pengaturan → Impor/ekspor (hanya admin). Jika satu usaha sudah diatur lengkap, ekspor konfigurasinya ke file .json dan impor ke kasir usaha kedua. Bisa dipilih per bagian:
- Produk: grup, produk, harga (juga per jenis pesanan), PPN, opsi pilihan, menu, happy hour (dengan musim), waktu menu, alergen, bahan/resep, kartu stempel, paket all-you-can-eat, dan foto produk.
- Denah: ruangan dan meja.
- Pengaturan lainnya: semua opsi usaha, printer (tanpa alamat IP), hak per peran, dan pembukuan.
Tidak pernah ikut: nama, alamat, kode pos, kota, telepon, email, nomor PPN/BTW, dan baris penutup struk usaha, alamat email untuk laporan Z, terminal kartu dan kuncinya, personel dan PIN, serta semua omzet, struk, pelanggan, dan jumlah stok.
Impor sangat diamankan: peringatan merah besar, centang "Saya mengerti...", sekali lagi PIN admin sendiri, tidak ada pesanan terbuka, negara yang sama (tarif PPN), dan cadangan otomatis sebelumnya. Impor dilakukan dalam satu transaksi: jika ada yang salah, tidak ada yang berubah. Produk, grup, bahan, dan meja yang ada tidak dihapus permanen tetapi dikeluarkan dari kasir (seperti saat Hapus), sehingga struk dan laporan lama tetap benar.
Impor dari kasir lain
Pindah tanpa mengetik ulang semuanya. Selalu tersedia (tanpa sakelar): di Pengaturan → Impor/ekspor (hanya admin) ada bagian Impor dari kasir lain.
- Apa: produk (nama, harga termasuk PPN, PPN, grup, kode/PLU, stok) atau pelanggan kartu pelanggan (nama, telepon, email, poin, alamat, kode pos, kota; nama depan dan nama belakang digabung).
- File: ekspor dari kasir lama Anda (Dobizzz/DoPos, Lightspeed, MplusKASSA, unTill, Tebi ...) atau daftar sendiri: CSV (; , tab atau |; UTF-8 atau Excel-Belanda) atau Excel (.xlsx), sheet pertama, dengan nama kolom di baris pertama. Simpan file .xls lama terlebih dahulu sebagai .xlsx atau CSV.
- Pratinjau: kasir mengenali kolom dari namanya (Omschrijving, Verkoopprijs incl. BTW, BTW %, Omzetgroep, Artikelnummer, GSM, Spaarpunten ...) dan menampilkan 10 baris pertama. Jika kolom tidak cocok, pilih sendiri. Perubahan baru terjadi saat Impor.
- Produk: harga seperti 3,50, € 3,50 atau 1.234,50; PPN seperti 21, 9%, 0,09, tinggi atau rendah (tidak dikenal atau kosong: tarif yang Anda pilih, standarnya yang tertinggi). Grup produk yang belum ada akan dibuat (tanpa grup: "Diimpor").
- Stok (kolom Voorraad, Stock, Aantal ...): jika Catat stok aktif (Pengaturan → Usaha), produk mencatat stok dan stok menjadi jumlah tersebut (penghitungan dalam riwayat stok, alasan "Diimpor"). Kosong: stok tetap seperti semula.
- File contoh (CSV): daftar untuk diisi sendiri (Naam;Productgroep;Prijs;Btw;Voorraad;Code), misalnya di Excel.
- Pelanggan: poin ditambahkan sebagai koreksi "Diimpor dari kasir lain" (terlihat di riwayat). Izin untuk SMS atau email tidak ikut (GDPR): mintalah lagi. Aktifkan kartu pelanggan terlebih dahulu.
- Produk yang sudah ada (kode sama, atau tanpa kode: nama sama) dan pelanggan (telepon atau email sama) dilewati, atau diperbarui jika Anda mencentangnya (untuk produk: nama, harga, PPN, grup, dan stok). Baris ganda dalam file hanya diambil sekali.
- Setelah selesai: berapa yang baru, diperbarui, dan dilewati, dengan keterangan per baris apa yang tidak benar (mis. tidak ada harga). Maksimal 5000 baris per kali. Di log tercatat sebagai "Konfigurasi diimpor".
Bahasa (42, a.l. Turki, Arab, Darija, Berber, Polandia, Bulgaria, Hongaria, Rusia, Serbia, Albania, Persia, Tigrinya, Amhar, Somali, Papiamento, Sranantongo, Hindi, Urdu, Indonesia, Vietnam, Aram Suriah, Mandarin, dan Ukraina)
Di samping tombol © di kanan bawah, setiap layar punya tombol bahasa (mis. NL dan benderanya). Ketuk untuk membuka menu pilihan: bahasa diurutkan menurut abjad, dengan nama dalam bahasanya sendiri di depan bendera: Bahasa Indonesia (Indonesia), Čeština (Ceko), Darija (Arab Maroko dalam huruf Latin), Deutsch, English, Español, Français, Hrvatski (Kroasia), Italiano, Kurdî (Kurmancî), Latviešu (Latvia), Lietuvių (Lituania), Magyar (Hongaria), Nederlands, Papiamentu (Papiamento), Polski, Português, Română, Shqip (Albania), Slovenčina (Slowakia), Soomaali (Somalia), Sranantongo, Srpski (Serbia, dalam huruf Latin), Tarifit (Berber Rif), Tiếng Việt (Vietnam), Türkçe, lalu dalam huruf Kiril Български (Bulgaria), Русский (Rusia) dan Українська (Ukraina), kemudian bahasa dalam huruf Arab: اردو (Urdu), الدارجة (Darija), العربية (Arab), دری (Dari), فارسی (Persia, Farsi), پښتو (Pashto) dan کوردی (سۆرانی) (Kurdi Soranî), lalu dalam huruf Suryani ܣܘܪܝܝܐ (Aram Suryani, Suryoyo), dalam Dewanagari हिन्दी (Hindi), dalam huruf Ge'ez ትግርኛ (Tigrinya) dan አማርኛ (Amharik), dalam Tifinagh ⵜⴰⵎⴰⵣⵉⵖⵜ (Tamazight, Berber), dan terakhir 中文(简体)(Mandarin, aksara sederhana). Semua layar, tombol, notifikasi, dan pesan galat dari server kasir diterjemahkan.
- Per karyawan: bahasa yang dipilih disimpan pada karyawan yang masuk (
gebruiker.taal). Jika seseorang masuk dengan bahasa lain, kasir langsung beralih. Di perangkat itu sendiri bahasa terakhir yang dipakai diingat, sehingga layar PIN juga sudah dalam bahasa itu. Jika Anda memilih bahasa (di layar PIN atau saat sudah masuk) lalu masuk (lagi) dalam 10 menit, pilihan itu diutamakan dan menjadi bahasa karyawan tersebut. Mengganti bahasa memuat ulang layar; Anda tetap masuk dan tagihan yang terbuka tetap terbuka. - Pertama kali di sebuah perangkat: jika tablet atau PC belum punya bahasa, kasir dimulai dalam bahasa yang dipilih saat instalasi. Jika tidak ada bahasa yang dipilih, bahasa perangkat itu sendiri (browser atau sistem operasi, juga di aplikasi Android), dan jika bahasa itu tidak tersedia, bahasa Belanda. Setelah itu setiap perangkat mengingat pilihannya sendiri.
- Eropa Timur: Polandia, Ceko, Slowakia, Hongaria, Rumania, Bulgaria, Kroasia (juga untuk Bosnia), Lituania, Latvia, Ukraina, dan Rusia: bahasa sebagian besar pekerja migran dari Eropa Tengah dan Timur di Belanda dan Belgia.
- Balkan: Serbia (dalam huruf Latin, seperti cara kebanyakan orang Serbia di Belanda dan Belgia menulisnya; juga untuk Montenegro) dan Albania (Albania, Kosovo, dan Makedonia Utara).
- Tanduk Afrika: Tigrinya (Eritrea) dan Amharik (Etiopia), keduanya dalam huruf Ge'ez, dan Somalia (dalam huruf Latin).
- Iran: Persia (Farsi). Perangkat dalam bahasa Persia Afganistan (fa-AF) mendapat Dari, sisanya Farsi.
- Karibia Belanda dan Suriname: Papiamento (Papiamentu, ejaan Curaçao dan Bonaire; juga untuk Aruba) dan Sranantongo.
- Asia: Hindi (Dewanagari; juga untuk Sarnami Hindustani), Urdu (dari kanan ke kiri), Indonesia, dan Vietnam (huruf Latin, juga di struk).
- Maroko: Darija (Arab Maroko, bahasa lisan) dalam huruf Arab maupun Latin (seperti banyak orang Belanda keturunan Maroko menulis di chat), di samping bahasa Arab standar. Berber: Tarifit (Rif, dalam huruf Latin; kebanyakan orang Belanda keturunan Maroko berasal dari Rif) dan Tamazight Standar Maroko dalam huruf Tifinagh.
- Dari kanan ke kiri: Arab (Arab standar), Urdu, Darija dalam huruf Arab, Dari dan Pashto (Afganistan), Persia (Farsi, Iran), Kurdi Soranî (Irak/Iran), dan Aram Suryani (Suryoyo, dalam huruf Suryani). Jumlah uang, kode, dan tombol angka tetap dari kiri ke kanan. Kurdi Kurmancî (Turki/Suriah) ditulis dalam huruf Latin.
- Tiket kerja (dapur/bar): standarnya dalam bahasa karyawan yang meneruskan pesanan. Per printer, di Pengaturan → Printer → Bahasa tiket kerja, juga bisa dipilih bahasa tetap (mis. bahasa juru masak), dalam huruf Latin: Nederlands, Čeština, Darija, Deutsch, English, Español, Français, Hrvatski, Italiano, Kurdî, Latviešu, Lietuvių, Magyar, Papiamentu, Polski, Português, Română, Shqip, Slovenčina, Soomaali, Sranantongo, Srpski, Tarifit, Tiếng Việt, Bahasa Indonesia, atau Türkçe. Bulgaria, Rusia, dan Ukraina dicetak di tiket kerja dalam transkripsi Latin (printer struk tidak mengenal huruf Kiril). Huruf Arab, Suryani, Dewanagari, Ge'ez, Tifinagh, dan Mandarin tidak bisa dicetak di printer struk: maka Darija dicetak dalam huruf Latin, Tamazight sebagai Tarifit, dan sisanya dalam bahasa Belanda. Teks tetap (MEJA, Course, TUNGGU dipanggil, PANGGIL COURSE, DICETAK BELAKANGAN, Bawa pulang, Konter) diterjemahkan; nama produk dan catatan tetap seperti yang dimasukkan. Printer yang diatur ke bahasa Belanda mengikuti bahasa karyawan.
- Struk kasir (untuk semua pelanggan): standarnya bahasa Belanda, terpisah dari bahasa layar. Bahasa lain dipilih di Pengaturan → Usaha → Bahasa struk kasir (tepat di bawah teks bagian bawah struk), hanya bahasa dengan huruf Latin. Ini juga berlaku untuk pro forma, struk retur, salinan, voucher hadiah, dan struk lewat email. Jumlah, kode PPN, nomor PPN/BTW usaha, dan aturan fiskal (Belgia) tetap sama; teks sendiri di bagian bawah struk tetap seperti yang diketik usaha.
- Produk, grup, dan opsi bernama seperti yang dimasukkan usaha; itu tidak diterjemahkan.
- Bahasa per karyawan juga bisa diatur di Pengaturan → Personel.
- Pengenalan dan panduan juga tersedia dalam semua bahasa ini. Lewat tombol © keduanya terbuka dalam bahasa kasir; di bagian atas Anda bisa memilih bahasa lain dengan bendera (itu tidak mengubah apa pun di kasir).
Untuk pengembang: setiap teks yang terlihat ada di kode sebagai vt('Nederlandse tekst') (apps/pos-web/lib/i18n.ts); teks Belanda adalah kuncinya. Terjemahan ada di apps/pos-web/lib/vertalingen/<taal>.ts. Jika terjemahan tidak ada, kasir menampilkan bahasa Belanda; tes i18n (pos-web) memeriksa bahwa setiap teks diterjemahkan dalam setiap bahasa dan bahwa tempat {0} sesuai. Pesan dari server kasir tetap dalam bahasa Belanda dan diterjemahkan di browser (juga dengan {0}, mis. nama produk dalam pesan).
Atur printer
Kasir baru tidak punya printer. Masuk sebagai admin (demo: 1111) dan pilih Pengaturan di bilah atas.
- Printer: tambahkan printer sebanyak yang dimiliki usaha (mis. kasir, dapur, bar, piza), masing-masing dengan koneksi (biasanya jaringan: alamat IP dan port 9100) dan lebar kertas. Dengan Struk tes Anda memeriksa apakah printer berfungsi. Di bagian atas Anda memilih printer mana yang mencetak struk kasir dan pro forma (dan membuka laci kas). Per printer Anda juga memilih bahasa tiket dapur (lihat Bahasa); struk kasir tetap dalam bahasa Belanda.
- Koneksi per printer:
- Jaringan (alamat IP): alamat IP dan port (biasanya 9100). Begini cara kerjanya selama ini, dan akan tetap begitu: printer yang sudah ada otomatis diatur ke jaringan.
- USB: di Linux perangkatnya, misalnya
/dev/usb/lp0. Di Android printer USB yang terpasang di perangkat (kabel OTG; kosong = printer USB pertama). Di Windows dan macOS, pilih Printer sistem. - Serial (COM / ttyUSB): port COM (Windows),
/dev/ttyUSB0atau/dev/ttyS0(Linux, Android) atau/dev/cu.…(macOS), dengan kecepatannya (biasanya 9600, 19200, atau 38400 baud). Juga untuk printer Bluetooth yang dipasangkan Windows atau Linux sebagai port COM atau/dev/rfcomm0. - Bluetooth: di aplikasi HorecaPOS di Android, dengan alamat Bluetooth printer yang sudah dipasangkan (mis. printer struk portabel). Pasangkan printer terlebih dahulu di pengaturan Bluetooth Android.
- Printer sistem (Windows / CUPS): printer sebagaimana dikenal Windows atau CUPS (Linux, macOS), dengan driver-nya sendiri atau sebagai Generic / Text Only. Struk dikirim mentah (RAW) ke printer, tanpa format dari driver.
- Bawaan (Sunmi, iMin ...): printer di dalam kasir Android itu sendiri.
- Cari menampilkan printer dan port yang terlihat oleh kasir. Pilih salah satu dan alamatnya langsung terisi.
- Protokol: ESC/POS (hampir semua printer struk, termasuk printer Star dalam mode ESC/POS) atau Star (Star Line Mode). Dengan Star, kasir sendiri yang mengonversi struk; tampilan struknya tetap sama.
- Layar pelayan dengan printer sendiri: layar pelayan Android dengan aplikasi HorecaPOS (mis. terminal genggam dengan printer Bluetooth portabel, atau Sunmi sebagai layar pelayan) bisa mencetak sendiri. Daftarkan pada perangkat itu sendiri (Pengaturan → Printer → Layar pelayan dengan printer sendiri) lalu pilih Terhubung ke pada printer. Layar pelayan mengambil tiketnya dari kasir; biarkan aplikasinya tetap terbuka di sana. Jika gagal (aplikasi tertutup, di luar jangkauan Wi-Fi), tiket dapur masuk ke antrean cetak, sama seperti printer jaringan yang mati. Batalkan pendaftaran perangkat mengembalikan printer ke kasir itu sendiri.
- Printer per grup / produk: pilih per grup artikel di printer mana tiket kerja dicetak. Per produk Anda bisa menggantinya dengan printer sendiri atau "tanpa tiket kerja".
Produk yang sama digabung saat dicetak: dua kali 1x Cola menjadi 2x Cola, di tiket kerja dan di struk kasir. Hanya produk dengan opsi dan catatan yang sama yang digabung.
Installer Linux memasukkan pengguna kasir ke grup lp dan dialout, agar kasir boleh memakai printer USB dan serial.
Butuh bantuan?
Optimum POS · 085 560 00 60 · support@optimumpos.nl · Sen–Jum 9:00–20:00, Sab–Min 14:00–20:00