Système de remises de fidélité : installation et aide
Démarrage rapide
- Installez le ZIP dans Modules > "Module Manager", cliquez sur "Configure" et sélectionnez une boutique.
- Dans Niveaux, ouvrez Paramètres et vérifiez "Discount source", les commandes comptabilisées, "Evaluation window" et les règles de changement de niveau.
- Ajoutez des niveaux avec Nom du niveau, Couleur, Icône et Actif, puis classez-les du rang le plus bas au plus élevé.
- Ajoutez des Règles de qualification et des Avantages, y compris le montant, la politique de promotion et la sélection de produits de chaque Remise.
- Utilisez "Price preview" et "Rebuild prices" ; attendez "Prices ready".
- Ouvrez Clients et lancez "Start silent recount", puis continuez jusqu'à la fin.
- Planifiez un appel de l'URL sous Paramètres > Configuration > "Scheduled maintenance" toutes les minutes, sauf si la suite gère la planification.
- Connectez-vous avec un compte client de test et vérifiez le niveau, la progression dans le compte, les prix des produits, le panier et tout avantage de livraison.
Nécessite PrestaShop 1.6.1 ou ultérieur et PHP 7.1 ou ultérieur.
Manuel de configuration
Installer et choisir une boutique
Importez le ZIP dans Modules > "Module Manager" > "Upload a module". Installez-le et cliquez sur "Configure" pour ouvrir Configuration des niveaux.
Ouvrez "Loyalty Discounts" pour accéder à Niveaux, Clients, Tableau de bord et Paramètres > Configuration. Sélectionnez une boutique avant toute modification. La page des niveaux exige une autorisation de consultation pour lire, de modification pour effectuer des changements et de suppression pour supprimer. Rechargez la page si son jeton de sécurité expire.
Nécessite PrestaShop 1.6.1 ou ultérieur et PHP 7.1 ou ultérieur.
Le module utilise un programme de fidélité B2C propre à chaque boutique. La qualification se configure avec des règles. Vous ne renseignez pas un unique champ Dépenses minimales et ne reliez pas manuellement chaque niveau à un groupe de clients existant.
Configurer les paramètres du programme
Dans Niveaux, cliquez sur Paramètres. Cette boîte de dialogue contient les paramètres de qualification, de prix, de notification et de livraison. La page distincte Paramètres > Configuration contient les intégrations et l'URL de maintenance.
Choisir la source des remises
"Discount source" est réglé par défaut sur "Module tier benefits". Cette option utilise les avantages de remise avec des paramètres de montant, de taxe, de politique de promotion et de sélection de produits.
Choisissez "PrestaShop group reduction" si vous avez besoin du fonctionnement natif des réductions de groupe. Le mode groupe utilise la première remise active lorsqu'elle est exprimée en pourcentage ; les groupes liés conservent leur propre réduction. Le module crée ou gère les groupes de niveaux selon les besoins. Ne supposez pas qu'un pourcentage affiché est purement informatif.
Utilisez "Rebuild prices" après avoir vérifié les changements et attendez "Prices ready". Selon votre version de PrestaShop, la tarification du module utilise les hooks natifs de prix ou des prix spécifiques compilés. Vérifiez les constats de compatibilité signalés et tout rapport "Original customer group prices" avant d'utiliser le résultat.
Définir ce qui est comptabilisé dans le chiffre d'affaires
| Paramètre | Valeur par défaut | Comment le configurer |
|---|---|---|
| "Counted order states" | Vide | Si vide, toutes les commandes valides sont comptabilisées. Sélectionnez des statuts pour restreindre l'historique comptabilisé. |
| "Deduct refunds" | Oui | Soustrait les montants remboursés du chiffre d'affaires. Désactivez uniquement si votre programme comptabilise délibérément les dépenses remboursées. |
| "Include tax" | Oui | Comptabilise les dépenses TTC. |
| "Include shipping" | Non | Ajoute les frais de livraison à la base des dépenses lorsque cette option est activée. |
Les indicateurs enregistrés utilisent la devise par défaut de la boutique. Ne comparez pas un seuil à un total non converti provenant d'une autre devise.
Sélectionner la période d'évaluation
| Paramètre | Valeur par défaut | Comment le configurer |
|---|---|---|
| "Evaluation window" | Durée de vie | Choisissez Durée de vie, "Rolling days", "Rolling months" ou "Calendar year". |
| "Rolling window days" | 365 | Utilisé pour "Rolling days". |
| "Rolling window months" | 12 | Utilisé pour "Rolling months". |
| "Minimum months for averages" | 3 | Diviseur minimal pour les moyennes mensuelles de chiffre d'affaires et de commandes. |
Utilisez la période correspondant à votre politique de qualification. Une période glissante peut faire baisser le niveau d'un client lorsque les anciennes commandes en sortent.
Contrôler les changements de niveau
| Paramètre | Valeur par défaut | Comment le configurer |
|---|---|---|
| "Evaluation frequency" | "On order" | Choisissez "On order", "Daily" ou "Weekly". Les tâches planifiées nécessitent des appels de maintenance. |
| "Immediate upgrade" | Oui | Permet à une commande de déclencher immédiatement le passage à un niveau supérieur. |
| "Initial tier" | "No initial tier" | Choisissez un niveau de repli lorsqu'aucune règle de qualification n'est satisfaite. |
| "Protection months" | 0 | Conserve un niveau nouvellement acquis pendant la période configurée. Zéro n'accorde aucune protection. |
| "Grace days" | 0 | Accorde un délai pour se qualifier à nouveau avant la rétrogradation. Zéro n'accorde aucun délai supplémentaire. |
| "Automatic downgrade" | Oui | Autorise le passage à un niveau inférieur lorsque la qualification est perdue. |
L'ordre des niveaux détermine leur rang. Le dernier niveau admissible dans la liste ordonnée constitue le candidat supérieur. Classez les niveaux du plus bas au plus élevé.
Configurer les notifications et l'affichage
| Paramètre | Valeur par défaut | Comment le configurer |
|---|---|---|
| "Notify on upgrade" | Oui | Envoie une notification de changement de niveau pour les événements admissibles non silencieux. |
| "Notify on downgrade" | Non | Activez si les clients doivent recevoir des notifications de rétrogradation. |
| "Notify before downgrade" | Non | Active les avertissements avant la fin d'un délai de grâce. |
| "Warning days" | 7 | Délai d'anticipation lorsque les avertissements sont activés. |
| "Show progress" | Oui | Affiche les informations de fidélité dans l'espace du compte client connecté. |
Configurer la livraison
"Carriers priced by loyalty" est initialement vide. Sélectionnez les transporteurs natifs admissibles si vous utilisez des avantages de livraison gratuite ou réduite. Le module devient le module de tarification des transporteurs pris en charge sur les versions utilisant cette intégration. Les transporteurs déjà gérés par un autre module de transport ne peuvent pas être pris en charge. Libérer un transporteur rétablit ses paramètres d'origine enregistrés.
Lisez le résultat de la prise en charge après l'enregistrement. Certains cœurs fournissent directement le hook de livraison ; l'interface s'adapte à cette capacité. Ne supposez pas qu'un avantage de livraison s'applique à un transporteur non sélectionné ou non pris en charge.
Créer les niveaux et les règles de qualification
Cliquez sur Ajouter un niveau. Saisissez le Nom du niveau multilingue. Un nom dans la langue par défaut de la boutique est obligatoire. Couleur vaut par défaut #6c757d, Icône est initialement vide et Actif est initialement activé. Enregistrez le niveau, puis placez-le au rang souhaité.
Sous Règles de qualification, cliquez sur Ajouter une règle. Choisissez Type de règle, Opérateur et Valeur. Les règles d'un même Groupe de règles utilisent AND. Ajouter un groupe OU crée un autre groupe alternatif.
Les types de règles B2C comprennent "Total turnover", "Monthly average turnover", "Total orders", "Average order value", "Order frequency", "Account age", "Return rate", "Late payments", "Consecutive months with orders", "Days since last order", "Categories purchased" et "Products purchased". Certains éléments dépendent des données ou intégrations disponibles. Un indicateur indisponible ne doit pas être considéré comme satisfaisant une règle.
Pour les indicateurs monétaires, utilisez la devise par défaut de la boutique. La fréquence de commande correspond aux commandes par mois. L'ancienneté et l'inactivité sont exprimées en jours. Les règles portant sur les listes de catégories et de produits acceptent des identifiants positifs séparés par des virgules avec "Contains all".
Pour un niveau Gold fondé sur les dépenses, créez :
Tier Name: Gold
Qualification Rules:
Rule Type: Total turnover
Operator: At least
Value: 500
Cela remplace l'ancien champ à seuil unique. Vous pouvez aussi qualifier les clients par le nombre de commandes ou combiner plusieurs critères.
Configurer les avantages des niveaux
Sous Avantages, cliquez sur Ajouter un avantage. Choisissez Type d'avantage et renseignez les valeurs requises. "Custom Label" est facultatif et multilingue. Aucun avantage n'existe tant que vous n'en avez pas enregistré un.
| Type d'avantage | Champs à configurer | Signification opérationnelle |
|---|---|---|
| Remise | "Discount type", Montant, "Tax basis", "Currency" pour un montant fixe, "Promotion policy", "Product selection" | Applique une remise en pourcentage ou fixe en utilisant la source de tarification sélectionnée. |
| "Free shipping" | "Minimum shipment amount (0 = no minimum)", "Tax basis", "Currency", "Product selection" | Livraison gratuite avec les transporteurs pris en charge lorsque l'envoi physique remplit les conditions. |
| "Reduced shipping" | "Percentage", "Product selection" | Réduit les frais de livraison pris en charge. |
| "Payment terms" | "Days" | Publie l'avantage configuré ; ne supposez pas que cela crée une passerelle de paiement autonome. |
| "Credit limit" | Montant, "Coverage ratio (%)", "Payment days" | Enregistre les données de l'avantage de crédit pour les intégrations qui les utilisent. |
| "Extended returns" | "Days" | Décrit le délai de retour du niveau. |
| "Dedicated representative" | "Representative" | Associe l'employé sélectionné. |
| "Early sale access" | "Hours" | Enregistre l'avantage d'accès anticipé. |
| "Exclusive products" | "Product selection" | Enregistre le périmètre de produits concerné. |
| "Volume rebates" | "Percentage", "Period" | Enregistre des conditions de ristourne "Monthly", "Quarterly" ou "Yearly". |
| "Free samples" | "Samples per month" | Enregistre le quota mensuel. |
| "Priority support", "Priority handling", "Free refunds" | Avantage actif et libellé facultatif | Enregistre le droit nommé. |
Le module autonome applique automatiquement la tarification des remises et les réductions de livraison prises en charge. Les autres types d'avantages sont enregistrés avec le niveau, mais le module ne les exécute pas : exécution, remboursements, contrôle d'accès, versement de ristournes et conditions de paiement nécessitent votre propre processus ou une autre intégration. Mettez-les en place avant de promettre ces avantages aux clients.
Pour les remises, le formulaire de nouvel avantage initialise "Discount type" à "Percentage", "Tax basis" à "Tax excluded" et "Promotion policy" à "Use the better price". Saisissez explicitement le montant. Les montants fixes nécessitent une devise. Les autres politiques de promotion sont "Only products without promotions" et "Stack with promotions".
"Product selection" propose "All products" ou "Selected products". Vérifiez le sélecteur avant d'enregistrer. Pour les avantages de livraison, chaque produit physique de l'envoi doit appartenir à la sélection admissible. Les seuils utilisent la marchandise physique après les remises sur les produits et avant les remises sur le panier.
Pour l'exemple Gold, ajoutez un avantage Remise avec "Percentage" et Montant 10. En mode de tarification du module, il s'agit d'une définition de remise opérationnelle. Ne la recréez pas séparément comme remise native de groupe, sauf si vous avez volontairement choisi cette source.
Prévisualiser et publier les prix
Utilisez "Price preview" d'un niveau pour tester un produit, une déclinaison et une quantité. L'aperçu de référence utilise la devise et le pays par défaut de la boutique. Il affiche les prix unitaires hors écotaxe et personnalisation. La quantité sélectionne le palier tarifaire applicable.
Vérifiez la promotion native, la politique retenue, le prix final, la ligne compilée et les constats de compatibilité. Les définitions enregistrées et les prix compilés peuvent différer jusqu'à la fin de la reconstruction. Utilisez "Rebuild prices" et attendez "Prices ready" avant de vérifier la boutique.
Utilisez "Shipping preview" pour un niveau doté d'un avantage de livraison. Indiquez des produits et des quantités, ou un panier existant et ses paramètres de livraison. Vérifiez le transporteur, le contenu de l'envoi, les frais de transport natifs, l'économie, les frais à payer, le seuil et le montant manquant. Un aperçu peut être indisponible lorsqu'il nécessiterait un appel à un autre module de transport.
Recalculer les clients et planifier la maintenance
Ouvrez Clients. Utilisez "Start silent recount" pour évaluer les clients existants sans envoyer de messages initiaux de changement de niveau. Poursuivez avec "Continue recount" jusqu'à la fin, ou laissez cron continuer.
Pour les traitements de prix par lots, utilisez "Start pricing reconciliation" et "Continue pricing reconciliation". Examinez la liste des clients et l'instantané actuel d'un client. La liste permet l'export et affiche les informations d'évaluation enregistrées. Le panneau de détail du client comprend les informations de fidélité actuelles et l'historique récent.
Ouvrez Paramètres > Configuration. Sous "Scheduled maintenance", copiez l'URL générée et appelez-la toutes les minutes. Elle contient l'identifiant de la boutique et un jeton privé. Par exemple :
* * * * * curl -fsS "YOUR_EXACT_SCHEDULED_MAINTENANCE_URL" >/dev/null
Utilisez l'URL réellement copiée. Le contrôleur exige que son id_shop corresponde à la boutique de la requête et qu'un jeton valide de 64 caractères soit fourni. La maintenance poursuit les évaluations arrivées à échéance, les lots de recalcul, le rapprochement des prix et les nouvelles tentatives de notification. Si la suite est active, son planificateur gère ces tâches et le lanceur autonome peut ignorer l'exécution.
La même page propose "Enable edrone" et "edrone app ID". L'intégration reste désactivée tant qu'elle n'est pas activée et nécessite un identifiant d'application non vide. Ne l'activez pas sans l'identifiant du compte prévu.
Vérifier l'affichage client et les notifications
Connectez-vous avec un compte client de test après le recalcul. Ouvrez la page du compte et comparez le niveau actuel, la base de qualification, le niveau suivant, les critères non satisfaits et les avantages à l'instantané du Back Office. Les visiteurs non connectés n'ont pas de statut de fidélité personnel.
Vérifiez les prix dans une liste, sur une fiche produit, dans le panier et dans une commande de test finalisée. Vérifiez une commande avec promotion et une commande remboursée par rapport aux statuts comptabilisés et aux paramètres de remboursement. Le moteur actuel évalue l'historique des commandes et les règles de transition ; il ne se contente pas d'ajouter indéfiniment le montant de chaque commande validée.
Le template du compte peut être personnalisé à cet emplacement :
/themes/your-theme/modules/mprloyaltydiscountssystem/views/templates/hook/customer_account.tpl
Il utilise le template d'instantané de fidélité actuel. Mettez en forme le conteneur du compte avec .mpr-loyalty-account, la liste des indicateurs avec .mpr-loyalty-details et les critères non satisfaits avec .mpr-loyalty-requirements. L'ancien balisage de badge et de barre de progression en pourcentage n'est pas l'interface du template actuel.
L'envoi des e-mails de niveau utilise mails/en/loyalty_upgrade.html et loyalty_downgrade.html, avec prise en charge du polonais et repli sur l'anglais pour les autres langues dans l'expéditeur. Les variables actuelles comprennent {firstname}, {lastname}, {notification}, {tier_name}, {base_tier_name}, {tier_benefits}, {total_turnover}, {window}, {basis}, {next_tier_name}, {shortfalls}, {account_url} et {shop_name}. L'ancien exemple {tier_discount} n'est pas un jeton actuel de l'expéditeur.
Résoudre les problèmes et désinstaller
Si les modifications ne peuvent pas être enregistrées, sélectionnez une boutique et vérifiez les autorisations de l'employé et la validité du jeton. Si les clients n'ont pas de niveau, vérifiez les règles actives, la logique des groupes, les statuts comptabilisés, les indicateurs disponibles et la période d'évaluation.
Si les prix diffèrent des définitions, vérifiez l'état de reconstruction et les constats de compatibilité. Si la livraison ne change pas, vérifiez la prise en charge du transporteur et le contenu admissible de l'envoi. Si la progression est absente, vérifiez "Show progress", la connexion, le hook du compte et le module qui gère actuellement l'exécution de la fidélité.
Utilisez Paramètres > Intégrité pour les vérifications de l'infrastructure du module. Examinez le JSON de maintenance et les diagnostics du module pour les lots en échec ou les problèmes d'envoi d'e-mails. Évitez de répéter un enregistrement de définition réussi parce qu'une reconstruction ultérieure a échoué ; utilisez "Rebuild prices" pour réessayer.
Désactivez ou désinstallez le module via "Module Manager" pour l'arrêter. Le nettoyage en fonctionnement libère les lignes de prix et les droits sur les groupes détenus, puis transfère ou libère les transporteurs pris en charge selon le cas. Les tables de fidélité partagées sont déclarées persistantes et conservées. Les entrées de menu autonomes, la configuration du module et les préférences d'administration sont supprimées à la désinstallation. Conservez une sauvegarde de la base de données si vous avez besoin d'un export historique complet.
Questions
2
Loyalty Discounts System ralentit-il ma boutique ?
Dans une installation multiboutique, les dépenses de fidélité sont-elles suivies par boutique ou cumulées ?
Non. Les programmes de fidélité et la situation de chaque client sont propres à chaque boutique, et la requête d’historique ne compte que les commandes de cette boutique. Évaluez et vérifiez le client séparément dans chaque boutique concernée.
Problèmes connus
14
Renforcement de la sécurité
Le recalcul pouvait effacer la situation du client
Des commandes impayées pouvaient accorder un niveau de fidélité
Bons et remboursements faussaient les dépenses éligibles
Les prix par niveau pouvaient être faux ou les remises inactives
Le recalcul des prix pouvait modifier les promotions du marchand
Les libellés du menu de fidélité étaient illisibles
Des clients éligibles pouvaient ne pas obtenir leur niveau
Des messages d'administration restaient en anglais
Des traductions incorrectes s'affichaient
Le regroupement des ressources pouvait perturber l'affichage
Les états de commande de fidélité choisis n'étaient pas conservés
Des données de fidélité requises manquaient après l'installation
Les filtres des listes d'administration fonctionnaient mal
Demandes de fonctionnalités
12
Implémenté
Réductions de fidélité par paliers de dépenses
Niveaux de fidélité selon les dépenses
Mises à jour du module depuis le back-office
Vérifications de l’installation
Langues d’administration supplémentaires
Gestion étendue des niveaux
Avantages de livraison liés à la fidélité
Règles de combinaison avec les promotions
Période de calcul des dépenses
Protection du niveau acquis
E-mails de fidélité enrichis
Tags de niveau pour edrone
Journal des modifications
v1.1.102026-09-22
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedPersist loyalty order state settings
- FixedInstall loyalty tables through schema manager
- FixedReplace Tools::displayPrice with PriceFormatter compat wrapper
Versions précédentes
v1.0.02026-05-11
- Initialrelease: automatic customer group assignment based on cumulative spending thresholds
- InitialConfigurable tiers: set spending threshold and target customer group per level
- InitialCompatible with PrestaShop native customer group discounts for seamless pricing rules
- InitialAdmin overview showing each customer's current tier, total spend, and next threshold
v1.3.02026-04-20
- Addedadmin menu management via MenuInstaller for streamlined module setup
- Addedself-healing integrity checks for automatic diagnostics and repair
- AddedLicense management tab with key management and renewal options
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedsettings form organization with tabbed layout
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.2.02026-02-19
- Addedfull compatibility with PrestaShop 9.x and Hummingbird theme
- Addedspending tier preview on the My Account page showing progress to next discount level
- Improvedcumulative spend recalculation: background job processes all customers nightly via cron
- Fixedcustomer group not reverting when a qualifying order was refunded
- Addedconfigurable spending currency for multi-currency stores with exchange rate normalisation
v1.1.02025-10-07
- Addedthreshold editor with unlimited tiers, each with its own discount percentage or fixed amount
- Improvedaudit log: records each group assignment change with trigger order reference
- Fixedtier upgrade not applying immediately when order status changed to 'Payment accepted'
- Addedemail notification template for customers promoted to a new loyalty tier
Demo
Testez le module complet avant d'acheter
Achetez la licence plus tard et gardez vos réglages.
- Votre démo de 30 jours Testez-le sur votre propre boutique pendant 30 jours à partir de la première installation.
- Boutique de démo prête Découvrez une boutique de démo prête dans votre navigateur.
- Sans inscription Ni compte, ni e-mail, ni domaine de boutique requis.
En téléchargeant, vous acceptez les conditions de la démo et la politique de confidentialité.
En ouvrant cette démo, vous acceptez les conditions de la démo et la politique de confidentialité.