Wszystko, co warto wiedzieć, zanim zainstalujesz.
Szczegółowe spojrzenie na to, jak działa Usuwanie konta klienta zgodne z RODO PrestaShop 8 i 9, dlaczego zbudowaliśmy go w ten sposób i jaka myśl stoi za powyższymi funkcjami.
Dlaczego ten moduł jest niezbędny
Od 2018 roku RODO nakłada na każdą firmę przetwarzającą dane osobowe obywateli Unii Europejskiej obowiązek umożliwienia użytkownikom skorzystania z prawa do usunięcia danych (artykuł 17). PrestaShop nie oferuje tej funkcji natywnie: administrator musi obsłużyć każde żądanie ręcznie, usunąć konto po stronie sklepu, a następnie wypisać adres z każdej platformy newsletterowej po kolei. To czasochłonne, podatne na błędy i ryzykowne w razie kontroli organu ochrony danych. Ten moduł w pełni automatyzuje proces, od żądania klienta aż po wypisanie z zewnętrznych platform newsletterowych.
Dwa tryby: anonimizacja albo pełne usunięcie
Moduł oferuje dwa tryby działania. W trybie anonimizacji (zalecanym) dane osobowe klienta są zastępowane wartościami anonimowymi: nazwisko staje się Anonymized, e-mail unikalnym identyfikatorem wewnętrznym, adresy są czyszczone (ale zachowywane, jeśli są powiązane z zamówieniami). Zamówienia pozostają nietknięte, aby spełnić obowiązek przechowywania dokumentów księgowych (w Polsce 5 lat od końca roku podatkowego, we Francji 10 lat). W trybie usunięcia konto jest kasowane w całości, jeśli nie istnieją żadne zamówienia, a w przeciwnym razie moduł automatycznie przełącza się w anonimizację, aby nie naruszyć historii wymaganej prawem.
Bezpieczne potwierdzenie e-mail
Aby uniknąć przypadkowych i złośliwych usunięć, moduł wysyła e-mail potwierdzający z unikalnym linkiem zawierającym token kryptograficzny. Token jest generowany funkcją random_bytes o długości 32 bajtów, a następnie konwertowany na 64 znaki szesnastkowe. W bazie przechowywany jest wyłącznie jego hash SHA-256, nigdy token jawnie. Link wygasa po konfigurowalnym czasie (domyślnie 24 godziny). Klient musi też potwierdzić swoje hasło, zanim e-mail potwierdzający zostanie wysłany: blokuje to próby usunięcia konta przez osobę trzecią mającą dostęp do otwartej sesji.
Szczegóły integracji newsletterowych
W standardzie obsługiwane są trzy platformy. Dla Mailchimp używany jest endpoint POST na lists, członkowie, akcje, delete-permanent, który trwale usuwa subskrybenta i uniemożliwia przyszły ponowny zapis tego adresu (prawdziwe prawo do bycia zapomnianym w rozumieniu RODO). Opcja pozwala przełączyć się na zwykłe archiwizowanie, jeśli wolisz. Dla Brevo (dawniej Sendinblue) jest to DELETE na v3 contacts z adresem e-mail, które usuwa kontakt ze wszystkich list. Jeśli podasz List ID, kontakt zostanie usunięty tylko z tej konkretnej listy zamiast całkowicie. Dla Mailjet moduł używa oficjalnego endpointu GDPR DELETE v4 contacts po wyszukaniu identyfikatora kontaktu. Każdy dostawca ma w back office przycisk Testuj połączenie do weryfikacji konfiguracji przed wdrożeniem produkcyjnym.
Rozszerzalna architektura pod kolejne platformy
Dostawcy newsletterowi realizują wzorzec Strategy z interfejsem PHP DataFirefly AccountDelete ProviderInterface. Dodanie Sendgrid, Mailerlite, HubSpot, ActiveCampaign albo dowolnej innej platformy wymaga wyłącznie utworzenia klasy rozszerzającej AbstractProvider z czterema metodami: isEnabled, getKey, deleteSubscriber i testConnection. Klasa jest następnie wskazana w DataFirefly AccountDelete Service getProviders. Żadna inna modyfikacja modułu nie jest potrzebna. Dołączony do modułu plik README zawiera pełny przykład.
Rejestr przetwarzania RODO
Każde żądanie jest zapisywane w tabeli ps_dfad_log wyłącznie w postaci danych spseudonimizowanych: hash SHA-256 adresu e-mail (nigdy adres jawnie), hash SHA-256 adresu IP wnioskodawcy, wewnętrzny identyfikator klienta, zastosowany tryb (anonimizacja albo usunięcie), lista skontaktowanych dostawców z ich kodem odpowiedzi HTTP, skrócony user-agent, identyfikator sklepu, znacznik czasu UTC. Rejestr służy jako dowód przetwarzania w razie kontroli organu ochrony danych albo sporu z klientem. Celowo nie jest usuwany przy deinstalacji modułu, aby zachować ten dowód w czasie.
Wszystkie dane wyczyszczone
Poza anonimizacją samego konta klienta moduł czyści liczne powiązane tabele: ps_emailsubscription i ps_newsletter (natywne wypisanie PrestaShop), ps_cart i ps_cart_product (niezamówione koszyki), ps_wishlist i ps_wishlist_product (lista życzeń, jeśli natywny moduł jest aktywny), ps_compare i ps_compare_product (porównywarka produktów), ps_customer_thread i ps_customer_message (korespondencja z obsługą klienta), ps_guest (sesje gości niepowiązane z zamówieniami). Adresy niepowiązane z zamówieniami są usuwane w całości, a te powiązane z zamówieniami są anonimizowane (firstname, lastname, address1, postcode, city, phone zastąpione wartościami neutralnymi).
Na razie nie ma opinii o produkcie.