Dokumentasi FoodScan
Panduan lengkap dari setup pertama sampai operasional harian โ QR Menu, POS, KDS, Inventory, Loyalty, Expense Tracking, Payroll, P&L, AI BYOK, SaaS Multi-Tenant.
๐ Pengantar
FoodScan adalah Restaurant Operating System modern all-in-one. Dari QR menu sampai laporan keuangan, satu sistem terintegrasi.
๐ Setup Pertama Kali
Prasyarat
- PHP 8.2+, MySQL 8+, Composer 2+, Node 18+
- Laragon (Windows) atau LAMP/LEMP (Linux)
- Browser modern (Chrome, Edge, Firefox)
Install Dependencies
cd foodscan
composer install
npm install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan db:seed
php artisan storage:link
php artisan filament:assets
Konfigurasi Database
Edit .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sq_food_scan
DB_USERNAME=root
DB_PASSWORD=
APP_URL=http://localhost:8000
APP_LOCALE=id
APP_TIMEZONE=Asia/Jakarta
BROADCAST_CONNECTION=reverb
QUEUE_CONNECTION=database
Jalankan Server
Buka 3 terminal:
Terminal 1 โ Web server:
php artisan serve
Terminal 2 โ Queue worker:
php artisan queue:work
Terminal 3 โ Reverb (KDS realtime):
php artisan reverb:start
๐ Akun & Login
Akun Demo (sudah ter-seed)
| Role | Password | Akses | |
|---|---|---|---|
| Super Admin | admin@foodscan.test | password | Semua fitur, AI Provider, SaaS |
| Manager | manager@foodscan.test | password | Menu, staff, laporan |
| Kasir | cashier@foodscan.test | password | POS + bayar pesanan |
| Kitchen | kitchen@foodscan.test | password | KDS |
URL Login
- Customer / Staff: /login โ redirect otomatis ke
/admin(staff) atau/account(customer) - Admin Panel: /admin/login
- Register Customer: /register โ bonus 100 poin welcome
- Lupa Password: /forgot-password
๐ช Setup Restoran
A. Edit Outlet
Sidebar ๐ช Restoran โ Outlet โ klik outlet โ tab General:
- Nama, alamat, telepon, email
- Jam operasional per hari
- Konfigurasi pajak (PPN 11%, service 5%)
- Kategori masakan (untuk pSEO + filter)
- Logo + foto cover
- Kemampuan: dine-in, takeaway, delivery, reservasi
B. Meja + Generate QR
Sidebar ๐ช Restoran โ Meja โ Tambah:
- Kode:
T-09 - Kapasitas: 4
- Section: Indoor / Outdoor / VIP
- QR token auto-generate (40 karakter random)
Di list Meja, ada 4 aksi per baris:
- ๐๏ธ Preview QR โ modal preview QR + URL menu
- โฌ๏ธ Download SVG โ file
qr-{outlet}-meja-{kode}.svg - ๐จ๏ธ Print QR โ buka tab baru, auto-print
- ๐ Copy URL Menu โ salin URL ke clipboard
Bulk pilih โ Print QR Sheet โ 1 halaman A4 semua QR + label meja.
๐ฑ Customer (QR Order)
Flow Customer di Meja
- Scan QR meja โ buka
/menu/{slug}?t={token} - Browse menu per kategori, cari
- Tap โค๏ธ simpan favorit (login dulu)
- Tap item โ pilih variasi/modifier โ tambah ke keranjang
- Tap keranjang โ review โ pilih metode bayar:
- Tunai di kasir (default)
- FoodScan Wallet (saldo cukup)
- QRIS
- Apply kode promo (opsional) + tip (0/5/10/15/20%)
- Pesan โ diarahkan ke halaman tracking status 6-langkah
Tipe Pesanan
| Tipe | Deteksi | Catatan |
|---|---|---|
dine_in | Scan QR meja | Otomatis attach table_id |
takeaway | Buka /menu/{slug} tanpa ?t= | โ |
delivery | Pilih di keranjang + alamat tersimpan | Login dulu |
Dashboard Akun
Login โ /account:
- ๐ค Profil โ edit nama, telepon, bahasa, password
- ๐ฆ Pesanan โ riwayat, reorder 1-klik, beri ulasan
- โญ Poin Loyalty โ saldo + tangga tier + riwayat
- ๐ณ Wallet โ saldo + topup (preset Rp 50rbโ2jt)
- ๐๏ธ Reservasi โ daftar reservasi
- โค๏ธ Favorit โ item & resto disukai
- ๐ Alamat โ address book untuk delivery
๐ต POS & Pembayaran
Flow Kasir
- Login
cashier@foodscan.testโ ๐ฆ Pesanan โ Pesanan filter status pending - Klik baris pesanan โ tombol ๐ต Bayar
- Form:
- Metode: ketik bebas (
tunai,qris,edc_bca,gopay, dll.) - Jumlah: auto-isi dari total
- Referensi: opsional
- Metode: ketik bebas (
- Submit โ event
OrderPaidโ 4 listener otomatis:- Kurangi stok bahan (resep โ ingredient)
- Tambah poin loyalty (ร multiplier tier)
- Kirim notifikasi ke customer
- Trigger webhook outbound
- Auto-redirect ke struk โ tombol ๐จ๏ธ Cetak Struk
Distribusi Tip
Kalau customer kasih tip, klik ๐ Bagi Tip di detail pesanan โ pilih karyawan โ split otomatis.
Refund
Sidebar ๐ฆ Pesanan โ Refund โ pilih pembayaran + jumlah + alasan. Workflow: pending โ approve โ process.
๐ณ Kitchen Display (KDS)
Login kitchen@foodscan.test โ buka /kds.
Layout 3 Kolom Kanban
| โณ Antrian | ๐ฅ Sedang Dimasak | โ Siap Antar |
|---|---|---|
| Pesanan baru | Sedang dikerjakan | Siap diantar |
Fitur
- Filter stasiun: ๐ Semua / ๐ณ Kitchen / ๐น Bar
- Info per kartu: nomor pesanan, meja, item ร qty, instruksi khusus
- Waktu berlalu โ merah + animasi shimmer kalau >20 menit
- Tombol: Mulai Masak โ Siap Antar โ Sudah Diantar
- Polling 30 detik + Reverb realtime push + audio ping pesanan baru
๐๏ธ Reservasi
Customer Booking
Buka /reservasi:
- Pilih outlet, tanggal, jam (min 2 jam advance)
- Jumlah tamu: 1/2/4/6/8/10
- Nama, telepon, email auto-isi (jika login)
- Catatan khusus
Manager Konfirmasi
Sidebar ๐๏ธ Reservasi โ filter "hari ini" atau "mendatang":
- Konfirmasi (pending โ confirmed)
- Tamu Datang (confirmed โ seated)
- Batal (any โ cancelled)
โญ Loyalty & Wallet
Tier Ladder
| Tier | Min Belanja/Tahun | Multiplier Poin |
|---|---|---|
| ๐ฅ Bronze | Rp 0 | 1.00ร |
| ๐ฅ Silver | Rp 1jt | 1.25ร |
| ๐ฅ Gold | Rp 5jt | 1.50ร |
| ๐ Platinum | Rp 15jt | 2.00ร |
Perolehan Poin
Otomatis saat OrderPaid. Formula: poin = floor(subtotal ร rate ร multiplier_tier)
Rate default 0.001 (1 poin per Rp 1.000). Configurable di โ๏ธ Settings โ Loyalty.
Welcome Bonus
Customer baru otomatis dapat 100 poin saat daftar.
Referral
URL: /register?ref=ABC12345. Referrer dapat reward 200 poin setelah referred customer order pertama.
Wallet Topup
Customer: /account/wallet โ pilih jumlah โ pilih metode (Transfer Bank / QRIS / GoPay / OVO / DANA).
Bayar pakai wallet: di keranjang pilih FoodScan Wallet โ saldo cukup โ langsung paid + saldo terpotong.
๐ฆ Inventory & Resep
Master Data
- Supplier โ data vendor
- Bahan Baku โ nama, unit, stok saat ini, level reorder, harga per unit
- Resep โ link item menu ke bahan baku + jumlah pemakaian
- Wastage โ log pemborosan dengan alasan
- Purchase Order โ PO ke supplier
Auto-Deduct Saat Order Dibayar
Listener DeductIngredientStock otomatis:
- Loop item pesanan
- Cari resep untuk item
- Kurangi
ingredient.current_stocksebesar qty ร order qty - Insert
Stockrecord (type=sale, reference=Order)
Notifikasi Stok Rendah
Job CheckLowStock tiap hari jam 8 pagi โ cari bahan dengan stok โค reorder level โ notifikasi ke admin.
๐จโ๐ณ Staff & Shift
Karyawan
Sidebar ๐จโ๐ณ Staff โ Karyawan โ Tambah: link ke User, posisi (kasir/waiter/dapur/manager/chef/dll.), tarif per jam, komisi per item (Rp), tanggal mulai.
Shift
Sub-menu Shift: buka shift dengan saldo awal โ tutup shift dengan saldo akhir โ selisih auto-kalkulasi.
Absensi
Absensi: jam masuk / jam pulang / menit istirahat.
๐ณ Ringkasan Menu Keuangan
Group ๐ฐ Keuangan mencakup semua fitur finansial โ dari pengeluaran harian sampai laporan laba rugi:
| Menu | Route | Fungsi |
|---|---|---|
| Laba Rugi (P&L) | /admin/profit-loss | Revenue - HPP - Expense - Payroll = Laba Bersih |
| Laporan Pengeluaran | /admin/expense-report | Ringkasan per kategori + per hari |
| Pengeluaran | /admin/expenses | CRUD input pengeluaran operasional |
| Laporan Pajak | /admin/tax-report | Breakdown PPn 11% + PB1 10% per transaksi |
| HPP & Margin | /admin/hpp-margin | HPP per item vs harga jual + margin % |
| Cash Flow Forecast | /admin/cash-flow-forecast | Proyeksi revenue 30 hari ke depan |
| Payroll | /admin/payroll-processor | Gaji + komisi + ambil gaji + sisa gaji |
| Ambil Gaji | /admin/payroll-advances | Catat uang muka gaji karyawan |
| Revenue Split | /admin/revenue-split-report | Bagi hasil multi-pihak |
| EOD Reconciliation | /admin/eod-reconciliation | Rekonsiliasi kasir tutup hari |
๐งพ Pengeluaran (Expense)
Catat semua pengeluaran operasional harian: beli bahan, listrik, sewa, gaji, dll.
Input Pengeluaran
Sidebar ๐ฐ Keuangan โ Pengeluaran โ Tambah:
- Tanggal
- Kategori: bebas (bahan baku, listrik, sewa, transport, dll.)
- Deskripsi: apa yang dibeli (contoh: "Susu GREENFIELDS 2 kotak")
- Qty + Satuan + Harga Satuan
- Total: auto-hitung qty ร harga satuan, atau input manual
- Outlet: opsional, untuk filter per cabang
Laporan Pengeluaran
Sidebar ๐ฐ Keuangan โ Laporan Pengeluaran:
- Filter tanggal dari โ sampai
- Kartu total pengeluaran
- Tabel per kategori: jumlah transaksi + total
- Tabel per hari: ringkasan harian
Data expense langsung terhubung ke Laba Rugi (P&L) secara otomatis.
๐ธ Payroll & Komisi
Setup Komisi Karyawan
Sidebar ๐จโ๐ณ Staff โ Karyawan โ edit โ isi Komisi per Item (misal: Rp 2.000).
Contoh: karyawan jual 100 gelas kopi โ komisi = 100 ร Rp 2.000 = Rp 200.000.
Ambil Gaji (Uang Muka)
Sidebar ๐ฐ Keuangan โ Ambil Gaji โ Tambah:
- Pilih karyawan
- Tanggal
- Jumlah (Rp)
- Catatan (opsional)
Kalkulasi Payroll Bulanan
Sidebar ๐ฐ Keuangan โ Payroll โ pilih bulan:
| Kolom | Sumber Data |
|---|---|
| Total Jam | Dari tabel shift (start_at โ end_at) |
| Qty Terjual | SUM(order_items.qty) WHERE cashier_id = karyawan |
| Komisi | Qty Terjual ร komisi_per_item |
| Ambil Gaji | SUM(payroll_advances) bulan ini |
| Gaji Kotor | (Jam reguler ร hourly_rate) + (Jam lembur ร hourly_rate ร overtime_rate) + Komisi |
| Sisa Gaji | Gaji Kotor โ Ambil Gaji |
๐ Laba Rugi (P&L)
Sidebar ๐ฐ Keuangan โ Laba Rugi (P&L). Laporan bottom-line menggabungkan semua data:
Fitur
- Filter tanggal dari โ sampai
- 5 kartu stat di atas: Pendapatan, HPP, Laba Kotor, Pengeluaran, Gaji
- 3 kartu besar: Total Pesanan + Revenue, Laba Kotor + Margin %, Laba Bersih + Margin %
- Tabel detail harian: revenue, HPP, laba kotor, pengeluaran, gaji, laba bersih โ per hari
๐ EOD Reconciliation
Sidebar ๐ฐ Keuangan โ EOD Reconciliation. Tutup hari kasir:
- Pilih outlet + tanggal
- Sistem tampilkan: total pesanan, revenue kotor, diskon, refund, pajak, service charge, breakdown per metode bayar, ekspektasi kas
- Kasir input Uang Tunai Aktual di laci
- Klik Tutup Hari Ini โ sistem simpan EOD record + hitung selisih
๐ Laporan Lainnya
Laporan Penjualan
Sidebar โ๏ธ Settings โ Laporan โ filter tanggal:
- Revenue total, total pesanan, rata-rata nilai pesanan
- Revenue per hari (tabel)
- Top 10 menu (qty + revenue)
- Breakdown per metode bayar
- Top 10 customer LTV
Laporan Pajak
๐ฐ Keuangan โ Laporan Pajak: PPn 11% dan PB1 10% per transaksi. Siap export untuk laporan pajak bulanan.
HPP & Margin
๐ฐ Keuangan โ HPP & Margin: kalkulasi HPP per item dari resep + harga bahan baku terkini. Tampilkan margin % tiap item.
Cash Flow Forecast
๐ฐ Keuangan โ Cash Flow Forecast: proyeksi revenue 30 hari ke depan berdasarkan rata-rata per hari-dalam-minggu dari 8 minggu terakhir.
Investor Dashboard
๐ Analytics โ Investor Dashboard: MRR, growth vs bulan lalu, top 10 item, grafik revenue 6 bulan. Cocok untuk presentasi ke investor.
๐ค AI Provider (BYOK โ Bawa Key Sendiri)
Anti-pattern: tidak ada hardcode provider, model, atau API key. Semua input user sendiri.
Setup Provider
- Sidebar ๐ค AI Provider โ Provider โ Tambah
- Isi:
- Nama: bebas ("OpenAI Saya", "DeepSeek Murah", "Local Ollama")
- Format API:
openai_compatible/anthropic/gemini - Base URL: bebas โ
https://api.openai.com/v1,http://localhost:11434/v1, dll. - API Key: paste, otomatis terenkripsi
- Model โ tambah model dengan
model_idbebas + harga - Feature Mapping โ assign provider untuk fitur apa:
demand_forecastโ prediksi permintaantranslateโ terjemahan menusentimentโ analisis ulasanseo_contentโ generate konten pSEO
Format Adapter
| Format | Cocok untuk |
|---|---|
openai_compatible | OpenAI, DeepSeek, Groq, Mistral, Together, Fireworks, OpenRouter, xAI, Ollama, LM Studio, vLLM, Cerebras โ 20+ provider |
anthropic | Anthropic Claude |
gemini | Google Gemini |
AI Demand Forecast
๐ค AI Provider โ Demand Forecast โ pilih outlet โ Generate. AI prediksi 7 hari ke depan.
AI Translate Menu
Edit item โ klik ๐ Translate via AI โ auto-isi nama + deskripsi bahasa Inggris (cache 7 hari).
๐ฌ AI Chatbot (RAG)
Chatbot mengambang di semua halaman storefront. AI menjawab berdasarkan data nyata dari database (RAG โ Retrieval-Augmented Generation), bukan halusinasi.
Cara Kerja
- Customer ketik pertanyaan di widget chat
- Sistem ambil data dari DB: info outlet, daftar item & harga, FAQ owner, riwayat pesanan customer
- Data + pertanyaan dikirim ke AI Provider
- AI jawab berdasarkan data nyata
- Bot bisa sarankan item โ klik langsung tambah ke keranjang
Setup Chatbot
- ๐ค AI Provider โ Chatbot Config
- Set nama bot, persona, FAQ
- Pilih AI Provider dari dropdown
- Toggle aktif โ simpan
Histori Chat
๐ค AI Provider โ Chat History โ lihat percakapan lengkap per customer. Berguna untuk quality control.
๐ Marketing Automation
Tiga jenis campaign berjalan otomatis via Scheduler โ tanpa trigger manual.
1. Birthday Campaign (Tiap Hari 08:00)
Auto kirim voucher ke customer yang berulang tahun bulan ini. Setup: ๐ Marketing โ Birthday Campaign.
2. Win-Back Campaign (Tiap Hari 09:30)
Target customer tidak order >30 hari. Auto-buat voucher tarik balik. Setup: ๐ Marketing โ Win-Back Campaign โ set threshold hari, diskon, minimum order.
3. Drip Campaign (Tiap Hari 10:00)
Email sequence berdasarkan 5 trigger: register, first_order, inactive_7d, inactive_14d, birthday_month. Setup: ๐ Marketing โ Drip Campaign.
๐ฎ Gamifikasi & Streak
Streak Order
Customer order setiap hari berturut-turut โ multiplier poin naik. Setiap 5 hari streak = +0.1 (max 2.0ร). Skip 1 hari = reset ke 1.
Challenges (Tantangan)
Setup: ๐ฎ Gamifikasi โ Challenge โ 4 tipe target:
order_countโ selesaikan X pesananspend_amountโ total belanja Rp Xstreak_daysโ streak X haritry_categoriesโ coba X kategori berbeda
Reward: loyalty points. Evaluasi otomatis setiap ada pesanan baru.
Leaderboard
Customer bisa toggle tampil di leaderboard dari profil. Owner lihat top spender di Analytics.
๐ RFM Segmentation & Churn
RFM Scoring
Sistem otomatis menilai setiap customer 1โ5:
| Dimensi | Score 5 | Score 1 |
|---|---|---|
| R โ Recency | Order โค7 hari lalu | >60 hari lalu |
| F โ Frequency | โฅ10 order | 0 order |
| M โ Monetary | โฅRp 5 juta | <Rp 100rb |
Segmen: champions, loyal, at_risk, cant_lose, new_customers, lost, promising.
Lihat: ๐ Analytics โ RFM Segmentation. Klik "Recalculate" untuk update manual.
Churn Dashboard
๐ Analytics โ Churn Dashboard. Tiga grup risiko: ๐ข Safe (>60), ๐ At Risk (30โ60), ๐ด Churned (<30). Bisa langsung arahkan ke Win-Back Campaign.
๐ฐ Dynamic Pricing & A/B Test
Dynamic Pricing
Harga item naik/turun otomatis berdasarkan kondisi: peak hours, hari tertentu, stok rendah.
Setup: ๐ค AI Provider โ Dynamic Pricing Rule โ pilih outlet โ condition type โ multiplier (1.2 = +20%, 0.9 = -10%).
A/B Testing
Test dua versi item (nama, harga, foto) bersamaan. Setup: ๐ Analytics โ A/B Test โ pilih item โ isi Variant B โ aktifkan. Hasil: impressions A/B, conversions A/B, conversion rate, winner otomatis.
๐ค Affiliate, Split Bill & Meal Plan
Affiliate Program
Link referral untuk influencer: /ref/{kode}. Setup: ๐ฎ Gamifikasi โ Affiliate โ set nama, komisi %, kode unik 8 karakter.
Split Bill
Satu meja patungan โ tiap orang bayar item masing-masing. URL: /split-bill/{orderId}. Assign item ke nama โ submit โ total per orang.
Meal Plan Subscription
Langganan paket makan harian/mingguan. Setup: ๐ฎ Gamifikasi โ Meal Plan โ pilih customer, hari, jam, harga per makan. Order dibuat otomatis setiap pagi jam 07:00.
๐ Order Tracking & Review Gate
Order Tracking Real-Time
URL: /track/{token}. Status stepper: Confirmed โ Preparing โ Ready โ Served โ Completed. Auto-update setiap 5 detik.
Review Gate
Saat status Completed: customer beri bintang 1โ5.
- โฅ4 bintang โ redirect ke Google Review outlet (boost rating Google)
- <4 bintang โ form feedback internal โ owner bisa baca & follow-up
Setup: edit Outlet โ isi Google Review URL.
๐บ Digital Signage & Kiosk
Digital Signage (TV)
URL: /signage/{slug}. Buka di browser TV โ F11 fullscreen. Item berganti otomatis tiap 8 detik (animasi fade). Promo berjalan di ticker bawah.
Self-Order Kiosk (Tablet)
URL: /menu/{slug}?table=X. Layout fullscreen, no navigation. 3 menit idle โ auto-reset ke halaman awal.
๐ข Corporate & Catering + Delivery
Corporate Account
Untuk perusahaan yang rutin order besar โ sistem kredit, bayar akhir bulan. ๐ญ Operasional โ Corporate Account.
Catering Order
Order event/akad dengan DP tracking. ๐ญ Operasional โ Catering Order โ isi klien, tanggal event, item, DP, jatuh tempo. remainingBalance() otomatis.
Delivery Zone
๐ Ekosistem โ Delivery Zone โ atur zona per outlet: nama, radius km, biaya kirim, minimum order, estimasi menit.
๐ผ SaaS Multi-Tenant
Standalone = beli source code sekali bayar. SaaS = pelanggan bayar bulanan ke kamu. Satu codebase, dua model bisnis.
Harga Standalone (Source Code)
| Tier | Harga | Yang Didapat |
|---|---|---|
| Self-Host Lite | Rp 2,9 jt | Source code ยท 1 outlet ยท update 1 tahun |
| Self-Host Pro | Rp 7,9 jt | Source code ยท 5 outlet ยท update 2 tahun |
| Self-Host Enterprise | Rp 19 jt | Unlimited outlet ยท update seumur hidup ยท hak custom branding |
| SaaS Edition | Rp 40 jt | Multi-tenant ยท billing engine ยท tenant provisioning ยท lifetime update |
Mode Standalone vs SaaS (Teknis)
- Standalone:
LICENSE_MODE=standaloneโ tidak ada deteksi tenant,tenant_idnullable - SaaS:
LICENSE_MODE=saasโResolveTenantmiddleware detect via subdomain/domain/header,TenantScopefilter semua query
Menu SaaS
Sidebar ๐ผ SaaS: Plans (tier harga), Tenants (pelanggan), Subscriptions (status langganan), Invoices (tagihan), Usage Metrics (pemakaian per tenant).
๐ Programmatic SEO
Route Patterns
| URL | Contoh |
|---|---|
/restaurants | Direktori semua outlet |
/r/{city} | /r/jakarta |
/r/{city}/{cuisine} | /r/jakarta/indonesia |
/best-{cuisine}-in-{city} | /best-indonesian-in-jakarta |
/{dish}-near-me | /nasi-goreng-near-me |
/compare/{a}-vs-{b} | Perbandingan dua outlet |
Setiap halaman punya: JSON-LD schema (LocalBusiness/ItemList/FAQPage), full meta tags, konten 300+ kata unik, auto-included di /sitemap.xml.
๐ช Webhook & API
Webhook
โ๏ธ Settings โ Webhook: URL target, pilih event (order.paid, *), secret untuk HMAC signature. Delivery log + retry.
API Key
โ๏ธ Settings โ API Key: nama + abilities (orders.read, customers.write) + expires_at. Raw key tampil 1ร saja.
๐ ๏ธ Troubleshooting
KDS Kosong
Filter stasiun terlalu sempit โ klik ๐ Semua. Pastikan item pesanan berstatus pending/preparing/ready.
Receipt PDF Error
php artisan storage:link
chmod -R 775 storage # Linux only
Reverb Tidak Konek
Cek port 8080 tidak diblok firewall. Set REVERB_HOST=127.0.0.1 di .env.
Filament Panel Blank
php artisan filament:assets
php artisan view:clear
composer dump-autoload
Query Lambat Data 10rb+
Index sudah ada di kolom yang sering di-query. Jalankan php artisan optimize untuk production.
๐ธ Fitur Lengkap โ Screenshot Tiap Menu
Berikut screenshot setiap menu di admin panel โ 67 halaman lengkap dikelompokkan sesuai alur bisnis. Klik gambar untuk zoom.
๐ Dashboard
Dashboard utama dengan 7 widget realtime: Statistik Overview (pendapatan hari ini, order aktif, customer baru), Revenue Chart (grafik penjualan harian/mingguan/bulanan), Top Items (menu terlaris), Recent Orders (pesanan terbaru), Pending Approvals (transaksi perlu approval), dan shortcut POS. Semua widget auto-refresh tiap 30 detik via Livewire polling.
๐ช Restoran
Kelola semua cabang restoran Anda dari satu panel. Setiap outlet punya nama, alamat lengkap, jam operasional, logo, cover image, koordinat GPS, konfigurasi pajak (tax rate + service charge), cuisine types, dan flag accepts (dine-in, takeaway, delivery, reservation). Support multi-currency per outlet.
Manajemen meja restoran lengkap dengan QR code generator. Setiap meja punya kode unik, kapasitas, section (Indoor/Outdoor/VIP), dan status realtime (available/occupied/reserved). QR code di-generate otomatis โ tempel di meja, customer scan untuk akses menu digital. Support multi-floor plan.
๐ฝ๏ธ Menu
Kategori menu untuk grouping item โ Makanan, Minuman, Snack, Dessert, dll. Setiap kategori punya icon emoji, nama multilingual (ID/EN), sort order, dan jadwal tampil. Kategori bisa di-schedule untuk muncul hanya di jam tertentu (breakfast, lunch, dinner).
Master data item menu dengan fitur lengkap: nama multilingual, deskripsi, SKU, harga dasar + compare-at price (coret), foto + gallery, dietary tags (halal, vegan, gluten-free, allergens), level pedas (0-3), estimasi waktu masak (prep time), status 86 (habis), featured item, dan available hours. Item bisa di-assign ke outlet spesifik.
Modifier Group untuk variasi item: pilih max/min opsi, required/optional. Contoh: Level Pedas (Tidak Pedas, Sedang, Pedas, Sangat Pedas), Extra Topping (Keju, Telur, Daging), Pilihan Ukuran (Small, Medium, Large). Satu modifier group bisa di-attach ke banyak item sekaligus.
Jadwal tampil menu per hari & jam. Atur item mana yang muncul di menu breakfast (06:00-10:00), lunch (11:00-14:00), dinner (17:00-22:00). Support hari spesifik (Senin-Jumat vs Weekend). Item yang tidak masuk jadwal otomatis hidden dari menu QR customer.
๐ฆ Pesanan
Daftar semua order dari berbagai channel: QR scan, POS kasir, aggregator (GoFood/GrabFood), Web, dan API. Tabel menampilkan order number, tipe (dine-in/takeaway/delivery), status (pendingโpaidโpreparingโreadyโservedโcompleted), total, customer, dan timestamp. Filter by status, tanggal, outlet, dan source. Bisa klik detail untuk lihat item, pembayaran, history status.
Integrasi order dari platform aggregator: GoFood, GrabFood, ShopeeFood. Order masuk otomatis dengan format standar โ nama item, qty, harga, customer info. Bisa accept/reject, update status preparingโready, dan sync status balik ke platform aggregator. Satu dashboard untuk semua channel.
Manajemen refund & void order. Staff bisa ajukan refund dengan alasan (customer request, wrong item, quality issue), atur nominal, dan approval workflow (pendingโapprovedโrejectedโprocessed). Support partial refund. History refund tercatat lengkap dengan timestamp approver.
๐๏ธ Reservasi
Kelola booking meja dari customer. Setiap reservasi tercatat: nama customer, kontak, jumlah tamu, meja yang dipilih, jam reservasi, durasi, dan status (pendingโconfirmedโseatedโcompleted / no-show / cancelled). Support sumber reservasi: web, telepon, walk-in. View kalender untuk lihat okupansi per hari.
๐ฅ Customer & Loyalty
Database pelanggan dengan profil lengkap: nama, kontak, tanggal lahir, gender, loyalty tier (Bronze/Silver/Gold/Platinum), total spending, total order, poin balance, streak days, dan churn score. Support segmentasi RFM (Recency, Frequency, Monetary) otomatis. Bisa lihat riwayat order per customer.
Review & rating dari customer. Tiap review terhubung ke outlet, item, dan customer. Rating bintang 1-5, komentar teks, status verified (berdasarkan order asli), dan status publish. Bisa filter by rating, item, outlet, dan rentang tanggal. Review ditampilkan di halaman publik untuk social proof.
Engine promo lengkap: diskon persentase, flat amount, buy-one-get-one (BOGO), bundle pricing, free delivery. Setiap promo punya syarat: minimum order, maksimum diskon, user spesifik (first-order, member tier), tanggal berlaku, dan kuota pemakaian. Support stackable rules dengan prioritas.
Generate & kelola kode voucher. Setiap voucher linked ke promo dengan batasan: max uses (total pemakaian), used count (sudah terpakai), expired date, dan status aktif/nonaktif. Bisa generate bulk voucher codes. Voucher bisa didistribusikan via email blast, WhatsApp blast, atau printed card.
๐ Marketing
Kampanye otomatis ultah customer. Sistem deteksi customer yang ultah dalam X hari ke depan, auto-kirim voucher diskon via email/WhatsApp/push notification. Set campaign: berapa hari sebelum ultah, berapa hari setelah, voucher validity, dan jenis diskon. Log pengiriman tercatat lengkap.
Kampanye untuk menarik balik customer yang sudah lama tidak order (churn). Atur trigger: berapa hari inactive (7/14/30), jenis diskon (persentase/fixed), dan channel pengiriman. Sistem otomatis deteksi customer yang memenuhi kriteria dan kirim penawaran spesial.
Email/WhatsApp drip campaign โ rangkaian pesan otomatis bertahap berdasarkan trigger event. Contoh: Welcome Series (signup โ email 0h "Selamat datang" โ email 24h "Coba menu kami" โ email 72h "Diskon first order"). Set step: delay, message template, channel.
๐ฎ Gamifikasi
Challenge & achievement system untuk engagement customer. Jenis challenge: Order Count (order X kali), Spend Amount (total belanja Rp X), Try Categories (coba X kategori berbeda), Streak Days (order X hari berturut-turut). Setiap challenge punya reward poin. Customer lihat progress & leaderboard.
Program affiliate/referral. Customer dapat kode referral unik, share ke teman, dapat komisi per order yang masuk via kode tersebut. Dashboard menampilkan: total clicks, total referral, total komisi, performance per affiliate. Support payout tracking.
๐ฆ Inventory
Database supplier/pemasok bahan baku. Setiap supplier punya nama, kontak person, telepon, email, alamat, payment terms, dan status aktif. Supplier linked ke purchase order untuk tracking procurement.
Master data bahan baku dapur: nama, unit (kg/gram/liter/pcs), harga beli per unit, reorder level (minimum stok sebelum alert), supplier default, dan stok terkini. Auto-deduct stok saat order item dibayar (via BOM/recipe). Low-stock alert muncul di dashboard.
Bill of Material (BOM) โ resep setiap item menu. Setiap resep mendaftar bahan baku yang dibutuhkan: ingredient, quantity, unit, dan biaya per porsi. Total HPP (Harga Pokok Produksi) dihitung otomatis. Digunakan untuk auto-deduct stok dan kalkulasi margin.
Log pemborosan/waste bahan baku dengan alasan: expired (kadaluarsa), spilled (tumpah), burnt (gosong), spoiled (busuk), theft (hilang). Catat quantity, biaya kerugian, outlet, dan tanggal. Laporan waste membantu identifikasi pola boros dan optimasi purchasing.
Purchase Order ke supplier. Buat PO dengan daftar item: ingredient, quantity, harga. Status PO: draftโsentโpartial (sebagian diterima)โreceived (lengkap). Stok otomatis bertambah saat PO diterima. History PO lengkap dengan timestamp.
๐ญ Operasional
Manajemen pesanan katering untuk event besar. Setiap catering order punya: corporate account, nama event, tanggal event, jumlah tamu, menu yang dipesan, total biaya, dan status (pendingโconfirmedโpreparingโcompleted). Cocok untuk order perusahaan, wedding, workshop, seminar.
Akun perusahaan/klien korporat dengan fitur: nama perusahaan, kontak person, discount khusus (%), credit limit, payment terms, dan status aktif. Linked ke catering order untuk billing. Support invoice generation per corporate account.
Zona pengiriman per outlet: nama zona, radius dalam km, biaya kirim, minimum order, dan status aktif. Customer yang alamatnya di dalam zona bisa pilih delivery. Support multi-zona per outlet dengan biaya berbeda.
๐จโ๐ณ Staff
Manajemen data karyawan: nama, posisi (cashier/waiter/kitchen/chef/manager/cleaner), hourly rate, overtime rate, tanggal mulai kerja, outlet assignment, komisi per item, info bank (untuk payroll), dan status aktif. Linked ke user account untuk login.
Jadwal shift kerja: karyawan, tanggal, jam masuk, jam pulang, outlet. Fitur buka shift (input opening cash) dan tutup shift (input closing cash โ sistem hitung variance). History shift lengkap dengan cash reconciliation.
Absensi harian: karyawan clock-in (jam masuk) dan clock-out (jam pulang) per outlet. Status: present, late, absent, sick, leave. Rekapitulasi absensi per bulan untuk perhitungan gaji dan evaluasi kedisiplinan.
๐ฐ Keuangan
Input pengeluaran operasional harian per outlet: kategori (listrik, air, gas, internet, gaji, bahan baku, transport, marketing, sewa, dll), jumlah, deskripsi, tanggal, dan bukti. Filter by kategori, outlet, dan rentang tanggal. Total expense dihitung untuk P&L report.
Laporan Laba Rugi (Profit & Loss). Menampilkan: Total Revenue (dari order), Total COGS (dari BOM ร qty terjual), Gross Profit, Operating Expenses (dari input expense), Net Profit. Filter by periode (bulanan/tahunan), outlet. Bisa export PDF.
Ringkasan pengeluaran per kategori dalam periode tertentu. Chart pie/bar menampilkan proporsi expense: listrik vs air vs gaji vs bahan baku vs dll. Identifikasi kategori pengeluaran terbesar untuk optimasi cost.
Laporan pajak: PPN 11%, PB1 (pajak restoran), dan pajak lainnya. Menampilkan: Dasar Pengenaan Pajak (DPP), PPN Keluaran, PPN Masukan, PPN Kurang/Lebih Bayar. Data siap untuk pelaporan SPT Masa PPN.
Analisis HPP (Harga Pokok Produksi) dan margin per item menu. Menampilkan: selling price, cost price (dari BOM), gross margin (Rp), margin percentage (%). Identifikasi item dengan margin tertinggi dan terendah untuk optimasi pricing.
Proyeksi arus kas ke depan berdasarkan data historis. Chart menampilkan: Cash In (dari penjualan), Cash Out (dari expense + purchasing), Net Cash Flow per minggu/bulan. Bantu owner antisipasi defisit kas.
End-of-Day Reconciliation โ tutup buku harian. Input: opening cash, expected cash (dari total penjualan tunai), actual cash (hasil hitung fisik). Sistem hitung variance (selisih). Catat notes dan nama kasir yang closing. History EOD tersimpan.
Revenue split โ bagi hasil pendapatan per channel atau per pihak. Atur aturan split: persentase per party (owner, investor, partner). Chart menampilkan breakdown revenue per channel (dine-in, takeaway, delivery, aggregator).
๐ Analytics
Heatmap jam sibuk (peak hours) per hari dalam seminggu. Visualisasi warna intens: hijau (sepi) โ merah (ramai). Identifikasi jam dan hari tersibuk untuk optimasi staffing, stok bahan, dan promo. Data 12 bulan terakhir.
Menu Engineering Matrix โ klasifikasi item berdasarkan popularity (order count) vs profitability (margin). Empat kuadran: Stars (laris + margin tinggi), Puzzles (laris + margin rendah), Plowhorses (kurang laris + margin tinggi), Dogs (kurang laris + margin rendah). Panduan untuk pricing adjustment dan menu culling.
Upsell Engine โ rekomendasi pasangan item yang sering dibeli bersama. Berdasarkan analisis order history: "Customer yang beli X, 70% juga beli Y". Tampilkan suggested upsell per item dengan conversion rate. Bisa langsung attach upsell ke item.
RFM Segmentation โ segmentasi customer berdasarkan Recency (kapan terakhir order), Frequency (seberapa sering order), Monetary (total spending). Klasifikasi otomatis: Champions, Loyal, Potential, At Risk, Lost. Setiap segmen dapat strategi marketing berbeda.
Dashboard performa staff: revenue per kasir, order count per pelayan, avg prep time per kitchen, customer rating per waiter. Ranking & perbandingan antar staff. Data untuk evaluasi kinerja dan incentive calculation.
Churn Dashboard โ prediksi customer yang berpotensi berhenti order. Model scoring berdasarkan: days since last order, order frequency decline, spending trend. Kategorisasi: Low Risk, Medium Risk, High Risk. Trigger otomatis winback campaign untuk customer High Risk.
Cohort Retention Analysis โ retensi customer per bulan registrasi. Tabel menampilkan: cohort (bulan join), retention rate bulan 1-12, dan trend penurunan. Identifikasi bulan mana yang menghasilkan customer paling loyal.
Dashboard khusus investor dengan KPI high-level: GMV (Gross Merchandise Volume), Revenue Growth (YoY), Customer Acquisition Cost, Customer Lifetime Value, Net Profit Margin, Burn Rate. Tampilan clean dengan chart minimalis โ cocok untuk pitch deck.
A/B Testing engine untuk eksperimen harga, deskripsi, dan foto item. Set dua varian (A dan B) dengan parameter berbeda. Track: impressions (berapa kali dilihat), conversions (berapa kali dibeli), conversion rate. Statistik signifikan menentukan varian pemenang.
๐ค AI Provider
Registry provider AI โ user bisa menambah provider sendiri (BYOK). Support format: OpenAI-compatible (OpenAI, DeepSeek, Groq, Ollama), Anthropic, Gemini. Setiap provider punya: nama, API base URL, API key (encrypted), default model. Test connection button. Full dynamic โ tidak hardcode vendor.
Katalog model per provider. User bisa auto-fetch daftar model dari endpoint /v1/models, atau input manual. Setiap model punya: nama, provider, pricing rate (input/token & output/token), max tokens, dan capabilities (chat, image, audio, embedding).
Feature-to-Model mapping โ tentukan fitur mana pakai provider & model apa. Fitur: Demand Forecast, Menu Translate, Chatbot, Sentiment Analysis, Photo Enhance, Description Generator, Category Auto-label. Per fitur: pilih provider, pilih model, budget cap opsional.
Konfigurasi AI Chatbot untuk FAQ restoran. Set: system prompt (personality bot), knowledge base (menu, jam buka, alamat), model yang digunakan, temperature, dan max tokens. Chatbot bisa di-embed di halaman menu QR. History chat tersimpan dengan token usage tracking.
Demand Forecast โ prediksi penjualan besok berdasarkan data historis + faktor eksternal. AI menganalisis: trend penjualan, hari dalam minggu, musim, event khusus. Output: prediksi qty per item untuk besok. Bantu kitchen prep dan purchasing planning.
Waste Prediction โ prediksi waste bahan baku berdasarkan pola historis. AI identifikasi: bahan apa yang sering terbuang, kapan (hari/jam), penyebab (expired/burnt/spoiled). Rekomendasi: adjustment purchasing quantity, improve storage, atau revisi menu.
๐ผ SaaS
Paket langganan SaaS: Free (1 outlet, 50 item, 3 user), Growth (5 outlet, 500 item, 20 user, trial 14 hari), Enterprise (unlimited outlet, 9999 item, 999 user, trial 30 hari). Setiap plan punya harga bulanan & tahunan, fitur list, dan status aktif.
Daftar tenant/klien SaaS. Setiap tenant punya: nama bisnis, subdomain, domain kustom, plan, status aktif, dan settings JSON (branding per tenant). Support tenant isolation โ data per tenant terpisah total.
Langganan aktif per tenant: plan, status (trial/active/past_due/cancelled), tanggal mulai, tanggal expired, dan auto-renew flag. History subscription lengkap dengan upgrade/downgrade tracking.
Invoice billing per tenant: periode, jumlah, status (pending/paid/overdue), tanggal bayar. Generate invoice otomatis setiap bulan berdasarkan subscription plan.
Metrik pemakaian per tenant: jumlah order, jumlah item, jumlah user aktif, storage terpakai (MB), dan API calls. Data per hari untuk monitoring dan limit enforcement.
๐ Hardware
Konfigurasi thermal printer ESC/POS. Set: nama printer, tipe koneksi (USB/Network/Bluetooth), alamat IP/port, baud rate, dan paper width (58mm/80mm). Test print button. Printer digunakan untuk cetak struk POS dan kitchen ticket dari KDS.
โ๏ธ Settings
Manajemen user & role admin panel. Buat user dengan role: Super Admin, Admin, Manager, Cashier, Kitchen, Waiter. Setiap role punya permission matrix (CRUD resource, akses laporan, akses settings). User bisa di-assign ke outlet spesifik.
Outbound webhook configuration. Daftar endpoint webhook dengan: nama, URL target, events trigger (order.created, order.paid, order.completed, dll), secret key untuk signature verification. Delivery log: status (success/failed), response code, attempt number, retry.
API Key management untuk akses programmatic. Generate API key dengan: nama, permissions (read/write/admin), expiry, dan status aktif. Key ditampilkan sekali saat generate. Last used timestamp untuk monitoring.
Halaman ringkasan semua laporan: Sales Report, Expense Report, Tax Report, Staff Performance, Inventory Report. Setiap laporan punya filter tanggal, outlet, dan export PDF/Excel. One-stop page untuk quick overview.
Pengaturan aplikasi lengkap dengan tab: Branding (nama, logo, favicon, warna), Umum (currency, locale, timezone), Tax & Service (rate + inclusive toggle), Order (prefix, min amount, auto-confirm, guest order), Loyalty (enable, point rate, redeem value), Reservation (enable, min/max advance), SEO (enable PSEO, site URL).
Total: 67 screenshot โ mencakup seluruh 48 resource + 22 custom page admin panel.
โ FAQ
Apa beda standalone vs SaaS?
tenant_id, tiap tenant punya outlet/user/pesanan sendiri, data terisolasi.Bisa pakai printer thermal langsung?
Ctrl+P di /receipt/{order} atau ?autoprint=1 auto-trigger. Untuk auto-print ke printer USB/network, integrasikan mike42/escpos-php.Customer tidak punya akun bisa pesan?
allow_guest_order = true di Settings. Info customer disimpan di kolom customer_name/phone/email di orders, tapi tidak dapat poin loyalty.Bagaimana cara tracking pengeluaran harian?
Komisi karyawan dihitung dari mana?
Biaya AI Provider?
Mau beli source code?
Tertarik Beli Source Code?
Standalone source code โ 1ร bayar, lifetime. Bukan subscription SaaS. Support 6 bulan.