Munkafolyamat: Hűségprogram — Ügyfélhűség
Érintett modulok: Hűség (Szabályok · Tranzakciók · Beváltás · Tagság · Programok) · Számlák · OmniSales · Ügyfelek
Ki használja: Marketing · Értékesítés · Ügyfélsiker
Tipikus időtartam: Folyamatos — pontok gyűlnek minden fizetéssel
Áttekintés
A Hűség modul egy teljes hűségrendszert implementál: automatikus pontfelhalmozás számla fizetésekor, háromféle bónusz jutalom (új fiók, születésnap, manuális), beváltás 4 különböző kontextusban (admin számla, ügyfélportál, OmniSales, voucher), és egy szintrendszer differenciált előnyökkel szintenként.
Szükséges feltétel: A
loyalty_settingglobális kapcsolónak1-re kell állítani a Beállítások → Marketing → Hűség menüben. E nélkül azafter_payment_addedhook nem hajt végre pont logikát, függetlenül a konfigurált szabályoktól.
Nincs automatikus pontlejárat. A pontok csak explicit beváltáson keresztül csökkennek.
Folyamat diagram
[BEÁLLÍTÁS — admin, egyszer]
│
├── Globális aktiválás: loyalty_setting = 1
├── Hűségszabályok: keresési alap (card_total / product_category / product)
│ + beváltási szintek (point_weight pontsávonként)
├── Tagsági Szabályok (Szintek): Bronz / Ezüst / Arany ponthatáronként
├── Tagsági Programok: kedvezmények szintenként (kártya/kategória/termék)
└── Hűségkártyák: vizuális sablon (opcionális)
│
↓
[PONTFELHALMOZÁS — automatikus fizetéskor]
│
├── Kiváltó: after_payment_added → számla állapot = FIZETVE (2)
├── Rendszer aktív szabályokat keres az ügyfélhez (client_id vagy client_group szerint)
│
├── rule_base = 'card_total':
│ pontok = poin_awarded × floor(számla_összeg / vásárlási_érték)
│ (pl.: 10 pont 100 RON-onként elköltve)
│
├── rule_base = 'product_category':
│ számlasonként: ha termék csoport = rel_id a rule_detail-ben
│ → pontok = loyalty_point × mennyiség
│
└── rule_base = 'product':
számlasonként: ha termék = rel_id a rule_detail-ben
→ pontok = loyalty_point × mennyiség
│
├── Beszúrás loy_transation-be: type='debit', reference='order_debit'
└── clients.loy_point += szerzett pontok
│
↓
[BÓNUSZ JUTALMAK]
│
├── Új fiók (after_client_added hook):
│ → szabály MAX(create_account_point) értékkel, ma aktív
│ → type='credit', reference='manual_credit'
│
├── Születésnap (cron before_cron_run hook):
│ → ügyfeleket keres 'Születésnap' egyedi mezővel = ma (hónap+nap)
│ → évente egyszer (ellenőrzi loy_transation.note='bonus_points_for_customers_birthday')
│ → e-mail sablon küldve: 'loyalty-birthday-bonus-point'
│
└── Manuális kredit:
Admin → Ügyfél → Hűség → Manuális kredit
type='credit', reference='manual_credit'
│
↓
[SZINTRENDSZER]
│
├── Szint meghatározva a clients.loy_point értéke alapján
│ Bronz: 0–999 · Ezüst: 1000–4999 · Arany: 5000+
├── Aktív program → kedvezmények automatikusan alkalmazva a számlán
└── Szint látható az ügyfélportálon
│
↓
[BEVÁLTÁS]
│
├── Admin számla: "Beváltás" gomb → pontok levonva a végösszegből
├── Ügyfélportál: önkiszolgáló beváltás
├── OmniSales: POS értékesítésnél alkalmazva
└── Voucher: pontok voucherré konvertálva
│
├── Minden beváltásnál: loy_transation rekord type='credit', reference='redemption'
└── clients.loy_point -= beváltott pontok
│
[HŰSÉGPROGRAM AKTÍV ✓]