Restoran & POS

Sistem restoran lengkap: kasir sentuh yang cepat, layar dapur, papan pengambilan dan pengiriman, manajemen lantai dan meja, menu dengan modifier, serta pencetakan terarah ke printer stasiun.

ℹ️ Persiapan pertama kali (berurutan): Kategori menu → Item menu → Grup modifier → Meja makan → Pelayan → Stasiun POS → Printer. Setelah itu layar kasir siap melayani. Pengaturan modul (baris kaki struk, printer dapur bawaan, gudang dapur, % biaya layanan) berada di layar Pengaturan bersama pada tab Restoran.

POS (layar kasir)

Rute: Restoran › POS/rest/pos (kiosk layar penuh)

Layar POS
Layar kasir

Fungsi: layar utama pengambilan pesanan, dirancang untuk sentuhan cepat. Gunakan untuk setiap penjualan: tiket makan di tempat yang dikirim ke dapur, penjualan bawa pulang yang dibayar langsung, dan pesanan antar yang terikat pada pelanggan. Layar berjalan penuh (kiosk); kasir hanya keluar lewat tombol Keluar pada bilah bawah.

Tata letak layar

ElemenFungsinya
Cari produk…Filter teks bebas atas ubin item (nama Arab/Inggris atau kode). Tanda × menghapusnya.
Ikon printer (di samping pencarian)Status agen cetak lokal: hijau = pencetakan jaringan aktif, abu-abu = agen offline, pencetakan beralih ke dialog cetak browser.
Chip kategoriSemua ditambah satu chip berwarna per kategori aktif, sesuai urutan tampil kategori. Ketuk untuk memfilter ubin.
Ubin itemFoto/warna item, nama dan harga. Lencana menunjukkan berapa banyak item tersebut yang sudah ada di keranjang. Ubin abu-abu bertanda Tidak tersedia berarti item sedang "86" (habis) dan tidak dapat ditambahkan.
Navigasi halaman (‹ 1 / 2 ›)Muncul saat satu kategori memiliki lebih dari 18 ubin.
Pemilih stasiunStasiun POS terminal ini (diingat per browser; stasiun bawaan pada profil pengguna diutamakan). Memilih stasiun otomatis menetapkan kotak kas terminal.
Bilah shiftStatus shift + Buka shift / Tutup shift, plus dua ikon: Mutasi kas dan Laporan X. Ditampilkan setelah stasiun dipilih.
Tombol jenis pesananBawa pulang (bawaan) / Makan di tempat / Antar.
Bilah alat pesananMenu (hapus filter kategori dan pencarian), Void (kosongkan seluruh tiket yang belum terkirim), Diskon, Lainnya.
Baris keranjangItem, modifier yang dipilih, harga satuan, tombol kuantitas − / +, total baris, dan tombol sampah untuk menghapus baris.
Strip totalSubtotal, diskon, PPN, biaya layanan, biaya tambahan, tip, dan total keseluruhan.
Tombol aksiBergantung pada jenis pesanan — lihat tabel di bawah.
Bilah bawahBeranda (dasbor restoran) · Pesanan · Meja (denah lantai) · Baru (kosongkan dan mulai tiket baru) · Keluar.

Jenis pesanan dan kebutuhannya masing-masing

JenisKolom tambahanTombol aksi
Bawa pulangTidak ada.Tahan (terbuka) — simpan tiket tanpa pembayaran · Bagi — pecah pembayaran ke beberapa metode · Bayar — selesaikan sekarang.
Makan di tempatMeja + pelayan (dropdown dengan pencarian).Hanya Kirim ke dapur — tiket tetap Terbuka dan diselesaikan kemudian (panggil ulang → Bayar, atau ikon bayar pada layar Pesanan).
AntarTombol Pelanggan antar → telepon (mencari buku pelanggan saat Anda mengetik, min. 3 digit), nama dan alamat. Telepon + nama wajib.Tahan (terbuka) (lazim untuk bayar di tempat/COD) · Bagi · Bayar.
ℹ️ Buku pelanggan antar: pelanggan lama ditemukan lewat nomor telepon — ketuk hasil yang cocok untuk mengisi nama dan alamat. Pasangan telepon/nama/alamat baru otomatis tersimpan ke buku bersama pesanan.

Dialog modifier

Mengetuk item yang memiliki grup modifier membuka pemilih sebelum item masuk ke keranjang:

  • Grup bertanda Wajib (min ≥ 1) harus memiliki pilihan — Tambah ke pesanan menolak jika belum.
  • Grup yang menampilkan Pilih hingga N membatasi jumlah pilihan; pada grup pilihan tunggal, mengetuk opsi lain menggantikan opsi sebelumnya.
  • Opsi dengan biaya tambahan menampilkan +jumlah; harga pada tombol diperbarui langsung (harga item + biaya tambahan terpilih).
  • Item yang sama dengan kombinasi modifier berbeda menjadi baris keranjang terpisah.

Diskon (diatur oleh izin)

  1. Dengan item di keranjang, ketuk Diskon pada bilah alat.
  2. Pilih chip preset: 5% · 10% · 15% · 25% · Comp 100% (Comp = gratis sepenuhnya).
  3. Alasan diskon / comp menjadi wajib — pilih preset (jamuan, karyawan, keluhan pelanggan, promo pemasaran, comp manajemen) atau ketik sendiri. Pesanan tidak dapat dibuat tanpanya.
  4. Jika pengguna Anda tidak memiliki wewenang diskon, pembuatan pesanan mengembalikan "Perlu persetujuan manajer" — manajer mengetikkan nama pengguna dan kata sandinya dalam dialog dan pesanan pun diproses. Persetujuan tercatat bersama pesanan.

PPN diturunkan sebanding dengan diskon, sehingga pajak dikenakan atas jumlah yang benar-benar dibayar.

Menu "Lainnya" (atribut pesanan)

AksiEfek
Tambah catatanCatatan teks bebas yang tersimpan pada pesanan (mis. "tanpa bawang, alergi"). Juga tercetak sebagai konteks untuk dapur.
Tambah tagKata kunci untuk filter/pelaporan (ketik + Enter, boleh beberapa).
Atur tamuJumlah tamu pada tiket.
Tambah biayaJumlah tambahan dengan deskripsinya sendiri (mis. "Ongkos antar"). Ditambahkan di atas total, tidak dikenai pajak.
Tambah tipGratifikasi — ditambahkan pada jumlah yang dibayar pelanggan dan dibukukan ke akun utang tip (kewajiban, bukan pendapatan).
Tambah nama panggilNama yang diserukan saat pesanan siap — juga tampil di papan pengambilan di bawah nomor pesanan.
ℹ️ Biaya layanan: jika % biaya layanan dikonfigurasi di pengaturan Restoran, biaya ditambahkan otomatis hanya pada pesanan makan di tempat — dihitung atas subtotal setelah diskon dan tampil sebagai baris total tersendiri.

Tahan, panggil ulang, dan menambah item ke tiket terbuka

Pesanan yang disimpan tanpa pembayaran (Tahan atau Kirim ke dapur) berstatus Terbuka. Panggil ulang ke POS dari layar Pesanan (ikon panggil ulang), atau dengan mengetuk mejanya di denah lantai. Dialog panggil ulang menampilkan tiket dan menawarkan aksi sesuai status:

StatusAksi yang tersedia
TerbukaBatalkan (pembatalan terkontrol — alasan wajib, persetujuan manajer bila diperlukan) · Tambah item · Bayar.
DibayarCetak struk (cetak ulang) · Tutup.
Dibatalkan / DirefundHanya lihat.

Tambah item (mode penambahan): spanduk menampilkan "Menambah ke ORD-xxxxx", item tiket yang sudah ada ditampilkan hanya-baca beserta total saat ini, dan keranjang hanya menampung item baru. Strip total menampilkan total item baru dan total pesanan setelah penambahan. Ketuk Tambah ke pesanan untuk menyimpan (baris baru juga tercetak ke dapur), atau tanda × pada spanduk untuk keluar tanpa menyimpan. Diskon tingkat pesanan dan atribut "Lainnya" disembunyikan selama penambahan — keduanya milik seluruh tiket, bukan milik penambahan.

Pembayaran terbagi (beberapa metode, satu tiket)

  1. Ketuk Bagi (tiket bawa pulang/antar dengan item di keranjang).
  2. Ketuk sebuah metode pembayaran (kotak kas stasiun, bank/kartu…) — metode itu menjadi tender aktif.
  3. Ketik jumlahnya pada papan angka. C menghapus, ⌫ mundur satu digit, dan tombol Sisa mengisi tender dengan seluruh jumlah yang belum terbayar.
  4. Ulangi untuk metode berikutnya. Setiap tender dapat dihapus dengan tanda ×-nya. Jumlah dibatasi sehingga total tender tidak pernah melampaui total tagihan.
  5. Bayar hanya aktif saat Sisa = 0,00 — pesanan diselesaikan dan dibukukan dengan semua tender tercatat.

Contoh — total 115,00: ketuk Kartu, ketik 80 → ketuk Tunai, tekan Sisa → 35,00 terisi, sisa menunjukkan 0,00 → Bayar.

Dialog struk pembayaran

Setelah Bayar, pratinjau bergaya termal untuk Faktur Pajak Sederhana terbuka. Pratinjau dapat digulir sementara tombol tetap terpaku di bagian bawah dialog. Isinya: logo dan nama perusahaan, NPWP/No. PPN, kota, nomor/tanggal/jenis pesanan, meja, pelanggan antar (nama, telepon, alamat), pelayan, tamu, nama panggil, setiap baris sebagai qty × harga satuan — modifier, lalu subtotal, diskon, biaya layanan, biaya tambahan, PPN, tip dan total, serta baris kaki struk yang dapat dikonfigurasi.

  • Uang diterima — alat bantu kasir di bawah pratinjau: ketik jumlah yang diserahkan pelanggan dan kembalian dihitung otomatis (diterima − total). Tidak ikut tercetak.
  • Saat agen cetak aktif dan stasiun memiliki printer jaringan, struk tercetak otomatis dan dialog menampilkan "Mencetak ke: <printer> (printer jaringan)". Tombol Cetak mencetak ulang; tanpa agen, tombol membuka dialog cetak browser (tata letak 80 mm).

Shift: buka, Laporan X, mutasi kas, tutup

  1. Buka shift: setelah stasiun dipilih, ketuk Buka shift dan masukkan modal awal (tunai). Selama stasiun dipilih dan belum ada shift terbuka, penjualan diblokir — dialog buka-shift muncul sebagai gantinya.
  2. Mutasi kas (ikon uang kertas): catat Kas masuk (penambahan laci) atau Kas keluar (perlengkapan, setoran bank, pengeluaran kecil) dengan jumlah dan alasan yang wajib diisi. Tersedia preset.
  3. Laporan X (ikon grafik): ringkasan shift yang sama, dibaca di tengah shift tanpa menutup — penjualan sejauh ini, rincian pembayaran dan perkiraan isi laci.
  4. Tutup shift: memerlukan izin REST.Shifts.Close (jika tidak, bilah menampilkan "Penutupan adalah tindakan supervisor"). Masukkan kas terhitung yang secara fisik ada di laci — laporan Z terbuka (dan otomatis tercetak ke printer jaringan saat agen aktif).

Mode offline

  • Menu, meja, pelayan dan metode pembayaran disimpan dalam cache lokal — POS tetap tampil dan menjual jika server terputus.
  • Pesanan yang dibuat saat terputus diantrekan secara lokal: lencana merah menampilkan "Offline — penjualan berlanjut secara lokal"; begitu koneksi kembali, lencana berubah kuning ("Menunggu sinkronisasi (n)") dan antrean terkirim otomatis.
  • Ketuk lencana untuk membuka antrean: setiap pesanan tertunda menampilkan jenis, jumlah item, waktu dan total, dengan Sinkronkan sekarang dan tombol buang per pesanan. Referensi klien menjamin pengiriman ulang tidak pernah menggandakan pesanan.
⚠️ Jangan menghapus data situs browser selama antrean offline masih menyimpan pesanan — pesanan tersimpan di penyimpanan lokal sampai tersinkron.

Contoh lengkap — meja makan di tempat, dari awal sampai akhir

  1. Stasiun CASH-01 terpilih, shift terbuka. Ketuk Makan di tempat, pilih meja T-05 dan pelayan Ahmed.
  2. Ketuk Ayam Panggang (27,00). Dialog modifier terbuka — pada grup "Saus" pilih Saus pedas +3,00Tambah ke pesanan. Baris masuk seharga 30,00; tekan + pada baris keranjang → qty 2, total baris 60,00.
  3. Ketuk Salad Keluarga (28,00) — tanpa modifier, langsung ditambahkan.
  4. Total: subtotal 88,00 · PPN 15% 13,20 · total 101,20. Ketuk Kirim ke dapur (tombol menampilkan 3 item dan 101,20).
  5. Pesanan ORD-00045 tercipta dengan status Terbuka: meja T-05 berubah merah di denah lantai, kartunya muncul di layar dapur, dan tiket dapur tercetak pada printer kategori.
  6. Para tamu kemudian memesan jus: pada denah lantai ketuk T-05 (atau Pesanan → ikon panggil ulang) → Tambah item → ketuk Jus Jeruk (12,00) → Tambah ke pesanan. Item baru 12,00 + PPN 1,80 = 13,80; total pesanan setelah penambahan: 115,00.
  7. Para tamu ingin membayar 60/40: layar Pesanan → ikon pecah bon pada ORD-00045 → jumlah bon: 2 → tetapkan dua ayam ke bon 1, salad dan jus ke bon 2. Total langsung: bon 1 69,00 (60%), bon 2 46,00 (40%) → konfirmasi. Bon 1 tetap sebagai ORD-00045; bon 2 menjadi pesanan terbuka baru (mis. ORD-00046).
  8. Selesaikan bon 1: panggil ulang ORD-00045 → Bayar → 69,00 masuk ke kotak kas stasiun dan struk terbuka. Tamu menyerahkan 70,00 — ketik pada Uang diterimaKembalian 1,00.
  9. Selesaikan bon 2 dengan cara yang sama: total 46,00, diterima 50,00 → kembalian 4,00. Meja T-05 kembali hijau.

Contoh lengkap — satu hari shift dengan modal awal 500

  1. 09.00 — pilih stasiun CASH-01 → Buka shift → modal awal 500,00. Shift SH-00012 tampil di bilah shift.
  2. 11.30 — beli perlengkapan dapur dari laci: Mutasi kasKas keluar · 150,00 · alasan "Beli perlengkapan".
  3. 15.00 — Laporan X untuk melihat penjualan sejauh ini. Laci tetap terbuka.
  4. 23.00 — hari berakhir dengan 42 pesanan: penjualan bersih 3.000,00 + PPN 450,00 = kotor 3.450,00; pembayaran: tunai 2.150,00, kartu 1.300,00.
  5. Seorang supervisor mengetuk Tutup shift dan menghitung laci: 2.495,00.
  6. Laporan Z terbuka: kas diharapkan = 500,00 (modal awal) + 2.150,00 (penjualan tunai) − 150,00 (kas keluar) = 2.500,00; terhitung 2.495,00 → selisih −5,00 tampil merah (kekurangan). Laporan mencantumkan rincian pembayaran dan setiap mutasi kas dengan alasannya, serta otomatis tercetak saat agen tersambung.
Baris laporan ZArti
PesananJumlah pesanan yang diselesaikan selama shift.
Penjualan bersihPenjualan setelah diskon, sebelum PPN.
PPN / TotalPajak terkumpul dan total kotor.
Rincian pembayaranJumlah diterima per metode (kotak kas, tiap akun bank/kartu).
Modal awal / Kas masuk / Kas keluarKas awal laci dan mutasi selama shift.
Kas diharapkanModal awal + penjualan tunai + kas masuk − kas keluar.
Kas terhitung / SelisihJumlah yang dihitung secara fisik, dan terhitung − diharapkan (negatif = kekurangan, tampil merah).
ℹ️ Akuntansi: pesanan POS yang dibayar otomatis membukukan jurnalnya dan memotong stok (lewat resep item bila didefinisikan) — tanpa entri manual. Tip dibukukan ke akun utang tip.

Tanya jawab

PertanyaanJawaban
Mengapa tombol Bayar tidak ada pada tiket makan di tempat?Secara desain, pesanan makan di tempat dikirim ke dapur terlebih dahulu dan tetap Terbuka; pembayaran dilakukan kemudian lewat panggil ulang → Bayar atau ikon bayar pada layar Pesanan.
Mengapa dialog buka-shift muncul saat saya menekan Bayar?Stasiun terpilih tetapi belum ada shift terbuka — penjualan diblokir sampai Anda membukanya (masukkan modal awal, 0 diperbolehkan).
Bisakah saya mengganti akun pembayaran?Dengan stasiun terpilih, kotak kas berasal dari definisi stasiun. Gunakan Bagi untuk menerima pada metode lain (kartu/bank), atau kosongkan pilihan stasiun untuk menampilkan pemilih akun manual.
Bagaimana menghapus satu baris yang salah sebelum mengirim?Gunakan tombol sampah pada baris keranjang (berapa pun kuantitasnya), atau − untuk mengurangi. Void pada bilah alat mengosongkan seluruh tiket yang belum terkirim.

Layar dapur

Rute: Restoran › Dapur/rest/kitchen

Layar dapur
Layar dapur (KDS)

Fungsi: antrean langsung para juru masak. Setiap pesanan terbuka yang dikirim dari POS tampil sebagai kartu; dapur mengerjakannya, mencentang baris satu per satu, dan menyingkirkan (bump) pesanan saat selesai. Berjalan di layar atau tablet mana pun dalam jaringan — tanpa printer. Menyegarkan diri setiap 15 detik.

ElemenArti
Kepala kartuNomor pesanan + penghitung menit langsung sejak pesanan dibuat.
Warna kartuLama menunggu: hijau < 5 mnt · kuning 5–10 mnt · merah ≥ 10 mnt.
Sub-barisJenis pesanan (Makan di tempat / Bawa pulang) dan meja bila ada.
Baris itemqty × item. Ketuk sebuah baris untuk mencentangnya sudah siap (✓) — ketuk lagi untuk membatalkan centang.
Tombol SiapMenyingkirkan seluruh pesanan dari papan. Tombol menyala setelah semua baris tercentang, tetapi dapat ditekan kapan saja.
  1. Kartu baru muncul (paling lambat 15 detik setelah POS mengirimnya).
  2. Juru masak mencentang tiap baris begitu selesai disajikan.
  3. Siap → kartu menghilang; nomor pesanan berpindah ke kolom "Siap" pada papan pengambilan, dan pesanan antar menampilkan lencana Siap pada papan pengiriman.

Tanya jawab

PertanyaanJawaban
Saya menekan Siap tanpa sengaja — bisakah kartu dikembalikan?Tidak dari KDS. Pesanannya sendiri tidak terpengaruh (tetap Terbuka di Pesanan) — periksa kembali barisnya di sana dan lanjutkan memasak; hanya kartu papan yang tersingkir.
Apakah pesanan antar tampil di sini?Ya — baris setiap pesanan terbuka sampai ke dapur; menyingkirkan satu pesanan mengubah lencananya dari "Sedang disiapkan" menjadi "Siap" di papan pengiriman.
Apakah mencentang baris mencetak sesuatu?Tidak. Tiket dapur tercetak saat pesanan dibuat (per printer kategori); centang di KDS hanyalah alur kerja di layar.

Papan pengambilan

Rute: Restoran › Papan Pengambilan/rest/pickup (menghadap pelanggan)

Papan pengambilan
Papan nomor pesanan siap

Fungsi: layar dinding/kiosk yang ditonton pelanggan selama menunggu. Dua kolom nomor pesanan besar: Siap diambil (hijau) dan Sedang disiapkan (kuning), dengan nama perusahaan dan jam langsung pada kepala layar. Menyegarkan setiap 10 detik; nomor yang baru saja siap berdenyut agar menarik perhatian.

  • Nomor besar adalah bagian angka akhir nomor pesanan (ORD-00091 tampil sebagai 91).
  • Jika nama panggil diatur pada pesanan, nama tampil di bawah nomor.
  • "Siap" mencantumkan pesanan yang disingkirkan dapur dalam 30 menit terakhir — pesanan yang sudah diambil hilang dengan sendirinya, tanpa ketukan tambahan.

Tanya jawab

PertanyaanJawaban
Bagaimana sebuah nomor berpindah dari Sedang disiapkan ke Siap?Dapur menekan Siap pada kartu KDS pesanan itu — tidak ada yang perlu dilakukan pada papan itu sendiri.
Nomor yang siap menghilang — kenapa?Nomor siap kedaluwarsa otomatis 30 menit setelah disingkirkan dapur agar papan membersihkan dirinya sendiri.
Bisakah menampilkan nama pelanggan alih-alih nomor?Atur nama panggil pada pesanan (POS → Lainnya → Tambah nama panggil); nama tampil di bawah nomor.

Papan pengiriman (antar)

Rute: Restoran › Papan Pengiriman/rest/delivery

Papan pengiriman
Papan pengiriman antar

Fungsi: layar petugas pengiriman. Tiga kolom mengikuti perjalanan setiap pesanan antar — Siap dikirim → Sedang diantar → Terkirim — ditambah strip kurir di atas yang memantau pertanggungjawaban kas tiap kurir secara real time. Menyegarkan setiap 15 detik. Data kurir (kode, nama, telepon, aktif) dikelola di Kurir Pengiriman/rest/drivers.

AreaIsi / aksi
Strip kurirPer kurir: keluar (pesanan yang sedang dibawanya) · membawa (kas COD yang secara fisik ada di sakunya — sudah dikirim dan belum dibayar) · disetor hari ini. Kartu menyala selama kurir membawa kas.
Siap dikirimPesanan antar dengan nama/telepon/alamat pelanggan dan total. Lencana: Siap (dapur selesai) atau Sedang disiapkan, dan Dibayar jika sudah dilunasi di muka. Tombol: Kirim dengan kurir → pilih dari kurir aktif.
Sedang diantarPenghitung perjalanan per kartu (kuning ≥ 25 mnt, merah ≥ 45 mnt), nama kurir, dan tombol: Terkirim serta panah pembatalan (Kembalikan dari kurir — kembali ke Siap, mis. salah pilih kurir).
TerkirimDurasi perjalanan dan, untuk pesanan bayar di tempat (COD), tombol Setor kas sampai kurir menyerahkan uangnya; setelah itu lencana Dibayar.

Contoh lengkap — pengantaran COD dari awal sampai akhir

  1. POS: jenis pesanan AntarPelanggan antar → ketik telepon 0551234567; tidak ada yang cocok, jadi masukkan nama "Mohammed Al-Harbi" dan alamat "Distrik Al-Nakheel, Jl. King Fahd" → Selesai (pelanggan tersimpan ke buku bersama pesanan).
  2. Tambah Pizza Margherita 35,00 dan Cola 5,00 → subtotal 40,00 + PPN 6,00 = 46,00.
  3. Bayar di tempat (COD) → ketuk Tahan (terbuka). Pesanan tetap Terbuka (belum dibayar) dan tiket dapurnya tercetak. (Jika pelanggan sudah membayar dengan kartu, Anda akan mengetuk Bayar.)
  4. Kartu tampil di Siap dikirim dengan lencana Sedang disiapkan; ketika dapur menyingkirkannya, lencana berubah menjadi Siap.
  5. Kirim dengan kurir → pilih Saad. Kartu berpindah ke Sedang diantar; strip menampilkan Saad: 1 keluar, membawa 46,00.
  6. Pelanggan mengonfirmasi penerimaan → ketuk Terkirim. Kartu berpindah ke Terkirim dengan menit perjalanannya; masih belum dibayar, jadi tombol Setor kas tetap ada.
  7. Saad kembali dan menyerahkan 46,00 → ketuk Setor kas. Pembayaran dibukukan di kas (jurnal terposting), lencana berubah Dibayar, dan strip menampilkan Saad: membawa 0,00 · disetor hari ini 46,00.
💡 Akhir shift: strip kurir adalah alat rekonsiliasi kurir — membawa harus mencapai 0,00 untuk setiap kurir sebelum mereka pulang; disetor hari ini menunjukkan jumlah yang telah diserahkan masing-masing.

Tanya jawab

PertanyaanJawaban
Bisakah mengirim sebelum dapur selesai?Bisa — "Sedang disiapkan" hanya informasi; pengiriman tidak diblokir. Sebagian besar restoran menunggu lencana Siap.
Saya salah memilih kurir.Gunakan panah pembatalan (Kembalikan dari kurir) pada kartu yang sedang diantar — pesanan kembali ke Siap dan kas keluar dari "membawa" kurir tersebut.
Pemilih menampilkan "Tidak ada kurir aktif".Buat/aktifkan kurir di Kurir Pengiriman — hanya kurir aktif yang ditawarkan.
Ke mana Setor kas memasukkan uangnya?Menjalankan alur pembayaran normal ke kas — pesanan menjadi Dibayar dan jurnalnya terposting, sama seperti penjualan di konter.

Pesanan

Rute: Restoran › Pesanan/rest/orders

Pesanan
Log pesanan restoran

Fungsi: log terpusat setiap tiket. Kolom: nomor pesanan, tanggal, jenis (Makan di tempat / Bawa pulang / Antar), meja, subtotal, PPN dan total (dengan jumlah per kolom), serta status. Gunakan filter tabel untuk mencari pada kolom mana pun. Pemegang izin REST.Orders.ViewAll mendapat sakelar Pesanan saya / Semua kasir; tampilan semua-kasir menambahkan kolom Kasir yang menunjukkan pembuat tiap tiket.

StatusArti
TerbukaTersimpan/terkirim tetapi belum dibayar (tiket ditahan, makan di tempat di meja, antar COD di jalan).
DibayarDiselesaikan dan dibukukan — ada jurnal dan stok resep sudah terpotong.
DibatalkanDibatalkan dengan alasan tercatat (dan penyetuju, bila diperlukan).
DirefundTiket yang sudah dibayar lalu direfund — jurnal dibalik, stok dikembalikan.

Aksi per baris (sesuai status)

IkonTersedia untukFungsinya
Panggil ulang di kasirSemua statusMembuka tiket pada dialog panggil ulang POS (aksi sesuai status).
BayarTerbukaMembuka POS dan langsung menyelesaikan tiket — struk kasir tampil/tercetak di sana.
Pecah bonTerbukaMemecah tiket menjadi bon terpisah per item — lihat di bawah.
BatalkanTerbukaPembatalan terkontrol: alasan wajib (preset: pesanan keliru, duplikat, pelanggan pergi, item habis, pesanan berubah). Jika Anda tidak memiliki wewenang void, kolom nama pengguna + kata sandi manajer muncul.
JurnalDibayarMenampilkan jurnal terposting dari penjualan tersebut.
RefundDibayar, dengan REST.Orders.RefundSetelah konfirmasi: membalik jurnal dan mengembalikan stok yang terpotong. Tidak dapat dibatalkan.

Pecah bon (bon terpisah per item)

  1. Ketuk ikon pecah bon pada pesanan Terbuka.
  2. Atur jumlah bon (2–6) dengan − / +.
  3. Setiap baris mulai pada bon 1 — ketuk nomor bon di samping tiap baris untuk menetapkannya. Total per bon tampil langsung di bagian bawah.
  4. Konfirmasi (aktif setelah minimal satu baris berada di bon selain 1). Bon 1 tetap pada pesanan asal; setiap bon lain menjadi pesanan terbuka baru, masing-masing dibayar terpisah.

Tanya jawab

PertanyaanJawaban
Mengapa saya tidak bisa melihat pesanan rekan saya?Cakupan bawaan adalah "Pesanan saya". Tampilan semua-kasir memerlukan izin REST.Orders.ViewAll.
Bisakah mengedit pesanan yang sudah dibayar?Tidak — pesanan yang dibayar sudah dibukukan. Refund pesanan itu (perlu izin) lalu buat ulang yang benar.
Bisakah bon yang dipecah digabung kembali?Bisa — setiap bon adalah pesanan terbuka biasa; gunakan Gabung/Pindah item pada denah lantai, atau bayar saja secara terpisah.

Denah lantai

Rute: Restoran › Denah Lantai/rest/floor

Denah lantai
Lantai makan dan meja

Fungsi: keadaan langsung ruang makan. Kepala layar menghitung meja Kosong dan Terisi (dengan tombol segarkan manual). Setiap ubin menampilkan nama meja dan jumlah kursi; ubin yang terisi menambahkan penghitung durasi okupansi, nomor pesanan terbuka dan total saat ini.

  • Ketuk meja kosong (hijau) → POS terbuka dengan tiket makan di tempat baru yang sudah terpasang pada meja itu.
  • Ketuk meja terisi (merah) → POS terbuka dengan pesanan meja itu dipanggil ulang (tambah item / bayar / batalkan).

Operasi meja (tombol pada ubin terisi)

TombolFungsinya
PindahMemindahkan pesanan terbuka ke meja kosong (tamu pindah tempat duduk). Pilih tujuan dari daftar.
GabungMenggabungkan pesanan meja ini ke dalam pesanan meja terisi lain: item berpindah ke tujuan dan pesanan ini ditutup. Satu tagihan gabungan.
Item (Pindah item)Centang baris tertentu dari pesanan ini dan pindahkan ke pesanan meja terisi lain — total kedua pesanan dihitung ulang.

Tanya jawab

PertanyaanJawaban
Pindah menampilkan "Tidak ada meja kosong".Pindah hanya menargetkan meja kosong. Kosongkan satu meja dulu, atau gunakan Gabung ke meja yang terisi.
Meja tetap merah setelah tamu pergi.Pesanannya masih Terbuka — panggil ulang lalu Bayar (atau Batalkan dengan alasan). Pembayaran mengembalikan meja menjadi hijau.
Di mana meja didefinisikan?Meja Makan/rest/tables: kode, nama dan jumlah kursi (1–40); nonaktifkan meja yang tidak lagi dipakai.

Persiapan operasional: pelayan, stasiun, printer

Stasiun POS
Stasiun POS
LayarKolom & fungsi
Pelayan /rest/waitersKode (otomatis) + nama + aktif. Pesanan makan di tempat dikaitkan ke pelayannya (tampil pada tiket dan struk) untuk pemantauan kinerja.
Stasiun POS /rest/pos-stationsKode + nama + kotak kas (akun kas tempat uang tunai terminal ini masuk) + printer struk + aktif. Kasir memilih stasiun sekali pada POS; pilihan diingat per browser, dan stasiun bawaan pada profil pengguna diutamakan.
Printer /rest/printersKode + nama + alamat IP + port (biasanya 9100). Satu catatan per printer jaringan ESC/POS fisik — dirujuk oleh stasiun (struk) dan kategori (tiket dapur).
ℹ️ Pengaturan Restoran (layar Pengaturan bersama → tab Restoran): baris kaki struk, printer dapur bawaan (cadangan bagi kategori tanpa printer), gudang dapur (sumber stok untuk resep), dan % biaya layanan otomatis untuk makan di tempat.

Tanya jawab

PertanyaanJawaban
Dua terminal kasir — bagaimana caranya?Buat dua stasiun, masing-masing dengan kotak kas dan printer struknya sendiri. Setiap terminal memilih stasiunnya sendiri; shift dan laporan Z per stasiun.
Apakah pelayan harus login?Tidak — pelayan hanyalah atribusi dropdown pada tiket makan di tempat, bukan login.
Port berapa yang dipakai printer termal?Hampir selalu 9100 (raw TCP). Beri setiap printer IP tetap di jaringan lokal.

Cara kerja pencetakan

Fungsi: memahami kertas mana keluar dari printer mana, dan mengapa — sebelum menyalahkan perangkat keras.

Dua peran printer

PeranDiatur di manaMencetak
Printer kasir (struk)Pada stasiun POS.Struk pelanggan (Faktur Pajak Sederhana) dan laporan Z shift.
Printer stasiun (dapur)Pada tiap kategori menu; printer dapur bawaan di pengaturan menjadi cadangan.Tiket dapur — baris pesanan dikelompokkan per printer (baris panggangan ke bagian panggang, minuman ke bar…), tiap tiket berkepala nomor pesanan, jenis, meja dan pelayan, dengan modifier di bawah tiap baris.

Apa yang tercetak dan kapan

PeristiwaKeluaran
Bayar (atau bayar terbagi)Struk otomatis tercetak ke printer stasiun (agen tersambung) + tiket dapur untuk baris-barisnya.
Kirim ke dapur / TahanHanya tiket dapur — tanpa struk (belum ada pembayaran).
Tambah item ke tiket terbukaTiket dapur untuk baris baru saja.
Panggil ulang pesanan dibayar → Cetak strukCetak ulang struk.
Tutup shiftLaporan Z otomatis tercetak (agen tersambung); tombol Cetak pada dialog mencetak ulang kapan saja.

Agen cetak lokal

  • Browser tidak dapat membuka koneksi TCP mentah, sehingga KEMTOVA ERP Print Agent yang kecil berjalan di PC kasir (alamat lokal 127.0.0.1:18731) dan meneruskan tugas cetak langsung ke printer jaringan (IP:port) — tanpa dialog cetak Windows.
  • POS memeriksa agen kira-kira setiap 20 detik — ikon printer di samping kotak pencarian berwarna hijau saat tersambung.
  • Agen mati atau printer tidak dikonfigurasi → struk beralih ke dialog cetak browser (tata letak 80 mm). Tiket dapur memerlukan agen — baris yang kategorinya tidak menemukan printer dilewati tanpa pemberitahuan.
  • Satu printer dapur yang gagal tidak pernah memblokir printer lain maupun penjualan.

Operasi yang dibatasi izin

Fungsi: tindakan POS yang sensitif dan siapa yang boleh melakukannya. Segala yang mengurangi uang (diskon, void, refund) dibatasi izin atau memerlukan persetujuan manajer di tempat.

OperasiPersyaratanCatatan
Buka shiftKasir mana punMasukkan modal awal.
Tutup shift (Z)REST.Shifts.CloseTanpanya, bilah shift menampilkan "Penutupan adalah tindakan supervisor".
Diskon / Comp 100%Wewenang diskon, jika tidak persetujuan manajerAlasan selalu wajib. Tanpa wewenang, dialog "Perlu persetujuan manajer" meminta nama pengguna + kata sandi manajer lalu mencoba ulang.
Void / batalkan pesanan terbukaWewenang void, jika tidak persetujuan manajerAlasan selalu wajib (preset tersedia); alasan dan penyetuju tersimpan pada pesanan.
Refund pesanan yang dibayarREST.Orders.RefundDialog konfirmasi; membalik jurnal dan mengembalikan stok.
Melihat pesanan semua kasirREST.Orders.ViewAllMengaktifkan sakelar "Semua kasir" + kolom Kasir pada layar Pesanan.
ℹ️ Alur persetujuan manajer: manajer tidak perlu mengeluarkan kasir dari sistem — ia mengetik nama pengguna dan kata sandinya sendiri di dialog persetujuan, tindakan dijalankan, dan identitasnya tercatat bersamanya.

Pemecahan masalah

GejalaKemungkinan penyebabSolusi
Pesanan tidak muncul di layar dapurKDS menyegarkan tiap 15 dtk — atau kartunya terlanjur ditekan Siap — atau pesanan dibuat saat offline dan masih di antrean.Tunggu satu siklus penyegaran; pastikan pesanan masih Terbuka di Pesanan; periksa lencana offline POS dan tekan Sinkronkan sekarang.
Tiket dapur tidak tercetakAgen offline (ikon abu-abu), atau kategori item tidak punya printer dapur dan bawaan belum diatur, atau IP printer salah. Kegagalan cetak dapur memang tanpa pemberitahuan.Jalankan agen (ikon menjadi hijau); atur printer dapur kategori atau bawaan di pengaturan; verifikasi IP:port (9100) dan bahwa printer ada di jaringan lokal.
Struk tidak keluar / "Printer jaringan gagal"Printer mati, IP tak terjangkau, atau agen berhenti.POS sudah beralih ke dialog browser sehingga pelanggan tetap mendapat struk. Lalu periksa daya/IP printer dan agen; cetak ulang lewat panggil ulang → Cetak struk.
Shift tidak bisa ditutupTidak memiliki REST.Shifts.Close.Minta supervisor — bilahnya sendiri menyebut "Penutupan adalah tindakan supervisor".
Setiap kali menekan Bayar dialog buka-shift munculStasiun terpilih tanpa shift terbuka — penjualan sengaja diblokir.Buka shift (modal awal boleh 0), atau kosongkan pilihan stasiun untuk menjual tanpa stasiun.
Item tidak bisa ditambahkan ("sedang tidak tersedia")Item sedang di-86.Daftar item menu → Tandai tersedia pada item tersebut.
Pesanan antar tidak bisa dibuatTelepon + nama pelanggan wajib untuk pesanan antar.Dialog pelanggan terbuka sendiri — isi telepon (≥ 5 digit) dan nama.
Diskon ditolak dengan "Perlu persetujuan manajer"Kasir tidak memiliki wewenang diskon.Manajer memasukkan kredensialnya di dialog — atau berikan wewenang lewat izin peran.
Lencana "Offline" merah pada keranjangServer tidak terjangkau; pesanan diantrekan secara lokal.Lanjutkan menjual. Saat lencana menguning, ketuk → Sinkronkan sekarang. Jangan pernah menghapus data situs browser selama pesanan masih di antrean.
Selisih laporan Z negatifKas terhitung < diharapkan (modal awal + penjualan tunai + kas masuk − kas keluar).Hitung ulang; pastikan setiap gerakan laci tercatat sebagai mutasi kas dengan alasannya.

Pertanyaan umum

Bagaimana menyiapkan menu?

Buat kategori dan item menu dengan harga; tambah grup modifier (mis. ukuran, ekstra) agar kasir bisa menyesuaikan pesanan di POS.

Bagaimana alur pesanan POS?

Buka pesanan (meja/bawa pulang/antar), tambah item dan modifier, kirim ke dapur, lalu selesaikan pembayaran.

Bisakah mengelola meja dan pelayan?

Ya. Meja, pelayan, dan pengantar adalah data master; pesanan terhubung ke meja/pelayan untuk melacak layanan.

Apakah modul restoran memengaruhi stok?

Item menu bisa didukung item stok sehingga menjual hidangan mengurangi bahannya, menjaga persediaan makanan akurat.