Skip to content

Kasir (POS)

Jual langsung di toko — buka atau gabung shift kasir, pilih produk, bayar, cetak struk. Order tercatat otomatis ke Daftar Order.

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


  • 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.

  1. Produk / Bahan aktif dengan harga di cabang
  2. Gudang dan cabang sudah dikonfigurasi
  3. Cabang harus dipilih — mode “Semua Cabang” tidak bisa dipakai di POS
  4. Akun login terhubung ke record staf aktif — wajib untuk buka/gabung shift
  5. Hak akses pos.view dan pos.shift.open

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
Screenshot diperlukan

Dialog Shift POS Diperlukan

Menu: Kasir → saat belum ada shift efektif

Simpan sebagai: /images/pos/pos-shift-gate.png

Yang di-capture: Dialog modal: daftar shift open dengan tombol Gabung shift [nama pemilik], footer tombol Buka shift sendiri.

Screenshot diperlukan

Dialog Buka Shift

Menu: Kasir → Buka Shift

Simpan sebagai: /images/pos/pos-shift-open.png

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.

Screenshot diperlukan

Banner Shift Aktif

Menu: Kasir → setelah shift efektif

Simpan sebagai: /images/pos/pos-shift-banner.png

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):

  1. Klik Tutup Shift di banner
  2. Review ringkasan: modal awal, penjualan tunai/non-tunai, jumlah order, expected kas
  3. Isi hitungan fisik di laci
  4. Jika ada selisih (fisik ≠ expected), catatan wajib
  5. Konfirmasi — participant otomatis keluar dari shift
Screenshot diperlukan

Dialog Tutup Shift

Menu: Kasir → Tutup Shift

Simpan sebagai: /images/pos/pos-shift-close.png

Yang di-capture: Dialog: ringkasan penjualan, field Hitungan fisik, preview selisih, catatan, tombol Tutup Shift.

KonsepKeterangan
Pemilik shiftKasir yang membuka shift — satu-satunya yang boleh tutup normal
ParticipantKasir yang bergabung — bisa checkout, tidak bisa tutup shift
Tanggal kerjaShift selalu untuk hari ini (timezone client) saat dibuka
Expected kasModal awal + penjualan tunai shift (transfer/kartu tidak masuk expected)
Auto-close 00:00Shift 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.


Buka Penjualan → Kasir (POS). Pastikan cabang sudah dipilih di header aplikasi.

Screenshot diperlukan

Layar Kasir (POS)

Menu: Penjualan → Kasir (/pos)

Simpan sebagai: /images/pos/pos-checkout.png

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:

ElemenKeterangan
Tab Favorit / Semua / KategoriFilter produk yang ditampilkan
PencarianCari nama atau kode produk
Grid produkKlik produk → pilih varian (jika ada) → masuk keranjang
PaginationNavigasi halaman katalog

Panel kanan — keranjang & pembayaran:

ElemenKeterangan
Daftar itemQty, harga, diskon per baris — bisa diubah
Asal konsumenLangsung di toko, Online, Marketplace, Referensi, Lainnya
PelangganAutocomplete nama (opsional); tombol Tambah pelanggan baru
Kupon / Poin / DiskonPromo dan tebus poin jika tersedia
Pencatatan pembayaranBelum bayar (piutang), DP, Sebagian, atau Penuh
Jumlah & metode bayarTunai, Transfer, Kartu, QRIS + detail rekening/kartu
CheckoutProses transaksi dan buat order

LangkahAksi
1Pastikan shift efektif aktif (banner terlihat di atas)
2Pilih produk dari katalog → atur qty di keranjang
3Isi asal konsumen & pelanggan (opsional)
4Terapkan kupon/diskon/poin jika ada
5Atur pencatatan pembayaran & jumlah bayar
6Klik Checkout
7Dialog sukses muncul — preview struk & opsi cetak
Screenshot diperlukan

Dialog Sukses Checkout

Menu: Kasir → setelah Checkout

Simpan sebagai: /images/pos/pos-checkout-success.png

Yang di-capture: Dialog konfirmasi berhasil: kode order, ringkasan total, preview struk 58mm, tombol Cetak 58mm dan Tutup.


Setelah checkout, klik Cetak 58mm untuk mencetak struk thermal.

Screenshot diperlukan

Struk Thermal 58mm

Menu: Kasir → Cetak 58mm

Simpan sebagai: /images/pos/pos-receipt-58mm.png

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.


Klik Tambah di field pelanggan untuk membuka form singkat tanpa meninggalkan kasir.

Screenshot diperlukan

Form Tambah Pelanggan (POS)

Menu: Kasir → Tambah pelanggan

Simpan sebagai: /images/pos/pos-tambah-pelanggan.png

Yang di-capture: Dialog/side panel: Nama (wajib), Telepon, Email, Alamat, Bank, No. rekening, Nama di rekening. Tombol Simpan & Batal.


StatusKeterangan
Belum ada pembayaran (piutang)Order tercatat, tagihan penuh belum dibayar
DPUang muka — sisa tagihan bisa dilunasi nanti
Pembayaran sebagianSudah ada setoran, masih ada sisa
Pembayaran penuhLunas saat checkout

Pembayaran lanjutan (cicilan/pelunasan) bisa dicatat dari Daftar Order atau dilihat di Pembayaran.


AspekKasir (POS)Order via Daftar Order
Pembuatan orderLangsung saat checkout di kasirOrder dibuat dari POS — list hanya untuk pantau & kelola
KonteksRetail / walk-in, cepatBisa B2B, produksi, tracking status panjang
ProduksiBatas produksi bisa diatur (tanggal due)Status produksi & workflow terlihat di detail order
StrukThermal 58mm langsungBukti bayar dari menu Pembayaran

  • 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.