# dfreparability — Indice di riparabilità e durabilità per PrestaShop

> Il modulo dfreparability copre l'obbligo di visualizzazione dell'indice di riparabilità (legge AGEC francese, decreto del 29 dicembre 2020) e dell'indice di durabilità (decreto del 22 aprile 2022) per le 11…

- Pagina: <https://www.datafirefly.com/it/documentation/dfreparability/>
- Lingua: it
- Aggiornato il: 2026-07-02
- Altre lingue: [fr](https://www.datafirefly.com/documentation/dfreparability/index.md), [en](https://www.datafirefly.com/en/documentation/dfreparability/index.md), [es](https://www.datafirefly.com/es/documentation/dfreparability/index.md), [de](https://www.datafirefly.com/de/documentation/dfreparability/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfreparability/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfreparability/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfreparability/index.md)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

Il modulo **dfreparability** copre l'obbligo di visualizzazione dell'indice di riparabilità (legge AGEC francese, decreto del 29 dicembre 2020) e dell'indice di durabilità (decreto del 22 aprile 2022) per le 11 categorie coinvolte, su PrestaShop 8 e 9.

## Quadro giuridico

Due testi strutturano l'obbligo:

- **Indice di riparabilità** — obbligatorio dal 1° gennaio 2021 per 9 categorie iniziali, esteso progressivamente (legge AGEC del febbraio 2020, decreto del 29 dicembre 2020).
- **Indice di durabilità** — introdotto dal decreto del 22 aprile 2022. Sostituisce quello di riparabilità per i televisori da aprile 2024 e per le lavatrici a carica frontale da aprile 2025.

Entrambi gli indici si calcolano su 10 a partire dai 5 criteri Bercy (ciascuno valutato su 20 sottopunti). L'indice di durabilità aggiunge 3 criteri supplementari (affidabilità, aggiornabilità, manutenzione).

**Sanzione** — l'assenza di visualizzazione espone una persona giuridica a una sanzione fino a 15 000 € per prodotto non conforme (articolo L541-9-2 del Codice dell'Ambiente francese).

## Installazione

1. Nel back-office di PrestaShop, apri _Moduli → Gestore moduli_, clicca su _Carica un modulo_ e trascina il file `dfreparability.zip`.
2. Clicca su _Installa_. Il modulo:
   - crea la tabella `ps_dfreparability_product` per memorizzare le valutazioni per prodotto;
   - crea una pagina CMS _Indice di riparabilità e durabilità_ con un contenuto di riferimento pronto da personalizzare;
   - registra le 11 categorie preconfigurate con i corrispondenti criteri Bercy.
3. Al momento dell'installazione, il modulo _non_ modifica nessun prodotto esistente. Inserisci le valutazioni prodotto per prodotto.

## Inserire l'indice su una scheda prodotto

dfreparability aggiunge un pannello _Indice di riparabilità / durabilità_ alla scheda prodotto, disponibile sia in modalità legacy sia in modalità Symfony (PrestaShop 9). La procedura è la stessa in entrambe le modalità.

### I 4 passaggi

1. **Tipo di indice** — scegli _Riparabilità_ o _Durabilità_. Per televisori e lavatrici a carica frontale, scegli direttamente _Durabilità_ (nuovo obbligo).
2. **Categoria** — seleziona tra le 11 categorie preconfigurate. La griglia dei criteri si adatta automaticamente.
3. **Valutazioni per criterio** — ciascuna su 20. I 5 criteri Bercy sono sempre visibili. Se hai selezionato _Durabilità_, compaiono i 3 criteri supplementari.
4. **Punteggio finale** — calcolato automaticamente dai criteri. Un campo _Punteggio manuale_ ti permette di sovrascrivere il valore se applichi un aggiustamento Bercy specifico documentato nella griglia ufficiale del produttore.

**Campo opzionale — PDF della griglia**: inserisci il link al PDF ufficiale della griglia dettagliata fornita dal produttore. Viene mostrato nella pagina di punteggio dettagliato del prodotto.

## Calcolo del punteggio su 10

Il modulo applica il metodo ufficiale Bercy:

```
punteggio_su_10 = (somma dei punteggi / numero di criteri) / 2
```

Esempio per uno smartphone in indice di riparabilità con queste 5 valutazioni:

- Documentazione: 16 / 20
- Smontabilità: 14 / 20
- Disponibilità dei pezzi: 12 / 20
- Prezzo dei pezzi: 10 / 20
- Specifici: 18 / 20

Punteggio: (16 + 14 + 12 + 10 + 18) / 5 / 2 = 14 / 2 = **7,0 su 10** — banda verde chiaro.

### Le 5 bande normative

Il colore del logo dipende dal punteggio e segue rigorosamente le soglie ufficiali:

| Punteggio | Banda | Codice colore |
| --- | --- | --- |
| ≥ 8,0 | Verde scuro | `#2d8c3c` |
| 7,0 a 7,9 | Verde chiaro | `#79c142` |
| 5,0 a 6,9 | Giallo | `#f5d70a` |
| 3,0 a 4,9 | Arancione | `#f08017` |
| < 3,0 | Rosso | `#cf2127` |

## Le 11 categorie preconfigurate

1. Smartphone
2. Computer portatili
3. Televisori _(durabilità da aprile 2024)_
4. Lavatrici a carica frontale _(durabilità da aprile 2025)_
5. Lavatrici a carica dall'alto
6. Lavastoviglie
7. Aspirapolvere con filo
8. Aspirapolvere senza filo
9. Aspirapolvere robot
10. Idropulitrici ad alta pressione
11. Tosaerba elettrici

Per ciascuna categoria, il modulo include la griglia dei criteri conforme ai testi ufficiali. Se Bercy pubblica un'evoluzione dei criteri, viene fornito un aggiornamento del modulo nell'ambito della tua licenza.

## Visualizzazione sul negozio

### Scelta della posizione

Dalla configurazione del modulo (_Moduli → dfreparability → Configura_), sono offerte tre posizioni sulla scheda prodotto:

- **Sotto il prezzo** (raccomandato) — usa l'hook `displayProductPriceBlock` con `type=after_price`. Visibile all'apertura della scheda prodotto.
- **In una scheda di informazioni aggiuntive** — usa `displayProductAdditionalInfo`. Colloca l'indice sotto una scheda dedicata.
- **Sotto le miniature** — usa `displayAfterProductThumbs`. Raccomandato se il tuo tema colloca le informazioni del prodotto a destra delle miniature.

Solo una posizione dovrebbe essere attiva alla volta per evitare duplicati. Il modulo forza questa esclusività nella configurazione.

### Visualizzazione compatta negli elenchi

Un'opzione separata attiva un badge compatto negli elenchi di prodotti (pagine categoria, ricerca, risultati) tramite l'hook `displayProductListReviews`. Il badge mostra il logo colorato e il punteggio su 10 senza il dettaglio dei criteri.

### Pagina di punteggio dettagliato

Ogni prodotto con un indice definito dispone di una pagina pubblica in `/module/dfreparability/detail?id_product={id}` che mostra:

- il logo colorato in formato grande;
- il punteggio su 10 con la banda di colore corrispondente;
- la griglia completa dei criteri con le loro valutazioni;
- il link al PDF ufficiale se fornito;
- un link alla pagina CMS di informazioni legali.

## Pagina CMS di informazioni legali

Al momento dell'installazione, il modulo crea una pagina CMS _Indice di riparabilità e durabilità_ con un contenuto di riferimento in francese che copre:

- i fondamenti giuridici (legge AGEC, decreto 2020, decreto 2022);
- la tabella delle 5 bande di colori con le relative soglie;
- l'elenco delle 11 categorie coinvolte e le loro date di entrata in vigore;
- i 5 criteri Bercy e la loro ponderazione;
- i criteri supplementari per la durabilità.

Puoi modificare liberamente questa pagina da _Design → Pagine_ e tradurla in tutte le tue lingue attive. I link dalle schede prodotto puntano automaticamente alla versione nella lingua di navigazione.

## Personalizzazione del rendering

### Sostituire i loghi con gli originali Bercy

Il modulo fornisce 10 loghi SVG (2 indici × 5 bande) ispirati al visual ufficiale. Se il produttore ti ha fornito i PNG o SVG ufficiali, sostituisci i file in `views/img/logos/` mantenendo i nomi:

```
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
```

### Regolare il CSS

Il rendering frontend usa le classi `.dfrep-badge`, `.dfrep-score`, `.dfrep-band-*`. Il foglio di stile principale si trova in `views/css/dfreparability.css`. Per sovrascrivere senza modificare il modulo, aggiungi le tue regole nel CSS del tuo tema figlio — i selettori restano stabili tra le versioni.

## Multilingue e multi-negozio

Traduzioni incluse: francese, inglese, spagnolo, tedesco. Aggiungere una lingua supplementare si fa tramite lo strumento standard di traduzione di PrestaShop (_Internazionale → Traduzioni_).

Le valutazioni dei prodotti sono memorizzate per `id_product` — quindi condivise tra i negozi di una rete multi-negozio. Se un prodotto ha valutazioni diverse per negozio, occorre declinarlo. La pagina CMS di informazioni legali, invece, può essere differenziata per negozio tramite lo strumento standard di PrestaShop.

## Duplicazione del prodotto

Il modulo ascolta l'hook `actionProductAdd`: quando duplichi un prodotto con un indice definito, le valutazioni e la griglia dei criteri vengono automaticamente copiate sul nuovo prodotto.

## Compatibilità e prerequisiti

- **PrestaShop**: 8.0 a 9.x (entrambe le modalità di scheda prodotto, legacy e Symfony).
- **PHP**: 7.4 minimo, 8.1+ raccomandato.
- **Temi**: compatibile con Classic, Hummingbird e temi di terze parti che attivano gli hook standard della scheda prodotto.
- **PrestaShop 1.7**: non supportato.

## Risoluzione dei problemi

### Il badge appare due volte sulla scheda prodotto

Verifica di non aver attivato più posizioni di visualizzazione simultaneamente nella configurazione del modulo. Dalla v1.0.1, l'hook `displayProductPriceBlock` risponde solo al tipo `after_price`, il che evita la duplicazione interna del blocco prezzo.

### La pagina di dettaglio restituisce «Controller not found»

Su PrestaShop 9, svuota la cache di Symfony (_Parametri avanzati → Prestazioni → Svuota cache_) dopo l'installazione. La v1.0.1 corregge il nome della classe del controller frontend alla forma canonica attesa dal Dispatcher di PS 9.

### Il pannello non appare sulla scheda prodotto Symfony

Verifica che l'hook `actionProductFormBuilderModifier` sia correttamente associato al modulo (_Design → Posizioni_). È l'hook Symfony nativo — se un altro modulo l'ha disattivato globalmente, riattivalo su dfreparability.

## Cronologia versioni

### 1.0.1 — 14 maggio 2026

- Correzione della doppia visualizzazione del badge nel blocco prezzo (`displayProductPriceBlock` limitato ad `after_price`).
- Correzione della classe del controller frontend alla forma canonica attesa da PrestaShop 9.
- Caricamento difensivo di `dfreparability.php` e `classes/DfReparabilityProduct.php` in testa al controller frontend.
- Passaggio della variabile Smarty `$link` a `$module_dir` nel template admin (il contesto ExtraModulesType di PS 9 non inietta `$link`).

### 1.0.0 — 14 maggio 2026

- Prima versione pubblica.
- Indici di riparabilità e durabilità per prodotto.
- 11 categorie preconfigurate, 5 bande normative, 10 loghi SVG.
- Pagina di punteggio dettagliato, pagina CMS di informazioni legali.
- Traduzioni FR, EN, ES, DE. Compatibile con PrestaShop 8 e 9.
