# Centre de Notifications — Guide complet

> Présentation Le module Centre de Notifications (dfnotificationcenter) ajoute une cloche de notifications dans l'en-tête de votre boutique, juste à côté du panier et de « Mon compte ». Un badge…

- Page: <https://www.datafirefly.com/documentation/dfnotificationcenter/>
- Langue: fr
- Mis à jour le: 2026-06-27
- Autres langues: [en](https://www.datafirefly.com/en/documentation/dfnotificationcenter/index.md), [es](https://www.datafirefly.com/es/documentation/dfnotificationcenter/index.md), [de](https://www.datafirefly.com/de/documentation/dfnotificationcenter/index.md), [it](https://www.datafirefly.com/it/documentation/dfnotificationcenter/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfnotificationcenter/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfnotificationcenter/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfnotificationcenter/index.md)
- Index: <https://www.datafirefly.com/documentation/llms.txt>

## Présentation

Le module **Centre de Notifications** (`dfnotificationcenter`) ajoute une **cloche de notifications** dans l'en-tête de votre boutique, juste à côté du panier et de « Mon compte ». Un **badge rouge** signale les notifications non lues. Vos **nouveaux produits** y apparaissent automatiquement et vous pouvez y pousser vos **codes promo**, que le client copie en un clic. Le tout est multilingue, multiboutique et compatible PrestaShop 8 et 9.

La cloche reprend un réflexe que vos visiteurs ont déjà sur les réseaux sociaux : un point rouge attire l'œil et invite au clic, sans pop-up intrusif ni bannière qui gêne la navigation.

## Compatibilité

- PrestaShop 8.0 à 9.x
- Mono-boutique et multiboutique
- PHP 7.2 à 8.x
- Thème Classic et thèmes personnalisés
- Interface livrée en français, anglais, espagnol, allemand et italien
- Aucune dépendance (ni Composer ni framework)

## Installation

1. Dans le back-office, ouvrez **Modules > Gestionnaire de modules**.
2. Cliquez sur **Installer un module** puis sélectionnez le fichier `dfnotificationcenter.zip`.
3. Une fois installé, cliquez sur **Configurer**.

À l'installation, le module crée ses trois tables (notifications, traductions, état de lecture), enregistre ses hooks (cloche dans l'en-tête, ressources front, enregistrement produit, création de bon de réduction) et ajoute l'onglet back-office **Notification Center** pour gérer les notifications.

## Réglages globaux

Depuis la page **Configurer** du module, vous réglez le comportement général :

- **Nouveaux produits automatiques** : crée une notification à chaque enregistrement d'un produit.
- **Produits actifs uniquement** : ne génère la notification que pour les produits actifs et visibles.
- **Promo auto sur bon de réduction** : crée automatiquement une notification promo dès qu'un bon de réduction avec code est créé.
- **Durée de vie des notifications produit (jours)** : expiration automatique après N jours. `0` = jamais.
- **Intervalle de rafraîchissement (secondes)** : actualisation du badge en arrière-plan. `0` = désactivé.
- **Nombre maximum d'éléments dans le panneau** : nombre de notifications affichées dans la cloche.
- **Couleur du badge** et **Couleur de la cloche** (vide = couleur du thème).
- **Son** et **Animation** de la cloche à l'arrivée d'une nouvelle notification.

## Gérer les notifications

L'onglet **Notification Center** (accessible aussi via le bouton « Ouvrir le Notification Center » sur la page de configuration) liste vos notifications avec leur type, priorité, nombre de vues et de clics, et leur état actif. Cliquez sur **Ajouter une notification** pour en créer une.

### Champs d'une notification

- **Type** : Nouveau produit, Code promo, News ou Information. Chaque type a son icône et sa couleur côté client.
- **Titre** (multilingue, requis) et **Message** (multilingue, éditeur de texte).
- **Libellé du bouton** (multilingue) et **Lien** (URL de destination).
- **ID produit** : pour le type Nouveau produit. L'image et le lien sont alors résolus automatiquement.
- **Code promo** : pour le type Code promo. Affiché côté client avec un bouton **Copier**.
- **Image** : visuel optionnel (ignoré pour le type produit, qui utilise l'image de couverture).
- **Groupe cible** : « Tous les clients » ou un groupe précis.
- **Priorité** : plus la valeur est élevée, plus la notification remonte en haut.
- **Date de début** et **Date de fin** : laissez vide pour « visible immédiatement » et « n'expire jamais ».
- **Actif** : interrupteur d'activation.

La planification et le ciblage se combinent : vous pouvez par exemple programmer une notification promo visible uniquement par le groupe « Clients fidèles », du 1er au 15 du mois, avec une priorité élevée pour qu'elle apparaisse en tête.

## Nouveaux produits automatiques

Quand l'option est activée, le module écoute l'enregistrement des produits (hook `actionProductSave`) et crée une notification de type produit avec le nom, l'image de couverture et le lien de la fiche. Un même produit n'est notifié qu'une seule fois (dédoublonnage par identifiant produit).

L'image et le lien d'une notification produit sont **recalculés à l'affichage**. Même si vous modifiez le produit ou changez sa photo plus tard, la notification reste correcte. Si le produit devient inactif ou est supprimé, la notification cesse simplement d'apparaître.

## Codes promo

Créez une notification de type **Code promo**, saisissez le code de votre bon de réduction, et il s'affiche côté client dans une puce avec un bouton **Copier**. Un clic, le code est dans le presse-papiers, le client retourne au panier l'appliquer.

Si l'option **Promo auto sur bon de réduction** est activée, une notification promo est créée automatiquement à chaque création d'un bon de réduction comportant un code (hook `actionObjectCartRuleAddAfter`), en reprenant sa date de fin de validité.

## Fonctionnement côté client

La cloche s'affiche dans l'en-tête via le hook `displayNav2`, à côté du panier et de « Mon compte ». Un badge rouge indique le nombre de notifications non lues (au-delà de neuf, il affiche `9+`). Au clic, un panneau déroulant liste les notifications, les plus prioritaires et les plus récentes en premier.

- **Marquer comme lu** : un bouton « Tout marquer comme lu » et une lecture automatique au clic sur une notification.
- **Bouton Copier** sur les codes promo.
- **Horodatage relatif** (« il y a 2 h », « hier »…).
- **Responsive** : le panneau s'affiche en bas de l'écran (bottom-sheet) sur mobile.
- **Accessibilité** : attributs ARIA et fermeture au clavier (touche Échap).

### État lu / non-lu

Pour les **clients connectés**, l'état lu / non-lu est stocké côté serveur, et donc partagé entre leurs appareils. Pour les **visiteurs non connectés**, il est mémorisé dans le navigateur via `localStorage`.

## Statistiques (KPI)

Chaque notification cumule un compteur de **vues** et de **clics**, visibles dans la liste du back-office. Vous repérez ainsi en un coup d'œil les notifications qui génèrent le plus d'engagement.

## Compatibilité PrestaShop 9

Le module est conçu et testé de PrestaShop 8.0 à 9.x :

- le contrôleur back-office utilise `ModuleAdminController`, compatible 8 et 9 ;
- les contrôleurs évitent les méthodes supprimées en PrestaShop 9 ;
- le contrôleur AJAX front renvoie directement du JSON via des méthodes `ajaxProcess`, sans override de signature incompatible ;
- aucun override du cœur de PrestaShop.

## FAQ et dépannage

### La cloche ne s'affiche pas dans l'en-tête

La cloche est greffée sur le hook `displayNav2` du thème Classic, là où se trouvent le panier et le compte client. Sur un thème personnalisé qui n'expose pas cet emplacement, greffez le module sur le hook utilisé par votre en-tête depuis **Modules > Gestionnaire de modules**, ou contactez-nous.

### Les nouveaux produits n'apparaissent pas

Vérifiez que l'option **Nouveaux produits automatiques** est activée. Si **Produits actifs uniquement** est coché, le produit doit être actif et visible. Un produit déjà notifié ne l'est pas une seconde fois.

### Le badge ne se met pas à jour pour un visiteur

Pour les visiteurs non connectés, l'état lu est conservé dans le navigateur. Vider le cache ou les données du site réinitialise cet état. Pour un suivi partagé entre appareils, le client doit être connecté.

### Le bouton Copier ne fonctionne pas

La copie utilise l'API presse-papiers du navigateur, disponible en HTTPS. Assurez-vous que votre boutique est servie en HTTPS ; une copie de secours est prévue, mais l'HTTPS garantit le meilleur fonctionnement.

### Comment traduire les notifications ?

Le titre, le message et le libellé du bouton sont des champs multilingues : sélectionnez chaque langue dans le formulaire de la notification. Les libellés d'interface se traduisent via **Paramètres avancés > Traductions > Traductions des modules installés**, en choisissant `dfnotificationcenter`.

### Est-ce compatible PrestaShop 9 ?

Oui. Le module est conçu et testé de PrestaShop 8.0 à 9.x, en mono-boutique comme en multiboutique.

## Désinstallation

La désinstallation supprime l'onglet back-office, les réglages et les trois tables du module (notifications, traductions, état de lecture). Pour conserver vos notifications, désactivez le module sans le désinstaller.
