DataFirefly Loyalty — Programme de fidélité Shopware 6
Programme de fidélité Shopware 6 : installation, points, paliers, bons d'achat et dépannage.
Présentation
DataFirefly Loyalty ajoute un programme de fidélité complet à Shopware 6 : vos clients gagnent des points à chaque commande, progressent dans des paliers avec multiplicateurs et convertissent leurs points en bons d’achat basés sur les promotions natives de Shopware. L’extension fonctionne sur Shopware 6.5, 6.6 et 6.7 avec un seul et même ZIP, sans aucune compilation.
Installation
Depuis l’administration
- Rendez-vous dans Extensions > Mes extensions.
- Cliquez sur Téléverser une extension et sélectionnez le fichier
DfLoyalty-1.0.0.zip. - Cliquez sur Installer, puis activez l’extension.
En ligne de commande
bin/console plugin:refresh
bin/console plugin:install --activate DfLoyalty
bin/console cache:clear
L’installation crée deux tables dédiées : df_loyalty_account (une ligne par client) et df_loyalty_transaction (le registre de toutes les opérations de points).
Aucun build JavaScript n’est nécessaire : l’extension ne contient pas de module d’administration compilé, ce qui garantit la compatibilité avec les trois branches 6.5, 6.6 et 6.7.
Configuration
Ouvrez Extensions > Mes extensions > DataFirefly Loyalty > Configurer. Tous les réglages sont disponibles par canal de vente : vous pouvez activer le programme sur une boutique uniquement, ou appliquer des taux différents selon les canaux.
Attribution des points
- Activer le programme : interrupteur général. Désactivé, la page compte client renvoie une erreur 404 et aucun point n’est attribué.
- Déclencheur d’attribution : Paiement encaissé (statut de transaction
paid, recommandé) ou Commande terminée (statut de commandecompleted). - Points par unité monétaire : nombre de points gagnés par euro dépensé. Défaut : 1.
- Base de calcul : montant TTC ou HT de la commande.
- Inclure les frais de port : par défaut, les frais de port sont exclus du calcul.
Paliers
Trois paliers sont configurables, chacun avec un nom, un seuil et un multiplicateur. Les seuils s’appliquent aux points cumulés à vie (jamais décrémentés par une conversion), le multiplicateur s’applique à tous les gains futurs.
- Palier 1 — défaut : Bronze, dès 0 point, multiplicateur ×1.0
- Palier 2 — défaut : Silver, dès 500 points, multiplicateur ×1.25
- Palier 3 — défaut : Gold, dès 2 000 points, multiplicateur ×1.5
Exemple : un client Silver (×1.25) qui passe une commande de 100 € TTC avec un taux de 1 point/€ gagne 125 points.
Conversion en bons d’achat
- Taux de conversion : nombre de points nécessaires pour 1 € de bon. Défaut : 100 (100 points = 1,00 €).
- Minimum de conversion : nombre de points minimum pour lancer une conversion. Défaut : 200.
- Pas de conversion : les points se convertissent par multiples de cette valeur. Défaut : 100.
- Validité des bons : durée de vie du bon d’achat en jours. Défaut : 90.
Fonctionnement côté client
Une entrée Programme de fidélité apparaît dans le menu du compte client. La page /account/loyalty affiche :
- le solde de points disponible et le total des points gagnés à vie ;
- le palier actuel avec une barre de progression vers le palier suivant ;
- le formulaire de conversion en bon d’achat ;
- l’historique des 50 dernières opérations (gains, conversions, annulations).
Lorsqu’un client convertit ses points, l’extension crée une promotion Shopware native : code unique de type LOYAL-XXXXXXXX, réservé à son compte, utilisable une seule fois, avec une remise fixe sur le panier. Le code s’applique dans le panier comme n’importe quel code promo. Vous retrouvez toutes les promotions générées dans Marketing > Promotions.
Annulations et remboursements
Lorsqu’une commande passe au statut Annulée ou que son paiement passe au statut Remboursé, les points gagnés sur cette commande sont automatiquement repris. L’opération est tracée dans l’historique du client sous le libellé « Annulés ». La reprise est idempotente : elle ne peut se produire qu’une seule fois par commande.
En version 1.0, un remboursement partiel n’est pas proratisé : c’est le passage du paiement complet au statut Remboursé qui déclenche la reprise de la totalité des points de la commande.
Sécurité et intégrité des données
- Le débit des points est atomique en base de données : deux conversions simultanées ne peuvent pas dépenser deux fois le même solde.
- Chaque opération est inscrite dans un registre en ajout seul, avec référence de commande, type, points signés et code du bon le cas échéant.
- La création du bon et l’écriture comptable sont exécutées dans la même transaction SQL : jamais de bon sans débit ni de débit sans bon.
Dépannage
Le lien Programme de fidélité n’apparaît pas dans le compte
L’extension injecte son lien via le bloc Twig page_account_sidebar_link_orders. Si votre thème personnalisé a supprimé ou renommé ce bloc, ajoutez le lien manuellement dans le template de la sidebar du compte, en pointant vers la route frontend.account.dfloyalty.page.
Les points ne sont pas attribués
- Vérifiez que le programme est activé pour le canal de vente concerné.
- Vérifiez le déclencheur configuré : avec Paiement encaissé, la transaction doit atteindre le statut
paid; avec Commande terminée, la commande doit atteindrecompleted. - Videz le cache après un changement de configuration :
bin/console cache:clear.
Désinstallation
Lors de la désinstallation, Shopware propose de conserver les données. Si vous décochez cette option, les tables df_loyalty_account et df_loyalty_transaction sont supprimées définitivement — les promotions déjà générées restent en place car ce sont des promotions Shopware standards.