title: “Membership — Program Loyalty” description: “Manajemen tier membership dengan 5 skema loyalty (spending, stamp, points, visits, hybrid), benefit konfigurasi, dan auto-upgrade di SNISHOP ERP.”
Membership — Program Loyalty

Arsitektur
Akses Halaman
URL:/crm → tab Loyalty
Diagram Relasi Entitas (ERD)
Berikut adalah relasi antar entitas yang terlibat dalam sistem membership SNISHOP ERP:Entitas: CustomerMembership (Schema Lengkap)
EntitasCustomerMembership mendefinisikan setiap tier dalam program loyalty. Setiap tier memiliki konfigurasi skema, kriteria upgrade, benefit, dan reward yang independen. Berikut adalah schema lengkap seluruh field:
Field Identitas & Visual
Field Benefit & Diskon
Field Skema Spending
Field Skema Points
Field Skema Stamp
Field Reward
Field Skema Visits & Kedaluwarsa
Total: 25 Field
EntitasCustomerMembership memiliki 25 field yang mencakup identitas, visual, benefit, 5 jenis skema loyalty, konfigurasi reward, dan kedaluwarsa poin.
Entitas: Customer (Field Membership)
EntitasCustomer memiliki beberapa field khusus yang terhubung dengan sistem membership:
Entitas: CustomerLoyaltyLedger (Audit Trail)
Setiap mutasi loyalty (perolehan, penukaran, pembatalan, penyesuaian) dicatat diCustomerLoyaltyLedger sebagai audit trail lengkap. Entitas ini menjamin traceability penuh atas setiap perubahan saldo poin dan stamp.
Field Utama
Field Saldo (Before/After Snapshot)
Field Reward & Deficit
Field Audit
Entitas: POSMember
EntitasPOSMember adalah representasi member yang terdaftar langsung melalui modul POS (kasir). Memiliki field yang mirip dengan Customer namun lebih sederhana dan terfokus pada operasional kasir.
State Machine: Tier Progression
Berikut adalah diagram state machine untuk progresi tier membership customer:Transisi State — Detail
5 Skema Loyalty — Perbandingan Lengkap
Skema Spending
Skema Stamp
Skema Points
Skema Visits
Skema Hybrid
Sistem Reward — 4 Jenis Reward
Sistem membership SNISHOP ERP mendukung 4 jenis reward yang bisa dikonfigurasi per tier melalui fieldreward_type:
1. Discount Percentage (discount_percentage)
Reward berupa potongan harga dalam persentase dari subtotal transaksi.
2. Discount Amount (discount_amount)
Reward berupa potongan harga dalam nominal Rupiah tetap.
3. Free Product (free_product)
Reward berupa produk gratis yang sudah ditentukan.
4. None (none)
Tidak ada reward yang bisa ditukarkan — tier ini hanya memberikan benefit pasif (diskon otomatis, multiplier, dll).
Perbandingan 4 Jenis Reward
Benefit Konfigurasi
Setiap tier bisa memiliki benefit yang berbeda:Contoh Tier
Sequence Diagram: Alur Upgrade Tier
Berikut adalah sequence diagram lengkap untuk proses auto-upgrade dan manual downgrade tier membership:Auto-Upgrade Flow
Manual Downgrade Flow
Reward Redemption Flow
Fitur Manager
CRUD Tier
Drag to Reorder
Tier bisa di-drag untuk mengubah urutan prioritas. Urutan ini menentukan level mana yang lebih tinggi dalam hierarki.Auto-Upgrade
Jikaauto_upgrade = true, sistem otomatis menaikkan tier pelanggan saat kriteria terpenuhi:
Integrasi dengan POS
Saat pelanggan melakukan transaksi di POS:- POS lookup customer berdasarkan nama/telepon
- Baca
membership_level_iddandiscount_percentage - Apply diskon otomatis ke total transaksi
- Tambah poin/stamp berdasarkan
points_multiplier - Cek apakah kriteria upgrade terpenuhi → auto-upgrade jika ya
Stamp Scheme Persistence
Untuk skema stamp, tagSCHEME:STAMP di-inject ke array benefits sebagai mekanisme persistence untuk identifikasi skema.
Penanganan Loyalty Deficit
Ketika transaksi di-void atau diretur setelah poin/stamp sudah terpakai (redeem), sistem mencatat defisit:Skenario Deficit
Tips Penggunaan
- Mulai dengan 3-4 tier agar program loyalty tidak terlalu kompleks
- Tetapkan
min_purchaseyang realistis berdasarkan data historis - Berikan benefit yang berbeda signifikan antar tier untuk motivasi upgrade
- Aktifkan
auto_upgradeagar pelanggan otomatis naik tier - Review dan sesuaikan kriteria tier setiap kuartal
- Gunakan birthday bonus untuk meningkatkan engagement
- Manfaatkan
CustomerLoyaltyLedgeruntuk audit trail — setiap mutasi tercatat denganpoints_beforedanpoints_aftersehingga bisa dilacak sepenuhnya - Untuk skema stamp, pastikan
stamp_per_transactionsesuai dengan rata-rata nilai transaksi agar program terasa adil - Gunakan
expiry_daysuntuk mendorong customer aktif menukarkan poin sebelum hangus - Selalu monitor
loyalty_deficit_pointsdan segera lakukan rekonsiliasi manual agar saldo member tetap akurat - Pertimbangkan skema
hybridjika bisnis memiliki multi-channel (dine-in, delivery, marketplace) agar customer punya banyak jalur untuk naik tier
