CRMconnect Azuvio · Docs

Programme de Fidélité — Fidélisation Clients

Modules impliqués : Fidélité (Règles · Transactions · Échange · Adhésion · Programmes) · Factures · OmniSales · Clients
Qui l'utilise : Marketing · Commercial · Customer Success
Durée typique : Continu — les points s'accumulent à chaque paiement

Vue d'ensemble

Le module Fidélité implémente un système de fidélité complet : accumulation automatique de points lors du paiement des factures, trois types de bonus (nouveau compte, anniversaire, manuel), échange dans 4 contextes différents, et un système de niveaux avec avantages différenciés.

Condition requise : Le paramètre global loyalty_setting doit être à 1 dans Configuration → Marketing → Fidélité. Sans cela, aucun calcul de points n'a lieu.

Il n'y a pas d'expiration automatique des points. Les points diminuent uniquement via un échange explicite.

Diagramme de flux

[CONFIGURATION — admin, une fois]
  │
  ├── Activation globale : loyalty_setting = 1
  ├── Règles de Fidélité : type gain + niveaux d'échange (point_weight)
  ├── Règles d'Adhésion (Niveaux) : Bronze / Argent / Or par tranche de points
  ├── Programmes d'Adhésion : remises par niveau
  └── Cartes de Fidélité : modèle visuel (optionnel)
  │
  ↓
[ACCUMULATION DE POINTS — automatique lors du paiement]
  │
  ├── Déclencheur : after_payment_added → statut facture = PAYÉE (2)
  ├── Système recherche règles actives pour le client
  │
  ├── rule_base = 'card_total' :
  │     points = points_accordés × floor(total_facture / valeur_achat)
  │     (ex. : 10 points par 100 RON dépensés)
  │
  ├── rule_base = 'product_category' :
  │     par ligne facture : si groupe produit correspond → points × quantité
  │
  └── rule_base = 'product' :
        par ligne facture : si produit correspond → points × quantité
  │
  ├── Insertion dans loy_transation : type='debit', reference='order_debit'
  └── clients.loy_point += points gagnés
  │
  ↓
[BONUS SPÉCIAUX]
  │
  ├── Nouveau compte (hook after_client_added) → rule avec create_account_point max actif
  ├── Anniversaire (cron) → client avec champ 'Anniversaire' = aujourd'hui → une fois par an
  └── Manuel (admin) : loyalty/transation_form → type='credit'
  │
  ↓
[NIVEAU — calculé dynamiquement]
  │  client_rank() → trouve loy_mbs_rule où loy_point ∈ [loyalty_point_from, loyalty_point_to]
  │  Niveau le plus élevé correspondant attribué
  │
  ↓
[ÉCHANGE — 4 contextes]
  │
  ├── [A] Admin sur facture : champ échange dans le formulaire facture
  ├── [B] Client dans portail : page facture → échanger des points
  ├── [C] OmniSales/POS : champ échange dans le panier commande
  └── [D] Bon/Programme d'Adhésion : code bon ou remise automatique par niveau
  │
[CLIENT FIDÈLE ✓ · POINTS ACCUMULÉS ✓]

Modules impliqués

Fidélité & Adhésion · Factures · Avoirs · Commandes OmniSales · Clients

← Retour aux Flux de Travail