Histórico dos termos e condições e prova de aceitação: documentação
Instalação, publicação e agendamento de versões, prova de aceitação por encomenda, dossiê de prova, registo selado, carimbo temporal e RGPD.
Instalação
Instale o módulo em Módulos > Gestor de módulos > Carregar um módulo enviando o ficheiro ZIP, ou copie a pasta dftermsversion para o diretório /modules/ da sua loja e clique em Instalar.
Na instalação, o módulo cria as suas tabelas, acrescenta dois separadores no menu Encomendas (Versões dos termos e Registo de aceitações) e importa o conteúdo da sua página CMS dos termos como rascunho. Os seus clientes ainda não veem nada: nenhuma versão está em vigor enquanto não publicar uma.
Confirme que a caixa dos termos e condições está ativada em Parâmetros da loja > Definições de encomendas. Sem ela, os clientes não assinalam nada antes de pagar e a prova é mais fraca. A página de configuração do módulo avisa-o se estiver desativada.
Publicar a primeira versão
Abra Encomendas > Versões dos termos. O rascunho importado aparece com o estado Rascunho. Clique nele para o ler em cada idioma e depois em Editar, se necessário.
Os campos de uma versão
- Número de versão: a etiqueta mostrada aos clientes, por exemplo 2026-10 ou 4.2. Tem de ser única.
- Título e texto: por idioma. Um idioma vazio recebe o texto do idioma predefinido na publicação.
- Em vigor a partir de: deixe vazio para aplicar a versão assim que for publicada. Uma data futura agenda a alteração. Uma data passada acrescenta uma versão anterior ao histórico (ver abaixo).
- Resumo das alterações: mostrado no histórico público.
Depois clique em Publicar. A versão fica bloqueada: o texto, a impressão digital SHA-256 e os PDF gerados em cada idioma deixam de poder mudar. Se o carimbo temporal estiver ativo, o módulo pede de imediato um carimbo à autoridade configurada.
Uma versão publicada deixa de poder ser editada ou eliminada. É isso que lhe dá valor de prova. Releia o rascunho antes de publicar.
Alterar os seus termos
A partir de uma versão publicada, clique em Criar uma nova versão a partir desta. É criado um rascunho com o mesmo texto. Altere-o, preencha o resumo das alterações, escolha a data de entrada em vigor e publique.
Comparar duas versões
Na vista de uma versão, o bloco Comparar propõe por predefinição a versão anterior, ou a versão em vigor se estiver num rascunho. Clique em Ver as alterações: os parágrafos alterados, adicionados e eliminados ficam realçados, palavra a palavra nos alterados, e os parágrafos sem alterações são recolhidos. Mude de idioma com os botões no canto superior direito.
Agendar uma alteração
Uma versão publicada com data futura tem o estado Agendada. Passa automaticamente a ser a versão em vigor nessa data, sem tarefa cron. A página de configuração mostra a próxima versão agendada.
O que o cliente vê
- No pagamento: acima dos métodos de pagamento, um aviso indica a versão em vigor, a respetiva data e uma ligação para o PDF, e ainda uma ligação para as versões anteriores se o histórico público estiver ativo.
- No email de confirmação: o PDF da versão aceite é anexado ao email
order_conf. - Na conta: o detalhe de cada encomenda lembra a versão aceite com uma ligação de download.
- Na fatura: uma menção à versão e à sua impressão digital, se a opção estiver ativa.
O que o módulo regista em cada encomenda
Quando o passo de pagamento é apresentado, o módulo anota a versão mostrada ao cliente, com o endereço IP, o navegador e a hora. Na validação da encomenda regista a versão mostrada, a impressão digital SHA-256 do texto no idioma do cliente e estes dados de apresentação.
Se não foi registada nenhuma apresentação, por exemplo com um checkout que não chama o hook displayPaymentTop, o módulo regista a versão em vigor na data da encomenda com o método «Validação da encomenda». Uma encomenda criada no back office é registada com o método «Back office».
Consultar a prova de uma encomenda
Na página da encomenda no back office, o cartão Termos e condições aceites mostra a versão, as datas, o IP, o método de registo, a verificação de integridade do texto e a posição da encomenda no registo. Três botões:
- Dossiê de prova (ZIP): o ficheiro a enviar em caso de litígio (detalhes abaixo).
- Certificado de aceitação (PDF): um documento com todos os dados registados, seguido do texto integral aceite.
- Termos aceites (PDF): o PDF da versão, tal como anexado ao email.
Conteúdo do dossiê de prova
01-acceptance-certificate.pdf: o certificado de aceitação.02-...pdf: o PDF da versão aceite.03-accepted-text.txt: o texto de origem exato. O seu SHA-256 é igual à impressão digital registada com a encomenda.04-version-timestamp/: o manifesto da versão e o respetivo token de carimbo temporal.tsr.05-register/: a entrada da encomenda no registo, um extrato da cadeia (apenas identificadores e impressões digitais, sem dados de outros clientes) e a selagem que a abrange.README.txt: a explicação de cada ficheiro e os comandos de verificação, no idioma do funcionário.
O registo selado
Cada aceitação contém a impressão digital do seu conteúdo e a impressão digital da aceitação anterior. Alterar, inserir ou eliminar um registo depois quebra esta cadeia. Em Encomendas > Registo de aceitações, o botão Verificar o registo recalcula toda a cadeia e indica a primeira entrada alterada, se existir.
Selagens
Numa selagem, a autoridade aplica um carimbo temporal à impressão digital da última entrada do registo. Isso prova que todo o registo até essa entrada existia nessa data e também revela a eliminação das últimas entradas. Clique em Selar agora ou chame uma vez por dia, numa tarefa cron, o URL indicado no bloco Selagem automática:
0 3 * * * curl -s "https://a-sua-loja.pt/module/dftermsversion/cron?token=..." > /dev/null
O URL só sela o registo se tiverem sido registadas novas entradas desde a última selagem.
Carimbo temporal por terceiros
O carimbo temporal RFC 3161 faz com que uma autoridade independente assine uma impressão digital juntamente com a data. O módulo usa-o para cada versão publicada (num manifesto com a impressão digital do texto em cada idioma) e para as selagens do registo.
Por predefinição, o módulo usa http://timestamp.digicert.com, gratuito e sem conta. Pode indicar outra autoridade na configuração, por exemplo https://freetsa.org/tsr ou uma autoridade qualificada eIDAS. O servidor da loja tem de conseguir contactar a autoridade.
Se a autoridade não responder na publicação, a versão é publicada na mesma. O erro aparece na vista da versão, com um botão Aplicar carimbo agora para tentar de novo.
Loja existente: histórico e encomendas anteriores
Para abranger as encomendas feitas antes da instalação:
- Publique primeiro a versão atual dos seus termos.
- Crie uma versão por cada versão antiga dos seus termos, com a respetiva data real de entrada em vigor no passado, e publique-a. O módulo só recusa uma data passada se encomendas já associadas a outra versão caírem nesse período.
- Em Encomendas > Registo de aceitações, o bloco Encomendas anteriores indica quantas encomendas não estão associadas a nenhuma versão. Clique em Associar estas encomendas: o processamento é feito por lotes, com uma barra de progresso.
Estas encomendas recebem a versão em vigor na respetiva data e ficam marcadas como Associada a posteriori, sem IP nem registo de apresentação. O módulo não afirma o que não constatou: estas associações indicam a versão aplicável, não provam uma apresentação.
Definições do módulo
- Anexar o PDF aos emails e Modelos de email:
order_confpor predefinição, pode acrescentar por exemplopaymentoubankwire. - Mostrar a versão no pagamento: o aviso acima dos métodos de pagamento. Mesmo desativado, o módulo regista a versão apresentada.
- Menção nas faturas.
- Histórico público de versões: uma página com as versões publicadas e os respetivos PDF.
- Atualizar a página CMS automaticamente: quando uma versão entra em vigor, o seu texto substitui o da página CMS escolhida, para que a caixa do checkout aponte sempre para a versão certa. O botão Atualizar a página CMS agora força a sincronização.
- Anonimizar os endereços IP: guarda apenas a parte de rede do IP.
- Carimbo temporal por terceiros e Autoridade de carimbo temporal.
- Pedidos de apagamento RGPD: ver abaixo.
- Eliminar todos os dados na desinstalação: desativado por predefinição. Mantenha-o desativado, as suas versões e o seu registo são as suas provas.
RGPD
O módulo liga-se ao módulo RGPD oficial do PrestaShop (psgdpr). As aceitações de um cliente são incluídas na exportação dos seus dados. Para os pedidos de apagamento, há duas opções:
- Conservar a prova (predefinição): os registos são mantidos, o que o artigo 17.3.e do RGPD permite para declarar, exercer ou defender um direito num processo judicial. Mencione-o na sua política de privacidade.
- Apagar o endereço IP e o navegador: estes campos são esvaziados. O registo continua verificável e uma impressão digital calculada no apagamento protege os restantes campos, mas a prova é mais fraca para esse cliente.
Resolução de problemas
O aviso não aparece no pagamento
Confirme que existe uma versão em vigor e que a opção de apresentação está ativa. Se o seu tema ou módulo de checkout não chamar o hook displayPaymentTop, as encomendas são registadas com a versão em vigor na data da encomenda.
O PDF não é anexado ao email
Verifique a opção Anexar o PDF aos emails e o nome exato do modelo. Alguns módulos de pagamento enviam o seu próprio email de confirmação com outro nome de modelo: acrescente-o à lista.
O carimbo temporal falha
A mensagem de erro indica a causa. Na maioria dos casos, o alojamento bloqueia as ligações de saída. Experimente outra autoridade ou peça ao seu fornecedor de alojamento que abra o acesso ao endereço da autoridade. Recomenda-se a extensão PHP cURL.
A verificação do registo indica uma alteração
A mensagem indica a entrada em causa e o tipo de problema: conteúdo alterado, entrada inserida ou eliminada antes dela, ou entrada selada em falta. Restaure a tabela dftv_acceptance a partir de uma cópia de segurança anterior à alteração e volte a executar a verificação.
Compatibilidade
- PrestaShop 8.0 a 9.x, o mesmo ZIP abrange os dois ramos.
- Multiloja e multilíngue.
- PDF gerados com o TCPDF integrado no PrestaShop, extensão PHP zip necessária para o dossiê de prova.
- Arquitetura ModuleAdminController, sem dependências Composer.
- Interface disponível em português, inglês, francês, espanhol, alemão, italiano, neerlandês e polaco.