PS PrestaShop Débutant

Preuve Sociale — Notifications d’achat & Visiteurs — Guide complet

Installer, configurer et exploiter la preuve sociale éthique : notifications d'achats réels anonymisées (3 niveaux), compteur de visiteurs en direct sans cookie, temps arrondis, seuil minimum d'affichage et conformité RGPD pour PrestaShop 8 et 9.

Mis à jour Version du module 1.0.0

Présentation

Le module Preuve Sociale — Notifications d’achat & Visiteurs en direct ajoute deux mécanismes de réassurance sur vos fiches produit : des notifications discrètes d’achats récents (« Marie L. a acheté ce produit il y a 2 h ») et un badge de visiteurs en direct (« 12 personnes consultent ce produit »).

Sa particularité est son approche éthique et RGPD by design : il n’affiche que des commandes réellement passées dans votre boutique et des visiteurs réellement présents. Il n’invente jamais rien. L’anonymisation est appliquée côté serveur avant tout envoi au navigateur, les temps sont arrondis, aucune donnée client brute n’est exposée et le module ne dépose aucun cookie.

Compatible PrestaShop 8.0 à 9.x, multiboutique et multilingue (FR/EN/ES/DE/IT inclus), sans Composer ni jQuery. S’il n’y a pas de commandes récentes ou pas assez de visiteurs, le module n’affiche simplement rien.

Installation

  1. Dans le back-office, ouvrez Modules > Module Manager.
  2. Cliquez sur Téléverser un module et sélectionnez le fichier dfsocialproof.zip.
  3. L’installation crée automatiquement la table des visiteurs et enregistre les valeurs de configuration par défaut.
  4. Le module est actif immédiatement sur les fiches produit avec des réglages prudents et fonctionnels.

Aucun réglage n’est obligatoire pour démarrer. Par défaut : notifications sur les commandes des 7 derniers jours, anonymisation « prénom + initiale », compteur affiché à partir de 3 visiteurs simultanés.

Configuration

La page Configurer est organisée en trois panneaux, plus un encart « Privacy by design » qui récapitule les garanties du module.

Notifications d’achat

  • Activer les notifications d’achat : interrupteur du premier mécanisme.
  • Fenêtre temporelle (heures) : seules les commandes réelles passées dans cette fenêtre sont affichées (168 h par défaut, soit 7 jours). S’il n’y en a aucune, rien ne s’affiche.
  • Nombre maximum de notifications : plafond par chargement de page (5 par défaut).
  • Niveau d’anonymisation : trois modes détaillés dans la section suivante.
  • Statuts de commande pris en compte : liste à sélection multiple (Ctrl/Cmd pour en choisir plusieurs). Seules les commandes dans ces statuts génèrent des notifications ; par défaut, les statuts « validés » de votre boutique.

Compteur de visiteurs

  • Activer le compteur de visiteurs : interrupteur du second mécanisme.
  • Fenêtre de comptage (minutes) : un visiteur est compté tant qu’il est actif dans cette fenêtre (15 min par défaut). Les enregistrements sont purgés automatiquement ensuite.
  • Minimum de visiteurs pour afficher : en dessous de ce seuil (3 par défaut), le badge reste masqué pour ne jamais désigner un visiteur isolé.

Affichage

  • Position : coin d’affichage des notifications (bas gauche ou bas droite).
  • Délai initial (secondes) : temps avant la première notification (4 s par défaut).
  • Intervalle entre notifications (secondes) : espacement entre deux toasts (9 s par défaut).
  • Durée d’affichage (secondes) : temps de visibilité de chaque toast (6 s par défaut).

Les notifications ne s’affichent qu’une seule fois par chargement de page : pas de boucle infinie qui finit par agacer. Le visiteur peut fermer les toasts, et ce choix est mémorisé pour toute sa session de navigation.

Les trois niveaux d’anonymisation

Le niveau choisi s’applique à toutes les notifications, et la transformation est effectuée sur le serveur : le navigateur ne reçoit que le texte final, jamais les données d’origine.

  • Prénom + initiale : « Marie L. a acheté ce produit ». Le plus engageant, tout en restant non identifiant.
  • Ville uniquement : « Un client de Nice a acheté ce produit ». La ville provient de l’adresse de livraison de la commande.
  • Anonymat complet : « Quelqu’un a acheté ce produit ». Le plus prudent, adapté aux catalogues sensibles.

Temps relatifs arrondis

Les horodatages affichés (« il y a 2 h », « il y a 25 min ») sont volontairement arrondis — les minutes le sont aux 5 minutes près. Objectif : empêcher de réidentifier un client en recoupant l’heure exacte d’une commande avec d’autres informations. C’est un choix de privacy by design, pas une approximation technique.

Fonctionnement du compteur de visiteurs

Chaque visiteur d’une fiche produit est compté via une empreinte SHA-256 salée avec la clé secrète de votre boutique (_COOKIE_KEY_). Cette empreinte n’est jamais affichée, jamais exposée au navigateur, et sert uniquement à dédupliquer les visites.

  • Aucun cookie : le module ne dépose ni cookie ni stockage local pour compter.
  • Purge automatique : les enregistrements expirés sont supprimés opportunément de la base, sans tâche cron à configurer.
  • Seuil de dignité : sous le minimum configuré, le badge disparaît — un visiteur seul n’est jamais désigné comme « 1 personne consulte ce produit ».
  • Rafraîchissement : le compteur se met à jour toutes les 60 secondes via une requête AJAX légère.

Privacy by design et RGPD

  • Commandes réelles uniquement : aucune donnée inventée, jamais. La crédibilité de votre boutique est préservée et vous restez du bon côté du droit de la consommation (pratiques commerciales trompeuses).
  • Anonymisation côté serveur : les textes arrivent au navigateur déjà anonymisés et formatés. Aucune donnée client brute (nom complet, email, adresse) ne transite vers le front.
  • Réponses AJAX non mises en cache : les en-têtes empêchent tout stockage intermédiaire des textes.
  • Empreintes purgées : la table des visiteurs s’auto-nettoie, la rétention est limitée au strict nécessaire.
  • Zéro cookie, zéro ressource externe : rien à ajouter à votre bannière de consentement pour ce module.

Un panneau « Privacy by design » en back-office récapitule ces garanties : vous pouvez le présenter tel quel à votre DPO ou l’annexer à votre registre des traitements.

Accessibilité et performance

  • Toasts annoncés en aria-live poli pour les lecteurs d’écran.
  • Respect de prefers-reduced-motion : les animations sont désactivées si le visiteur le demande.
  • Dark mode pris en charge automatiquement.
  • Vanilla JS sans jQuery, assets chargés uniquement sur la page produit : impact négligeable sur la vitesse.

Compatibilité technique

  • PrestaShop : 8.0 à 9.x.
  • PHP : 7.4 à 8.x.
  • Hooks : actionFrontControllerSetMedia (assets et configuration front, page produit uniquement) et displayProductAdditionalInfo (badge visiteurs).
  • Multiboutique et multilingue pris en charge (traductions FR/EN/ES/DE/IT incluses).
  • Aucune dépendance Composer, aucun jQuery.

FAQ

Le module invente-t-il des achats ou des visiteurs ?

Non, jamais. Les notifications proviennent uniquement de commandes réellement enregistrées, et le compteur ne compte que des visiteurs réellement présents. Sans données, le module n’affiche rien.

Que se passe-t-il si ma boutique a peu de commandes ?

Élargissez la fenêtre temporelle (par exemple 336 h pour 14 jours) : les notifications restent vraies, seul l’horodatage relatif est plus ancien. Le module ne comblera jamais un vide avec de fausses données.

Non. Il repose sur une empreinte SHA-256 salée calculée côté serveur, jamais exposée, et purgée automatiquement. Aucun consentement supplémentaire à collecter.

Est-ce compatible PrestaShop 9 et multiboutique ?

Oui, de PrestaShop 8.0 à 9.x, avec prise en charge native du multiboutique.

Dépannage

  • Aucune notification ne s’affiche : vérifiez qu’il existe des commandes dans la fenêtre temporelle avec l’un des statuts sélectionnés. C’est le comportement normal du module en l’absence de données réelles.
  • Le compteur de visiteurs n’apparaît pas : le nombre de visiteurs actifs est probablement sous le seuil minimum. Abaissez le seuil ou testez avec plusieurs navigateurs/appareils simultanés.
  • Les notifications ne réapparaissent pas : si le visiteur a fermé un toast, ce choix est mémorisé pour la session. Ouvrez une fenêtre de navigation privée pour tester à nouveau.
  • Le badge ne se met pas à jour : le rafraîchissement se fait toutes les 60 secondes ; vérifiez aussi qu’aucun cache agressif ne bloque les requêtes AJAX du contrôleur front.
Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support