Point Of Sale
Point Of Sale (POS) adalah layar kerja utama kasir. Dari sini kasir mengelola seluruh siklus transaksi: memilih produk, mengelola meja, menerima pembayaran, mencetak struk dan order dapur, hingga menutup shift. POS juga menerima notifikasi order dari pengunjung secara real-time.
Kapan Dipakai
đĒOperasi Shift
- Kasir membuka shift baru dengan mengisi saldo awal per tipe pembayaran.
- Kasir melanjutkan shift yang sudah aktif (resume) tanpa membuka shift baru.
- Supervisor menutup shift, mencocokkan total fisik, dan mencetak laporan closing.
đTransaksi
- Scan barcode, cari produk, pilih dari grid atau kategori.
- Import dari Sales Order atau buka invoice sebelumnya.
- Ubah qty, harga, diskon, memo, customer, salesman.
- Proses berbagai tipe pembayaran termasuk online payment gateway.
đĒManajemen Meja
- Buka meja, isi nama tamu dan jumlah tamu.
- Pindah order ke meja lain.
- Cetak order ke dapur berdasarkan grup produk dan printer masing-masing.
- Terima dan proses order dari pengunjung via QR meja.
âReward & Poin
- Hitung reward product otomatis dari aturan customer.
- Gunakan saldo poin customer sebagai salah satu metode bayar.
- Aturan diskon invoice, diskon produk, dan pajak dihitung otomatis.
Alur Buka & Kelola Shift POS
Navigasi ke Penjualan & POS â Point of Sale â Point Of Sale. Daftar POS point ditampilkan lengkap dengan status aktif, tanggal buka, dan user pemegang shift.
Klik POS point yang akan dipakai. Jika belum ada shift aktif, form isi beginning balance per tipe pembayaran akan muncul. Isi saldo awal lalu klik Start.
Jika shift sudah aktif milik user yang sama, klik Resume untuk langsung masuk ke layar POS tanpa mengisi beginning balance ulang.
Sistem memuat konfigurasi POS point: customer default, daftar meja, printer, tipe payment, lebar kertas, kategori produk, barcode decoder, aturan reward, dan mode meja/rental.
Tambah produk, kelola meja, terima pembayaran, cetak struk atau order dapur.
Kembali ke layar PosStart, buka Close POS, isi jumlah fisik per tipe pembayaran, periksa selisih, lalu klik Close POS. Hanya user dengan role closepos yang bisa menutup shift.
Layar Kerja Utama POS
Layar POS dibagi dua area utama: area produk di kiri dan panel transaksi di kanan.
- Scan barcode â input barcode otomatis menambah produk ke cart. Mendukung beberapa format barcode decoder yang dapat dikonfigurasi per POS point.
- Pencarian produk â cari nama atau kode produk secara real-time. Daftar produk bisa berupa grid gambar atau daftar teks tergantung layout POS point.
- Kategori produk â filter produk berdasarkan product group yang diizinkan di POS point.
- Cache produk â jika diaktifkan di konfigurasi, daftar produk disimpan lokal agar navigasi lebih cepat.
- Produk khusus â produk dengan serial number, varian, multi-unit, atau departement akan membuka dialog tambahan sebelum masuk cart.
- Cart (daftar item) â setiap item menampilkan nama produk, qty, satuan, harga, diskon, dan subtotal. Klik item untuk memilihnya, lalu gunakan keypad atau dialog untuk mengubah nilai.
- Keypad â tombol angka untuk mengubah qty, harga, atau diskon item yang sedang dipilih. Tombol diskon bisa dikunci oleh role
locksalesdisc; tombol harga bisa dikunci oleh rolelocksalesprice. - Customer & Salesman â ubah customer dari customer default POS; ubah salesman; setiap perubahan ikut mempengaruhi aturan diskon dan poin.
- Import Sales Order â tarik item dari Sales Order yang sudah dikonfirmasi ke cart POS.
- Open Invoice â buka kembali transaksi yang sudah tersimpan berdasarkan nomor invoice untuk revisi atau pencetakan ulang.
- Print Bill â cetak bill sementara (belum final) untuk ditunjukkan ke customer.
- Point Balance â saldo poin customer saat ini.
- Poin Transaksi â poin yang akan didapat dari transaksi ini, dihitung dari aturan
salespointrewardrules. - Reward Product â produk gratis/bonus yang ikut ditambahkan ke transaksi berdasarkan aturan reward customer.
- Perhitungan reward dijalankan otomatis sebelum data transaksi disimpan.
Semua tipe pembayaran yang diaktifkan di konfigurasi POS point ditampilkan di sini.
| Tipe | Kind | Keterangan |
|---|---|---|
| Tunai | 0 |
Nominal dikurangi remain (kembalian) untuk menghitung total bayar. |
| Transfer / EDC | 1â5 |
Input nominal langsung; bisa dikombinasikan dengan tipe lain. |
| Poin Customer | 6 |
Memakai saldo poin. Nilai konversi poin ke rupiah dikonfigurasi di tipe pembayaran. |
| Online Payment Gateway | 7 |
Tombol Pay Now membuka proses gateway. Pembayaran harus dikonfirmasi (accepted) sebelum tombol Save aktif. |
- Credit Limit â ditampilkan di atas daftar tipe bayar; mempengaruhi aktifnya tombol Save.
- Quick Amount â tombol nominal cepat untuk mempersingkat input tunai.
- QR Code â beberapa tipe bayar menampilkan tombol QR untuk memunculkan kode bayar.
- Tombol Save â aktif ketika total pembayaran sudah memenuhi credit limit. Setelah Save berhasil, kasir bisa cetak struk, buka transaksi baru, atau kembali ke PosStart.
Manajemen Meja & Print Order Dapur
Fitur meja aktif bila POS point dikonfigurasi dengan usetable = 1. Setiap meja memiliki status tersendiri yang dikomunikasikan lewat tabel postable.
- Klik tombol Pilih Meja untuk membuka grid meja.
- Meja yang terisi ditampilkan berbeda dari meja kosong. Meja dengan order visitor baru yang belum diproses kasir ditampilkan dengan warna urgent (oranye/merah).
- Klik meja untuk membuka order-nya. Sistem memanggil API
openposdan memuat semua produk order yang ada. - Isi nama tamu dan jumlah tamu pada dialog properti meja.
- Gunakan Pindah Meja untuk memindahkan seluruh order ke meja lain.
- Klik tombol Print Order untuk mengirim item ke printer dapur.
- Sistem membandingkan snapshot order terakhir yang sudah dicetak dengan order terkini. Hanya item baru (selisih) yang dikirim ke dapur â item lama tidak dicetak ulang.
- Setiap printer dapur bisa dikonfigurasi untuk menerima item dari product group tertentu saja.
- Setelah cetak berhasil, snapshot diperbarui dan flag
isordervisitordireset ke 0.
postable)| Flag | Nilai | Artinya |
|---|---|---|
isordervisitor |
0 | Tidak ada order baru dari visitor yang belum diproses kasir. |
isordervisitor |
1 | Visitor baru mengirim order. Meja tampil urgent di POS. Kasir perlu membuka dan mencetak order ke dapur. |
firstorder |
1 | Order pertama dari visitor di meja ini. POS akan menghapus snapshot lama agar semua item dianggap baru saat Print Order. |
isvisitorpaid |
1 | Visitor sudah membayar lunas via payment gateway dari layar Order Meja. Kasir hanya perlu klik Tutup Meja. |
Alur Order dari Pengunjung (Visitor Order)
Fitur ini aktif bila POS point dikonfigurasi dengan orderfromvisitor = 1. POS melakukan polling ke server setiap 10 detik.
Dari Sisi Pengunjung
- Scan QR meja â halaman Order dari Meja terbuka.
- Pilih produk, susun pesanan.
- Jika POS mengaktifkan payment gateway: selesaikan pembayaran terlebih dahulu.
- Klik Kirim Pesanan â order tersimpan di server, flag meja diperbarui.
Dari Sisi Kasir
- POS mendeteksi
isordervisitor = 1via polling â notifikasi suara berbunyi. - Meja tampil dengan warna urgent di grid meja.
- Kasir klik meja â POS membuka order visitor.
- Kasir klik Print Order â item baru dicetak ke dapur.
- Jika visitor sudah bayar: lihat banner "Sudah Dibayar Pengunjung" di panel pembayaran.
- Kasir klik Tutup Meja â meja dikosongkan, transaksi selesai.
Skenario: Pengunjung Sudah Membayar dari Meja Fitur Baru
1. Pengunjung Bayar
Pengunjung klik tombol gateway di layar Order Meja â pembayaran dikonfirmasi â order dikirim otomatis dengan status isvisitorpaid = 1.
2. Kasir Print Dapur
Kasir mendapat notifikasi, buka meja, klik Print Order ke dapur seperti biasa. Kolom pembayaran sudah terisi otomatis dan ditandai "Sudah Dibayar Pengunjung".
3. Kasir Tutup Meja
Tombol Save berubah menjadi Tutup Meja (warna oranye). Klik untuk mengosongkan meja. Tidak ada proses pembayaran ulang.
- Banner â Sudah Dibayar Pengunjung muncul di atas daftar tipe pembayaran.
- Semua tipe pembayaran tampil dalam kondisi readonly â kasir tidak bisa mengubah nominal.
- Tombol Pay Now (online payment gateway) dinonaktifkan.
- Tombol Save berubah jadi Tutup Meja dengan ikon meeting_room dan warna oranye.
- Klik Tutup Meja hanya membersihkan status meja â tidak ada penulisan ulang ke data pembayaran.
Closing POS (Tutup Shift)
- Kembali ke layar PosStart dari tombol di POS atau menu.
- Klik tombol Close POS (hanya tampil bagi user dengan role
closepos). - Sistem menampilkan ringkasan transaksi: total per tipe pembayaran, jumlah transaksi, dan total penjualan bersih.
- Kasir/supervisor mengisi jumlah fisik per tipe pembayaran.
- Periksa selisih antara sistem dan fisik. Jika ada stok minus, halaman menampilkan daftar produk bermasalah dengan opsi export CSV.
- Klik Close POS untuk menyimpan closing. Laporan closing bisa dicetak setelah proses selesai.
Hal yang Perlu Diperhatikan
-
Jangan tinggalkan layar POS saat transaksi belum disimpan. Data sementara ada di local storage, tetapi penyimpanan resmi baru terjadi saat
saveposberhasil. - Perubahan konfigurasi POS point (customer default, printer, payment type, dll.) langsung berpengaruh ke perilaku kasir tanpa perlu restart.
- Tombol Save tidak aktif bila credit limit customer belum terpenuhi oleh total pembayaran.
-
Payment gateway (kind=7) memerlukan konfirmasi (
accepted = 1) sebelum transaksi bisa disimpan.
- Print Order menggunakan diff/snapshot â item yang sudah pernah dicetak tidak akan dicetak ulang meski muncul di cart.
- Closing membaca total dari semua transaksi shift. Stok minus terdeteksi saat closing dan perlu ditangani sebelum laporan bisa diterima.
- Printer bisa melalui APS (raw printer) atau browser preview. Bila koneksi APS gagal, cetakan masuk antrian pending print dan dikirim ulang saat koneksi pulih.
- Untuk meja dengan visitor payment, kasir tidak perlu input nominal bayar â cukup klik Tutup Meja.
Lokasi Menu
-
Penjualan & POS / Point of Sale / Point Of Sale
/posstartâ/pointofsale