title: “Kasir (Cashier)” description: “Antarmuka kasir utama untuk memproses transaksi penjualan dengan product grid, cart, pembayaran multi-metode, dan receipt printing.”
Kasir (Cashier)

Layout Kasir
Akses Halaman
Komponen Utama
1. Product Grid
Area utama untuk memilih produk yang akan dijual:
Layout Product Grid per Device:
2. Shopping Cart
Panel di sebelah kanan yang menampilkan item yang dipilih:
Fitur Cart:
- Real-time Total — total otomatis update setiap kali ada perubahan
- Hold & Recall — tahan transaksi untuk diproses nanti
- Customer Link — link transaksi ke customer untuk membership points
- Notes — tambahkan catatan per item atau per transaksi
3. Tombol BAYAR
Tombol utama di bagian bawah cart untuk memulai proses checkout:Modal Pembayaran
Setelah klik tombol BAYAR, modal pembayaran muncul dengan komponen:Payment Methods
Sales Channel
Pilih channel penjualan yang aktif:Customer Selection
Quick Cash Buttons
Tombol cepat untuk nominal uang tunai yang umum:Split Payment
Aktifkan toggle split payment untuk kombinasi metode pembayaran:Change Calculation
Kalkulasi kembalian otomatis untuk pembayaran cash:Transaction Features
Hold Transaction
Tahan transaksi yang sedang diproses untuk diselesaikan nanti:Void Transaction
Batalkan transaksi yang sudah diproses:Refund
Proses refund untuk transaksi yang sudah selesai:Receipt Printing
Template Receipt:
- Logo perusahaan
- Nama & alamat toko
- Tanggal & waktu | No | Item | Qty | Harga | Subtotal | |----|------|-----|-------|----------| | | | | | | | | | | Total | Rp XXX | | | | | Metode | Cash/QRIS | | | | | Kembalian | Rp XX | | | Terima kasih | | | |
Keyboard Shortcuts
Offline Mode
Tips
- Selalu cek outlet yang dipilih sebelum memproses transaksi — stok dan harga bisa berbeda antar outlet
- Masukkan nomor member sebelum bayar supaya poin dan diskon otomatis diterapkan
- Gunakan shortcut keyboard (
F1search,F3bayar) untuk mempercepat transaksi saat antrian panjang - Manfaatkan hold transaction jika customer belum siap bayar — kamu bisa lanjutkan transaksi lain dulu
- Cek koneksi printer di awal shift untuk menghindari masalah cetak receipt
- Lakukan close shift di akhir shift untuk rekonsiliasi uang kas dengan sistem
Diagram Relasi Entitas
Berikut adalah diagram relasi entitas (ERD) yang menggambarkan seluruh entitas terkait modul Kasir (POS) beserta hubungan dan field-field kuncinya.Tabel Schema Entitas
CompanyPOSTransaction
Entitas utama untuk menyimpan seluruh transaksi POS kasir. Mendukung split payment, multi-channel, dan integrasi membership.CompanyPOSProduct
Entitas produk yang dijual melalui kasir POS. Mendukung variant, bundle, channel pricing, dan data kualitas (HACCP).CompanyPOSInventory
Log pergerakan stok produk. Setiap transaksi kasir otomatis mencatat entriout pada entitas ini.
CompanyPOSCategory
Kategori produk dalam lingkup perusahaan untuk mengelompokkan produk di product grid kasir.CompanyPOSSettings
Pengaturan global POS per perusahaan, termasuk konfigurasi receipt.
Sub-field
receipt_settings:
CompanyReceiptSettings
Pengaturan tampilan struk pembelian yang lebih detail, terpisah dari CompanyPOSSettings.POSMember
Data member/customer yang terdaftar dalam program loyalty POS.CustomerMembership
Definisi tier/level membership loyalty per perusahaan. Menentukan syarat, benefit, dan skema loyalty.Discount
Konfigurasi diskon yang dapat diterapkan pada transaksi kasir.Voucher
Kode voucher yang dapat digunakan customer untuk mendapatkan potongan harga.PrinterSettings
Konfigurasi printer thermal Bluetooth yang digunakan kasir untuk mencetak receipt.PaymentGatewaySettings
Konfigurasi payment gateway (Tripay) untuk pembayaran non-tunai.GLJournalEntry
Entitas jurnal akuntansi yang di-generate otomatis dari transaksi kasir untuk pencatatan double-entry bookkeeping.State Machine — Siklus Hidup Transaksi Kasir
Berikut diagram state yang menggambarkan siklus hidup transaksi dari pembuatan hingga penyelesaian, termasuk flow void dan refund. Deskripsi transisi utama:Sequence Diagrams
1. Flow Checkout Kasir (Scan → Bayar → Receipt)
2. Flow Void / Retur Transaksi
3. Flow Offline Mode Sync
Tabel Referensi Enum
payment_method (CompanyPOSTransaction)
payment_status (CompanyPOSTransaction)
order_status (CompanyPOSTransaction)
status (CompanyPOSTransaction)
source / sales_channel (CompanyPOSTransaction)
inventory_type (CompanyPOSInventory)
membership_tier (POSMember)
scheme_type (CustomerMembership)
reward_type (CustomerMembership)
discount_type (Discount)
applies_to (Discount)
product_type (CompanyPOSProduct)
packaging_type (CompanyPOSProduct)
storage_condition (CompanyPOSProduct)
receipt_width / paper_width (CompanyPOSSettings, PrinterSettings)
font_size (CompanyPOSSettings, PrinterSettings)
encoding (PrinterSettings)
gl_reference_type (GLJournalEntry)
gl_status (GLJournalEntry)
expense_category (Expense)
expense_status (Expense)
user_role (User)
admin_type (User)
admin_tier (User)
gateway_mode (PaymentGatewaySettings)
Tabel RBAC — Matriks Permission Kasir
Berikut matriks hak akses untuk operasi kasir berdasarkan peran dalam sistem.
Catatan RBAC:
- Owner memiliki akses penuh ke seluruh fitur kasir dan konfigurasi sistem
- Admin memiliki akses yang hampir setara Owner, kecuali beberapa pengaturan sensitif tertentu
- Kasir (user) hanya bisa melakukan operasi transaksi dasar — tidak bisa void, refund, atau mengubah konfigurasi
- Viewer hanya bisa melihat product grid dan laporan, tidak bisa melakukan transaksi
- Void transaksi dibatasi maksimum 24 jam setelah transaksi dan wajib menyertakan alasan
- Verifikasi pembayaran non-tunai (manual_transfer) memerlukan role Admin atau Owner
- Pada offline mode, semua role yang diizinkan transaksi bisa membuat dan menyimpan transaksi lokal, namun sinkronisasi memerlukan koneksi aktif
