# dfreparability: wskaźnik naprawialności i trwałości dla PrestaShop

> Moduł dfreparability realizuje obowiązek wyświetlania wskaźnika naprawialności (francuska ustawa AGEC, rozporządzenie z 29 grudnia 2020) oraz wskaźnika trwałości (dekret z 22 kwietnia 2022) dla 11 objętych kategorii, w PrestaShop 8…

- Strona: <https://www.datafirefly.com/pl/documentation/dfreparability/>
- Język: pl
- Zaktualizowano: 2026-08-01
- Inne języki: [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), [nl](https://www.datafirefly.com/nl/documentation/dfreparability/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfreparability/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

Moduł **dfreparability** realizuje obowiązek wyświetlania wskaźnika naprawialności (francuska ustawa AGEC, rozporządzenie z 29 grudnia 2020) oraz wskaźnika trwałości (dekret z 22 kwietnia 2022) dla 11 objętych kategorii, w PrestaShop 8 i 9.

**Zakres regulacyjny**: oba wskaźniki są obowiązkiem prawa francuskiego. W Polsce nie obowiązuje odpowiednik krajowy. Moduł jest przeznaczony dla sklepów, które sprzedają do Francji albo prowadzą tam wersję językową, oraz dla sprzedawców, którzy chcą wyświetlać ocenę naprawialności dobrowolnie, jako argument sprzedażowy. Wszystkie odniesienia prawne poniżej dotyczą prawa francuskiego.

## Ramy prawne

Obowiązek opiera się na dwóch aktach prawa francuskiego:

- **Wskaźnik naprawialności**: obowiązkowy od 1 stycznia 2021 dla 9 początkowych kategorii, rozszerzany stopniowo (ustawa AGEC z lutego 2020, rozporządzenie z 29 grudnia 2020).
- **Wskaźnik trwałości**: wprowadzony dekretem z 22 kwietnia 2022. Zastępuje naprawialność w telewizorach od kwietnia 2024, a w pralkach ładowanych od frontu od kwietnia 2025.

Oba wskaźniki liczy się w skali do 10 na podstawie 5 kryteriów Bercy (każde punktowane do 20). Wskaźnik trwałości dokłada 3 kryteria dodatkowe: niezawodność, możliwość ulepszania i serwisowalność.

**Grożąca sankcja**: brak wyświetlenia naraża osobę prawną na karę do 15 000 euro za każdy niezgodny produkt (artykuł L541-9-2 francuskiego kodeksu środowiska).

## Instalacja

1. W back office PrestaShop otwórz _Moduły → Menedżer modułów_, kliknij _Wgraj moduł_ i wskaż plik `dfreparability.zip`.
2. Kliknij _Instaluj_. Moduł:
   - tworzy tabelę `ps_dfreparability_product` do przechowywania ocen per produkt;
   - tworzy stronę CMS _Wskaźnik naprawialności i trwałości_ z referencyjną treścią gotową do dostosowania;
   - zapisuje 11 prekonfigurowanych kategorii wraz z odpowiadającymi im kryteriami Bercy.
3. Sama instalacja nie zmienia _żadnej_ istniejącej karty produktu. Oceny wprowadzasz produkt po produkcie.

## Wprowadzanie wskaźnika na karcie produktu

dfreparability dodaje do karty produktu panel _Wskaźnik naprawialności / trwałości_, dostępny zarówno w trybie legacy, jak i w trybie Symfony (PrestaShop 9). Procedura jest w obu trybach identyczna.

### Cztery kroki

1. **Typ wskaźnika**: wybierz _Naprawialność_ albo _Trwałość_. Dla telewizorów i pralek ładowanych od frontu wybierz od razu _Trwałość_, zgodnie z nowym obowiązkiem.
2. **Kategoria**: wskaż jedną z 11 prekonfigurowanych kategorii. Siatka kryteriów dostosuje się automatycznie.
3. **Oceny per kryterium**: każde punktowane do 20. Pięć kryteriów Bercy jest zawsze obecnych. Po wybraniu _Trwałości_ pojawiają się 3 kryteria dodatkowe.
4. **Wynik końcowy**: liczony automatycznie z kryteriów. Pole _Ocena ręczna_ pozwala nadpisać wynik, jeśli stosujesz korektę Bercy udokumentowaną w oficjalnej siatce producenta.

**Pole opcjonalne, PDF z siatką obliczeniową**: wprowadź link do oficjalnego PDF ze szczegółową siatką dostarczoną przez producenta. Link pojawi się na stronie szczegółowej oceny produktu.

## Obliczanie wyniku w skali do 10

Moduł stosuje oficjalną metodę Bercy:

```
wynik_do_10 = (suma ocen / liczba kryteriów) / 2
```

Przykład dla smartfona ocenianego pod kątem naprawialności, z następującymi pięcioma ocenami:

- Dokumentacja: 16 / 20
- Demontowalność: 14 / 20
- Dostępność części: 12 / 20
- Cena części: 10 / 20
- Kryteria specyficzne: 18 / 20

Wynik: (16 + 14 + 12 + 10 + 18) / 5 / 2 = 14 / 2 = **7,0 na 10**, pasmo jasnozielone.

### Pięć pasm regulacyjnych

Kolor logo zależy od wyniku i odpowiada ściśle oficjalnym progom:

| Wynik | Pasmo | Kod koloru |
| --- | --- | --- |
| ≥ 8,0 | Ciemnozielone | `#2d8c3c` |
| 7,0 do 7,9 | Jasnozielone | `#79c142` |
| 5,0 do 6,9 | Żółte | `#f5d70a` |
| 3,0 do 4,9 | Pomarańczowe | `#f08017` |
| < 3,0 | Czerwone | `#cf2127` |

## Jedenaście prekonfigurowanych kategorii

1. Smartfony
2. Laptopy
3. Telewizory _(trwałość od kwietnia 2024)_
4. Pralki ładowane od frontu _(trwałość od kwietnia 2025)_
5. Pralki ładowane od góry
6. Zmywarki
7. Odkurzacze przewodowe
8. Odkurzacze bezprzewodowe
9. Roboty odkurzające
10. Myjki ciśnieniowe
11. Kosiarki elektryczne

Dla każdej kategorii moduł zawiera siatkę kryteriów zgodną z oficjalnymi aktami prawnymi. Jeśli Bercy opublikuje zmianę kryteriów, aktualizacja modułu jest dostarczana w ramach twojej licencji.

## Wyświetlanie w sklepie

### Wybór pozycji

W konfiguracji modułu (_Moduły → dfreparability → Konfiguruj_) dostępne są trzy pozycje na karcie produktu:

- **Pod ceną** (zalecane): wykorzystuje hook `displayProductPriceBlock` z `type=after_price`. Widoczne od razu po otwarciu karty produktu.
- **W zakładce z informacjami dodatkowymi**: wykorzystuje `displayProductAdditionalInfo`. Ukrywa wskaźnik pod osobną zakładką.
- **Pod miniaturami**: wykorzystuje `displayAfterProductThumbs`. Zalecane, jeśli twój szablon umieszcza informacje o produkcie po prawej stronie miniatur.

Jednocześnie aktywna powinna być tylko jedna pozycja, inaczej wskaźnik pojawi się dwa razy. Moduł wymusza tę wyłączność po stronie konfiguracji.

### Wyświetlanie kompaktowe na listach

Osobna opcja włącza kompaktową plakietkę na kartach produktu w listach (strona kategorii, wyszukiwarka, wyniki) przez hook `displayProductListReviews`. Plakietka pokazuje kolorowe logo i ocenę w skali do 10, bez szczegółowej siatki kryteriów.

### Strona szczegółowej oceny

Każdy produkt z wprowadzonym wskaźnikiem ma publiczną stronę `/module/dfreparability/detail?id_product={id}`, która pokazuje:

- kolorowe logo w dużym formacie;
- ocenę w skali do 10 wraz z odpowiadającym jej pasmem koloru;
- pełną siatkę kryteriów i ich oceny;
- link do oficjalnego PDF, jeśli został wprowadzony;
- link do strony CMS z informacją prawną.

## Strona CMS z informacją prawną

Podczas instalacji moduł tworzy stronę CMS _Wskaźnik naprawialności i trwałości_ z referencyjną treścią po francusku, obejmującą:

- podstawy prawne (ustawa AGEC, rozporządzenie z 2020, dekret z 2022);
- tabelę 5 pasm kolorów wraz z progami;
- listę 11 objętych kategorii i daty ich wejścia w życie;
- 5 kryteriów Bercy i ich wagi;
- kryteria dodatkowe dla wskaźnika trwałości.

Stronę możesz dowolnie edytować w _Wygląd → Strony_ i przetłumaczyć na wszystkie aktywne języki, w tym polski. Linki z kart produktu prowadzą automatycznie do wersji w języku przeglądania.

## Personalizacja wyglądu

### Podmiana logo na oryginały Bercy

Moduł dostarcza 10 logo SVG (2 wskaźniki po 5 pasm) wzorowanych na oficjalnej grafice. Jeśli producent przekazał ci oficjalne pliki PNG albo SVG, podmień pliki w katalogu `views/img/logos/`, zachowując nazwy:

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

### Dostosowanie CSS

Front używa klas `.dfrep-badge`, `.dfrep-score` i `.dfrep-band-*`. Główny arkusz stylów znajduje się w `views/css/dfreparability.css`. Aby nadpisać wygląd bez modyfikowania modułu, dodaj własne reguły w CSS szablonu potomnego. Selektory pozostają stabilne między wersjami.

## Wielojęzyczność i multisklep

Tłumaczenia w zestawie: francuski, angielski, hiszpański, niemiecki. Dodanie kolejnego języka, na przykład polskiego, odbywa się standardowym narzędziem PrestaShop (_Międzynarodowe → Tłumaczenia_).

Oceny produktów są zapisywane per `id_product`, więc są współdzielone między sklepami w sieci multisklep. Jeśli produkt ma mieć różne oceny w różnych sklepach, trzeba go zduplikować. Samą stronę CMS z informacją prawną można natomiast zróżnicować per sklep standardowym narzędziem PrestaShop.

## Duplikacja produktu

Moduł nasłuchuje hooka `actionProductAdd`: przy duplikowaniu produktu z wprowadzonym wskaźnikiem oceny i siatka kryteriów są automatycznie kopiowane do nowego produktu.

## Kompatybilność i wymagania

- **PrestaShop**: od 8.0 do 9.x, oba tryby karty produktu, legacy i Symfony.
- **PHP**: minimum 7.4, zalecane 8.1 lub nowsze.
- **Szablony**: zgodny z Classic, Hummingbird oraz szablonami zewnętrznymi, które wywołują standardowe hooki karty produktu.
- **PrestaShop 1.7**: nieobsługiwany.

## Rozwiązywanie problemów

### Plakietka wyświetla się dwa razy na karcie produktu

Sprawdź, czy w konfiguracji modułu nie została włączona więcej niż jedna pozycja wyświetlania. Od wersji 1.0.1 hook `displayProductPriceBlock` odpowiada wyłącznie na typ `after_price`, co eliminuje wewnętrzne dublowanie w bloku ceny.

### Strona szczegółowa zwraca „Controller not found”

W PrestaShop 9 wyczyść cache Symfony po instalacji (_Parametry zaawansowane → Wydajność → Wyczyść cache_). Wersja 1.0.1 poprawia wielkość liter w nazwie klasy kontrolera do postaci kanonicznej oczekiwanej przez Dispatcher PS 9.

### Panel nie pojawia się na karcie produktu w trybie Symfony

Sprawdź, czy hook `actionProductFormBuilderModifier` jest przypisany do modułu (_Wygląd → Pozycje_). To natywny hook Symfony. Jeśli inny moduł wyłączył go globalnie, włącz go ponownie dla dfreparability.

## Historia wersji

### 1.0.1, 14 maja 2026

- Poprawka podwójnego wyświetlania plakietki w bloku ceny (`displayProductPriceBlock` ograniczony do `after_price`).
- Poprawka nazwy klasy kontrolera frontowego do postaci kanonicznej oczekiwanej przez PrestaShop 9.
- Defensywne ładowanie `dfreparability.php` i `classes/DfReparabilityProduct.php` na początku kontrolera frontowego.
- Przejście ze zmiennej Smarty `$link` na `$module_dir` w szablonie administracyjnym (kontekst ExtraModulesType w PS 9 nie wstrzykuje `$link`).

### 1.0.0, 14 maja 2026

- Pierwsza wersja publiczna.
- Wskaźnik naprawialności i trwałości per produkt.
- 11 prekonfigurowanych kategorii, 5 pasm regulacyjnych, 10 logo SVG.
- Strona szczegółowej oceny, strona CMS z informacją prawną.
- Tłumaczenia FR, EN, ES, DE. Zgodność z PrestaShop 8 i 9.
