PS PrestaShop Intermédiaire

DataFirefly PWA — Guide complet

Installer, configurer et exploiter la PWA : boutique installable, campagnes push riches et programmées, alertes produit, préférences client et mode hors-ligne pour PrestaShop 8 et 9.

Mis à jour Version du module 1.3.1

Présentation

Le module DataFirefly PWA (dfpwa) transforme votre boutique PrestaShop en Progressive Web App : vos clients l’installent sur leur écran d’accueil, reçoivent des notifications push web et continuent à naviguer hors connexion. Le module est entièrement autonome : le chiffrement des notifications est géré en PHP natif, sans Composer, sans service tiers et sans abonnement.

Quatre piliers : une boutique installable, un moteur de push professionnel (campagnes riches, programmées, segmentées), des automatisations (commande, panier, stock, prix) et un mode hors-ligne.

Compatibilité et prérequis

  • PrestaShop 8.0 à 9.x, mono-boutique et multi-boutique
  • Module traduit en 7 langues : FR, EN, ES, DE, IT, NL, PL
  • Aucune dépendance : ni Composer, ni framework, ni service externe
  • HTTPS obligatoire : les PWA et le push web n’existent pas en HTTP
  • Extension PHP openssl avec la courbe prime256v1, pour le chiffrement VAPID
  • Tâche cron pour les campagnes programmées, les alertes produit et la relance panier

Si openssl ou prime256v1 ne sont pas disponibles, l’installation est bloquée avec un message explicite. Contactez votre hébergeur pour activer l’extension.

Installation

  1. Back-office : Modules > Gestionnaire de modules.
  2. Installer un module, puis sélectionnez dfpwa.zip.
  3. Cliquez sur Configurer.
  4. Copiez l’URL de cron affichée sur le tableau de bord et ajoutez-la à votre planificateur, toutes les 5 à 15 minutes.

À l’installation, le module génère vos clés VAPID et un jeton de cron, crée ses tables, installe la page des campagnes et ajoute le lien « Préférences de notification » dans le compte client. Des icônes PWA valides sont fournies : la boutique est installable immédiatement, avant même que vous ne téléversiez les vôtres.

Configuration

Application et installation

  • Nom et nom court : affichés sous l’icône une fois installée.
  • Couleur du thème et couleur de fond : barre système et écran de démarrage.
  • Mode d’affichage : standalone recommandé. Le mode browser empêche toute installation.
  • URL de démarrage : page ouverte au lancement de l’application.
  • Icônes 192 et 512 px : PNG ou WebP carrés. Une icône trop petite ou non carrée est refusée et l’icône par défaut du module est conservée, pour ne pas casser l’installabilité.
  • Bannière d’installation, délai d’affichage et aide iOS.

Diagnostic d’installabilité

Le tableau de bord vérifie point par point ce que Chrome exige avant de proposer l’installation : HTTPS, mode d’affichage compatible, icônes 192 et 512 px valides, page de repli hors-ligne disponible, module actif. Un lien ouvre le manifeste généré.

Sur iPhone et iPad, aucune invite automatique n’existe : Safari impose l’étape manuelle « Sur l’écran d’accueil ». C’est normal, et le module l’explique au visiteur. Le diagnostic concerne donc Android et les navigateurs de bureau. Côté visiteur, la commande dfpwaDiagnose() dans la console du navigateur indique précisément ce qui bloque.

Push web

  • Sujet VAPID : adresse de contact transmise aux services de push, en mailto: ou https://.
  • Demander automatiquement et message de consentement : invite douce affichée avant la demande native du navigateur, conforme au RGPD.
  • Cloche d’abonnement : six positions, masquable sur le panier et la commande. Une fois le visiteur abonné, la cloche devient un raccourci vers ses préférences.
  • Durée de vie du message : temps pendant lequel un service de push conserve une notification non délivrée.
  • Notifications maximum par appareil et par jour : 0 désactive la limite. Les messages transactionnels ne la consomment jamais.
  • Heures calmes : les campagnes mises en file pendant cette plage sont envoyées ensuite par le cron. Deux valeurs identiques désactivent la fonction.
  • Messages par exécution du cron : à réduire si votre hébergeur impose un timeout PHP court.

Mode hors-ligne

  • Stratégie de cache : stale-while-revalidate (recommandée), réseau-d’abord ou cache-d’abord.
  • Titre et message de la page de repli, et liste d’URL pré-cachées.

Le panier, le tunnel de commande et le compte client sont toujours exclus du cache. Désactiver le mode hors-ligne ne rend pas la boutique non installable : la page de repli reste servie, car un navigateur n’installe qu’une application capable de répondre hors connexion.

Envoyer une campagne

  1. Ouvrez PWA Push dans le menu d’administration.
  2. Saisissez un titre (environ 50 caractères) et un message (environ 120 caractères).
  3. Ajoutez une image de bandeau en la téléversant (JPG, PNG ou WebP, 2 Mo maximum, ratio idéal 2:1) ou en indiquant une URL. Un fichier téléversé est prioritaire.
  4. Ajoutez jusqu’à deux boutons d’action, chacun avec son libellé et sa propre URL.
  5. Ciblez par langue, groupe client, appareil (iOS, Android, ordinateur) et type de visiteur (tous, clients enregistrés, invités).
  6. Laissez le champ Programmer le vide pour envoyer immédiatement, ou indiquez une date au format AAAA-MM-JJ HH:MM.
  7. Utilisez le mode test pour vous envoyer la notification avant un envoi de masse.

Le mode test cible uniquement les appareils liés à un compte client utilisant votre adresse e-mail d’employé. Si aucun compte ne correspond, l’envoi est refusé plutôt que diffusé à tout le segment.

File d’attente

Chaque envoi est mis en file puis traité par lots. Une partie part immédiatement, le reste est distribué par le cron. Une base de plusieurs dizaines de milliers d’abonnés ne provoque donc aucun timeout ni statistique tronquée. Le tableau de bord affiche le nombre de notifications en attente et permet de forcer un traitement.

Historique et statistiques

L’historique liste les trente dernières campagnes avec leur statut, le nombre de destinataires, de délivrances, d’échecs, de clics et le taux de clic. Le clic est attribué à la campagne qui a produit la notification, et le compteur ne peut jamais dépasser le nombre de messages réellement délivrés. Les abonnés s’exportent en CSV.

Automatisations

Suivi de commande

Cochez les statuts qui déclenchent une notification. Par défaut : paiement accepté, expédié, livré. Aucun statut coché signifie notifier à chaque changement.

Relance des paniers abandonnés

Le cron repère les paniers contenant des articles, rattachés à un client abonné et sans commande, dans la fenêtre de relance configurée (1 à 168 heures).

Alertes de retour en stock et de baisse de prix

Un bouton apparaît sur la fiche produit. Le bouton « retour en stock » ne s’affiche que si le produit est indisponible ; celui de baisse de prix est toujours proposé. Le visiteur n’a pas besoin de compte : l’alerte est rattachée à l’abonnement de son appareil. Le prix au moment de la demande est mémorisé, et vous fixez le pourcentage minimum de baisse qui déclenche l’alerte.

Notification de bienvenue

Envoyée une seule fois, à la première inscription d’un appareil. Elle confirme l’abonnement et n’est jamais bloquée par les préférences du client.

Préférences du client

Depuis son compte, le client ouvre Préférences de notification et active ou coupe quatre catégories :

  • Suivi de commande : expédition et changements de statut
  • Alertes produit : retour en stock et baisse de prix
  • Rappels de panier : relance du panier abandonné
  • Offres et actualités : campagnes marketing

Tout est activé par défaut, y compris pour les abonnés existants après une mise à jour. Le choix s’applique à tous les appareils du client, et un nouvel appareil hérite de ses préférences. Une catégorie coupée n’est jamais envoyée, même pour les messages transactionnels qui ignorent le plafond quotidien et les heures calmes.

RGPD

  • Consentement demandé via un message explicite avant toute souscription
  • Le client gère ses catégories depuis son compte et peut tout couper
  • La suppression d’un compte client efface abonnements, alertes produit et messages en file, via le hook RGPD de PrestaShop
  • Aucune donnée n’est transmise à un service tiers : le chiffrement est fait sur votre serveur

Personnalisation par le thème

  • data-dfpwa-bell sur un élément le transforme en bouton d’abonnement et remplace la cloche flottante.
  • data-dfpwa-share sur un élément le transforme en bouton de partage natif.
  • La classe dfpwa-prefs-form est laissée sans style pour vos propres règles CSS.

FAQ et dépannage

La bannière d’installation n’apparaît pas sur Android

Chrome n’affiche rien tant que la boutique ne remplit pas ses critères. Consultez le diagnostic du tableau de bord, puis tapez dfpwaDiagnose() dans la console du navigateur sur la boutique : le verdict indique ce qui manque. Si vous avez déjà installé la PWA sur l’appareil, désinstallez-la et videz les données du site avant de retester. Un refus mémorisé par le visiteur expire automatiquement après 30 jours, ou immédiatement avec dfpwaResetPrompts().

Rien ne s’installe sur iPhone

C’est le comportement normal de Safari, qui n’a pas d’invite automatique. Le guide « Sur l’écran d’accueil » du module explique la manipulation. Le push web n’y fonctionne qu’à partir d’iOS 16.4, et seulement une fois la boutique installée.

Les notifications ne partent pas

Vérifiez que le push est activé, que les clés VAPID sont présentes et que des clients sont abonnés. Le mode test valide la chaîne complète. Si des messages restent en file, contrôlez que le cron est bien appelé.

Une campagne reste en attente

Elle est soit programmée à une date future, soit mise en file pendant les heures calmes, soit en cours de distribution par lots. Le tableau de bord permet de forcer le traitement.

Un client dit ne plus rien recevoir

Regardez ses préférences de notification : il a peut-être coupé une catégorie. Vérifiez aussi le plafond quotidien par appareil et les heures calmes.

Les alertes produit ne se déclenchent pas

Elles dépendent du cron. Vérifiez qu’il est appelé, que le type d’alerte est activé, et pour les baisses de prix que la remise atteint le pourcentage minimum configuré.

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support