PS PrestaShop Iniciante

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.

Atualizado Versão do módulo 1.0.1

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.

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

  1. 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.
  2. Clique em Instalar. O módulo:
    • cria a tabela ps_dfreparability_product para 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.
  3. 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

  1. 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).
  2. Categoria: selecione entre as 11 categorias pré-configuradas. A grelha de critérios adapta-se automaticamente.
  3. 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.
  4. 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

  1. Smartphones
  2. Computadores portáteis
  3. Televisores (durabilidade desde abril de 2024)
  4. Máquinas de lavar roupa de carga frontal (durabilidade desde abril de 2025)
  5. Máquinas de lavar roupa de carga superior
  6. Máquinas de lavar loiça
  7. Aspiradores com fio
  8. Aspiradores sem fio
  9. Aspiradores robô
  10. Máquinas de lavar de alta pressão
  11. 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 displayProductPriceBlock com type=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 (displayProductPriceBlock restringido a after_price).
  • Correção da classe do controlador do front-office para a forma canónica esperada pelo PrestaShop 9.
  • Carregamento defensivo de dfreparability.php e classes/DfReparabilityProduct.php no início do controlador do front-office.
  • Passagem da variável Smarty $link para $module_dir no 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.
Esta página foi útil?

Ainda com dúvidas? Contacte o suporte