Kaunter Jualan
Pilih produk untuk tambah ke pesanan
Urus Produk
Tambah, edit atau padam item menu
Urus Ahli
Senarai ahli, baki mata, tier & progress cop stamp
Satu jalan sahaja — ahli mendaftar sendiri melalui OTP WhatsApp. Lihat Bot WhatsApp untuk tetapan.
Log Pendaftaran OTP & WhatsApp
0 / 0Memaparkan 5 rekod terkini secara langsung. Muat turun fail untuk arkib penuh.
| No. Telefon | Aktiviti / Aliran | Kod PIN OTP | Status | Masa | Juruwang / Sumber |
|---|
Urus Ganjaran Cop Stamp
Tetapkan mod perolehan cop stamp & produk ganjaran kad penuh
⚙️ Mod Perolehan Cop Stamp Pelanggan
Pilih kaedah bagaimana pelanggan layak menerima cop stamp semasa pesanan dibuat di kaunter.
🎁 Peraturan Ganjaran Penebusan Cop Stamp
Produk yang diberi percuma apabila pelanggan mencapai sasaran cop stamp penuh.
Iklan & Promosi
Muat naik gambar dan video untuk paparan promosi
Tekan untuk muat naik gambar / video
Boleh pilih beberapa fail sekali gusUrus Tebus Ganjaran
Tetapkan kadar perolehan mata ganjaran & katalog item penebusan
⚙️ Mod & Kadar Perolehan Mata Ganjaran Ahli
Tetapkan jumlah perbelanjaan (RM) bagi melayakkan pelanggan menerima 1 Mata Ganjaran semasa pesanan dibuat.
Mata ganjaran dikira secara automatik mengikut jumlah perbelanjaan resit (cth: RM1.00 = 1 mata, RM2.00 = 1 mata, atau RM5.00 = 1 mata).
🎁 Katalog Item & Diskaun Penebusan Ganjaran
Senarai ganjaran item atau diskaun yang boleh ditebus oleh ahli menggunakan mata terkumpul.
Kod Bertuah
Jana dan jejak kod cabutan bertuah
⚙️ Mod & Kadar Pemberian Kod Bertuah pada Resit
Pilih cara sistem mengira bilangan kod bertuah yang akan dicetak pada resit pesanan pelanggan
Cetak Kod Bertuah pada Resit
Bila ON, satu kod bertuah baru dicetak pada setiap resit pelanggan
🔒 Kunci Cabutan Bertuah (Event Countdown Lock)
Bila dihidupkan (ON), pelanggan di laman kad ahli hanya akan melihat paparan Countdown Acara. Sistem akan automatik dibuka semula apabila masa acara tiba.
Urus Hadiah
Setiap hadiah disimpan akan diberi satu kod bertuah dari pool secara automatik
Papan Pemimpin
Senarai pemenang hadiah yang telah ditebus, terkini di atas
| Nama / No. Telefon | Hadiah Dimenangi | Kod | Tarikh Tebus |
|---|
Rekod Jualan
Ringkasan prestasi jualan, cop stamp ditebus & laporan bulanan
Top 5 Item Terlaris
Mengikut kuantiti terjual bulan dipilih
Item Kurang Laku
Disusun daripada jualan paling rendah
Cop Stamp Ditebus
Jumlah ganjaran percuma yang dituntut pelanggan bulan dipilih
Semua Rekod Terjual
Paparan terhad 5 rekod setiap halaman mengikut tapisan bagi menjamin kelancaran sistem
| No. | Tarikh & Masa | Juruwang / Staf | Jenis | Item & Customization | Kos Modal | Untung Bersih | Bayaran | Jumlah |
|---|
Syif & Imbangan Laci Tunai
Pengurusan modal apungan, rekod tunai masuk/keluar, dan laporan penutup syif (Laporan Z)
Syif Aktif: SFT-20260824-001
Juruwang: Akmal Hakim (STF-001) · Dibuka: 24 Ogo 2026, 08:30 pagi
Sejarah Penutupan Syif & Laporan Z
Rekod imbangan wang tunai fizikal vs jangkaan sistem bagi setiap syif
| Kod Syif | Juruwang | Masa Buka & Tutup | Modal Apungan | Jualan Tunai | Jangkaan Laci | Duit Dikira | Varian (Beza) | Status | Tindakan |
|---|---|---|---|---|---|---|---|---|---|
| Memuatkan rekod syif... | |||||||||
🛡️ Jejak Audit Transaksi & Integriti Kaunter
Memaparkan 10 log terkini secara langsung. Muat turun laporan untuk melihat keseluruhan arkib log.
| No. | Masa & Tarikh | Aktiviti / Tindakan | No. Resit / Kod Syif | Juruwang | Jumlah (RM) | Perincian & Nota |
|---|---|---|---|---|---|---|
| Memuatkan jejak audit... | ||||||
Tetapan Printer
Sambungkan printer Bluetooth & tetapkan format resit
Tiada printer dipasangkan lagi
Maklumat & Logo Kedai (Header Resit)
Nama kedai, alamat, nombor pendaftaran dan logo yang akan dicetak pada setiap resit
* Syarikat bermula 'C', Individu bermula 'IG'
Tekan untuk muat naik logo kedai
Kod QR Cop Stamp & Mata (Pada Resit)
Cetak kod QR dengan label notis khas supaya pelanggan boleh imbas dan semak kad cop stamp serta baki mata ganjaran mereka
Cetak Kod QR Semak Cop Stamp & Mata
Paparkan kod QR dengan label 'Semak Cop Stamp & Mata Anda' pada resit
Format Resit
Pilih saiz kertas yang digunakan printer anda
Cetak Auto Selepas Bayaran
Resit akan tercetak sendiri sebaik pesanan disahkan
Pratonton Resit
Tetapan Bot WhatsApp & Webhook
Aliran pintar: Bot semak nombor telefon sebelum menghantar kod OTP
Status Sambungan Bot WhatsApp
Integrasi Gateway (Fonnte / Evolution / Waha / Meta Cloud API / Sandbox)
🔌 Konfigurasi Webhook & API Endpoint (VPS Backend)
URL API untuk POS/Server menghantar mesej keluar ke gateway
Kunci keselamatan untuk mengesahkan panggilan API Gateway
Daftarkan URL ini di portal Gateway/Meta untuk menerima mesej masuk pelanggan
Token rahsia untuk pengesahan keselamatan webhook
🤖 Logik Respons Bot (3 Senario Aliran Sebenar)
Apabila pelanggan WhatsApp bot: Bot memadankan kata kunci "Request OTP" dan menyemak status permohonan aktif (sah 3 minit).
{OTP} (PIN 4-digit) & {PHONE}
🧪 Simulator Aliran Sebenar (Ujian Langsung Endpoint Backend)
Menguji panggilan terus ke POST /api/otp/request & POST /api/webhook/whatsapp
1. Mohon OTP (Web / Kaunter POS)
/api/otp/request2. Pelanggan WhatsApp Bot (Inbound)
/api/webhook/whatsappLog Pendaftaran & Webhook Inbound
Rekod status OTP dan percubaan mesej masuk daripada pelanggan
| No. Telefon | Mesej Masuk | Kod PIN OTP | Status Semakan | Masa | Tindakan |
|---|
💻 Lihat Contoh Kod Backend Webhook (Node.js Express & PHP) Sebenar
// CONTOH BACKEND WEBHOOK Koffi POS (Node.js / Express):
app.post(['/api/webhook/whatsapp', '/api/whatsapp/webhook'], async (req, res) => {
const body = req.body || {};
const sender = body.sender || body.from || body.phone || '';
const message = (body.message || body.body || body.text || '').trim();
const cleanPhone = normalizePhone(sender);
const cleanMsg = message.toLowerCase().trim();
// 1. Padankan Kata Kunci (Request OTP / Minta OTP / AHLI / OTP)
const isOtpKeyword = cleanMsg.includes('request otp') || cleanMsg.includes('minta otp') || cleanMsg === 'otp' || cleanMsg.includes('ahli');
if (!isOtpKeyword) {
// KES 3: Kata kunci salah -> Panduan bersopan
await sendWhatsApp(sender, '👋 Salam! Untuk meminta Kod PIN OTP, sila hantar mesej: 👉 *Request OTP*');
return res.json({ status: 'guidance_sent' });
}
// 2. Semak Permintaan Aktif di Cache (Sah 3 Minit)
const activeRequest = await cacheGet(`otp_request:${cleanPhone}`);
if (activeRequest && activeRequest.otp) {
// KES 1: Permintaan ditemui -> Hantar PIN OTP 4-Digit
await sendWhatsApp(sender, `☕ *KOFFI KOPI*\n\n🔑 Kod PIN OTP anda: *${activeRequest.otp}*\n\n⏳ Sah 3 minit.`);
return res.json({ status: 'sent', otp: activeRequest.otp });
} else {
// KES 2: Tiada permintaan aktif / Luput
await sendWhatsApp(sender, `Salam! Nombor anda (*${cleanPhone}*) belum membuat permohonan OTP di web atau kod telah luput (sah 3 minit).`);
return res.json({ status: 'no_request_found' });
}
});
Urus Staf & Akses
Pengurusan profil juruwang/barista, kata laluan/PIN dan status aktif
Tetapan & Cas
Kawal cukai SST, caj rasmi kerajaan, dan bot webhook Telegram
Cukai Jualan & Perkhidmatan (SST)
Cukai perkhidmatan rasmi kerajaan Malaysia (LHDN)
Bila ON, cukai SST akan dikira secara automatik pada setiap transaksi di kaunter.
Eksport Consolidated e-Invois Bulanan LHDN Ready
Jana fail CSV mengikut format data transaksi LHDN untuk muat naik manual ke Portal MyInvois
ℹ️ Nota Pematuhan LHDN: Muat naik fail ini secara manual ke MyInvois Portal dalam tempoh 7 hari selepas bulan tamat. Ini BUKAN penghantaran automatik ke LHDN.
Caj Rasmi / Statutori Kerajaan
Caj-caj lain yang diwartakan oleh pihak berkuasa tempatan atau kementerian
Caj Tersuai Kedai (Custom Charges)
Tambah caj perkhidmatan, caj waktu puncak, caj pembungkusan, dsb.
Integrasi Bot Telegram (Login Pengurus) Aktif
Kebenaran log masuk MOD Pengurus & notifikasi sistem melalui Bot Telegram rasmi
ℹ️ Panduan Konfigurasi Bot Telegram:
Jika ruangan di bawah dibiarkan kosong, sistem secara automatik menggunakan tetapan rasmi developer di latar belakang untuk semua permohonan log masuk Pengurus. Untuk menggunakan bot peribadi, masukkan API Token & Chat ID, kemudian tekan Sahkan Sambungan dan tekan butang pengesahan yang dihantar oleh bot ke aplikasi Telegram anda.