Kasir (POS)
Jual langsung di toko — buka atau gabung shift kasir, pilih produk, bayar, cetak struk. Order tercatat otomatis ke Daftar Order.
Kasir (POS)
Section titled “Kasir (POS)”Menu Kasir (POS) (/pos) adalah antarmuka kasir untuk penjualan langsung di toko. Berbeda dengan order penjualan B2B yang dipantau di Daftar Order, di sini kasir memilih produk, mengatur qty, menerima pembayaran, dan mencetak struk dalam satu layar.
Hak akses: pos.view · shift: pos.shift.open, pos.shift.close · laporan shift: pos.shift.view · tambah pelanggan: master.customer.manage
Fungsi menu
Section titled “Fungsi menu”- Shift kasir — buka shift (modal awal), gabung shift kasir lain, atau tutup shift (pemilik).
- Menjual produk per cabang dengan harga dan stok cabang tersebut.
- Menerima pembayaran tunai, transfer, kartu, atau QRIS.
- Mencatat DP, cicilan, atau piutang (belum bayar penuh).
- Mencetak struk thermal 58mm beserta QR kode order.
- Menambah pelanggan baru tanpa keluar dari layar kasir.
Prasyarat
Section titled “Prasyarat”- Produk / Bahan aktif dengan harga di cabang
- Gudang dan cabang sudah dikonfigurasi
- Cabang harus dipilih — mode “Semua Cabang” tidak bisa dipakai di POS
- Akun login terhubung ke record staf aktif — wajib untuk buka/gabung shift
- Hak akses
pos.viewdanpos.shift.open
1. Shift kasir (wajib)
Section titled “1. Shift kasir (wajib)”Sebelum transaksi, kasir wajib punya shift efektif: shift milik sendiri yang masih terbuka, atau shift yang di-gabung dari kasir lain di cabang yang sama. Tanpa shift, checkout dinonaktifkan.
Saat membuka menu Kasir, sistem memuat shift saat ini. Jika belum ada:
- Ada shift open di cabang → dialog Shift POS diperlukan: pilih Gabung shift (satu laci, tanpa modal kedua) atau Buka shift sendiri
- Tidak ada shift open → dialog Buka Shift wajib: isi modal awal kas (boleh 0) + catatan opsional
Dialog Shift POS Diperlukan
Yang di-capture: Dialog modal: daftar shift open dengan tombol Gabung shift [nama pemilik], footer tombol Buka shift sendiri.
Dialog Buka Shift
Yang di-capture: Dialog: field Modal awal kas (Rp) wajib, Catatan opsional, tombol Buka Shift.
Setelah shift aktif, banner di atas layar kasir menampilkan kode shift, tanggal kerja, peran (Pemilik / Gabung), nama pemilik, modal awal, dan jam buka.
Banner Shift Aktif
Yang di-capture: Banner horizontal di atas katalog: Shift SH-..., tanggal, Pemilik/Gabung, nama pemilik, modal, jam buka; tombol Tutup Shift (hanya pemilik).
Tutup shift (pemilik saja):
- Klik Tutup Shift di banner
- Review ringkasan: modal awal, penjualan tunai/non-tunai, jumlah order, expected kas
- Isi hitungan fisik di laci
- Jika ada selisih (fisik ≠ expected), catatan wajib
- Konfirmasi — participant otomatis keluar dari shift
Dialog Tutup Shift
Yang di-capture: Dialog: ringkasan penjualan, field Hitungan fisik, preview selisih, catatan, tombol Tutup Shift.
| Konsep | Keterangan |
|---|---|
| Pemilik shift | Kasir yang membuka shift — satu-satunya yang boleh tutup normal |
| Participant | Kasir yang bergabung — bisa checkout, tidak bisa tutup shift |
| Tanggal kerja | Shift selalu untuk hari ini (timezone client) saat dibuka |
| Expected kas | Modal awal + penjualan tunai shift (transfer/kartu tidak masuk expected) |
| Auto-close 00:00 | Shift kemarin yang lupa tutup ditutup sistem tengah malam — lihat Laporan Shift |
User tanpa staf: buka/gabung shift ditolak. Hubungkan akun ke record staf di Data Staf terlebih dahulu.
2. Layar kasir
Section titled “2. Layar kasir”Buka Penjualan → Kasir (POS). Pastikan cabang sudah dipilih di header aplikasi.
Layar Kasir (POS)
Yang di-capture: Layar penuh: panel kiri katalog produk (tab Favorit/Semua/kategori, search, grid produk), panel kanan keranjang dengan item, subtotal, dan form pembayaran. Cabang terpilih terlihat di header.
Panel kiri — katalog produk:
| Elemen | Keterangan |
|---|---|
| Tab Favorit / Semua / Kategori | Filter produk yang ditampilkan |
| Pencarian | Cari nama atau kode produk |
| Grid produk | Klik produk → pilih varian (jika ada) → masuk keranjang |
| Pagination | Navigasi halaman katalog |
Panel kanan — keranjang & pembayaran:
| Elemen | Keterangan |
|---|---|
| Daftar item | Qty, harga, diskon per baris — bisa diubah |
| Asal konsumen | Langsung di toko, Online, Marketplace, Referensi, Lainnya |
| Pelanggan | Autocomplete nama (opsional); tombol Tambah pelanggan baru |
| Kupon / Poin / Diskon | Promo dan tebus poin jika tersedia |
| Pencatatan pembayaran | Belum bayar (piutang), DP, Sebagian, atau Penuh |
| Jumlah & metode bayar | Tunai, Transfer, Kartu, QRIS + detail rekening/kartu |
| Checkout | Proses transaksi dan buat order |
3. Alur checkout
Section titled “3. Alur checkout”| Langkah | Aksi |
|---|---|
| 1 | Pastikan shift efektif aktif (banner terlihat di atas) |
| 2 | Pilih produk dari katalog → atur qty di keranjang |
| 3 | Isi asal konsumen & pelanggan (opsional) |
| 4 | Terapkan kupon/diskon/poin jika ada |
| 5 | Atur pencatatan pembayaran & jumlah bayar |
| 6 | Klik Checkout |
| 7 | Dialog sukses muncul — preview struk & opsi cetak |
Dialog Sukses Checkout
Yang di-capture: Dialog konfirmasi berhasil: kode order, ringkasan total, preview struk 58mm, tombol Cetak 58mm dan Tutup.
4. Struk 58mm
Section titled “4. Struk 58mm”Setelah checkout, klik Cetak 58mm untuk mencetak struk thermal.
Struk Thermal 58mm
Yang di-capture: Preview/cetak struk: nama cabang, kode order, tanggal, daftar item (qty × harga), subtotal, diskon, DPP, PPN, TOTAL, pelanggan, kasir, metode bayar, kembalian/sisa tagihan, QR kode order, footer Maparel.
Struk berisi: cabang · kode order · tanggal/waktu · item (qty, harga satuan, subtotal) · subtotal · diskon · DPP/PPN · total · pelanggan · kasir · metode bayar · kembalian/sisa · catatan · QR kode.
5. Tambah pelanggan dari POS
Section titled “5. Tambah pelanggan dari POS”Klik Tambah di field pelanggan untuk membuka form singkat tanpa meninggalkan kasir.
Form Tambah Pelanggan (POS)
Yang di-capture: Dialog/side panel: Nama (wajib), Telepon, Email, Alamat, Bank, No. rekening, Nama di rekening. Tombol Simpan & Batal.
6. Pencatatan pembayaran
Section titled “6. Pencatatan pembayaran”| Status | Keterangan |
|---|---|
| Belum ada pembayaran (piutang) | Order tercatat, tagihan penuh belum dibayar |
| DP | Uang muka — sisa tagihan bisa dilunasi nanti |
| Pembayaran sebagian | Sudah ada setoran, masih ada sisa |
| Pembayaran penuh | Lunas saat checkout |
Pembayaran lanjutan (cicilan/pelunasan) bisa dicatat dari Daftar Order atau dilihat di Pembayaran.
Perbedaan POS vs Order B2B
Section titled “Perbedaan POS vs Order B2B”| Aspek | Kasir (POS) | Order via Daftar Order |
|---|---|---|
| Pembuatan order | Langsung saat checkout di kasir | Order dibuat dari POS — list hanya untuk pantau & kelola |
| Konteks | Retail / walk-in, cepat | Bisa B2B, produksi, tracking status panjang |
| Produksi | Batas produksi bisa diatur (tanggal due) | Status produksi & workflow terlihat di detail order |
| Struk | Thermal 58mm langsung | Bukti bayar dari menu Pembayaran |
Integrasi modul lain
Section titled “Integrasi modul lain”- Shift & absensi: buka/gabung shift mencatat clock-in; tutup shift mencatat clock-out pemilik — lihat Absensi dan Laporan Shift.
- Stok: qty produk dicek saat tambah ke keranjang (
pos_available_quantity). - Produksi: produk butuh produksi masuk antrean layout saat order diproses.
- Piutang: pembayaran tidak penuh → sisa tagihan tercatat, bisa dilunasi lewat Daftar Order.
- VOID: order yang salah bisa di-VOID dari Daftar Order (hak
order.void).
Peringatan: POS membutuhkan cabang aktif dan shift efektif. Logout idle (sesi habis) tidak menutup shift — tutup manual atau tunggu auto-close tengah malam.
Lanjutkan: Laporan Shift POS → untuk audit harian, atau Daftar Order → untuk pantau order baru.