dfreparability: índice de reparabilidade e de durabilidade para PrestaShop
Guia completo do módulo de índice de reparabilidade e de durabilidade para PrestaShop 8 e 9: instalação, introdução das notas por produto, cálculo oficial Bercy, apresentação no front-office e personalização.
O módulo dfreparability cobre a obrigação de apresentação do índice de reparabilidade (lei AGEC, portaria de 29 de dezembro de 2020) e do índice de durabilidade (decreto de 22 de abril de 2022) para as 11 categorias abrangidas, no PrestaShop 8 e 9.
Âmbito para uma loja portuguesa. O índice de reparabilidade e o índice de durabilidade são obrigações francesas, aplicáveis aos produtos vendidos a consumidores em França, incluindo por venda à distância a partir de Portugal. Não existe hoje equivalente nacional português; o índice europeu de reparabilidade, previsto no regulamento de conceção ecológica (ESPR), aplicar-se-á progressivamente a partir de 2027 para os smartphones e tablets. Use este módulo se vender para o mercado francês; as referências a Bercy, à DGCCRF e ao Código do Ambiente francês mais abaixo dizem respeito a esse mercado.
Quadro legal
Dois textos estruturam a obrigação:
- Índice de reparabilidade: obrigatório desde 1 de janeiro de 2021 para 9 categorias iniciais, alargado progressivamente (lei AGEC de fevereiro de 2020, portaria de 29 de dezembro de 2020).
- Índice de durabilidade: introduzido pelo decreto de 22 de abril de 2022. Substitui a reparabilidade para os televisores desde abril de 2024, e depois para as máquinas de lavar roupa de carga frontal desde abril de 2025.
Os dois índices calculam-se numa escala de 10 a partir dos 5 critérios Bercy (cada um com 20 subpontos). O índice de durabilidade acrescenta-lhes 3 critérios suplementares (fiabilidade, capacidade de melhoria, manutenção).
Sanção aplicável em França: a ausência de apresentação expõe uma pessoa coletiva a uma coima até 15 000 € por produto não conforme (artigo L541-9-2 do Código do Ambiente francês).
Instalação
- A partir do back-office PrestaShop, abra Módulos → Gestor de módulos, clique em Carregar um módulo e carregue o ficheiro
dfreparability.zip. - Clique em Instalar. O módulo:
- cria a tabela
ps_dfreparability_productpara guardar as notas por produto; - cria uma página CMS Índice de reparabilidade e de durabilidade com um conteúdo de referência pronto a personalizar;
- regista 11 categorias pré-configuradas com os critérios Bercy correspondentes.
- cria a tabela
- Só com a instalação, o módulo não modifica nenhuma ficha de produto existente. As notas são introduzidas produto a produto.
Introdução do índice numa ficha de produto
O dfreparability acrescenta um painel Índice de reparabilidade / durabilidade à ficha de produto, disponível tanto em modo legacy como em modo Symfony (PrestaShop 9). O procedimento é o mesmo nos dois modos.
As 4 etapas
- Tipo de índice: escolha Reparabilidade ou Durabilidade. Para os televisores e as máquinas de lavar roupa de carga frontal, selecione diretamente Durabilidade (nova obrigação).
- Categoria: selecione entre as 11 categorias pré-configuradas. A grelha de critérios adapta-se automaticamente.
- Notas por critério: cada uma em 20. Os 5 critérios Bercy estão sempre presentes. Se tiver selecionado Durabilidade, aparecem os 3 critérios suplementares.
- Pontuação final: calculada automaticamente a partir dos critérios. Um campo Pontuação manual permite sobrepor a nota se aplicar um ajustamento Bercy específico documentado na grelha oficial do fabricante.
Campo opcional, Grelha de cálculo PDF: preencha a ligação para o PDF oficial da grelha detalhada fornecida pelo fabricante. A ligação é apresentada na página de nota detalhada do produto.
Cálculo da pontuação em 10
O módulo aplica o método oficial Bercy:
pontuacao_em_10 = (soma das notas / número de critérios) / 2
Exemplo para um smartphone em índice de reparabilidade com as 5 notas seguintes:
- Documentação: 16 / 20
- Desmontabilidade: 14 / 20
- Disponibilidade das peças: 12 / 20
- Preço das peças: 10 / 20
- Específicos: 18 / 20
Pontuação: (16 + 14 + 12 + 10 + 18) / 5 / 2 = 14 / 2 = 7,0 em 10: banda verde-clara.
As 5 bandas regulamentares
A cor do logótipo depende da pontuação e segue estritamente os limiares oficiais:
| Pontuação | Banda | Código de cor |
|---|---|---|
| ≥ 8,0 | Verde-escuro | #2d8c3c |
| 7,0 a 7,9 | Verde-claro | #79c142 |
| 5,0 a 6,9 | Amarelo | #f5d70a |
| 3,0 a 4,9 | Laranja | #f08017 |
| < 3,0 | Vermelho | #cf2127 |
As 11 categorias pré-configuradas
- Smartphones
- Computadores portáteis
- Televisores (durabilidade desde abril de 2024)
- Máquinas de lavar roupa de carga frontal (durabilidade desde abril de 2025)
- Máquinas de lavar roupa de carga superior
- Máquinas de lavar loiça
- Aspiradores com fio
- Aspiradores sem fio
- Aspiradores robô
- Máquinas de lavar de alta pressão
- Corta-relvas elétricos
Para cada categoria, o módulo contém a grelha de critérios conforme aos textos oficiais. Se Bercy publicar uma evolução dos critérios, é fornecida uma atualização do módulo no âmbito da sua licença.
Apresentação na loja
Escolha da posição
A partir da configuração do módulo (Módulos → dfreparability → Configurar), são propostas três posições na ficha de produto:
- Sob o preço (recomendado): usa o hook
displayProductPriceBlockcomtype=after_price. Visível logo ao abrir a ficha de produto. - Num separador de informações complementares: usa
displayProductAdditionalInfo. Esconde o índice sob um separador dedicado. - Sob as miniaturas: usa
displayAfterProductThumbs. Recomendado se o seu tema colocar as informações do produto à direita das miniaturas.
Só uma posição deve estar ativa de cada vez para evitar duplicados. O módulo força a exclusividade do lado da configuração.
Apresentação compacta nas listas
Uma opção distinta ativa um badge compacto nas fichas de produto em lista (página de categoria, pesquisa, resultados) através do hook displayProductListReviews. O badge retoma o logótipo colorido e a nota em 10 sem o detalhe dos critérios.
Página de nota detalhada
Cada produto com um índice preenchido dispõe de uma página pública /module/dfreparability/detail?id_product={id} que mostra:
- o logótipo colorido em grande formato;
- a nota em 10 com a banda de cor correspondente;
- a grelha completa dos critérios e as suas notas;
- a ligação para o PDF oficial se o tiver preenchido;
- uma ligação para a página CMS de informação legal.
Página CMS de informação legal
Na instalação, o módulo cria uma página CMS Índice de reparabilidade e de durabilidade com um conteúdo de referência em francês que cobre:
- os fundamentos jurídicos (lei AGEC, portaria de 2020, decreto de 2022);
- a tabela das 5 bandas de cores com os limiares;
- a lista das 11 categorias abrangidas e a sua data de entrada em vigor;
- os 5 critérios Bercy e a sua ponderação;
- os critérios suplementares para a durabilidade.
Pode modificar livremente esta página a partir de Design → Páginas e traduzi-la para todos os seus idiomas ativos; o conteúdo de referência é fornecido apenas em francês, pelo que a versão portuguesa é para redigir. As ligações a partir das fichas de produto apontam automaticamente para a versão no idioma de navegação.
Personalização da renderização
Substituir os logótipos pelos originais Bercy
O módulo fornece 10 logótipos SVG (2 índices × 5 bandas) inspirados no visual oficial. Se o fabricante lhe forneceu os PNG ou SVG oficiais, substitua os ficheiros em views/img/logos/ conservando os nomes:
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 o CSS
A renderização do front-office usa as classes .dfrep-badge, .dfrep-score, .dfrep-band-*. O CSS principal está em views/css/dfreparability.css. Para sobrepor sem modificar o módulo, adicione as suas regras no CSS do seu tema filho: os seletores mantêm-se estáveis entre versões.
Multilingue e multiloja
Traduções incluídas: francês, inglês, espanhol, alemão. O português acrescenta-se através da ferramenta padrão de tradução do PrestaShop (Internacional → Traduções).
As notas dos produtos são guardadas por id_product, logo partilhadas entre as lojas de uma rede multiloja. Se um produto tiver notas diferentes por loja, é necessário declinar o produto. A página CMS de informação legal, essa, pode ser diferenciada por loja através da ferramenta padrão do PrestaShop.
Duplicação de produto
O módulo escuta o hook actionProductAdd: quando duplica um produto com índice preenchido, as notas e a grelha de critérios são automaticamente copiadas para o novo produto.
Compatibilidade e pré-requisitos
- PrestaShop: 8.0 a 9.x (os dois modos de ficha de produto, legacy e Symfony).
- PHP: 7.4 no mínimo, 8.1+ recomendado.
- Temas: compatível com Classic, Hummingbird e temas de terceiros que acionam os hooks padrão da ficha de produto.
- PrestaShop 1.7: não suportado.
Resolução de problemas
O badge aparece duas vezes na ficha de produto
Verifique que não ativou várias posições de apresentação em simultâneo na configuração do módulo. Desde a v1.0.1, o hook displayProductPriceBlock só responde ao tipo after_price, o que evita o duplicado interno do bloco de preço.
A página de detalhe devolve « Controller not found »
No PrestaShop 9, limpe a cache Symfony (Parâmetros avançados → Desempenho → Limpar a cache) depois da instalação. A v1.0.1 corrige a capitalização do nome da classe do controlador para a forma canónica esperada pelo Dispatcher do PS 9.
O painel não aparece na ficha de produto Symfony
Verifique que o hook actionProductFormBuilderModifier está associado ao módulo (Design → Posições). É o hook Symfony nativo: se outro módulo o desativou globalmente, reative-o no dfreparability.
Histórico de versões
1.0.1 (14 de maio de 2026)
- Correção da apresentação em duplicado do badge no bloco de preço (
displayProductPriceBlockrestringido aafter_price). - Correção da classe do controlador do front-office para a forma canónica esperada pelo PrestaShop 9.
- Carregamento defensivo de
dfreparability.phpeclasses/DfReparabilityProduct.phpno início do controlador do front-office. - Passagem da variável Smarty
$linkpara$module_dirno template de administração (o contexto ExtraModulesType do PS 9 não injeta$link).
1.0.0 (14 de maio de 2026)
- Primeira versão pública.
- Índice de reparabilidade e de durabilidade por produto.
- 11 categorias pré-configuradas, 5 bandas regulamentares, 10 logótipos SVG.
- Página de nota detalhada, página CMS de informação legal.
- Traduções FR, EN, ES, DE. Compatível com PrestaShop 8 e 9.