Tudo o que quer saber antes de instalar.
Uma análise detalhada de como o Eliminação de Conta de Cliente RGPD PrestaShop 8 e 9 funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.
Porque é que este módulo é essencial
Desde 2018, o RGPD obriga qualquer empresa que trate dados pessoais de cidadãos europeus a permitir que os utilizadores exerçam o direito ao apagamento (artigo 17.º). O PrestaShop não oferece essa funcionalidade de origem: o administrador tem de tratar cada pedido manualmente, eliminar a conta na loja e depois retirar o e-mail de cada plataforma de newsletter, uma a uma. É demorado, propenso a erros e arriscado em caso de fiscalização pela CNPD. Este módulo automatiza todo o processo, desde o pedido do cliente até à remoção nas plataformas de newsletter de terceiros.
Dois modos: anonimização ou eliminação total
O módulo propõe dois modos de funcionamento. No modo anonimização (recomendado), os dados pessoais do cliente são substituídos por valores anónimos: o nome passa a «Anonymized», o e-mail a um identificador interno único e as moradas são limpas (mas conservadas se estiverem ligadas a encomendas). As encomendas mantêm-se intactas para respeitar a obrigação de conservação dos documentos contabilísticos durante 10 anos, prevista no artigo 123.º do Código do IRC e no artigo 52.º do Código do IVA. No modo eliminação, a conta é totalmente apagada se não existir nenhuma encomenda; caso contrário, o módulo passa automaticamente para a anonimização para não quebrar o histórico legal.
Confirmação segura por e-mail
Para evitar eliminações acidentais ou maliciosas, o módulo envia um e-mail de confirmação com uma ligação única e um token criptográfico. O token é gerado com random_bytes de 32 bytes e convertido em hexadecimal com 64 carateres. Só o respetivo hash SHA-256 é guardado em base de dados, nunca o token em claro. A ligação expira após um prazo configurável (24 horas por predefinição). O cliente tem ainda de validar a palavra-passe antes de o e-mail de confirmação ser enviado: isso bloqueia as tentativas de eliminação por terceiros com acesso a uma sessão aberta.
Integrações de newsletter em detalhe
Três plataformas são suportadas de origem. No Mailchimp, o endpoint usado é POST em lists/{list_id}/members/{hash}/actions/delete-permanent, que elimina definitivamente o subscritor e impede qualquer nova subscrição com esse e-mail (o verdadeiro direito ao esquecimento na aceção do RGPD). Uma opção permite passar a um simples arquivo, se preferir. No Brevo (ex-Sendinblue), é DELETE em v3/contacts/{email}, que retira o contacto de todas as listas. Se indicar um List ID, o contacto é apenas retirado dessa lista específica em vez de eliminado por completo. No Mailjet, o módulo usa o endpoint GDPR oficial DELETE v4/contacts/{id} depois de procurar o identificador do contacto. Cada fornecedor tem um botão «Testar a ligação» no back-office para validar a configuração antes de entrar em produção.
Arquitetura extensível para acrescentar outras plataformas
Os fornecedores de newsletter seguem um padrão Strategy com uma interface PHP DataFirefly/AccountDelete/ProviderInterface. Acrescentar o Sendgrid, o Mailerlite, o HubSpot, o ActiveCampaign ou qualquer outra plataforma exige apenas criar uma classe que estenda AbstractProvider com quatro métodos: isEnabled, getKey, deleteSubscriber e testConnection. A classe é depois referenciada em DataFirefly/AccountDelete/Service::getProviders. Não é necessária mais nenhuma alteração ao módulo. O README fornecido com o módulo detalha um exemplo completo.
Registo de tratamento RGPD
Todos os pedidos são registados na tabela ps_dfad_log apenas com dados pseudonimizados: hash SHA-256 do e-mail (nunca o e-mail em claro), hash SHA-256 do IP do requerente, identificador interno do cliente, modo aplicado (anonimização ou eliminação), lista dos fornecedores contactados com o respetivo código HTTP de resposta, user-agent truncado, identificador da loja e data e hora em UTC. Este registo serve de prova do tratamento em caso de fiscalização pela CNPD ou de litígio com um cliente. Propositadamente, não é eliminado ao desinstalar o módulo, para preservar essa prova ao longo do tempo.
Todos os dados limpos
Além da anonimização da própria conta de cliente, o módulo limpa várias tabelas associadas: ps_emailsubscription e ps_newsletter (remoção nativa do PrestaShop), ps_cart e ps_cart_product (carrinhos não encomendados), ps_wishlist e ps_wishlist_product (lista de desejos, se o módulo nativo estiver ativo), ps_compare e ps_compare_product (comparador de produtos), ps_customer_thread e ps_customer_message (trocas de apoio ao cliente), ps_guest (sessões de convidado não ligadas a encomendas). As moradas não ligadas a encomendas são eliminadas por completo; as que estão ligadas a encomendas são anonimizadas (firstname, lastname, address1, postcode, city e phone substituídos por valores neutros).
Ainda não existem avaliações.