dfreparability — Índice de reparabilidad y durabilidad para PrestaShop
Guía completa del módulo de índice de reparabilidad y durabilidad para PrestaShop 8 y 9: instalación, puntuación por producto, cálculo oficial Bercy, visualización frontend y personalización.
El módulo dfreparability cubre la obligación de mostrar el índice de reparabilidad (ley AGEC francesa, decreto del 29 de diciembre de 2020) y el índice de durabilidad (decreto del 22 de abril de 2022) para las 11 categorías afectadas, en PrestaShop 8 y 9.
Marco legal
Dos textos estructuran la obligación:
- Índice de reparabilidad — obligatorio desde el 1 de enero de 2021 para 9 categorías iniciales, ampliado progresivamente (ley AGEC de febrero de 2020, decreto del 29 de diciembre de 2020).
- Índice de durabilidad — introducido por el decreto del 22 de abril de 2022. Sustituye al de reparabilidad para televisores desde abril de 2024 y para lavadoras de carga frontal desde abril de 2025.
Ambos índices se calculan sobre 10 a partir de los 5 criterios Bercy (cada uno puntuado sobre 20 subpuntos). El índice de durabilidad añade 3 criterios adicionales (fiabilidad, capacidad de actualización, mantenimiento).
Sanción — la ausencia de visualización expone a una persona jurídica a una multa de hasta 15 000 € por producto no conforme (artículo L541-9-2 del Código de Medio Ambiente francés).
Instalación
- En el back-office de PrestaShop, abre Módulos → Gestor de módulos, haz clic en Cargar un módulo y suelta el archivo
dfreparability.zip. - Haz clic en Instalar. El módulo:
- crea la tabla
ps_dfreparability_productpara almacenar las puntuaciones por producto; - crea una página CMS Índice de reparabilidad y durabilidad con un contenido de referencia listo para personalizar;
- registra las 11 categorías preconfiguradas con los criterios Bercy correspondientes.
- crea la tabla
- En el momento de la instalación, el módulo no modifica ningún producto existente. Introduces las puntuaciones producto por producto.
Introducir el índice en una ficha de producto
dfreparability añade un panel Índice de reparabilidad / durabilidad a la ficha de producto, disponible tanto en modo legacy como en modo Symfony (PrestaShop 9). El procedimiento es el mismo en ambos modos.
Los 4 pasos
- Tipo de índice — elige Reparabilidad o Durabilidad. Para televisores y lavadoras de carga frontal, elige directamente Durabilidad (nueva obligación).
- Categoría — selecciona entre las 11 categorías preconfiguradas. La cuadrícula de criterios se adapta automáticamente.
- Puntuaciones por criterio — cada uno sobre 20. Los 5 criterios Bercy siempre están presentes. Si has seleccionado Durabilidad, aparecen los 3 criterios adicionales.
- Puntuación final — calculada automáticamente a partir de los criterios. Un campo Puntuación manual permite anular el valor si aplicas un ajuste Bercy específico documentado en la cuadrícula oficial del fabricante.
Campo opcional — PDF de la cuadrícula: introduce el enlace al PDF oficial de la cuadrícula detallada proporcionada por el fabricante. Se muestra en la página de puntuación detallada del producto.
Cálculo de la puntuación sobre 10
El módulo aplica el método oficial Bercy:
puntuacion_sobre_10 = (suma de puntuaciones / número de criterios) / 2
Ejemplo para un smartphone con índice de reparabilidad y estas 5 puntuaciones:
- Documentación: 16 / 20
- Desmontabilidad: 14 / 20
- Disponibilidad de piezas: 12 / 20
- Precio de las piezas: 10 / 20
- Específicos: 18 / 20
Puntuación: (16 + 14 + 12 + 10 + 18) / 5 / 2 = 14 / 2 = 7,0 sobre 10 — banda verde claro.
Las 5 bandas reglamentarias
El color del logo depende de la puntuación y sigue estrictamente los umbrales oficiales:
| Puntuación | Banda | Código de color |
|---|---|---|
| ≥ 8,0 | Verde oscuro | #2d8c3c |
| 7,0 a 7,9 | Verde claro | #79c142 |
| 5,0 a 6,9 | Amarillo | #f5d70a |
| 3,0 a 4,9 | Naranja | #f08017 |
| < 3,0 | Rojo | #cf2127 |
Las 11 categorías preconfiguradas
- Smartphones
- Ordenadores portátiles
- Televisores (durabilidad desde abril de 2024)
- Lavadoras de carga frontal (durabilidad desde abril de 2025)
- Lavadoras de carga superior
- Lavavajillas
- Aspiradoras con cable
- Aspiradoras sin cable
- Aspiradoras robot
- Limpiadoras de alta presión
- Cortacéspedes eléctricos
Para cada categoría, el módulo incluye la cuadrícula de criterios conforme a los textos oficiales. Si Bercy publica una evolución de los criterios, se proporciona una actualización del módulo dentro del marco de tu licencia.
Visualización en la tienda
Elección de la posición
Desde la configuración del módulo (Módulos → dfreparability → Configurar), se ofrecen tres posiciones en la ficha de producto:
- Bajo el precio (recomendado) — usa el hook
displayProductPriceBlockcontype=after_price. Visible desde la apertura de la ficha de producto. - En una pestaña de información adicional — usa
displayProductAdditionalInfo. Coloca el índice bajo una pestaña dedicada. - Bajo las miniaturas — usa
displayAfterProductThumbs. Recomendado si tu tema coloca la información del producto a la derecha de las miniaturas.
Solo una posición debe estar activa a la vez para evitar duplicados. El módulo aplica esta exclusividad desde la configuración.
Visualización compacta en los listados
Una opción independiente activa una insignia compacta en los listados de productos (página de categoría, búsqueda, resultados) mediante el hook displayProductListReviews. La insignia muestra el logo coloreado y la puntuación sobre 10 sin el detalle de los criterios.
Página de puntuación detallada
Cada producto con un índice definido dispone de una página pública en /module/dfreparability/detail?id_product={id} que muestra:
- el logo coloreado en formato grande;
- la puntuación sobre 10 con la banda de color correspondiente;
- la cuadrícula completa de criterios con sus puntuaciones;
- el enlace al PDF oficial si se ha proporcionado;
- un enlace a la página CMS de información legal.
Página CMS de información legal
En el momento de la instalación, el módulo crea una página CMS Índice de reparabilidad y durabilidad con contenido de referencia en francés que cubre:
- los fundamentos jurídicos (ley AGEC, decreto de 2020, decreto de 2022);
- la tabla de las 5 bandas de colores con sus umbrales;
- la lista de las 11 categorías afectadas y sus fechas de entrada en vigor;
- los 5 criterios Bercy y su ponderación;
- los criterios adicionales para la durabilidad.
Puedes modificar libremente esta página desde Diseño → Páginas y traducirla en todos tus idiomas activos. Los enlaces desde las fichas de producto apuntan automáticamente a la versión en el idioma de navegación.
Personalización del renderizado
Reemplazar los logos por los originales Bercy
El módulo proporciona 10 logos SVG (2 índices × 5 bandas) inspirados en el visual oficial. Si el fabricante te ha proporcionado los PNG o SVG oficiales, reemplaza los archivos en views/img/logos/ conservando los nombres:
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
Ajustar el CSS
El renderizado frontend usa las clases .dfrep-badge, .dfrep-score, .dfrep-band-*. La hoja de estilos principal se encuentra en views/css/dfreparability.css. Para sobrescribir sin modificar el módulo, añade tus reglas en el CSS de tu tema hijo — los selectores se mantienen estables entre versiones.
Multilingüe y multitienda
Traducciones incluidas: francés, inglés, español, alemán. Añadir un idioma adicional se hace mediante la herramienta estándar de traducción de PrestaShop (Internacional → Traducciones).
Las puntuaciones de los productos se almacenan por id_product — por lo tanto se comparten entre tiendas de una red multitienda. Si un producto tiene puntuaciones diferentes por tienda, hay que declinarlo. La página CMS de información legal sí puede diferenciarse por tienda mediante la herramienta estándar de PrestaShop.
Duplicación de producto
El módulo escucha el hook actionProductAdd: cuando duplicas un producto con un índice definido, las puntuaciones y la cuadrícula de criterios se copian automáticamente al nuevo producto.
Compatibilidad y requisitos
- PrestaShop: 8.0 a 9.x (ambos modos de ficha de producto, legacy y Symfony).
- PHP: 7.4 como mínimo, 8.1+ recomendado.
- Temas: compatible con Classic, Hummingbird y temas de terceros que disparen los hooks estándar de la ficha de producto.
- PrestaShop 1.7: no compatible.
Solución de problemas
La insignia aparece dos veces en la ficha de producto
Comprueba que no hayas activado varias posiciones de visualización simultáneamente en la configuración del módulo. Desde la v1.0.1, el hook displayProductPriceBlock solo responde al tipo after_price, lo que evita la duplicación interna del bloque de precio.
La página de detalle devuelve «Controller not found»
En PrestaShop 9, vacía la caché de Symfony (Parámetros avanzados → Rendimiento → Vaciar caché) después de la instalación. La v1.0.1 corrige el nombre de la clase del controlador frontend a la forma canónica esperada por el Dispatcher de PS 9.
El panel no aparece en la ficha de producto Symfony
Comprueba que el hook actionProductFormBuilderModifier esté correctamente asociado al módulo (Diseño → Posiciones). Es el hook Symfony nativo — si otro módulo lo ha deshabilitado globalmente, vuelve a habilitarlo en dfreparability.
Historial de versiones
1.0.1 — 14 de mayo de 2026
- Corrección de la doble visualización de la insignia en el bloque de precio (
displayProductPriceBlockrestringido aafter_price). - Corrección de la clase del controlador frontend a la forma canónica esperada por PrestaShop 9.
- Carga defensiva de
dfreparability.phpyclasses/DfReparabilityProduct.phpal principio del controlador frontend. - Cambio de la variable Smarty
$linka$module_diren la plantilla de administración (el contexto ExtraModulesType de PS 9 no inyecta$link).
1.0.0 — 14 de mayo de 2026
- Primera versión pública.
- Índices de reparabilidad y durabilidad por producto.
- 11 categorías preconfiguradas, 5 bandas reglamentarias, 10 logos SVG.
- Página de puntuación detallada, página CMS de información legal.
- Traducciones FR, EN, ES, DE. Compatible con PrestaShop 8 y 9.