dfreparability — Indice de réparabilité et durabilité pour PrestaShop
Guide complet du module d'indice de réparabilité et de durabilité pour PrestaShop 8 et 9 : installation, saisie des notes par produit, calcul officiel Bercy, affichage frontend et personnalisation.
Le module dfreparability couvre l’obligation d’affichage de l’indice de réparabilité (loi AGEC, arrêté du 29 décembre 2020) et de l’indice de durabilité (décret du 22 avril 2022) pour les 11 catégories concernées, sur PrestaShop 8 et 9.
Cadre légal
Deux textes structurent l’obligation :
- Indice de réparabilité — obligatoire depuis le 1er janvier 2021 pour 9 catégories initiales, étendu progressivement (loi AGEC de février 2020, arrêté du 29 décembre 2020).
- Indice de durabilité — introduit par le décret du 22 avril 2022. Remplace la réparabilité pour les téléviseurs depuis avril 2024, puis pour les lave-linge à hublot depuis avril 2025.
Les deux indices se calculent sur 10 à partir des 5 critères Bercy (chacun sur 20 sous-points). L’indice de durabilité y ajoute 3 critères supplémentaires (fiabilité, améliorabilité, maintenance).
Sanction encourue — l’absence d’affichage expose une personne morale à jusqu’à 15 000 € d’amende par produit non conforme (article L541-9-2 du Code de l’environnement).
Installation
- Depuis le back-office PrestaShop, ouvrez Modules → Gestionnaire de modules, cliquez sur Envoyer un module et déposez le fichier
dfreparability.zip. - Cliquez sur Installer. Le module :
- crée la table
ps_dfreparability_productpour stocker les notes par produit ; - crée une page CMS Indice de réparabilité et de durabilité avec un contenu de référence prêt à personnaliser ;
- enregistre 11 catégories préconfigurées avec les critères Bercy correspondants.
- crée la table
- À l’installation seule, le module ne modifie aucune fiche produit existante. Vous saisissez les notes produit par produit.
Saisie de l’indice sur une fiche produit
dfreparability ajoute un panneau Indice de réparabilité / durabilité à la fiche produit, disponible aussi bien en mode legacy qu’en mode Symfony (PrestaShop 9). La procédure est la même dans les deux modes.
Les 4 étapes
- Type d’indice — choisissez Réparabilité ou Durabilité. Pour les téléviseurs et lave-linge à hublot, sélectionnez directement Durabilité (nouvelle obligation).
- Catégorie — sélectionnez parmi les 11 catégories préconfigurées. La grille des critères s’adapte automatiquement.
- Notes par critère — chacun sur 20. Les 5 critères Bercy sont toujours présents. Si vous avez sélectionné Durabilité, les 3 critères supplémentaires apparaissent.
- Score final — calculé automatiquement à partir des critères. Un champ Score manuel permet de surcharger la note si vous appliquez un ajustement Bercy spécifique documenté dans la grille officielle du fabricant.
Champ optionnel — Grille de calcul PDF : renseignez le lien vers le PDF officiel de la grille détaillée fournie par le fabricant. Le lien est affiché sur la page de note détaillée du produit.
Calcul du score sur 10
Le module applique la méthode officielle Bercy :
score_sur_10 = (somme des notes / nombre de critères) / 2
Exemple pour un smartphone en indice de réparabilité avec les 5 notes suivantes :
- Documentation : 16 / 20
- Démontabilité : 14 / 20
- Disponibilité des pièces : 12 / 20
- Prix des pièces : 10 / 20
- Spécifiques : 18 / 20
Score : (16 + 14 + 12 + 10 + 18) / 5 / 2 = 14 / 2 = 7,0 sur 10 — bande vert clair.
Les 5 bandes réglementaires
La couleur du logo dépend du score et suit strictement les seuils officiels :
| Score | Bande | Code couleur |
|---|---|---|
| ≥ 8,0 | Vert foncé | #2d8c3c |
| 7,0 à 7,9 | Vert clair | #79c142 |
| 5,0 à 6,9 | Jaune | #f5d70a |
| 3,0 à 4,9 | Orange | #f08017 |
| < 3,0 | Rouge | #cf2127 |
Les 11 catégories préconfigurées
- Smartphones
- Ordinateurs portables
- Téléviseurs (durabilité depuis avril 2024)
- Lave-linge à hublot (durabilité depuis avril 2025)
- Lave-linge top
- Lave-vaisselle
- Aspirateurs filaires
- Aspirateurs sans fil
- Aspirateurs robots
- Nettoyeurs haute-pression
- Tondeuses à gazon électriques
Pour chaque catégorie, le module contient la grille des critères conforme aux textes officiels. Si Bercy publie une évolution des critères, une mise à jour du module est fournie dans le cadre de votre licence.
Affichage sur la boutique
Choix de la position
Depuis la configuration du module (Modules → dfreparability → Configurer), trois positions sont proposées sur la fiche produit :
- Sous le prix (recommandé) — utilise le hook
displayProductPriceBlockavectype=after_price. Visible dès l’ouverture de la fiche produit. - Dans un onglet d’informations complémentaires — utilise
displayProductAdditionalInfo. Cache l’indice sous un onglet dédié. - Sous les miniatures — utilise
displayAfterProductThumbs. Recommandé si votre thème place les infos produit à droite des miniatures.
Une seule position doit être active à la fois pour éviter les doublons. Le module force l’exclusivité côté configuration.
Affichage compact dans les listes
Une option distincte active un badge compact sur les fiches produit en liste (page catégorie, recherche, résultats) via le hook displayProductListReviews. Le badge reprend le logo coloré et la note sur 10 sans le détail des critères.
Page de note détaillée
Chaque produit avec un indice renseigné dispose d’une page publique /module/dfreparability/detail?id_product={id} qui affiche :
- le logo coloré grand format ;
- la note sur 10 avec la bande de couleur correspondante ;
- la grille complète des critères et leurs notes ;
- le lien vers le PDF officiel si vous l’avez renseigné ;
- un lien vers la page CMS d’information légale.
Page CMS d’information légale
À l’installation, le module crée une page CMS Indice de réparabilité et de durabilité avec un contenu de référence en français couvrant :
- les fondements juridiques (loi AGEC, arrêté 2020, décret 2022) ;
- la table des 5 bandes de couleurs avec les seuils ;
- la liste des 11 catégories concernées et leur date d’entrée en vigueur ;
- les 5 critères Bercy et leur pondération ;
- les critères supplémentaires pour la durabilité.
Vous pouvez modifier librement cette page depuis Design → Pages et la traduire dans toutes vos langues actives. Les liens depuis les fiches produit pointent automatiquement vers la version dans la langue de navigation.
Personnalisation du rendu
Remplacer les logos par les originaux Bercy
Le module fournit 10 logos SVG (2 indices × 5 bandes) inspirés du visuel officiel. Si le fabricant vous a fourni les PNG ou SVG officiels, remplacez les fichiers dans views/img/logos/ en conservant les noms :
reparability-dark-green.svg
reparability-light-green.svg
reparability-yellow.svg
reparability-orange.svg
reparability-red.svg
durability-dark-green.svg
durability-light-green.svg
durability-yellow.svg
durability-orange.svg
durability-red.svg
Ajuster le CSS
Le rendu frontend utilise les classes .dfrep-badge, .dfrep-score, .dfrep-band-*. Le CSS principal est dans views/css/dfreparability.css. Pour surcharger sans modifier le module, ajoutez vos règles dans le CSS de votre thème enfant — les sélecteurs restent stables entre les versions.
Multilingue et multiboutique
Traductions incluses : français, anglais, espagnol, allemand. Ajouter une langue supplémentaire se fait via l’outil standard de traduction PrestaShop (International → Traductions).
Les notes des produits sont stockées par id_product — donc partagées entre les boutiques d’un réseau multiboutique. Si un produit a des notes différentes par boutique, il faut le décliner. La page CMS d’information légale, elle, peut être différenciée par boutique via l’outil PrestaShop standard.
Duplication de produit
Le module écoute le hook actionProductAdd : quand vous dupliquez un produit ayant un indice renseigné, les notes et la grille des critères sont automatiquement copiées vers le nouveau produit.
Compatibilité et prérequis
- PrestaShop : 8.0 à 9.x (les deux modes fiche produit, legacy et Symfony).
- PHP : 7.4 minimum, 8.1+ recommandé.
- Thèmes : compatible Classic, Hummingbird et thèmes tiers qui déclenchent les hooks standards de la fiche produit.
- PrestaShop 1.7 : non supporté.
Dépannage
Le badge s’affiche deux fois sur la fiche produit
Vérifiez que vous n’avez pas activé plusieurs positions d’affichage simultanément dans la configuration du module. Depuis la v1.0.1, le hook displayProductPriceBlock ne répond qu’au type after_price, ce qui évite le doublon interne du bloc prix.
La page de détail renvoie « Controller not found »
Sur PrestaShop 9, vider le cache Symfony (Paramètres avancés → Performances → Vider le cache) après installation. La v1.0.1 corrige la casse du nom de classe du contrôleur pour la forme canonique attendue par le Dispatcher PS 9.
Le panneau ne s’affiche pas dans la fiche produit Symfony
Vérifiez que le hook actionProductFormBuilderModifier est bien associé au module (Design → Positions). C’est le hook Symfony natif — si un autre module l’a désactivé globalement, réactivez-le sur dfreparability.
Historique des versions
1.0.1 — 14 mai 2026
- Correction de l’affichage en double du badge dans le bloc prix (
displayProductPriceBlockrestreint àafter_price). - Correction de la classe du contrôleur frontend pour la forme canonique attendue par PrestaShop 9.
- Chargement défensif de
dfreparability.phpetclasses/DfReparabilityProduct.phpen tête du contrôleur frontend. - Bascule de la variable Smarty
$linkvers$module_dirdans le template d’admin (contexte ExtraModulesType de PS 9 n’injecte pas$link).
1.0.0 — 14 mai 2026
- Première version publique.
- Indice de réparabilité et de durabilité par produit.
- 11 catégories préconfigurées, 5 bandes réglementaires, 10 logos SVG.
- Page de note détaillée, page CMS d’information légale.
- Traductions FR, EN, ES, DE. Compatible PrestaShop 8 et 9.