RADHCLOUD
ProdukDemoCara membeliKontak
MasukLihat produk
RADHCLOUDSource code premium untuk aplikasi bisnis, lengkap dengan lisensi komersial dan demo langsung.InstagramTikTokFacebookXYouTube
TokoSemua produkWeb AppDemoCara membeli
AkunMasukUnduhanPesanan
BantuanKontaksupport@radhcloud.com+62 878-1737-9229
LegalKebijakan privasiSyarat & ketentuan
© 2026 RADHCLOUD · JakartaPembayaran diproses oleh Pantopay
Beranda/Produk/Web App/Cafe POS
1 / 30
Web App

Cafe POS

Smart Restaurant & Cafe POS with Recipe BOM Stock Management

35 terjual614 dilihatv1.5.0
Harga lisensiRp 250.000
Coba demo ↗
  • Source code lengkap
  • Lisensi komersial dengan kode unik
  • Update seumur hidup
  • Unduhan langsung setelah pembayaran
Laravel 13PHP 8.3+MySQLInertia JSVue JS
Bisa di-install di
  • VPSBisaNginx/Apache + PHP-FPM 8.3+ dan MySQL. Panduan instalasi di README.
  • DockerBisaDockerfile + docker-compose.prod.yml (app, nginx, MySQL 8.4, Redis)
  • Localhost (XAMPP / Laragon)BisaPHP 8.3+ dan Node.js 20.19+, jalankan php artisan serve dan npm run dev. Laragon disarankan.
  • Shared hosting / cPanelDengan catatanButuh PHP 8.3+, akses Terminal/SSH, dan document root ke public/. Aset di-build di lokal.
  • Railway / RenderDengan catatanLewat Dockerfile; butuh MySQL dan volume untuk storage/. Belum diuji resmi.
  • VercelTidak bisaButuh server PHP + MySQL yang berjalan terus.
  • NetlifyTidak bisaHanya untuk situs statis.

Kebutuhan: PHP 8.3+ (bcmath, gd, mbstring, pdo_mysql, zip) · MySQL 8 / MariaDB 10.6 · Composer 2 · Node.js 20.19+ · RAM 1 GB

Tentang produk

CafePOS adalah platform manajemen restoran, cafe, cloud kitchen, dan food court modern yang dirancang untuk mengotomasi seluruh rantai operasional F&B—mulai dari pesanan kasir, monitor dapur (KDS), meja pelanggan, program loyalitas membership, hingga kontrol stok bahan baku otomatis berbasis resep (Bill of Materials - BOM).

Aplikasi ini dibangun menggunakan arsitektur modern berbasis Laravel 13, Inertia.js, dan Vue 3 (TypeScript). Desain antarmukanya premium bergaya dashboard minimalis profesional dengan dukungan Dark Mode penuh dan skema warna aksen Cokelat Kopi (Coffee Theme).


✨ High Value & Keunggulan Sistem

CafePOS dirancang untuk mengendalikan biaya makanan (food cost) dan merapikan operasional harian cafe secara terintegrasi:

  1. Auto-Deduction Stok Bahan Baku (BOM)
    Setiap menu minuman atau makanan yang terjual (misal: Cafe Latte) otomatis memotong stok bahan baku penyusunnya secara real-time berdasarkan resep (misal: Espresso 18 gr dan Susu 200 ml). Anda terhindar dari kebocoran stok bahan mentah.
  2. Kitchen Display System (KDS) Terintegrasi
    Pesanan dari kasir langsung meluncur ke layar monitor dapur secara real-time. Staff dapur dapat mengelola antrean pesanan berdasarkan status (Pending, Cooking, Ready, Served) dengan tampilan bersih yang mendukung mode gelap penuh dan layar penuh (fullscreen).
  3. Pemberian Peran Terisolasi & Auto-Redirect
    Mengamankan titik operasional dengan Role-Based Access Control (RBAC). Saat login:
    • Kasir otomatis dialirkan ke halaman POS Cashier Terminal.
    • Kitchen Staff otomatis dialirkan ke monitor Kitchen Display System (KDS).
    • Owner/Manager dialirkan ke panel dashboard utama untuk memantau omset gabungan.
  4. Manajemen Reservasi & Meja Interaktif
    Visualisasikan status meja fisik di cafe Anda (Available, Occupied, Reserved). Lengkap dengan modul reservasi jadwal kunjungan pelanggan untuk mengamankan kapasitas meja pada jam sibuk.
  5. Promo Engine & Loyalty Point CRM
    Dorong penjualan dengan opsi promo fleksibel (Diskon Persentase, Potongan Nominal, dan BOGO). Member berhak mendapatkan akumulasi poin loyalitas yang dapat ditukarkan langsung sebagai pengurang tagihan saat checkout.
  6. Split Bill Dinamis
    Mempermudah penagihan meja grup. Pelanggan dalam satu meja dapat membayar pesanan mereka masing-masing (pisah tagihan) dengan kalkulasi subtotal dan pajak yang terhitung otomatis per bagian.

🚀 Fitur Utama & Modul

1. POS Terminal & Penjualan

  • 3 Jenis Transaksi: Mendukung pesanan Dine In (dengan pilihan meja), Take Away (antrean otomatis), dan Delivery.
  • Hold & Resume: Simpan keranjang belanja sementara saat pelanggan masih memilih menu tambahan.
  • Split Bill: Pisah pembayaran per item belanja secara fleksibel.
  • Cetak Tiket Termal: Cetak langsung struk kasir (Thermal Receipt) maupun tiket pesanan untuk dapur.

2. Dapur & Antrean

  • Kitchen Display System (KDS): Tampilan antrean pesanan per nota (Order View) maupun ringkasan item yang harus dimasak (Item View).
  • Monitor Riwayat Selesai: Tab history untuk meninjau kembali pesanan yang telah disajikan (served).

3. Resep & Inventori

  • Bahan Baku (Ingredients): Pencatatan bahan mentah lengkap dengan satuan ukur dasar (gr, ml, pcs, kg, dll).
  • Resep BOM (Bill of Materials): Pemetaan takaran bahan baku per porsi menu produk.
  • Stock Opname: Audit stok berkala untuk mendeteksi selisih stok sistem dengan fisik beserta laporan satuannya.
  • Waste Management: Pencatatan bahan baku yang rusak, basi, atau terbuang untuk analisis pemborosan (waste cost).

4. Multi-Outlet, Voucher & Pengaturan

  • Multi-Branch Control: Pengelolaan stok produk dan transaksi yang terisolasi per outlet cabang fisik.
  • Voucher & Promo Engine: Pengelolaan voucher diskon kustom (dengan konfigurasi masa berlaku expires_at, kuota klaim usage_limit, minimal belanja, dll) serta promo otomatis.
  • Settings System: Ubah nama aplikasi, logo, favicon, tarif pajak restoran (PB1), dan biaya layanan (service charge) dari satu halaman kontrol.

5. Panduan Pengoperasian Sistem (User Guides)

  • Modul Panduan Interaktif: Halaman khusus panduan cara penggunaan sistem untuk setiap fitur (POS Terminal, KDS Dapur, Bahan Baku/BOM, Manajemen Outlet, Voucher Engine) dengan UI interaktif, sidebar navigasi, dan bahasa Indonesia yang mudah dipahami.
  • Format Markdown & HTML: Panduan diformat rapi dengan standard HTML rendering (v-html) untuk kemudahan navigasi bagi staff kasir maupun admin.

📊 Alur Kerja Sistem (Workflow)

1. Alur Transaksi Kasir POS (BOM Stock Deduction)

2. Alur Pengelolaan Dapur (KDS Flow)


🗄️ Struktur Database & Relasi (ERD)

Rincian Tabel Database Utama:

  1. users: Akun kasir, waiter, kitchen staff, manager, dan owner.
  2. outlets: Daftar cabang cafe fisik (Kemang, Senopati, dll).
  3. tables: Daftar meja makan fisik di masing-masing outlet.
  4. ingredients: Stok bahan mentah (susu, biji kopi, gula pasir, dll).
  5. products: Menu makanan/minuman yang dijual ke pelanggan.
  6. recipes: Jembatan resep (BOM) yang menentukan jumlah bahan baku per produk.
  7. transactions: Nota transaksi penjualan kasir (dine in/take away/delivery).
  8. transaction_items: Rincian item menu yang dibeli di setiap transaksi.
  9. wastes: Log pencatatan bahan baku yang terbuang/rusak.
  10. opnames: Dokumen opname berkala audit stok bahan baku fisik.
  11. settings: Pengaturan global (site name, logo, favicon, tax, service percentage).
  12. licenses: Penyimpan kunci verifikasi lisensi lokal terenkripsi.

📂 Struktur Folder Utama Proyek

cafepos/
├── app/                         # 🧠 LOGIKA BACKEND UTAMA (PHP)
│   ├── Http/
│   │   ├── Controllers/         # Controller logika data & render Inertia
│   │   │   ├── PosController.php      # POS Checkout & Auto-Deduction BOM
│   │   │   ├── KdsController.php      # Monitor KDS dapur & update status
│   │   │   ├── IngredientController.php  # Inventory & resep produk
│   │   │   └── ...
│   │   └── Middleware/          # Filter Keamanan (CheckLicense, DemoModeMiddleware)
│   ├── Models/                  # Model Eloquent Database (Relationship)
│   │   ├── License.php
│   │   ├── Product.php
│   │   ├── Recipe.php
│   │   ├── Ingredient.php
│   │   └── ...
├── database/                    # 🗄️ SKEMA & SEEDER
│   ├── migrations/              # Berkas migrasi pembuatan tabel database
│   └── seeders/                 # Seeder master & dummy data pengujian lengkap
├── resources/                   # 🎨 FRONTEND VUE 3 & TYPESCRIPT
│   ├── css/                     # CSS & custom styling
│   └── js/                      # Kode Vue 3
│       ├── Components/          # Komponen UI (DemoModeBanner, Modal, dll)
│       ├── Layouts/             # Layout Dashboard (AdminLayout)
│       └── Pages/               # Halaman UI (POS, Kds, Products, Tables, Opnames)

💻 Panduan Instalasi Lokal di Windows (Non-Docker)

Tahap 1: Prasyarat Software

  • Pasang Laragon atau XAMPP dengan PHP minimal versi 8.2.
  • Pasang Node.js (Rekomendasi versi LTS 20).
  • Pasang Composer & Git for Windows.

Tahap 2: Langkah Instalasi

  1. Clone / Download Source Code:

    git clone <repository-url> cafepos
    cd cafepos
    
  2. Salin Konfigurasi Environment:

    cp .env.example .env
    
  3. Setup Database di File .env:
    Buat database MySQL baru bernama cafepos, lalu sesuaikan parameter koneksi di file .env:

    DB_C
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=cafepos
    DB_USERNAME=root
    DB_PASSWORD=password_mysql_anda
    
  4. Instal Dependensi & Generate Key:

    composer install
    npm install
    php artisan key:generate
    
  5. Migrasi Tabel & Seeder:
    CafePOS menyediakan pemisah seeder yang jelas untuk kebutuhan rilis produksi (bersih tanpa data dummy) maupun demo (lengkap dengan data penjualan). Jalankan perintah berikut:

    A. Untuk Lingkungan Demo / Development (Dengan Data Simulasi Lengkap):

    # Migrasi database dan isi konfigurasi dasar + data demo lengkap
    php artisan migrate:fresh --seed
    
    # Isi database dengan Dummy Data Cafe & Logistik lengkap
    php artisan db:seed --class=CafePOSDummySeeder
    php artisan db:seed --class=CompletePhasesSeeder
    

    B. Untuk Lingkungan Production (Sistem Bersih Siap Pakai):

    # Migrasi database kosong
    php artisan migrate:fresh
    
    # Isi konfigurasi dasar aplikasi, peran/hak akses, dan menu sidebar
    php artisan db:seed --class=ProductionSeeder
    
  6. Jalankan Server Lokal:
    Jalankan server Laravel backend dan Vite compiler frontend secara bersamaan:

    • Terminal 1: php artisan serve
    • Terminal 2: npm run dev
      Akses aplikasi melalui browser di: http://127.0.0.1:8000

🐳 Panduan Deployment Menggunakan Docker

Sistem orkestrasi Docker Compose CafePOS telah dikonfigurasi lengkap untuk siap di-deploy pada server Linux VPS Ubuntu produksi menggunakan container Nginx + PHP-FPM + MySQL + Redis.

Cara Deploy Cepat:

  1. Clone Project atau Upload Folder ke Server:
    git clone <repository-url> /var/www/cafepos
    cd /var/www/cafepos
    
  2. Buat File Environment Produksi:
    cp .env.example .env
    nano .env
    
    Atur APP_ENV=production, APP_DEBUG=false, DB_C DB_HOST=mysql`, dan atur password database MySQL yang aman.
  3. Bangun Container (Multi-stage Node & PHP Build):
    docker compose -f docker-compose.prod.yml up -d --build
    
  4. Inisialisasi Laravel Dalam Container:
    docker compose -f docker-compose.prod.yml exec app php artisan key:generate
    docker compose -f docker-compose.prod.yml exec app php artisan migrate --force
    docker compose -f docker-compose.prod.yml exec app php artisan db:seed --force
    docker compose -f docker-compose.prod.yml exec app php artisan storage:link
    
    # Caching optimasi rute & config
    docker compose -f docker-compose.prod.yml exec app php artisan config:cache
    docker compose -f docker-compose.prod.yml exec app php artisan route:cache
    docker compose -f docker-compose.prod.yml exec app php artisan view:cache
    

🔑 Modul Proteksi Lisensi

  1. Bypass Lisensi Otomatis (Local/Dev):
    Sistem verifikasi lisensi tidak akan aktif bila dijalankan di lingkungan pengembangan lokal:
    • .env diatur APP_ENV=local or APP_ENV=testing.
    • Host domain berupa: localhost, 127.0.0.1, IP private LAN (192.168.*, 10.*), domain .test atau .local.
  2. Kunci Lisensi Produksi:
    Di server produksi online, middleware license.verify akan mengunci sistem dan memaksa redirect ke /admin/license/activate sampai dimasukkan lisensi valid. Lisensi terikat pada APP_KEY. Jangan men-generate ulang APP_KEY setelah melakukan aktivasi lisensi.

🔑 Akun Uji Coba (Credentials)

Gunakan akun di bawah ini untuk menguji hak akses RBAC CafePOS di localhost atau server demo (berlaku bila menjalankan seeder demo):

Role PeranEmail LoginPasswordPenugasan Cabang
Super Adminsuperadmin@example.compasswordSemua Outlet Cabang
Admin Useradmin@example.compasswordSemua Outlet Cabang
Owner Userowner@example.compasswordSemua Outlet Cabang
Kasir Kemangcashier@example.compasswordDibatasi ke Outlet Kemang
Kasir Senopaticashier2@example.compasswordDibatasi ke Outlet Senopati
Kitchen Staff Kemangkitchen@example.compasswordDibatasi ke Dapur Kemang

Developed with ❤️ for Cafe & Restaurant Owners. Copyright © 2026. All rights reserved.

Riwayat versi
v1.5.0Terbaru2 Agu 2026
  • Modal Konfirmasi Pembayaran & Integrasi Self-Order POS:

    • Modal Konfirmasi Pembayaran Shadcn UI: Mengintegrasikan modal konfirmasi pembayaran bergaya Shadcn UI pada Kasir POS (POS.vue) dan Riwayat Transaksi (Transactions/Index.vue) untuk melunaskan transaksi Self-Order QR.
    • Penetapan Operator Otomatis: Pesanan Self-Order QR secara default menetapkan operator kosong (user_id = null), dan secara otomatis diperbarui dengan user_id kasir yang melakukan konfirmasi pembayaran.
    • Indikator Pesanan Masuk & Penyaringan Cabang: Menambahkan tombol "Pesanan Self-Order" dengan indikator badge dot merah berkedip pada header POS yang tetap terlihat pada mode fullscreen, serta memfilter daftar pesanan pending sesuai cabang (outlet_id) yang sedang aktif.
    • Isolasi Pesanan Per Perangkat: Menggunakan localStorage (cafepos_my_orders) pada halaman Self-Order pelanggan agar riwayat pesanan hanya menampilkan transaksi dari perangkat masing-masing.
  • Opsi Cetak Struk Dapur & Pengaturan QRIS Manual:

    • Modal Opsi Cetak Struk Dapur: Setelah Struk Pelanggan otomatis tercetak pasca-konfirmasi bayar, sistem akan memunculkan modal interaktif "Cetak Struk Dapur?" untuk memberikan kendali penuh kepada kasir agar dapat mencetak atau melewati tiket dapur tanpa membuang kertas thermal.
    • Integrasi Pengaturan QRIS Manual: Menambahkan seeder default gambar QRIS (/images/radhcloud-qris.png) pada SettingSeeder dan menyediakan input upload/preview gambar QRIS di halaman Settings (Settings/Edit.vue).
    • Resolusi Bug Rp 0 pada Modal QRIS: Memperbaiki masalah nilai total tagihan Rp 0 pada modal Pembayaran QRIS Manual di halaman Self-Order dengan mempertahankan state activeQrisAmount saat keranjang belanja dibersihkan.
  • Pengaturan Zoom Scale QZ Tray & Optimasi Cetak Thermal:

    • Pengaturan Zoom Scale Cetak (40% - 120%): Menambahkan slider pengatur skala cetak (Zoom Scale) pada modal Pengaturan Printer POS, Riwayat Transaksi, serta kartu Local Printers di halaman QZ Tray Settings (QzTray.vue).
    • CSS Zoom & Transform Engine: Membungkus dokumen HTML secara otomatis dengan CSS zoom & transform: scale(...) pada printService.ts (printHtmlViaQz) untuk menciutkan tata letak fisik pencetakan thermal secara akurat sesuai persentase yang dipilih agar teks tidak terpotong di tepi kertas.
    • Test Print Reaktif & Format Rata Tengah: Memperbarui fungsi printTestReceipt di QZ Tray Settings agar langsung memanggil pipeline printHtmlViaQz dengan persentase zoom aktual (default 80%), serta mengembalikan format alignment teks header & footer struk ke rata tengah (text-center).
  • Auto-Refresh Pesanan Self-Order & Resolusi Bug Pagination Produk:

    • Auto-Refresh Pesanan QR Tiap 1 Menit: Mengimplementasikan background polling setInterval (tiap 60 detik) pada POS.vue menggunakan router.reload({ only: ['pendingQrOrders'] }) agar daftar pesanan Self-Order QR baru terbarui secara otomatis tanpa kasir perlu mereload browser.
    • Pengurutan Pagination Produk Deterministik: Memperbaiki bug duplikasi dan produk hilang saat navigasi halaman katalog produk pada ProductController.php dengan mengganti query ->latest() (ORDER BY created_at DESC) menjadi ->orderBy('id', 'desc').
  • Pembatasan Akses Pilih Pelayan & Format Cetak QR Meja A4 Full Center:

    • Pembatasan Elemen Pilih Pelayan: Membatasi tampilan dropdown "Pilih Pelayan" pada terminal POS (POS.vue) menggunakan v-if="isAdminOrSuperAdmin", sehingga otomatis disembunyikan untuk akun Kasir (cashier) dan hanya muncul untuk Admin / Super Admin.
    • Format Cetak QR Meja A4 Full Center (1 Meja 1 Kertas): Mengubah pilihan template cetak QR Code Meja pada Tables/Index.vue dari 2-kolom menjadi Kertas A4 - 1 Kolom (Full Center) sebagai default, dengan pemutus halaman tegas (page-break-after: always), cetakan nomor meja besar (text-5xl font-black), serta QR Code yang terletak tepat di tengah kertas baik secara horizontal maupun vertikal.
v1.4.016 Jul 2026
  • Tax Settings & System Settings Enhancement:

    • Aktivasi/Deaktivasi Pajak & Biaya Layanan: Menambahkan toggle pengaktifan (Enable/Disable) untuk Sales Tax dan Service Charge pada halaman System Settings. Sistem kini hanya menghitung komponen pajak dan service charge pada transaksi POS dan QR Self-Order jika fitur tersebut diaktifkan.
    • Peningkatan Dokumentasi & UI Settings: Memperbarui antarmuka System Settings dengan toggle switch premium, penonaktifan input persentase secara otomatis ketika status dinonaktifkan, serta ikon informasi (i) dengan tooltip popover interaktif untuk membantu pengguna non-teknis memahami fungsi masing-masing pengaturan.
    • Resolusi Bug Carbon: Memperbaiki error runtime Class "App\Http\Controllers\Carbon" not found pada PosController.php dengan menyertakan import namespace use Illuminate\Support\Carbon; saat transaksi POS memproses checkout.
  • Silent Printing Loading UI & Auto-Print Optimization:

    • Glassmorphism Loading Overlay: Menambahkan status reaktif isPrinting dan printStatus secara global di printService.ts untuk melacak detail langkah pencetakan. Menambahkan overlay loading glassmorphism premium di kasir POS (POS.vue) dan riwayat transaksi (Index.vue) untuk mengunci double-click dan memberikan umpan balik cetak yang interaktif.
    • Pembatasan Auto-Print Struk Kasir: Mengubah alur akhir pembayaran agar sistem secara otomatis hanya mencetak Struk Penjualan (Customer Receipt). Tiket Dapur (Kitchen Receipt) tidak lagi tercetak otomatis demi efisiensi kertas, namun tetap dapat dicetak secara manual melalui tombol yang tersedia pada modal sukses pembayaran. Opsi "Auto-Print Tiket Dapur" juga telah dibersihkan dari modal pengaturan printer POS.
  • Configurable Add-ons (Modifiers) Management:

    • Relasi Pivot Many-to-Many: Membuat migrasi tabel pivot product_modifiers dan kolom is_active pada modifiers. Migrasi secara otomatis memetakan modifier lama ke seluruh produk lama untuk menjaga kecocokan data historis (backward compatibility).
    • Halaman Pengelola Add-ons: Mendaftarkan menu baru "Add-ons Manager" di sidebar panel admin di bawah grup CafePOS Management. Membuat ModifierController.php dan antarmuka Modifiers/Index.vue untuk mengelola CRUD add-ons, harga tambahan, tautan pengurangan stok bahan baku (auto-deduct), serta checkbox pengaitan produk relevan yang dikelompokkan per kategori.
    • Penyaringan Modifiers Spesifik: Memperbarui terminal kasir POS dan Guest Self-Order agar pilihan add-on yang muncul benar-benar spesifik dan relevan hanya untuk produk yang sedang dipilih (misalnya add-on "Extra Shot" hanya muncul untuk kategori Kopi).
  • Bulk QR Code Printing & Table Selection:

    • Fitur Cetak QR Code Massal: Menambahkan checkbox pilihan meja di pojok kiri atas kartu meja, opsi checkbox "Pilih Semua" (Select All), serta tombol "Cetak QR Massal" pada panel kontrol Table Management.
    • Interactive Print Modal & Paper Templates: Menyediakan modal dialog cetak massal lengkap dengan Live Print Preview yang responsif serta opsi pemilihan ukuran kertas: Kertas A4 - 3 Kolom (hemat kertas), Kertas A4 - 2 Kolom (sedang), dan Thermal 80mm (cetak satu-satu memanjang di printer kasir).
    • CSS Cetak & Resolusi Blank Page: Memindahkan container pencetakan #bulk-qr-print-area keluar dari wrapper AdminLayout dan mengelola visibility elemen menggunakan filter @media screen (display none) dan @media print (display block) secara terisolasi untuk memperbaiki masalah halaman cetak blank putih pada browser.
  • Self-Ordering URL Public Routes & QZ Tray Demo Exemption:

    • Pemindahan ke Public Route (Bebas Prefix /admin): Memindahkan route self-ordering (pos.qr-menu dan pos.qr-checkout) keluar dari grup prefix /admin/ di web.php ke root level agar pelanggan dapat memindai QR Code dan langsung memesan secara publik tanpa melalui struktur URL admin. Rute ini tetap diamankan di bawah middleware license.verify.
    • Resolusi Bug Redirection 500: Mengubah arah redirect pasca-checkout QR order dari route non-existent pos.receipt (yang menyebabkan crash 500) kembali ke pos.qr-menu dengan parameter cabang/meja yang sesuai untuk memicu event onSuccess pembersihan keranjang belanja dan penampilan modal sukses secara instan.
    • Perbaikan Sidebar Menu Highlighting: Memperbaiki logika isActive pada Sidebar.vue dan AdminLayout.vue agar mengevaluasi rute System Settings (/admin/settings) secara exact match. Ketika menu QZ Tray (/admin/settings/qz-tray) aktif, menu System Settings tidak akan ikut tersorot.
    • Pengecualian Demo Mode untuk QZ Tray: Memodifikasi DemoModeMiddleware.php dengan mengecualikan seluruh endpoint QZ Tray dari pemblokiran metode POST/DELETE agar administrator tetap dapat melakukan registrasi certificate, regenerasi key, hapus sertifikat, serta simulasi payload signing pencetakan secara penuh ketika aplikasi berada dalam status APP_ENV=demo.
v1.3.012 Jul 2026
  • QZ Tray Integration & Hybrid Printing Logic:

    • WebSocket Silent Printing: Membuat library helper printService.ts untuk mengelola koneksi WebSocket lokal ke port QZ Tray (8182), memungkinkan pencetakan struk kasir (58mm) dan tiket dapur secara otomatis di latar belakang (silent print) tanpa membuka dialog print browser.
    • Dynamic Browser Fallback: Menerapkan mekanisme cadangan otomatis (fail-safe) di mana sistem akan secara dinamis mendeteksi jika QZ Tray terputus atau tidak aktif, lalu otomatis mengalihkan proses pencetakan kembali ke metode dialog print browser biasa (window.open).
    • Unified Printer Settings Panel: Menyediakan modal dialog "Pengaturan Printer POS" terpadu di halaman kasir utama (POS.vue) dan riwayat transaksi (Index.vue) untuk mempermudah kasir mengganti metode cetak, melakukan tes koneksi, memilih nama printer sistem, serta mengaktifkan opsi cetak otomatis (Auto-Print).
  • Thermal Print Layout & Scaling Optimization:

    • Raw Rendering Mode (?raw=true): Menambahkan pemisahan layout pada halaman cetak struk (Print.vue) dan dapur (KitchenPrint.vue). Ketika URL mendeteksi parameter raw=true, halaman hanya akan merender slip murni tanpa memunculkan bilah tombol aksi, margin preview, latar belakang warna, atau memicu pop-up pencetakan browser di dalam hidden iframe.
    • DPI & Layout Scaling (80% Zoom): Mengunci lebar rendering HTML pada QZ Tray menggunakan opsi pageWidth: 58 (dalam mm) serta menyematkan gaya inline CSS zoom: 0.8 pada container raw struk untuk mencerminkan opsi skala 80% pada browser. Hal ini mencegah hasil cetakan thermal terpotong atau melebar melewati batas kertas sebelah kanan.
    • Outlined Border Box (Bebas Luntur): Mengubah desain blok hitam tebal pada No. Antrean struk kasir dan Box Qty tiket dapur menjadi kotak ber-border transparan (border border-black text-black bg-transparent) untuk menghindari tinta luntur/bleeding akibat pemanasan thermal berlebih sehingga angka tercetak jauh lebih kontras dan jelas dibaca.
  • Guide Module Expansion & Dark Mode Fixes:

    • Panduan Printer & QZ Tray: Menambahkan tab panduan baru "Setting Printer & QZ" pada modul panduan sistem (Guide/Index.vue), berisi panduan instalasi driver printer thermal, petunjuk setup nama printer di Windows, instalasi QZ Tray, hingga panduan konfigurasi pada terminal kasir.
    • Resolusi Bug Dark Mode: Memperbaiki masalah tampilan dark mode yang tidak berfungsi pada halaman panduan dengan membenarkan penulisan kelas warna Tailwind yang typo (seperti dark:bg-slate-955 dan dark:border-slate-805 menjadi standar Tailwind dark:bg-slate-950 dan dark:border-slate-800).
v1.2.010 Jul 2026
  • Interactive User Guide Module (Panduan Operasional):

    • Halaman Khusus Panduan: Membangun modul panduan penggunaan sistem terintegrasi (Guide/Index.vue) di dashboard admin untuk membantu staff memahami alur kerja POS, monitor dapur (KDS), stok BOM, outlet, dan voucher.
    • Navigasi Sidebar Responsif: Menggunakan struktur flexbox dinamis yang mengunci lebar sidebar navigasi panduan (md:w-64) dan membiarkan kartu detail melebar secara fleksibel tanpa merusak tata letak.
    • Standard HTML Rendering: Mengganti penulisan tebal mentah (**) dengan tag standard HTML <strong> agar ter-compile dengan sempurna oleh parser v-html bawaan Vue.
  • Voucher Engine Crash Resolution:

    • Resolusi Bug Halaman Blank: Memperbaiki masalah layar putih (blank crash) pada menu Voucher Management dengan menyelaraskan form input di Vue dengan skema kolom database yang aktual.
    • Penyelarasan Kolom Tanggal Kadaluarsa: Mengubah input rentang tanggal (start_date/end_date) dan kolom nama (name) yang tidak didukung skema database lama menjadi satu kolom tanggal kadaluarsa tunggal (expires_at), lengkap dengan penyesuaian logika validasi dan penyimpanan di VoucherController.php.
  • POS Cashier Terminal UI & Scroll Optimization:

    • Wadah Gulir Item Terpadu: Memindahkan form input konfigurasi transaksi (Customer CRM, kupon promo merchant, input voucher kustom, dan banner alert ulang tahun member) ke dalam kontainer daftar item belanja yang dapat digulung (flex-1 overflow-y-auto min-h-0).
    • Tombol Bayar & Checkout Pinned Bottom: Menyisakan hanya ringkasan perhitungan tagihan, opsi metode pembayaran, kalkulator uang kembali, dan tombol checkout utama di bagian bawah kartu yang menempel (flex-shrink-0). Hal ini mencegah daftar item terhimpit di layar kecil dan menjamin tombol checkout selalu terlihat tanpa terpotong batas bawah layar.
  • Cooperative Database Seeder Separation:

    • Pemisahan Mode Produksi & Demo: Memisahkan struktur seeder database secara bersih menjadi dua fungsi:
      • Production Mode (ProductionSeeder): Menyediakan database bersih siap pakai yang hanya berisi setelan sistem dasar (SettingSeeder), hak akses/peran (RolesAndPermissionsSeeder dengan 1 akun superadmin awal), dan menu navigasi sidebar (MenuSeeder).
      • Demo/Development Mode (CafePOSDummySeeder & CompletePhasesSeeder): Mengisi data master simulasi lengkap (outlet, kasir/koki/pelayan fiktif, meja, menu, modifier resep, customer CRM) dan catatan log operasional (transaksi 30 hari terakhir, stock opname, reservasi meja, PO logistik, log bahan rusak/waste).
    • Resolusi Konflik Timpa Data: Menghilangkan fungsi perintah truncate() tabel master (Table, Customer, Modifier, Promo) di dalam CompletePhasesSeeder agar kedua seeder simulasi dapat berjalan bersamaan secara kooperatif tanpa saling menghapus data saat menjalankan migrate:fresh --seed.
  • Outlet Management Cashier Count Alignment:

    • Filter Akun Kasir & Kitchen: Memperbaiki logika penghitungan jumlah kasir pada tabel daftar outlet di OutletController.php dengan menambahkan filter peran (role(['Kasir', 'Kitchen'])) pada penghitungan relasi user.
    • Penyelarasan Data: Menghindarkan akun dengan peran lain (seperti waiter/pramusaji) ikut terhitung di kolom tabel, sehingga jumlah staff yang tampil di daftar outlet kini 100% sinkron dengan daftar staf yang dapat dipilih pada formulir penugasan.
v1.1.11 Jul 2026
  • POS Thermal Receipt Layout & Sizing Optimization:

    • Dukungan Kertas Gulung 58mm: Menyesuaikan lebar cetak struk kasir main menjadi 58mm (sebelumnya 80mm) agar sesuai dengan gulungan thermal mini standar (58mm x 297mm) tanpa terpotong di margin kanan.
    • Kompensasi Skala Cetak 80%: Memperbesar ukuran teks cetak secara proporsional dalam CSS print media. Menjadikan teks tebal dan tajam saat diturunkan skalanya ke 80% pada setelan cetak browser, dengan ukuran fisik yang ideal (~8px hingga 14px).
    • Pembersihan Efek Sobek Kertas: Menghapus ornamen dekoratif gerigi sobekan kertas (paper tear effect) di bagian atas dan bawah struk agar struk kasir tampil lebih bersih.
    • Penyelarasan Kolom Tipe & Status: Memisahkan informasi gabungan Tipe / Status yang sebelumnya bertumpuk menjadi dua baris data mandiri (Tipe: TAKE AWAY dan Status: AKTUAL) guna mencegah melipatnya baris pada lebar kertas yang sempit.
    • Penyelarasan Ukuran Total Keseluruhan: Menyamakan ukuran font pada baris TOTAL KESELURUHAN dengan rincian pembayaran lainnya (text-[11px]) agar teks nominal total (RP 164.010) tersaji sejajar dalam satu baris penuh tanpa melipat berantakan.
    • Penyelarasan Total Harga Barang (Baris Kedua): Memindahkan posisi total harga belanjaan item (subtotal) ke baris kedua rata kanan (sejajar dengan detail kuantitas 2 x Rp 32.000 [HOT]), membebaskan baris pertama sepenuhnya untuk nama produk agar nama produk yang panjang dapat melipat (wrap) secara rapi.
  • Visual Identity Branding & System Settings:

    • Logo Thermal Kustom: Menambahkan fitur upload logo hitam-putih khusus struk thermal pada menu System Settings -> Visual Identity Assets, lengkap dengan pratinjau gambar, validasi ukuran berkas, dan penghapusan otomatis file logo lama.
    • Default Logo Fallback: Menggunakan berkas /images/logo-thermal.png sebagai logo default struk apabila logo kustom belum dikonfigurasi.
    • Penyelarasan Header Tengah (Centered): Memposisikan Logo, Nama Kafe, Nama Outlet, dan teks "Bukti Pembayaran POS" di bagian tengah (centered) struk kasir untuk estetika identitas bisnis yang elegan.
  • System & Architecture Improvement:

    • Sidebar Versioning Dinamis: Memetakan versi di sidebar agar dibaca dinamis dari variabel .env (APP_VERSION) melalui konfigurasi config('app.version').
    • Resolusi Prop Settings Override: Menyelesaikan kendala hilangnya versi dinamis di sidebar akibat penimpaan (override) prop data settings oleh SettingController::edit() dengan menggabungkan key version ke dalam data setelan form sebelum halaman di-render.
v1.1.030 Jun 2026
  • Mobile Responsiveness & UI/UX Optimization:

    • Halaman Login Mobile: Mengoptimalkan tampilan login pada layar mobile dengan menyembunyikan border, bayangan, dan latar belakang card yang bertumpuk. Logo dan nama outlet dipindahkan ke dalam card agar sejajar secara vertikal dan dapat di-scroll secara dinamis.
    • Navbar Breadcrumbs: Menyembunyikan remah roti (breadcrumbs) di navbar admin saat diakses dari perangkat mobile (hidden md:flex) untuk menghemat ruang tampilan.
    • POS Cashier Mobile Terminal: Merancang antarmuka khusus mobile kasir dengan 3 tab navigasi bawah:
      • Tab Pilih Menu: Daftar produk, pencarian reaktif, filter kategori, dan tipe pesanan (Dine In, Take Away, Delivery).
      • Tab Keranjang: Detail item pesanan, add-ons (modifiers), variant (Hot/Ice), catatan, form member, poin loyalitas, kupon diskon, metode bayar, kalkulator uang kembalian, dan proses bayar.
      • Tab Riwayat: Daftar 20 transaksi terakhir outlet, cetak ulang struk kasir, cetak tiket dapur, dan pembatalan (void) transaksi langsung.
      • Floating Cart Button: Tombol melayang dinamis di tab menu saat keranjang terisi untuk mempermudah alur bayar dengan satu sentuhan.
    • POS Navbar Mobile: Menyederhanakan header POS kasir pada mobile dengan membungkus menu Dashboard Admin, Ganti Tema, Layar Penuh, dan Keluar ke dalam satu tombol profil interaktif (Radix UI Dropdown Menu).
  • Cetak Laporan (Print Layout):

    • Aturan Page Break: Menerapkan kelas CSS .avoid-page-break dan inline style page-break-inside: avoid pada bagian tanda tangan (Signature Block) laporan keuangan untuk mencegah pembagian halaman yang terputus di tengah kertas saat dicetak.
v1.0.028 Jun 2026
  • POS & Transaksi:

    • POS Terminal Multi-Tipe: Transaksi kasir cepat yang mendukung pesanan Dine In (pilih nomor meja), Take Away (nomor antrean otomatis), dan Delivery.
    • Hold & Tunda Bill: Kemampuan menangguhkan keranjang belanja sementara saat pelanggan masih memilih menu tambahan dan memulihkannya kembali dengan instan.
    • Split Bill Dinamis: Pembagian pembayaran tagihan belanja per item secara fleksibel untuk meja grup dengan kalkulasi subtotal dan PPN otomatis.
    • Poin Loyalitas & Membership: Sistem akumulasi poin otomatis untuk member terdaftar yang dapat ditukarkan langsung sebagai pengurang total tagihan saat checkout.
    • Promo Engine Fleksibel: Dukungan kupon diskon global persentase (%), potongan nominal langsung (Rupiah), serta promo Buy 1 Get 1 (BOGO).
    • Cetak Thermal & Kitchen Ticket: Modul siap cetak untuk Struk Kasir (ukuran thermal POS) dan Tiket Pesanan khusus untuk area dapur/bar.
  • KDS & Monitor Dapur:

    • Monitor Dapur Real-time: Layar khusus dapur dengan status pesanan reaktif (Pending, Cooking, Ready, Served) lengkap dengan tab riwayat selesai.
    • Tampilan Grouping POS: Pengelompokan pesanan di dapur berdasarkan nomor nota (Order View) atau ringkasan akumulasi menu yang harus dimasak (Item View).
    • Auto-Redirect Kitchen: Logika deteksi pasca-login yang mengalihkan staff ber-role Kitchen secara instan menuju layar monitor KDS sesuai cabang outlet.
    • Tombol Logout KDS: Penambahan tombol logout khusus berwarna rose pada header KDS untuk keluar sesi dengan cepat tanpa mengganggu tombol fullscreen.
  • Stok Bahan Baku & Resep (BOM):

    • Resep BOM (Bill of Materials): Pemetaan takaran bahan mentah per porsi produk menu (misal: gramasi kopi bubuk, mililiter susu).
    • Auto-Deduction Stok: Otomatisasi pemotongan stok bahan baku di gudang ketika produk terjual di terminal kasir.
    • Formulir Stock Opname: Audit stok berkala sistem vs fisik lengkap dengan perhitungan kuantitas selisih dan penulisan satuan unit ukur.
    • Waste Management: Pencatatan bahan baku yang rusak, tumpah, atau kedaluwarsa guna melacak kebocoran biaya bahan (waste cost).
  • Multi-Outlet & Keamanan:

    • Multi-Branch Control: Isolasi data produk, stok, meja, dan transaksi per cabang outlet fisik dengan dashboard konsolidasi untuk Owner.
    • Spatie RBAC (Role-Based Access Control): Pembatasan hak akses ketat untuk Super Admin, Admin, Owner, Kasir, dan Kitchen Staff.

Produk lainnya

Semua Web App →
Web App · Laravel 13 · PHP 8.3+

Qasirku Smart POS

Smart POS & FIFO Inventory Management System

Rp 250.000Coba demo ↗
Web App · Vue 3 · Laravel 13

Invengrid Laravel 13

Solusi Manajemen Aset & Inventaris Perusahaan

Rp 250.000Coba demo ↗
Web App · Laravel 13 · PHP 8.4+

BengkelPro

Sistem Manajemen Bengkel Motor & Mobil

Rp 250.000Coba demo ↗
Rp 250.000