Alles wat u wilt weten voordat u installeert.
Een gedetailleerde blik op hoe Klantaccount Verwijderen volgens de AVG voor PrestaShop 8 & 9 werkt, waarom we het zo gebouwd hebben en de gedachte achter de bovenstaande functies.
Waarom deze module onmisbaar is
Sinds 2018 verplicht de AVG elke onderneming die persoonsgegevens van Europese burgers verwerkt om haar gebruikers hun recht op gegevenswissing te laten uitoefenen (artikel 17). PrestaShop biedt die functie niet van huis uit: de beheerder moet elke aanvraag handmatig afhandelen, het account in de winkel verwijderen en daarna het e-mailadres één voor één uit elk nieuwsbriefplatform halen. Dat kost tijd, nodigt uit tot fouten en is riskant bij een controle door de toezichthouder. Deze module automatiseert het hele proces, van de aanvraag van de klant tot de afmelding bij externe nieuwsbriefplatforms.
Twee modi: anonimiseren of volledig verwijderen
De module kent twee werkwijzen. In de modus anonimiseren (aanbevolen) worden de persoonsgegevens van de klant vervangen door anonieme waarden: de naam wordt Anonymized, het e-mailadres een uniek intern kenmerk, en de adressen worden geschoond (maar blijven bestaan als ze aan bestellingen hangen). De bestellingen blijven intact, zodat u aan uw wettelijke bewaarplicht voor boekhoudkundige stukken kunt voldoen. In de modus verwijderen wordt het account volledig gewist als er geen bestellingen zijn; bestaan die wel, dan schakelt de module automatisch over naar anonimiseren om de wettelijke geschiedenis niet te breken.
Beveiligde bevestiging per e-mail
Om onbedoelde of kwaadwillende verwijderingen te voorkomen, stuurt de module een bevestigingsmail met een unieke link en een cryptografisch token. Dat token wordt gemaakt met random_bytes van 32 bytes en daarna omgezet naar 64 hexadecimale tekens. Alleen de SHA-256-hash ervan wordt in de database bewaard, nooit het token zelf. De link verloopt na een instelbare termijn (standaard 24 uur). De klant moet daarnaast zijn wachtwoord bevestigen voordat de e-mail wordt verstuurd, wat pogingen blokkeert van een derde die toegang heeft tot een openstaande sessie.
De koppelingen met de nieuwsbriefplatforms
Drie platforms worden standaard ondersteund. Bij Mailchimp gaat het om een POST op lists/{list_id}/members/{hash}/actions/delete-permanent, waarmee de abonnee definitief wordt verwijderd en een toekomstige aanmelding met dat adres onmogelijk wordt (het echte recht op vergetelheid in de zin van de AVG). Met een optie schakelt u over op een eenvoudige archivering, als u dat liever hebt. Bij Brevo (voorheen Sendinblue) is het een DELETE op v3/contacts/{email}, waarmee het contact uit alle lijsten verdwijnt. Vult u een List ID in, dan wordt het contact alleen uit die ene lijst gehaald in plaats van volledig verwijderd. Bij Mailjet gebruikt de module het officiële AVG-endpoint DELETE v4/contacts/{id}, nadat de contactidentificator is opgezocht. Elke aanbieder heeft in de backoffice een knop om de verbinding te testen, zodat u de configuratie kunt valideren voordat u live gaat.
Uitbreidbare architectuur voor andere platforms
De nieuwsbriefaanbieders volgen een strategiepatroon met een PHP-interface DataFirefly/AccountDelete/ProviderInterface. Sendgrid, Mailerlite, HubSpot, ActiveCampaign of welk ander platform dan ook toevoegen vraagt alleen een klasse die AbstractProvider uitbreidt met vier methoden: isEnabled, getKey, deleteSubscriber en testConnection. Die klasse verwijst u daarna in DataFirefly/AccountDelete/Service::getProviders. Verder hoeft er niets aan de module te worden gewijzigd. De README die bij de module wordt geleverd bevat een volledig uitgewerkt voorbeeld.
AVG-verwerkingsregister
Elke aanvraag wordt vastgelegd in de tabel ps_dfad_log, uitsluitend met gepseudonimiseerde gegevens: de SHA-256-hash van het e-mailadres (nooit het adres zelf), de SHA-256-hash van het IP-adres van de aanvrager, de interne klantidentificator, de toegepaste modus (anonimiseren of verwijderen), de lijst met benaderde aanbieders met hun HTTP-retourcode, de afgekapte user-agent, de winkelidentificator en het tijdstip in UTC. Dat register dient als bewijs van de verwerking bij een controle door de toezichthouder of bij een geschil met een klant. Het wordt bewust niet gewist wanneer de module wordt verwijderd, zodat dat bewijs op termijn behouden blijft.
Alle gegevens opgeruimd
Naast het anonimiseren van het klantaccount zelf ruimt de module een reeks gekoppelde tabellen op: ps_emailsubscription en ps_newsletter (de native afmelding van PrestaShop), ps_cart en ps_cart_product (niet-bestelde winkelwagens), ps_wishlist en ps_wishlist_product (het verlanglijstje, als de native module actief is), ps_compare en ps_compare_product (de productvergelijker), ps_customer_thread en ps_customer_message (het contact met de klantenservice) en ps_guest (gastsessies die niet aan bestellingen hangen). Adressen die niet aan bestellingen hangen worden volledig verwijderd; adressen die daar wel aan hangen worden geanonimiseerd, waarbij firstname, lastname, address1, postcode, city en phone door neutrale waarden worden vervangen.
Er zijn nog geen beoordelingen.