Rasentra POS
Layar sentuh kasir retail dan resto: scan Pack ID, keranjang, promo, pembayaran, retur, shift dan closing. Menu supervisor untuk approval kepala outlet.
Rasentra · meatshop, grocery & restoran · Indoguna Group
Rasentra adalah platform Laravel 13 dan MySQL untuk Indoguna Group: CV Solo Kulina Utama (Meatshop & Grocery dan restoran R&B Solo) dan CV Lombok Kulina Utama (Meatshop dan restoran El Primo), masing-masing dengan SAP Business One sendiri. Rasentra Lokal, server di setiap outlet, melayani Rasentra POS di kasir, Rasentra Mobile Terminal di tablet pelayan, Rasentra Inventory di handheld untuk cek inventory, serta Rasentra Kitchen di layar dapur. Di kantor pusat, Rasentra Central menjadi pusat POS dengan tiga modul: Sinkronisasi menerima transaksi semua outlet, Posting SAP memposting ke SAP Business One tiap CV, dan Rasentra Core tempat admin mengatur master, harga, promo dan resep.
Keluarga produk
Setiap perangkat di outlet membuka aplikasi yang sesuai tugasnya. Semuanya terhubung ke Rasentra Lokal di outlet, dan Rasentra Lokal tersinkron ke Rasentra Central di kantor pusat.
Layar sentuh kasir retail dan resto: scan Pack ID, keranjang, promo, pembayaran, retur, shift dan closing. Menu supervisor untuk approval kepala outlet.
Buka meja, catat order dengan modifier dan course, kirim ke dapur, pantau status sajian, dan setujui pesanan dari QR meja.
Kitchen Display per station (grill, hot, cold, bar, pastry, packing) dengan timer berwarna, bump lewat sentuh atau scan barcode tiket, layar expeditor, layar antrean pickup, produksi batch, yield dan waste.
Server lokal di setiap outlet, pusat semua perangkat POS: menyimpan transaksi, Pack ID, stok dan antrean dapur, menjalankan promo, dan tetap bekerja penuh saat internet putus. Data dikirim ke Rasentra Central begitu koneksi kembali. Kepala outlet memantau antrean kirim, tutup hari, pairing dan backup dari konsol /lokal.
Modul pertama Rasentra Central, pusat POS di kantor pusat. Menerima transaksi dari semua outlet tanpa data ganda, menyebarkan versi harga, promo, resep dan master ke outlet, menyiapkan snapshot untuk outlet baru, serta memantau heartbeat, tutup hari dan rekonsiliasi harian sehingga tidak ada struk yang hilang.
Memposting penjualan, retur dan penyesuaian stok ke SAP Business One milik tiap CV (sap_solo, sap_lombok) lewat Service Layer, tanpa posting ganda. Dokumen yang perlu review, gagal atau parsial bisa diposting ulang, dan mapping item, gudang serta akun diatur per instance.
Admin kantor pusat: master perusahaan, outlet, produk dan pengguna, versi harga, Promotion Designer, resep dan cooking fee, laporan grup serta audit log. Halaman Status Central merangkum ketiga modul. Buka Rasentra Central
Menu untuk tamu lewat token meja atau kiosk, pada jaringan tamu terpisah. Pesanan masuk setelah disetujui pelayan.
Cek inventory dengan scanner barcode/QR: penerimaan barang, stok opname blind count, cek saldo per lokasi dan Pack ID. Bekerja lewat Wi-Fi outlet walau internet putus.
Fitur
Fitur dikelompokkan sesuai cara kerja outlet. Semua fungsi inti berjalan di Rasentra Lokal (server outlet); fungsi yang butuh pusat (voucher global, pembayaran daring, posting SAP) ditandai jelas statusnya.
Setiap kemasan ditimbang di gudang pusat dan diberi Pack ID unik dengan berat pecahan seperti 1,500 kg atau 1,750 kg.
Scan barcode SKU atau Pack ID, tahan dan lanjutkan transaksi, retur mengacu struk asal.
Denah meja, pindah dan gabung meja, modifier kematangan, saus, alergi, lalu routing otomatis ke station.
Tiket dari POS, Mobile Terminal, QR meja dan kiosk masuk ke station yang tepat secara otomatis. Dapur bekerja dari layar, bukan kertas.
Pelanggan memilih kemasan di etalase lalu minta dimasak. Harga daging dan jasa memasak tampil sebagai baris terpisah.
Resep per menu dengan yield, subresep dan modifier. Produksi batch saus, kaldu atau potongan steak dicatat dengan hasil aktual.
Diskon persen/nominal, harga khusus, beli X gratis Y, bundling, promo berat bertingkat, voucher dan membership.
Pindai QR lokasi, lalu produk atau Pack ID. Blind count menyembunyikan saldo sistem dari petugas hitung.
Saldo awal, cash in/out beralasan, hitungan aktual per metode bayar dan approval selisih.
Transaksi dikirim lewat antrean yang tahan putus koneksi, lalu diposting ke SAP milik CV pemilik outlet (sap_solo atau sap_lombok) sebagai A/R Invoice, Incoming Payment dan dokumen stok.
Harga Rp200.000/kg. Stok berkurang 3,250 kg dan kedua Pack ID berstatus terjual. Pembulatan berlaku pada rupiah, bukan pada berat.
Sebelum pajak dan service charge. Daging keluar dari stok sekali; resep jasa hanya memotong butter, bumbu dan saus.
Diagram alur kerja
Pilih alur yang ingin dipelajari. Setiap diagram disertai langkah penggunaan di aplikasi.
Retail / meatshop
flowchart TD
A([Buka shift: saldo awal laci]) --> B[Scan barcode SKU atau Pack ID]
B --> C{Jenis kode?}
C -- SKU biasa --> D[Tambah kuantitas]
C -- Pack ID --> E{Pack valid di outlet ini?}
E -- Tidak: outlet lain / hold / kedaluwarsa --> F[Blokir atau minta approval kepala outlet]
E -- Ya --> G[Kunci pack, ambil berat aktual dan harga aktif]
D --> H[Promo engine lokal menghitung diskon]
G --> H
H --> I{Pembayaran}
I -- Tunai --> J[Hitung kembalian]
I -- QRIS / EDC --> K{Status provider}
K -- Berhasil --> L
K -- Tidak pasti --> M[Cek status, jangan minta bayar ulang]
M --> K
J --> L[Finalisasi: stok keluar sekali, Pack ID terjual]
L --> N[Cetak struk, event masuk outbox]
N --> O([Tutup shift: hitung aktual per metode])
Dipakai kasir meatshop untuk barang satuan maupun daging timbang berlabel.
flowchart TD
A([Outlet ajukan permintaan SKU, jumlah, tanggal perlu]) --> B[Pusat setujui, alokasi stok atau buat PO di SAP]
B --> C[Gudang pusat timbang dan label Pack ID]
C --> D[Dokumen transfer dan daftar Pack ID dikirim]
D --> E[Status: dalam perjalanan, belum tersedia di outlet]
E --> F[Outlet pindai dokumen dan setiap Pack ID]
F --> G{Sesuai kiriman?}
G -- Ya --> H[Konfirmasi terima: stok outlet bertambah]
G -- Kurang / lebih / rusak --> I[Catat selisih, foto, karantina]
I --> J[Pusat menyelesaikan selisih]
H --> K[Integrasi posting transfer ke SAP]
J --> K
Dipakai kepala outlet atau petugas gudang outlet.
flowchart TD
A([Buat sesi: penuh, cycle count atau khusus]) --> B[Tentukan lokasi, petugas, cutoff, blind count]
B --> C[Bekukan pergerakan stok setelah tutup toko]
C --> D[Petugas pindai QR lokasi di handheld]
D --> E[Pindai SKU atau Pack ID, timbang barang curah]
E --> F{Selisih melewati ambang?}
F -- Ya --> G[Recount oleh petugas berbeda]
G --> F
F -- Tidak --> H[Review: transaksi belum sinkron diperhitungkan]
H --> I[Kepala outlet / Finance menyetujui]
I --> J([Posting Inventory Counting ke SAP])
Dipakai petugas opname; persetujuan oleh kepala outlet dan Finance.
flowchart TD
A([Pelanggan membawa struk]) --> B[Cari struk asal]
B --> C[Pilih baris dan kuantitas, maksimal sisa yang belum diretur]
C --> D[Hitung refund sesuai diskon teralokasi]
D --> E{Kondisi barang}
E -- Daging --> F[Karantina]
F --> G{Keputusan petugas}
G -- Layak --> H[Kembali ke stok]
G -- Tidak layak --> I[Waste]
E -- Barang lain layak --> H
D --> J[Refund ke metode bayar asal dengan approval]
Refund uang dan penerimaan kembali barang adalah dua langkah terpisah.
Restoran
flowchart TD
A([Buka meja: jumlah tamu, pelayan]) --> B[Catat order: menu, modifier, course, alergi]
B --> C{Asal order}
C -- Pelayan / tablet --> D[Konfirmasi order]
C -- QR meja / kiosk --> E[Pelayan menyetujui] --> D
D --> F[Reservasi bahan, tiket ke station KDS]
F --> G[Station ack: grill, hot, cold, bar, pastry]
G --> H[Mulai masak: konsumsi bahan sesuai resep]
H --> I[Siap: expeditor cek kelengkapan]
I --> J[Disajikan]
J --> K{Tagihan}
K -- Split / gabung --> L[Bagi per item atau kuantitas]
K -- Normal --> M[Bayar]
L --> M
M --> N([Tutup meja, token kunjungan berakhir])
Dipakai pelayan, kasir resto, chef dan expeditor.
flowchart TD
A([Pelanggan memilih kemasan di etalase]) --> B[Scan Pack ID]
B --> C{Sudah dibayar di kasir retail?}
C -- Belum --> D[Pilih layanan: masak di restoran]
D --> E[Pack direservasi untuk order ini]
C -- Sudah --> F[Scan struk retail: buat hak layanan]
E --> G[Isi instruksi: meja, porsi, metode, kematangan, saus]
F --> G
G --> H[Hitung: daging + cooking fee + tambahan]
H --> I[KDS menampilkan Pack ID, berat, porsi]
I --> J[Dapur konfirmasi terima kemasan]
J --> K[Masak: resep jasa memotong butter, bumbu, saus]
K --> L[Sajikan]
L --> M([Bayar: daging dan jasa terpisah di struk])
Layanan khas outlet yang punya meatshop dan restoran sekaligus.
flowchart TD A([Chef menyusun resep versi baru]) --> B[Isi porsi, satuan, yield, bahan, subresep] B --> C[Persetujuan dan tanggal efektif] C --> D[Distribusi ke outlet yang dituju] D --> E[Produksi batch: saus, kaldu, potong steak] E --> F[Timbang bahan keluar dan hasil aktual] F --> G[Hasil, trimming dan susut tercatat] G --> H[Penjualan menu memotong hasil prep, bukan bahan asal] H --> I([Laporan teoretis vs aktual dan waste])
Dipakai chef kepala dan petugas dapur.
Pusat dan SAP Business One
flowchart LR
subgraph RL["Rasentra Lokal (outlet)"]
T[Transaksi disimpan] --> O[(Outbox)]
AK[Tarik delta dan konfirmasi]
end
subgraph RC["Rasentra Central"]
subgraph SY["Modul Sinkronisasi"]
S[Sync API] --> IN[(Inbox unik)]
IN --> R[Rekonsiliasi harian]
PB[Publikasi berversi]
end
subgraph SP["Modul Posting SAP"]
V[Validasi dan mapping] -- mapping kosong --> X[Antrean pengecualian]
V --> P[A/R Invoice] --> Q[Incoming Payment]
end
subgraph CO["Modul Rasentra Core"]
PD[Harga, promo, resep disetujui]
end
end
O -- kirim ulang aman --> S
IN --> V
PD --> PB --> AK
Dipakai admin pusat, tim pemasaran dan Finance.
Panduan penggunaan
Setiap pengguna memakai akun sendiri dan hanya melihat outlet yang ditugaskan. Tindakan sensitif seperti void, refund dan override harga selalu meminta penyetuju yang berbeda.
Pembayaran QRIS berstatus "tidak pasti"? Tekan Cek Status dulu. Jangan meminta pelanggan membayar ulang.
Pindah atau gabung meja tercatat di riwayat; item tidak terduplikasi.
Pembatalan setelah dimasak harus diakui station dan tercatat sebagai waste.
Ajukan permintaan barang lewat menu Permintaan, bukan lewat chat.
Petugas hitung tidak bisa menyetujui koreksinya sendiri.
Perubahan pusat baru berlaku di outlet setelah outlet mengonfirmasi penerimaan versi.
Arsitektur
Rasentra Lokal (server outlet) dan Rasentra Central dengan modul Sinkronisasi, Posting SAP dan Rasentra Core (kantor pusat) menjalankan aplikasi yang sama dengan profil berbeda. SAP B1 tetap sumber resmi akuntansi, HPP dan nilai persediaan.
| Lapisan | Teknologi | Peran |
|---|---|---|
| Backend | Laravel 13 · PHP 8.3+ | API lokal, sync API, portal, SAP bridge |
| Database | MySQL 8.4 InnoDB | DECIMAL untuk uang dan berat, UUID transaksi, ledger append-only |
| Realtime LAN | Laravel Reverb | Order ke KDS, status meja dan pembayaran; polling cadangan |
| Antarmuka | Blade + JavaScript lokal | Rasentra POS, Mobile Terminal, Inventory, Kitchen, kiosk dan Core; tanpa CDN agar tetap jalan saat internet putus |
| Proses latar | Queue + Scheduler | Outbox, cetak, aktivasi promo, posting SAP, backup |
| Integrasi | SAP Service Layer · XML MSI/MSR | A/R Invoice, Incoming Payment, transfer, produksi, opname |
| Rasentra Lokal (server outlet) | 4 core · 16 GB · SSD 512 GB · UPS | Profil awal pilot, final mengikuti uji beban |