# Wersjonowanie regulaminu i dowód akceptacji: dokumentacja

> Instalacja Zainstaluj moduł w Moduły > Menedżer modułów > Załaduj moduł, przesyłając plik ZIP, albo skopiuj folder dftermsversion do katalogu /modules/ sklepu i kliknij Zainstaluj. Podczas instalacji moduł tworzy swoje…

- Strona: <https://www.datafirefly.com/pl/documentation/dftermsversion/>
- Język: pl
- Zaktualizowano: 2026-09-30
- Inne języki: [fr](https://www.datafirefly.com/documentation/dftermsversion/index.md), [en](https://www.datafirefly.com/en/documentation/dftermsversion/index.md), [es](https://www.datafirefly.com/es/documentation/dftermsversion/index.md), [de](https://www.datafirefly.com/de/documentation/dftermsversion/index.md), [it](https://www.datafirefly.com/it/documentation/dftermsversion/index.md), [nl](https://www.datafirefly.com/nl/documentation/dftermsversion/index.md), [pt](https://www.datafirefly.com/pt/documentation/dftermsversion/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

## Instalacja

Zainstaluj moduł w **Moduły > Menedżer modułów > Załaduj moduł**, przesyłając plik ZIP, albo skopiuj folder `dftermsversion` do katalogu `/modules/` sklepu i kliknij Zainstaluj.

Podczas instalacji moduł tworzy swoje tabele, dodaje dwie zakładki w menu **Zamówienia** (**Wersje regulaminu** i **Rejestr akceptacji**) i importuje treść strony CMS regulaminu jako szkic. Klienci jeszcze nic nie widzą: żadna wersja nie obowiązuje, dopóki jej nie opublikujesz.

Sprawdź, czy pole akceptacji regulaminu jest włączone w **Parametry sklepu > Ustawienia zamówień**. Bez niego klienci niczego nie zaznaczają przed płatnością, a dowód jest słabszy. Strona konfiguracji modułu ostrzega, jeśli pole jest wyłączone.

## Publikacja pierwszej wersji

Otwórz **Zamówienia > Wersje regulaminu**. Zaimportowany szkic ma status Szkic. Kliknij go, aby przeczytać go w każdym języku, a w razie potrzeby kliknij **Edytuj**.

### Pola wersji

- **Numer wersji**: oznaczenie widoczne dla klientów, na przykład 2026-10 lub 4.2. Musi być unikalne.
- **Tytuł i tekst**: dla każdego języka. Pusty język otrzymuje przy publikacji tekst języka domyślnego.
- **Obowiązuje od dnia**: pozostaw puste, aby wersja obowiązywała od razu po publikacji. Przyszła data planuje zmianę. Data w przeszłości dodaje wcześniejszą wersję do historii (patrz niżej).
- **Podsumowanie zmian**: wyświetlane w publicznej historii wersji.

Następnie kliknij **Opublikuj**. Wersja zostaje zablokowana: jej tekst, odcisk SHA-256 i pliki PDF wygenerowane w każdym języku nie mogą się już zmienić. Jeśli znacznik czasu jest włączony, moduł od razu prosi o niego skonfigurowany urząd.

Opublikowanej wersji nie można już edytować ani usunąć. To właśnie nadaje jej wartość dowodową. Przeczytaj szkic przed publikacją.

## Zmiana regulaminu

W opublikowanej wersji kliknij **Utwórz nową wersję na podstawie tej**. Powstaje szkic z tym samym tekstem. Edytuj go, uzupełnij podsumowanie zmian, wybierz datę wejścia w życie i opublikuj.

### Porównanie dwóch wersji

W widoku wersji blok **Porównaj** domyślnie proponuje poprzednią wersję, a w przypadku szkicu wersję obowiązującą. Kliknij **Pokaż zmiany**: zmienione, dodane i usunięte akapity są wyróżnione, w zmienionych akapitach słowo po słowie, a niezmienione akapity są zwinięte. Język zmieniasz przyciskami w prawym górnym rogu.

### Planowanie zmiany

Wersja opublikowana z przyszłą datą ma status Zaplanowana. W tym dniu automatycznie staje się obowiązującą wersją, bez zadania cron. Strona konfiguracji pokazuje następną zaplanowaną wersję.

## Co widzi klient

- **Przy płatności**: nad metodami płatności komunikat podaje obowiązującą wersję, jej datę i link do PDF, a także link do poprzednich wersji, jeśli publiczna historia jest włączona.
- **W e-mailu z potwierdzeniem**: PDF zaakceptowanej wersji jest dołączany do e-maila `order_conf`.
- **Na koncie**: szczegóły każdego zamówienia przypominają zaakceptowaną wersję z linkiem do pobrania.
- **Na fakturze**: wzmianka o wersji i jej odcisku, jeśli opcja jest włączona.

## Co moduł zapisuje przy każdym zamówieniu

Gdy wyświetla się etap płatności, moduł zapamiętuje wersję pokazaną klientowi wraz z jego adresem IP, przeglądarką i godziną. Przy zatwierdzeniu zamówienia zapisuje pokazaną wersję, odcisk SHA-256 tekstu w języku klienta oraz te dane o wyświetleniu.

Jeśli wyświetlenie nie zostało zarejestrowane, na przykład przy checkoucie, który nie wywołuje hooka `displayPaymentTop`, moduł zapisuje wersję obowiązującą w dniu zamówienia ze sposobem zapisu „Zatwierdzenie zamówienia”. Zamówienie utworzone w panelu administracyjnym jest zapisywane ze sposobem „Panel administracyjny”.

## Podgląd dowodu dla zamówienia

Na stronie zamówienia w panelu administracyjnym karta **Zaakceptowany regulamin** pokazuje wersję, daty, adres IP, sposób zapisu, kontrolę integralności tekstu i pozycję zamówienia w rejestrze. Trzy przyciski:

- **Pakiet dowodowy (ZIP)**: plik do przekazania w razie sporu (szczegóły poniżej).
- **Potwierdzenie akceptacji (PDF)**: dokument ze wszystkimi zapisanymi danymi, a po nim pełny zaakceptowany tekst.
- **Zaakceptowany regulamin (PDF)**: PDF wersji w postaci dołączonej do e-maila.

### Zawartość pakietu dowodowego

- `01-acceptance-certificate.pdf`: potwierdzenie akceptacji.
- `02-...pdf`: PDF zaakceptowanej wersji.
- `03-accepted-text.txt`: dokładny tekst źródłowy. Jego SHA-256 jest równy odciskowi zapisanemu z zamówieniem.
- `04-version-timestamp/`: manifest wersji i jej token znacznika czasu `.tsr`.
- `05-register/`: wpis zamówienia w rejestrze, wyciąg z łańcucha (tylko identyfikatory i odciski, bez danych innych klientów) oraz obejmująca go pieczęć.
- `README.txt`: opis każdego pliku i polecenia weryfikacji w języku pracownika.

## Opieczętowany rejestr

Każda akceptacja zawiera odcisk swojej treści i odcisk poprzedniej akceptacji. Późniejsza zmiana, dodanie lub usunięcie wpisu przerywa ten łańcuch. W **Zamówienia > Rejestr akceptacji** przycisk **Zweryfikuj rejestr** przelicza cały łańcuch i wskazuje pierwszy zmieniony wpis, jeśli taki istnieje.

### Pieczęcie

Pieczęć sprawia, że urząd nadaje znacznik czasu odciskowi ostatniego wpisu w rejestrze. Potwierdza, że cały rejestr do tego wpisu istniał w tym dniu, i wykrywa także usunięcie ostatnich wpisów. Kliknij **Opieczętuj teraz** albo wywołuj raz dziennie w zadaniu cron adres URL z bloku **Automatyczne pieczętowanie**:

```
0 3 * * * curl -s "https://twoj-sklep.pl/module/dftermsversion/cron?token=..." > /dev/null
```

Adres URL pieczętuje rejestr tylko wtedy, gdy od ostatniej pieczęci pojawiły się nowe wpisy.

## Znacznik czasu strony trzeciej

Znacznik czasu RFC 3161 polega na tym, że niezależny urząd podpisuje odcisk wraz z datą. Moduł stosuje go dla każdej opublikowanej wersji (na manifeście z odciskiem tekstu w każdym języku) i dla pieczęci rejestru.

Domyślnie moduł korzysta z `http://timestamp.digicert.com`, bezpłatnie i bez konta. W konfiguracji możesz wskazać inny urząd, na przykład `https://freetsa.org/tsr` lub kwalifikowany urząd eIDAS. Serwer sklepu musi mieć połączenie z urzędem.

Jeśli urząd nie odpowie przy publikacji, wersja i tak zostanie opublikowana. Błąd pojawia się w widoku wersji, razem z przyciskiem **Nadaj znacznik teraz** do ponownej próby.

## Istniejący sklep: historia i wcześniejsze zamówienia

Aby objąć zamówienia złożone przed instalacją:

1. Najpierw opublikuj aktualną wersję regulaminu.
2. Utwórz osobną wersję dla każdego wcześniejszego regulaminu, z jego rzeczywistą datą wejścia w życie w przeszłości, i opublikuj ją. Moduł odrzuca datę wsteczną tylko wtedy, gdy na ten okres przypadają zamówienia już powiązane z inną wersją.
3. W **Zamówienia > Rejestr akceptacji** blok **Wcześniejsze zamówienia** pokazuje, ile zamówień nie jest powiązanych z żadną wersją. Kliknij **Powiąż te zamówienia**: przetwarzanie odbywa się partiami z paskiem postępu.

Te zamówienia otrzymują wersję obowiązującą w dniu ich złożenia i są oznaczone jako **Powiązana później**, bez adresu IP i bez śladu wyświetlenia. Moduł nie twierdzi niczego, czego nie stwierdził: takie powiązania wskazują obowiązującą wersję, ale nie dowodzą wyświetlenia.

## Ustawienia modułu

- **Dołącz PDF do e-maili** i **Szablony e-mail**: domyślnie `order_conf`, możesz dodać na przykład `payment` lub `bankwire`.
- **Pokaż wersję przy płatności**: komunikat nad metodami płatności. Po wyłączeniu moduł nadal rejestruje wyświetloną wersję.
- **Wzmianka na fakturach**.
- **Publiczna historia wersji**: strona z opublikowanymi wersjami i ich plikami PDF.
- **Automatycznie aktualizuj stronę CMS**: gdy wersja wchodzi w życie, jej tekst zastępuje treść wybranej strony CMS, dzięki czemu pole w koszyku zawsze prowadzi do właściwej wersji. Przycisk **Zaktualizuj stronę CMS teraz** wymusza synchronizację.
- **Anonimizuj adresy IP**: zapisuje tylko część sieciową adresu IP.
- **Znacznik czasu strony trzeciej** i **Urząd znacznika czasu**.
- **Żądania usunięcia danych (RODO)**: patrz niżej.
- **Usuń wszystkie dane przy odinstalowaniu**: domyślnie wyłączone. Pozostaw wyłączone, wersje i rejestr są Twoimi dowodami.

## RODO

Moduł łączy się z oficjalnym modułem RODO PrestaShop (psgdpr). Akceptacje klienta są uwzględniane w eksporcie jego danych. Przy żądaniach usunięcia masz dwie możliwości:

- **Zachowaj dowód** (domyślnie): wpisy są zachowywane, na co pozwala art. 17 ust. 3 lit. e RODO w celu ustalenia, dochodzenia lub obrony roszczeń. Wspomnij o tym w polityce prywatności.
- **Usuń adres IP i przeglądarkę**: te pola są czyszczone. Rejestr pozostaje weryfikowalny, a odcisk obliczony przy usunięciu chroni pozostałe pola, ale dowód dla tego klienta jest słabszy.

## Rozwiązywanie problemów

### Komunikat nie pojawia się przy płatności

Sprawdź, czy jakaś wersja obowiązuje i czy opcja wyświetlania jest włączona. Jeśli motyw lub moduł checkoutu nie wywołuje hooka `displayPaymentTop`, zamówienia są zapisywane z wersją obowiązującą w dniu zamówienia.

### PDF nie jest dołączany do e-maila

Sprawdź opcję **Dołącz PDF do e-maili** i dokładną nazwę szablonu. Niektóre moduły płatności wysyłają własne potwierdzenie pod inną nazwą szablonu: dodaj ją do listy.

### Nie udaje się uzyskać znacznika czasu

Komunikat o błędzie podaje przyczynę. Najczęściej hosting blokuje połączenia wychodzące. Wypróbuj inny urząd albo poproś dostawcę hostingu o otwarcie dostępu do adresu urzędu. Zalecane jest rozszerzenie PHP cURL.

### Weryfikacja rejestru wykrywa zmianę

Komunikat wskazuje wpis i rodzaj problemu: zmieniona treść, wpis dodany lub usunięty przed nim albo brak opieczętowanego wpisu. Przywróć tabelę `dftv_acceptance` z kopii zapasowej sprzed zmiany i ponownie uruchom weryfikację.

## Zgodność

- PrestaShop od 8.0 do 9.x, ten sam plik ZIP obsługuje obie gałęzie.
- Multisklep i wielojęzyczność.
- Pliki PDF generowane przez wbudowany w PrestaShop TCPDF, rozszerzenie PHP zip wymagane dla pakietu dowodowego.
- Architektura ModuleAdminController, bez zależności Composer.
- Interfejs w języku polskim, angielskim, francuskim, hiszpańskim, niemieckim, włoskim, niderlandzkim i portugalskim.
