DfCartRecovery — Récupération de panier abandonné pour Shopware 6
Installer et configurer la récupération de paniers abandonnés sur Shopware 6 : relances planifiées, codes promo uniques, lien de restauration et tracking.
Présentation
DfCartRecovery ajoute à Shopware 6 (Community Edition) la récupération de paniers abandonnés, normalement réservée au plan Commercial : détection des paniers, jusqu’à 3 emails de relance planifiés, code promo unique par client, lien de restauration du panier en 1 clic et tracking des commandes récupérées. Aucun service externe, aucun build d’administration : tout se configure dans les réglages du plugin.
Prérequis
- Shopware 6.5, 6.6 ou 6.7 (Community Edition auto-hébergée — Shopware Cloud SaaS non supporté)
- PHP 8.1 ou supérieur (8.2+ recommandé)
- Le consommateur de messages et l’exécution des tâches planifiées actifs (recommandation standard de Shopware en production)
- L’envoi d’emails fonctionnel sur la boutique (les relances passent par le service mail natif de Shopware)
Installation
- Décompressez l’archive et placez le dossier
DfCartRecoverydanscustom/plugins/. - Depuis la racine Shopware, exécutez :
bin/console plugin:refresh
bin/console plugin:install --activate DfCartRecovery
bin/console cache:clear
La tâche planifiée df_cart_recovery.process est enregistrée automatiquement et s’exécute toutes les 15 minutes. Vérifiez que vos workers tournent :
bin/console scheduled-task:run
bin/console messenger:consume async low_priority
L’installation crée la table de suivi df_cart_recovery et le template email « Relance panier abandonné (DataFirefly) », pré-traduit en FR, EN, DE, ES et IT.
Configuration
Rendez-vous dans Extensions → Mes extensions → DfCartRecovery → Configuration. Trois cartes de réglages :
Général
- Activer la récupération de panier — interrupteur global du plugin.
- Valeur minimale du panier — les paniers sous ce montant sont ignorés (0 = pas de minimum).
- Rétention des données (jours) — les fiches de suivi plus anciennes sont supprimées automatiquement (30 jours par défaut, voir la section RGPD).
Emails de relance
- Nombre de relances — 1, 2 ou 3 (2 par défaut).
- Relance 1 — minutes après l’abandon du panier (60 par défaut, soit 1 heure).
- Relance 2 — minutes après la relance 1 (1440 par défaut, soit 24 heures).
- Relance 3 — minutes après la relance 2 (4320 par défaut, soit 72 heures).
La séquence 1 h / +24 h / +72 h est le standard éprouvé du retargeting email : gardez-la comme point de départ, puis ajustez selon vos statistiques de récupération.
Code promo
- Inclure un code promo unique — active la génération de codes individuels.
- Promotion pour les codes générés — sélectionnez la promotion Shopware qui portera les codes (voir ci-dessous).
- Envoyer le code avec la relance n° — 2 par défaut : les clients qui reviennent dès le premier email commandent sans remise.
- Préfixe du code — CART par défaut ; les codes générés ressemblent à
CART-7F3A91B2.
Créer la promotion pour les codes uniques
- Dans l’admin Shopware, ouvrez Marketing → Promotions et créez une promotion (ou réutilisez-en une).
- Dans l’onglet général, activez Codes promotionnels individuels.
- Définissez la remise (pourcentage ou montant), les conditions et la période de validité comme d’habitude.
- Activez la promotion, puis sélectionnez-la dans la configuration du plugin.
La promotion doit impérativement avoir les codes individuels activés : le plugin insère ses codes générés dans cette liste. Sans cette option, les codes envoyés ne seront pas acceptés au checkout.
Personnaliser l’email de relance
Le contenu s’édite dans Paramètres → Modèles d’email, type « Relance panier abandonné (DataFirefly) », pour chaque langue de la boutique. Variables Twig disponibles :
firstName/lastName— prénom et nom du clientitems— articles du panier, chacun aveclabeletquantitytotaletcurrency— montant du panier et code deviserecoveryUrl— lien de restauration du panier (à placer sur le bouton d’action)voucherCode— code promo unique (vide si non activé ou relance sans code : entourez son bloc d’une condition Twig)shopName— nom de la boutique du canal de ventereminderNumber— numéro de la relance en cours (1, 2 ou 3)
Le lien de restauration
Chaque email contient un lien unique de la forme /df-cart-recovery/jeton, généré sur le domaine du canal de vente du client, dans sa langue. Au clic, le plugin reconstruit le panier article par article, signale les produits devenus indisponibles par un message storefront, horodate le clic et redirige vers la page panier. Les liens invalides ou expirés redirigent vers l’accueil avec un message explicite.
Tracking de récupération
Dès qu’une commande est passée, le plugin rapproche l’email du client des paniers abandonnés en cours : la fiche passe en « récupérée » avec l’identifiant de commande, la date et le nombre de relances envoyées. Les relances s’arrêtent immédiatement pour ce panier. Les données sont consultables dans la table df_cart_recovery (jetons, statuts, clics, commandes liées) pour vos rapports SQL ou BI.
RGPD et données
- Aucune donnée ne quitte votre serveur ; aucun service tiers n’est appelé.
- Les fiches de suivi sont purgées automatiquement après le délai de rétention configuré.
- À la désinstallation, choisissez « Supprimer toutes les données de l’application » pour effacer la table, le template email et la configuration — ou conservez-les pour garder l’historique.
Dépannage
Aucun email n’est envoyé
- Vérifiez que la tâche planifiée tourne :
bin/console scheduled-task:listdoit montrerdf_cart_recovery.processen statut scheduled, et vos workers messenger doivent être actifs. - Testez l’envoi d’email global de la boutique (Paramètres → Agent de messagerie) : le plugin utilise le service mail standard.
- Contrôlez la valeur minimale de panier et le délai de la relance 1 : un panier abandonné il y a 20 minutes avec un délai de 60 minutes n’est pas encore éligible.
Les invités ne reçoivent rien
C’est le comportement attendu : sans adresse email, aucune relance n’est possible. Les invités sont suivis dès qu’ils s’identifient (connexion ou création de compte pendant le checkout) — la fusion de panier met la fiche à jour avec leur adresse.
Le code promo n’apparaît pas dans l’email
- Vérifiez que l’option « Inclure un code promo unique » est active et qu’une promotion est sélectionnée.
- La promotion doit exister, être active et avoir les codes individuels activés.
- Le code n’est joint qu’à partir de la relance configurée (la 2e par défaut) : la relance 1 n’en contient pas dans la configuration standard.
Le lien de restauration renvoie à l’accueil
Le jeton est invalide ou la fiche a été purgée (rétention dépassée) — le client reçoit un message l’invitant à recomposer son panier. Augmentez la durée de rétention si vos délais de relance sont longs.