# dfreparability: repareerbaarheids- en duurzaamheidsindex voor PrestaShop

> De module dfreparability dekt de verplichte weergave van de repareerbaarheidsindex (de Franse AGEC-wet, besluit van 29 december 2020) en van de duurzaamheidsindex (decreet van 22 april 2022) voor de 11…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfreparability/>
- Taal: nl
- Bijgewerkt op: 2026-08-20
- Andere talen: [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), [it](https://www.datafirefly.com/it/documentation/dfreparability/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfreparability/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfreparability/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

De module **dfreparability** dekt de verplichte weergave van de repareerbaarheidsindex (de Franse AGEC-wet, besluit van 29 december 2020) en van de duurzaamheidsindex (decreet van 22 april 2022) voor de 11 betrokken categorieën, op PrestaShop 8 en 9.

## Wettelijk kader

Twee teksten geven vorm aan de verplichting:

- **Repareerbaarheidsindex**: verplicht sinds 1 januari 2021 voor 9 oorspronkelijke categorieën, daarna geleidelijk uitgebreid (AGEC-wet van februari 2020, besluit van 29 december 2020).
- **Duurzaamheidsindex**: ingevoerd door het decreet van 22 april 2022. Vervangt de repareerbaarheid voor televisies sinds april 2024 en voor wasmachines met frontlader sinds april 2025.

Beide indexen worden op 10 berekend op basis van de 5 Bercy-criteria (elk op 20 subpunten). De duurzaamheidsindex voegt daar 3 extra criteria aan toe (betrouwbaarheid, verbeterbaarheid, onderhoud).

**Mogelijke sanctie**: wie de index niet toont, stelt als rechtspersoon bloot aan een boete tot 15.000 € per niet-conform product (artikel L541-9-2 van de Franse milieuwet).

## Installatie

1. Open in de PrestaShop-backoffice _Modules → Modulebeheer_, klik op _Een module uploaden_ en plaats het bestand `dfreparability.zip`.
2. Klik op _Installeren_. De module:
   - maakt de tabel `ps_dfreparability_product` aan om de scores per product te bewaren;
   - maakt een CMS-pagina _Repareerbaarheids- en duurzaamheidsindex_ aan met referentie-inhoud die klaar is om aan te passen;
   - registreert 11 vooraf ingestelde categorieën met de bijbehorende Bercy-criteria.
3. De installatie op zich wijzigt _geen enkele_ bestaande productpagina. U voert de scores product per product in.

## De index op een productpagina invoeren

dfreparability voegt een paneel _Repareerbaarheids- / duurzaamheidsindex_ aan de productpagina toe, beschikbaar in zowel de legacy- als de Symfony-modus (PrestaShop 9). De werkwijze is in beide modi dezelfde.

### De 4 stappen

1. **Type index**: kies _Repareerbaarheid_ of _Duurzaamheid_. Voor televisies en frontladers kiest u meteen _Duurzaamheid_ (de nieuwe verplichting).
2. **Categorie**: kies uit de 11 vooraf ingestelde categorieën. Het criteriaraster past zich automatisch aan.
3. **Scores per criterium**: elk op 20. De 5 Bercy-criteria zijn altijd aanwezig. Hebt u _Duurzaamheid_ gekozen, dan verschijnen de 3 extra criteria.
4. **Eindscore**: automatisch berekend op basis van de criteria. Met het veld _Handmatige score_ kunt u de score overschrijven wanneer u een specifieke Bercy-correctie toepast die in het officiële raster van de fabrikant is gedocumenteerd.

**Optioneel veld, PDF met het berekeningsraster**: vul de link in naar de officiële PDF met het gedetailleerde raster van de fabrikant. De link verschijnt op de pagina met de gedetailleerde score van het product.

## Berekening van de score op 10

De module past de officiële Bercy-methode toe:

```
score_op_10 = (som van de scores / aantal criteria) / 2
```

Voorbeeld voor een smartphone met een repareerbaarheidsindex en de volgende 5 scores:

- Documentatie: 16 / 20
- Demonteerbaarheid: 14 / 20
- Beschikbaarheid van onderdelen: 12 / 20
- Prijs van de onderdelen: 10 / 20
- Specifieke criteria: 18 / 20

Score: (16 + 14 + 12 + 10 + 18) / 5 / 2 = 14 / 2 = **7,0 op 10**, de lichtgroene band.

### De 5 wettelijke banden

De kleur van het logo hangt af van de score en volgt strikt de officiële drempels:

| Score | Band | Kleurcode |
| --- | --- | --- |
| ≥ 8,0 | Donkergroen | `#2d8c3c` |
| 7,0 tot 7,9 | Lichtgroen | `#79c142` |
| 5,0 tot 6,9 | Geel | `#f5d70a` |
| 3,0 tot 4,9 | Oranje | `#f08017` |
| < 3,0 | Rood | `#cf2127` |

## De 11 vooraf ingestelde categorieën

1. Smartphones
2. Laptops
3. Televisies _(duurzaamheid sinds april 2024)_
4. Wasmachines met frontlader _(duurzaamheid sinds april 2025)_
5. Bovenladers
6. Vaatwassers
7. Stofzuigers met snoer
8. Draadloze stofzuigers
9. Robotstofzuigers
10. Hogedrukreinigers
11. Elektrische grasmaaiers

Voor elke categorie bevat de module het criteriaraster dat aan de officiële teksten voldoet. Publiceert Bercy een aanpassing van de criteria, dan krijgt u binnen uw licentie een update van de module.

## Weergave in de webshop

### Keuze van de positie

Vanuit de configuratie van de module (_Modules → dfreparability → Configureren_) zijn er drie posities op de productpagina:

- **Onder de prijs** (aanbevolen): gebruikt de hook `displayProductPriceBlock` met `type=after_price`. Meteen zichtbaar bij het openen van de productpagina.
- **In een tabblad met bijkomende informatie**: gebruikt `displayProductAdditionalInfo`. Plaatst de index onder een apart tabblad.
- **Onder de miniaturen**: gebruikt `displayAfterProductThumbs`. Aanbevolen wanneer uw thema de productinfo rechts van de miniaturen plaatst.

Er mag maar één positie tegelijk actief zijn om dubbels te vermijden. De module dwingt die exclusiviteit in de configuratie af.

### Compacte weergave in lijsten

Een aparte optie activeert een compacte badge op de productkaarten in lijsten (categoriepagina, zoekresultaten) via de hook `displayProductListReviews`. De badge toont het gekleurde logo en de score op 10, zonder het detail van de criteria.

### Pagina met de gedetailleerde score

Elk product met een ingevulde index krijgt een publieke pagina `/module/dfreparability/detail?id_product={id}` die toont:

- het gekleurde logo op groot formaat;
- de score op 10 met de bijbehorende kleurband;
- het volledige criteriaraster met de scores;
- de link naar de officiële PDF als u die hebt ingevuld;
- een link naar de CMS-pagina met wettelijke informatie.

## CMS-pagina met wettelijke informatie

Bij de installatie maakt de module een CMS-pagina _Repareerbaarheids- en duurzaamheidsindex_ aan met referentie-inhoud in het Frans, die het volgende dekt:

- de juridische grondslagen (AGEC-wet, besluit 2020, decreet 2022);
- de tabel met de 5 kleurbanden en hun drempels;
- de lijst met de 11 betrokken categorieën en hun datum van inwerkingtreding;
- de 5 Bercy-criteria en hun weging;
- de extra criteria voor de duurzaamheid.

U kunt die pagina vrij aanpassen via _Ontwerp → Pagina's_ en ze in al uw actieve talen vertalen. De links vanuit de productpagina's wijzen automatisch naar de versie in de taal van de bezoeker.

## De weergave aanpassen

### De logo's vervangen door de originele Bercy-versies

De module levert 10 SVG-logo's (2 indexen × 5 banden) die op het officiële beeldmerk zijn geïnspireerd. Heeft de fabrikant u de officiële PNG- of SVG-bestanden bezorgd, vervang dan de bestanden in `views/img/logos/` met behoud van de namen:

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

### De CSS bijstellen

De weergave aan de frontend gebruikt de klassen `.dfrep-badge`, `.dfrep-score` en `.dfrep-band-*`. De belangrijkste CSS staat in `views/css/dfreparability.css`. Wilt u iets aanpassen zonder de module te wijzigen, voeg dan uw regels toe aan de CSS van uw childthema: de selectors blijven tussen versies stabiel.

## Meertaligheid en multistore

Inbegrepen vertalingen: Frans, Engels, Spaans en Duits. Een extra taal toevoegen doet u met het standaard vertaalgereedschap van PrestaShop (_Internationaal → Vertalingen_).

De scores van de producten worden per `id_product` opgeslagen en dus gedeeld tussen de winkels van een multistore-netwerk. Heeft een product per winkel andere scores, dan moet u het opsplitsen. De CMS-pagina met wettelijke informatie kan wel per winkel verschillen, via het standaardgereedschap van PrestaShop.

## Productduplicatie

De module luistert naar de hook `actionProductAdd`: dupliceert u een product met een ingevulde index, dan worden de scores en het criteriaraster automatisch naar het nieuwe product gekopieerd.

## Compatibiliteit en vereisten

- **PrestaShop**: 8.0 tot 9.x (beide modi van de productpagina, legacy en Symfony).
- **PHP**: 7.4 minimum, 8.1+ aanbevolen.
- **Thema's**: compatibel met Classic, Hummingbird en thema's van derden die de standaardhooks van de productpagina afvuren.
- **PrestaShop 1.7**: niet ondersteund.

## Probleemoplossing

### De badge verschijnt twee keer op de productpagina

Controleer of u in de configuratie van de module niet meerdere weergaveposities tegelijk hebt geactiveerd. Sinds v1.0.1 reageert de hook `displayProductPriceBlock` alleen op het type `after_price`, wat het interne dubbel in het prijsblok voorkomt.

### De detailpagina geeft "Controller not found"

Leeg op PrestaShop 9 de Symfony-cache (_Geavanceerde instellingen → Prestaties → Cache legen_) na de installatie. Versie 1.0.1 corrigeert de schrijfwijze van de klassenaam van de controller naar de canonieke vorm die de Dispatcher van PS 9 verwacht.

### Het paneel verschijnt niet in de Symfony-productpagina

Controleer of de hook `actionProductFormBuilderModifier` wel degelijk aan de module is gekoppeld (_Ontwerp → Posities_). Dat is de native Symfony-hook: heeft een andere module hem globaal uitgeschakeld, activeer hem dan opnieuw voor dfreparability.

## Versiegeschiedenis

### 1.0.1, 14 mei 2026

- Dubbele weergave van de badge in het prijsblok gecorrigeerd (`displayProductPriceBlock` beperkt tot `after_price`).
- Klassenaam van de frontendcontroller gecorrigeerd naar de canonieke vorm die PrestaShop 9 verwacht.
- Defensief laden van `dfreparability.php` en `classes/DfReparabilityProduct.php` bovenaan de frontendcontroller.
- Smarty-variabele `$link` vervangen door `$module_dir` in de beheertemplate (de ExtraModulesType-context van PS 9 injecteert `$link` niet).

### 1.0.0, 14 mei 2026

- Eerste publieke versie.
- Repareerbaarheids- en duurzaamheidsindex per product.
- 11 vooraf ingestelde categorieën, 5 wettelijke banden en 10 SVG-logo's.
- Pagina met de gedetailleerde score en CMS-pagina met wettelijke informatie.
- Vertalingen FR, EN, ES en DE. Compatibel met PrestaShop 8 en 9.
