PS PrestaShop Intermédiaire

DataFirefly Live Shopping — Guide complet

Installer, configurer et animer des ventes en direct : vidéo native (HLS / MP4 / embed), Studio temps réel, offres flash, chat, rappels e-mail, replays et panier natif pour PrestaShop 1.7, 8 et 9.

Mis à jour Version du module 1.1.0

Présentation

Le module DataFirefly Live Shopping (dflive) transforme votre boutique PrestaShop en plateforme de vente vidéo en direct. Vous diffusez un live, vous épinglez des produits en temps réel, vous lancez des offres flash, vos clients ajoutent au panier sans quitter la diffusion, et la session reste accessible en replay. Tout fonctionne sur votre boutique : aucune plateforme de live shopping tierce, aucun abonnement récurrent.

Trois piliers : une vidéo native (HLS, MP4 ou embed), un Studio temps réel intégré au back-office pour piloter le live, et une couche shopping (épinglage produit, offres flash, panier natif, chat, réactions, preuve sociale, rappels e-mail).

Compatibilité

  • PrestaShop 1.7.0 à 1.7.8, 8.x et 9.x (depuis la version 1.1.0 du module)
  • PHP 5.6 à 8.3, selon la version de PrestaShop
  • Thèmes Classic et Hummingbird, ainsi que les thèmes qui en dérivent
  • Mono-boutique et multiboutique
  • Multilingue (5 langues incluses : FR, EN, ES, DE, IT)
  • Aucune dépendance (ni Composer ni framework) ; hls.js est embarqué dans le module
  • Compatible hébergement mutualisé (synchronisation par polling AJAX, sans WebSocket ni SFU)

Sur PrestaShop 1.7.0 à 1.7.5, les libellés gérés par le nouveau système de traduction de PrestaShop (fichiers XLF) s’affichent en français, car ces versions ne chargent pas encore les traductions XLF des modules. Tout est traduit à partir de 1.7.6.

Prérequis

Le module gère la lecture de la vidéo et toute la couche shopping, mais c’est vous qui fournissez la source vidéo. Selon le mode choisi :

  • HLS : un flux .m3u8 servi par votre propre serveur HLS, par Mux ou par Cloudflare Stream, alimenté par un encodeur comme OBS.
  • MP4 : une URL pointant vers un fichier .mp4 accessible publiquement.
  • Embed : un live YouTube, Twitch ou Vimeo (URL ou code d’intégration <iframe>).

Pour les rappels « Me prévenir », votre boutique doit être configurée pour envoyer des e-mails (Paramètres avancés > E-mail).

HTTPS est recommandé : la lecture automatique et le plein écran se comportent mieux sur une boutique servie en HTTPS, ce dont disposent déjà la quasi-totalité des boutiques en production.

Installation

  1. Dans le back-office, ouvrez Modules > Gestionnaire de modules.
  2. Cliquez sur Installer un module puis sélectionnez le fichier dflive.zip.
  3. Une fois installé, ouvrez le menu Vendre > Live Shopping > Lives & Replays.

À l’installation, le module crée ses tables (sessions, produits de session, messages, évènements, présence, rappels), enregistre les onglets sous Vendre, ajoute les routes /live et /live/{id}-{slug}, et active le widget de page d’accueil.

Mise à jour depuis la version 1.0.0

  1. Dans Modules > Gestionnaire de modules, téléversez le nouveau dflive.zip (ou remplacez le dossier modules/dflive par FTP).
  2. Cliquez sur Mettre à jour sur la ligne du module si PrestaShop le propose.

Le script de mise à jour 1.1.0 s’exécute automatiquement et sans perte de données. Il :

  • ajoute les colonnes nécessaires (anti-flood des invités, langue et boutique des rappels) ;
  • associe vos lives existants à toutes vos boutiques ;
  • remplace les dates vides enregistrées en 0000-00-00 par des valeurs nulles ;
  • retire le hook displayHeader, devenu inutile.

Si vous utilisez le cache CCC (combinaison des CSS et JS), videz le cache de PrestaShop après la mise à jour (Paramètres avancés > Performances > Vider le cache) pour que les nouveaux fichiers du lecteur soient pris en compte.

Créer un live

Depuis Vendre > Live Shopping > Lives & Replays, cliquez sur Ajouter. Le formulaire est organisé en onglets :

Général

  • Titre et description du live (multilingues).
  • Animateur / hôte : nom affiché comme hôte dans le chat et sous la vidéo.
  • Date / heure programmée : déclenche le compte à rebours côté spectateur.
  • Statut : programmé, en direct ou terminé. Le statut se pilote aussi depuis le Studio ; un changement fait depuis le formulaire a les mêmes effets (dates, nettoyage des offres, mise à jour chez les spectateurs).
  • Image de couverture : JPG, PNG, GIF ou WebP, affichée avant le live et dans les listes. Le type réel du fichier est contrôlé : tout autre fichier est refusé.

Vidéo

  • Type de source vidéo : HLS, MP4 ou embed.
  • Source vidéo : l’URL .m3u8, l’URL .mp4, ou l’URL / le code <iframe> embed selon le type. Pour un code embed, seule l’adresse de l’iframe est reprise côté spectateur.
  • URL du replay (VOD) (optionnelle) : par exemple l’enregistrement de votre serveur HLS, lu automatiquement une fois le live terminé.

Produits

Associez les produits qui seront présentés pendant le live grâce au sélecteur à recherche AJAX (nom, référence ou ID). Glissez-déposez les lignes pour définir l’ordre du rail. Un produit désactivé reste dans la liste mais n’est pas affiché pendant le live.

Options

Activez ou non le chat, les réactions et le replay pour cette session, ainsi que sa visibilité en boutique. En multiboutique, choisissez les boutiques sur lesquelles le live est publié.

SEO

Renseignez le meta titre, la meta description et, si vous le souhaitez, l’URL simplifiée de la page du live (laissée vide, elle est générée depuis le titre).

Diffuser le flux

Pour un live en HLS, le principe est le suivant :

  1. Configurez votre encodeur (OBS, par exemple) pour diffuser vers votre serveur HLS, Mux ou Cloudflare Stream.
  2. Récupérez l’URL .m3u8 de sortie et collez-la dans le champ Source vidéo de la session.
  3. Lancez la diffusion depuis votre encodeur, puis ouvrez le Studio et cliquez sur Lancer le live.

Le flux n’est chargé chez les spectateurs qu’au lancement du live. Si le flux HLS est momentanément indisponible (démarrage tardif de l’encodeur, coupure réseau), le lecteur réessaie automatiquement.

Le module ne vous enferme dans aucune infrastructure : vous choisissez votre chaîne de diffusion (auto-hébergée ou cloud) et vous collez simplement l’URL. Pour un test rapide, un fichier MP4 ou un embed YouTube / Twitch suffit.

Le Studio (régie)

Le Studio est la salle de contrôle intégrée au back-office. Ouvrez-le depuis le bouton Studio de la liste des lives.

  • Lancer / Terminer le live : bascule le statut de la session. Au lancement, les inscrits « Me prévenir » reçoivent leur e-mail. À la fin, les offres flash en cours sont supprimées et le produit épinglé est retiré.
  • Épingler un produit : sa carte apparaît immédiatement en surimpression chez les spectateurs, y compris ceux qui arrivent plus tard. Épingler un produit désépingle automatiquement le précédent. Le moment de la première présentation est mémorisé pour la timeline du replay.
  • Offre flash : saisissez une réduction (par exemple 20% ou 10) et, si besoin, une durée (5 à 60 minutes, ou illimitée). Le module crée un SpecificPrice à la volée et le prix recalculé s’affiche instantanément côté spectateurs. Le bouton × stoppe l’offre et rétablit le prix normal chez tout le monde.
  • Annonce épinglée : affiche un bandeau sur la vidéo des spectateurs et ajoute le message, épinglé, dans le chat.
  • Message en tant qu’hôte : écrit dans le chat au nom de l’animateur.
  • Modération : masquer, afficher ou épingler n’importe quel message. Un message masqué disparaît aussi chez les spectateurs qui l’avaient déjà reçu.
  • Statistiques live : nombre de spectateurs, de réactions et d’inscrits aux rappels, en temps réel.

Le Studio pousse des évènements (épinglage, offre, annonce, changement de statut, masquage) qui sont récupérés par les spectateurs au cycle de polling suivant. L’intervalle est configurable dans les réglages du module.

Rappels « Me prévenir »

Sur une session programmée, le spectateur saisit son e-mail (pré-rempli s’il est connecté) et clique sur Me prévenir. Le nombre d’inscrits est visible sur la page du live et dans le Studio.

Quand vous cliquez sur Lancer le live, un premier lot d’e-mails part immédiatement ; les suivants sont envoyés par lots de 20 tant que le Studio reste ouvert. Chaque inscrit reçoit l’e-mail dans la langue dans laquelle il s’est inscrit (FR, EN, ES, DE ou IT, anglais par défaut pour les autres langues), avec un lien direct vers le live. Un inscrit n’est prévenu qu’une seule fois.

Les gabarits se trouvent dans modules/dflive/mails/{langue}/dflive_reminder.html et .txt. Vous pouvez les personnaliser comme n’importe quel e-mail PrestaShop.

Côté spectateur

La page d’un live (/live/{id}-{slug}) présente :

  • Le lecteur vidéo avec un bandeau « EN DIRECT » et le nombre de spectateurs. Les navigateurs imposent une lecture automatique sans le son : un bouton Activer le son s’affiche sur la vidéo.
  • La carte du produit épinglé en surimpression, avec bouton d’ajout au panier.
  • Le rail de produits du live, chacun ajoutable au panier PrestaShop natif d’un clic. Le bloc panier du thème se met à jour sans ouvrir de fenêtre, pour ne pas interrompre le live. Le stock, les quantités minimales et les règles panier sont respectés ; pour un produit à déclinaisons, la déclinaison par défaut est ajoutée.
  • Le chat (clients et, si activé, invités) avec anti-flood, messages hôte et réactions cœurs animées.
  • Les annonces de l’hôte en bandeau sur la vidéo.
  • Les toasts de preuve sociale « Quelqu’un vient d’ajouter… » lors des ajouts au panier.

Pour une session programmée, le spectateur voit un compte à rebours (calé sur l’heure du serveur) et peut s’inscrire aux rappels. Quand le live démarre, la page bascule automatiquement en direct, sans rechargement.

Replays et timeline produits

À la fin du live, la page passe automatiquement en mode replay :

  • si une URL de replay est renseignée, la vidéo enregistrée est chargée avec ses contrôles de lecture ;
  • pour un live en embed, l’intégration reste affichée (ou l’URL de replay si vous en avez indiqué une) ;
  • sans source de replay, un écran « Live terminé » s’affiche.

Pendant la lecture du replay, chaque produit réapparaît en surimpression au moment où il a été épinglé pour la première fois pendant le direct. Le repère est compté à partir du lancement du live : pour une synchronisation exacte, votre enregistrement doit commencer au moment où vous cliquez sur Lancer le live.

Si l’option Replay disponible est désactivée, la page d’un live terminé redirige vers la liste /live.

Réglages du module

La page de configuration (Modules > Gestionnaire de modules > DataFirefly Live Shopping > Configurer) regroupe les réglages globaux. Les valeurs hors limites sont ramenées automatiquement dans la plage autorisée.

  • Intervalle de polling (3 000 ms par défaut, de 1 000 à 60 000) : fréquence de rafraîchissement du chat et des évènements pendant un live. Avant le live et en replay, le rythme est automatiquement ralenti.
  • Chat en direct et chat des invités : autorise le chat et, le cas échéant, la participation des visiteurs non connectés.
  • Réactions et social proof : active les cœurs et les toasts d’ajout au panier.
  • Timeout viewer (30 s par défaut, de 10 à 600) : durée au-delà de laquelle un spectateur inactif n’est plus compté.
  • Longueur max. message (300 par défaut, de 20 à 500) et anti-flood (3 s par défaut, 0 pour désactiver) : encadrent le chat. Pour les invités, l’anti-flood s’applique par adresse IP (stockée sous forme d’empreinte, jamais en clair).
  • Widget page d’accueil et lives affichés (4 par défaut, de 1 à 24) : pilotent l’encart de la page d’accueil.

Page liste et widget d’accueil

La page /live liste les lives en cours, à venir (les plus proches d’abord) et les replays (les plus récents d’abord). Le widget de page d’accueil met en avant ces sessions dans la limite configurée. En multiboutique, chaque boutique n’affiche que les lives qui lui sont associés.

Sécurité

  • Le chat, l’ajout au panier et l’inscription aux rappels sont protégés par le jeton anti-CSRF standard de PrestaShop.
  • Les messages du chat sont nettoyés de tout HTML avant affichage.
  • Seules de vraies images sont acceptées en couverture, et le dossier d’upload bloque l’exécution de scripts.
  • Pour un code embed, seule l’adresse de l’iframe est utilisée : aucun attribut ni script n’est injecté dans la page.

FAQ et dépannage

La vidéo ne se lance pas

Vérifiez le type de vidéo et la source. Pour un flux HLS, assurez-vous que l’URL .m3u8 est accessible publiquement et que votre encodeur diffuse bien ; le lecteur réessaie automatiquement pendant environ 90 secondes. Pour un embed, vérifiez que l’URL YouTube, Twitch ou Vimeo est valide. Avant le lancement du live, aucune vidéo n’est chargée : c’est normal.

Le live est muet

C’est une règle des navigateurs : la lecture automatique n’est autorisée que sans le son. Le spectateur clique sur Activer le son sur la vidéo.

Le prix de l’offre flash ne change pas chez les spectateurs

L’offre est appliquée via un SpecificPrice créé à la volée et propagée au cycle de polling suivant. Vérifiez l’intervalle de polling, que l’offre n’a pas déjà été stoppée et que sa durée n’est pas écoulée. Une réduction en montant supérieure ou égale au prix du produit est refusée.

Le chat n’apparaît pas ou refuse mes messages

Contrôlez que le chat est activé pour la session et globalement. Le chat invité doit être activé pour autoriser les visiteurs non connectés. L’anti-flood impose un délai minimal entre deux messages. Si le message « Rechargez la page pour continuer » apparaît, la session du visiteur a changé (connexion dans un autre onglet, par exemple) : un rechargement suffit.

Les inscrits n’ont pas reçu l’e-mail de rappel

Vérifiez la configuration e-mail de la boutique (Paramètres avancés > E-mail, avec un e-mail de test) et consultez les journaux (Paramètres avancés > Logs). Les e-mails partent au lancement du live puis par lots tant que le Studio est ouvert : laissez le Studio ouvert jusqu’à l’envoi complet.

Le compte à rebours ne s’affiche pas

Le compte à rebours n’apparaît que pour les sessions au statut programmé dont la date est renseignée. Sans date, le message « Le live va commencer » s’affiche.

Le compteur du panier ne se met pas à jour

Le produit est bien ajouté au panier ; le rafraîchissement du bloc panier dépend du module panier du thème (ps_shoppingcart). Si vous utilisez le cache CCC, videz le cache après une mise à jour du module.

Le module fonctionne-t-il sur hébergement mutualisé ?

Oui. La synchronisation temps réel utilise du polling AJAX, sans serveur WebSocket ni SFU, ce qui garantit la compatibilité avec les hébergements mutualisés courants.

Historique des versions

1.1.0 — 26 octobre 2026

  • Compatibilité PrestaShop 1.7.0 à 1.7.8 (PHP 5.6 à 8.3), en plus de 8 et 9.
  • Rappels « Me prévenir » envoyés par e-mail au lancement du live (5 langues).
  • Replays : bascule automatique, vidéo non masquée, timeline des produits.
  • Bouton « Activer le son », reprise automatique HLS, produit épinglé visible pour les arrivants.
  • Offres flash avec durée, prix normal restauré à la fin de l’offre.
  • Multiboutique : sélection des boutiques par live.
  • Sécurité : jeton anti-CSRF, contrôle des uploads, anti-flood invités par IP, embed filtré.
  • URL propres, meta SEO, fil d’Ariane, glisser-déposer des produits, annonces en bandeau.

1.0.0 — 6 juin 2026

  • Version initiale pour PrestaShop 8 et 9.
Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support