Skip to main content

title: “Company Membership — Konfigurasi Membership Perusahaan” description: “MembershipLevelManager.jsx (821 baris) — CRUD CustomerMembership entity, 5 skema loyalty (spending/stamp/points/visits/hybrid), auto-upgrade tier, multi-company isolation, dan integrasi real-time dengan POS.”

Company Membership — Konfigurasi Membership Perusahaan

Company Membership Halaman Company Membership (MembershipLevelManager.jsx — 821 baris) mengelola konfigurasi membership level di tingkat perusahaan. Komponen ini merupakan interface untuk entitas CustomerMembership yang di-scope per company_id, memungkinkan setiap perusahaan memiliki program loyalty yang benar-benar independen dengan 5 skema loyalty, auto-upgrade tier, dan benefit kustom. Konfigurasi yang dibuat di halaman ini langsung berdampak ke seluruh transaksi POS — saat kasir memasukkan nomor member, sistem otomatis lookup tier dari CustomerMembership dan apply diskon + poin multiplier yang sesuai.

Arsitektur Komponen

Akses Halaman

Entitas: CustomerMembership

5 Skema Loyalty

Multi-Company Isolation

Setiap record CustomerMembership terikat pada company_id melalui Row-Level Security (RLS), sehingga perusahaan yang berbeda bisa memiliki program loyalty yang benar-benar independen.

Auto-Upgrade Flow

Integrasi dengan Modul Lain

Perbedaan dengan Customer Membership

Tips

  • Mulai dari skema sederhana (spending) sebelum beralih ke hybrid — lebih mudah dipahami pelanggan
  • Set auto_upgrade = true untuk semua tier agar pelanggan otomatis naik tanpa intervensi manual
  • Review threshold secara berkala — jika terlalu banyak pelanggan di tier tertinggi, pertimbangkan menaikkan kriteria
  • Gunakan warna tier yang berbeda jelas agar kasir bisa langsung identifikasi tier pelanggan dari badge
  • Custom benefits bisa digunakan untuk benefit non-sistem seperti “free parking” atau “early access”

Entity Relationship Diagram

Tabel Schema — CustomerMembership

Entitas CustomerMembership mendefinisikan tier membership per perusahaan. Total 26 field.

Tabel Schema — CustomerLoyaltyLedger

Entitas CustomerLoyaltyLedger mencatat setiap mutasi loyalty (earn, redeem, reversal, upgrade, adjustment). Total 24 field.

State Machine — Membership Tier Progression

Sequence Diagram — Tier Upgrade

Sequence Diagram — Points Expiry

Sequence Diagram — Member Benefits Application

Enum Tables

scheme_type — Skema Loyalty

reward_type — Jenis Reward

event_type — Tipe Event Loyalty Ledger

membership_tier (POSMember) — Tier Legacy

RBAC — Hak Akses Company Membership

Catatan RLS: Semua operasi pada CustomerMembership dan CustomerLoyaltyLedger di-filter oleh company_id = user.data.active_company_id melalui Row-Level Security, memastikan isolasi data antar perusahaan.