DataFirefly Price Alert — Documentation
Installation, configuration, modes d'alerte, cron, tracking de conversion et dépannage du module d'alerte baisse de prix pour PrestaShop 8 et 9.
Présentation
DataFirefly Price Alert ajoute une alerte de baisse de prix à votre boutique PrestaShop 8 ou 9. Vos visiteurs s’inscrivent depuis la fiche produit (avec ou sans compte client), choisissent entre deux modes — toute baisse ou prix cible — et reçoivent un email dès que le prix descend. Chaque commande passée par un abonné notifié est automatiquement attribuée comme conversion, avec le chiffre d’affaires récupéré visible dans le dashboard admin.
Installation
- Dans le back-office, allez dans Modules → Gestionnaire de modules → Installer un module.
- Uploadez le fichier
dfpricealert-x.x.x.zip. - Cliquez sur Installer. Le module crée deux tables (
df_pricealert_subscriberetdf_pricealert_event), enregistre ses hooks et ajoute l’onglet Price Alerts sous Catalogue.
Aucune dépendance Composer n’est requise : le module embarque un autoloader PSR-4 autonome. PHP 8.0 minimum.
Configuration
Rendez-vous dans Modules → DataFirefly Price Alert → Configurer. Les réglages disponibles :
- Double opt-in (RGPD) — activé par défaut. L’abonné reçoit un email de confirmation et l’alerte ne devient active qu’après son clic. Fortement recommandé pour la conformité RGPD.
- Mode d’alerte par défaut — le mode pré-sélectionné sur le formulaire : toute baisse ou prix cible. Le client peut toujours changer.
- Position du formulaire —
displayProductActions(sous le bouton d’achat) oudisplayProductAdditionalInfo(zone d’informations complémentaires). - Pourcentage de baisse minimum — en mode toute baisse, ignorer les baisses inférieures à N %. 0 = toute baisse déclenche.
- Seuil d’alerte marchand — recevez un email quand un produit atteint N abonnés actifs. 0 désactive.
- Email marchand — destinataire de l’alerte ci-dessus (par défaut : email de la boutique).
- Rétention (jours) — auto-purge des abonnés désinscrits/notifiés plus anciens que N jours. 180 par défaut, 0 désactive.
Fonctionnement côté client
Inscription
Le formulaire est toujours visible sur la fiche produit. Le client saisit son email et choisit :
- Toute baisse — il sera prévenu à la première réduction sous le prix affiché au moment de l’inscription (sous réserve du seuil minimum configuré).
- Quand il atteint — il saisit un prix cible, obligatoirement inférieur au prix actuel. L’alerte part uniquement quand le prix descend à ce niveau ou en dessous.
Si le produit a des déclinaisons, la combinaison sélectionnée est capturée automatiquement — et mise à jour si le client change de déclinaison avant de valider.
Confirmation (double opt-in)
Avec le double opt-in actif, l’abonné reçoit un email de confirmation. L’alerte reste en statut pending jusqu’au clic, puis passe en active. Sans double opt-in, l’alerte est active immédiatement.
Notification
Quand une baisse éligible est détectée, l’abonné reçoit un email avec l’ancien prix barré, le nouveau prix, le pourcentage de réduction, le montant économisé, et un lien direct vers le produit. Son statut passe en notified — il ne recevra pas d’autre email pour la même inscription.
Détection des baisses : les trois triggers
Le module détecte les baisses de prix par trois canaux complémentaires :
- Hook
actionObjectProductUpdateAfter— se déclenche à chaque sauvegarde d’un produit dans le back-office. Couvre les modifications manuelles de prix avec une latence nulle. - Hook
actionUpdateProductAttribute— se déclenche à la modification d’une déclinaison. Couvre les changements de prix par combinaison. - Commande CLI
bin/scan-prices.php— à brancher en cron. Indispensable pour les prix spécifiques programmés (specific prices à date), qui s’activent sans déclencher aucun hook.
Mise en place du cron
*/30 * * * * php /chemin/vers/votre/boutique/modules/dfpricealert/bin/scan-prices.php --shop=1 >> /var/log/dfpricealert.log 2>&1
Le paramètre --shop est optionnel (boutique par défaut sinon). La commande affiche le nombre d’alertes envoyées et le temps d’exécution.
Configuration recommandée : laissez les hooks actifs (latence zéro sur les modifications manuelles) et ajoutez le cron toutes les 30 minutes pour couvrir les promotions programmées.
Tracking de conversion
Sur le hook actionOrderStatusPostUpdate, le module parcourt chaque ligne de la commande et recherche un abonné en statut notified correspondant au triplet (email du client, id produit, id déclinaison). En cas de correspondance, l’abonné passe en purchased et l’id_order est enregistré.
Le match accepte soit la déclinaison exacte, soit une inscription générique (déclinaison 0) — les produits sans déclinaison et les inscriptions « produit principal » sont donc correctement attribués. Le tracking fonctionne aussi en guest checkout, car la correspondance se fait par email.
Dashboard admin
L’onglet Catalogue → Price Alerts affiche :
- 6 KPI — abonnés actifs, notifiés, convertis, taux de conversion, baisse moyenne consentie, chiffre d’affaires récupéré.
- Produits à fort potentiel — top 10 des produits par nombre d’abonnés actifs, avec prix moyen d’inscription. C’est votre liste de candidats prioritaires pour une promotion ciblée.
- Liste des abonnés — filtrable par statut, email et produit, paginée à 25 lignes.
- Actions — scanner tous les produits immédiatement, purger les anciennes entrées, exporter la liste complète en CSV.
Cycle de vie d’un abonné
Chaque inscription passe par les statuts suivants :
pending— inscrit, en attente de confirmation (double opt-in).active— alerte active, surveillée par les scans.notified— email de baisse envoyé. Statut terminal sauf achat.purchased— commande détectée après notification, conversion attribuée.unsubscribed— désinscription via le lien présent dans chaque email.
Chaque transition est journalisée dans la table df_pricealert_event (audit trail complet).
Emails
Trois modèles, chacun fourni en FR/EN/ES/DE au format HTML + texte :
- confirm — confirmation double opt-in avec bouton d’activation.
- alert — notification de baisse : ancien prix barré, nouveau prix en évidence, économie en euros et en pourcentage, bouton vers le produit.
- merchant — notification au marchand quand un produit dépasse le seuil d’abonnés actifs.
L’email part dans la langue de l’abonné (celle de la page au moment de l’inscription), avec repli automatique sur l’anglais si la langue n’est pas disponible. Les modèles sont personnalisables dans modules/dfpricealert/mails/<iso>/.
RGPD
- Double opt-in par email avant activation (activé par défaut).
- Tokens cryptographiques 32 octets (
random_bytes) uniques par abonné pour la confirmation et la désinscription. - Lien de désinscription en un clic dans chaque email.
- Auto-purge configurable des données anciennes (minimisation des données).
- Aucune donnée envoyée à des services tiers — tout reste sur votre serveur.
Dépannage
Les alertes ne partent pas
- Vérifiez que l’abonné est en statut
active(paspending— le double opt-in exige la confirmation). - Vérifiez le seuil de baisse minimum : une baisse de 3 % avec un seuil à 5 % ne déclenche pas.
- En mode prix cible, le prix doit atteindre ou passer sous la cible — pas seulement baisser.
- Pour les prix spécifiques programmés, vérifiez que le cron tourne (consultez le log).
- Testez l’envoi d’email PrestaShop en général (Paramètres avancés → E-mail → Test).
Erreurs lors de l’inscription
Le module journalise toutes les erreurs dans Paramètres avancés → Logs avec le préfixe [dfpricealert]. Le formulaire affiche par ailleurs les erreurs serveur détaillées directement sous le bouton (statut HTTP et extrait de la réponse), ce qui accélère le diagnostic.
Le formulaire n’apparaît pas
- Vérifiez la position configurée : certains thèmes n’implémentent pas
displayProductAdditionalInfo— basculez surdisplayProductActions. - Videz le cache PrestaShop (Paramètres avancés → Performances).
Désinstallation
La désinstallation supprime les deux tables du module (abonnés et événements inclus), les hooks, l’onglet admin et toutes les clés de configuration. Exportez le CSV avant si vous souhaitez conserver l’historique.