Storico delle condizioni di vendita e prova di accettazione: documentazione
Installazione, pubblicazione e programmazione delle versioni, prova di accettazione per ordine, fascicolo di prova, registro sigillato, marcatura temporale e GDPR.
Installazione
Installa il modulo da Moduli > Gestione moduli > Carica un modulo inviando il file ZIP, oppure copia la cartella dftermsversion nella directory /modules/ del negozio e clicca su Installa.
All’installazione il modulo crea le sue tabelle, aggiunge due schede nel menu Ordini (Versioni delle condizioni e Registro delle accettazioni) e importa il contenuto della pagina CMS delle condizioni come bozza. I clienti non vedono ancora nulla: nessuna versione è in vigore finché non ne pubblichi una.
Verifica che la casella delle condizioni generali sia attiva in Parametri negozio > Impostazioni ordini. Senza di essa i clienti non spuntano nulla prima di pagare e la prova è più debole. La pagina di configurazione del modulo te lo segnala se è disattivata.
Pubblicare la prima versione
Apri Ordini > Versioni delle condizioni. La bozza importata compare con lo stato Bozza. Cliccala per rileggerla in ogni lingua, poi clicca su Modifica se necessario.
I campi di una versione
- Numero di versione: l’etichetta mostrata ai clienti, ad esempio 2026-10 o 4.2. Deve essere univoca.
- Titolo e testo: per lingua. Una lingua lasciata vuota riprende il testo della lingua predefinita alla pubblicazione.
- In vigore dal: lascia vuoto per applicare la versione appena pubblicata. Una data futura programma il cambiamento. Una data passata aggiunge una versione precedente allo storico (vedi sotto).
- Riepilogo delle modifiche: mostrato nello storico pubblico.
Clicca poi su Pubblica. La versione viene bloccata: testo, impronta SHA-256 e PDF, generati in ogni lingua, non possono più cambiare. Se la marcatura temporale è attiva, il modulo chiede subito una marca temporale all’autorità configurata.
Una versione pubblicata non si può più modificare né eliminare. È questo che le dà valore di prova. Rileggi la bozza prima di pubblicare.
Modificare le condizioni
Da una versione pubblicata, clicca su Crea una nuova versione a partire da questa. Viene creata una bozza con lo stesso testo. Modificala, compila il riepilogo delle modifiche, scegli la data di entrata in vigore e pubblicala.
Confrontare due versioni
Nella vista di una versione, il blocco Confronta propone per impostazione predefinita la versione precedente, o quella in vigore se sei su una bozza. Clicca su Mostra le modifiche: i paragrafi modificati, aggiunti ed eliminati sono evidenziati, parola per parola per quelli modificati, e i paragrafi invariati vengono ripiegati. Cambia lingua con i pulsanti in alto a destra.
Programmare un cambiamento
Una versione pubblicata con una data futura ha lo stato Programmata. Diventa automaticamente la versione in vigore a quella data, senza attività cron. La pagina di configurazione mostra la prossima versione programmata.
Cosa vede il cliente
- Al pagamento: sopra i metodi di pagamento, un avviso indica la versione in vigore, la sua data e un link al PDF, oltre a un link alle versioni precedenti se lo storico pubblico è attivo.
- Nell’email di conferma: il PDF della versione accettata è allegato all’email
order_conf. - Nel suo account: il dettaglio di ogni ordine ricorda la versione accettata con un link di download.
- In fattura: una dicitura con la versione e la sua impronta, se l’opzione è attiva.
Cosa registra il modulo su ogni ordine
Quando viene mostrata la fase di pagamento, il modulo annota la versione mostrata al cliente con il suo indirizzo IP, il browser e l’ora. Alla convalida dell’ordine registra la versione mostrata, l’impronta SHA-256 del testo nella lingua del cliente e queste informazioni di visualizzazione.
Se non è stata tracciata alcuna visualizzazione, ad esempio con un checkout che non richiama l’hook displayPaymentTop, il modulo registra la versione in vigore alla data dell’ordine con la modalità «Convalida dell’ordine». Un ordine creato dal back office viene registrato con la modalità «Back office».
Consultare la prova di un ordine
Nella pagina dell’ordine del back office, la scheda Condizioni di vendita accettate mostra la versione, le date, l’IP, la modalità di registrazione, il controllo di integrità del testo e la posizione dell’ordine nel registro. Tre pulsanti:
- Fascicolo di prova (ZIP): il file da inviare in caso di contestazione (dettagli sotto).
- Attestato di accettazione (PDF): un documento con tutti i dati registrati, seguito dal testo integrale accettato.
- Condizioni accettate (PDF): il PDF della versione, come allegato all’email.
Contenuto del fascicolo di prova
01-acceptance-certificate.pdf: l’attestato di accettazione.02-...pdf: il PDF della versione accettata.03-accepted-text.txt: il testo sorgente esatto. Il suo SHA-256 è uguale all’impronta registrata con l’ordine.04-version-timestamp/: il manifesto della versione e il suo token di marcatura.tsr.05-register/: la voce dell’ordine nel registro, un estratto della catena (solo identificativi e impronte, nessun dato di altri clienti) e il sigillo che la copre.README.txt: la spiegazione di ogni file e i comandi di verifica, nella lingua del dipendente.
Il registro sigillato
Ogni accettazione contiene l’impronta del suo contenuto e quella dell’accettazione precedente. Modificare, inserire o eliminare una voce a posteriori interrompe questa catena. In Ordini > Registro delle accettazioni, il pulsante Verifica il registro ricalcola tutta la catena e indica l’eventuale prima voce alterata.
Sigilli
Un sigillo fa marcare dall’autorità l’impronta dell’ultima voce del registro. Prova che tutto il registro fino a quella voce esisteva a quella data e rileva anche l’eliminazione delle ultime voci. Clicca su Sigilla ora oppure richiama una volta al giorno, con un’attività cron, l’URL mostrato nel blocco Sigillo automatico:
0 3 * * * curl -s "https://il-tuo-negozio.it/module/dftermsversion/cron?token=..." > /dev/null
L’URL sigilla il registro solo se sono state registrate nuove voci dall’ultimo sigillo.
Marcatura temporale di terzi
La marcatura temporale RFC 3161 fa firmare un’impronta da un’autorità indipendente insieme alla data. Il modulo la usa per ogni versione pubblicata (su un manifesto con l’impronta del testo in ogni lingua) e per i sigilli del registro.
Per impostazione predefinita il modulo usa http://timestamp.digicert.com, gratuito e senza account. Nella configurazione puoi indicare un’altra autorità, ad esempio https://freetsa.org/tsr o un’autorità qualificata eIDAS. Il server del negozio deve poter raggiungere l’autorità.
Se l’autorità non risponde alla pubblicazione, la versione viene comunque pubblicata. L’errore compare nella vista della versione, con un pulsante Marca ora per riprovare.
Negozio esistente: storico e ordini passati
Per coprire gli ordini effettuati prima dell’installazione:
- Pubblica prima la versione attuale delle condizioni.
- Crea una versione per ogni vecchia versione delle condizioni, con la sua vera data di entrata in vigore nel passato, e pubblicala. Il modulo rifiuta una data passata solo se ordini già collegati a un’altra versione rientrano in quel periodo.
- In Ordini > Registro delle accettazioni, il blocco Ordini precedenti indica quanti ordini non sono collegati ad alcuna versione. Clicca su Collega questi ordini: l’elaborazione avviene a lotti con una barra di avanzamento.
Questi ordini ricevono la versione in vigore alla loro data e sono segnati come Collegata a posteriori, senza IP né traccia di visualizzazione. Il modulo non afferma ciò che non ha constatato: questi collegamenti indicano la versione applicabile, non provano una visualizzazione.
Impostazioni del modulo
- Allega il PDF alle email e Modelli email:
order_confper impostazione predefinita, puoi aggiungere ad esempiopaymentobankwire. - Mostra la versione al pagamento: l’avviso sopra i metodi di pagamento. Anche se disattivato, il modulo traccia la versione mostrata.
- Dicitura sulle fatture.
- Storico pubblico delle versioni: una pagina con le versioni pubblicate e i loro PDF.
- Aggiorna automaticamente la pagina CMS: quando una versione entra in vigore, il suo testo sostituisce quello della pagina CMS scelta, così la casella del checkout rimanda sempre alla versione giusta. Il pulsante Aggiorna ora la pagina CMS forza la sincronizzazione.
- Anonimizza gli indirizzi IP: conserva solo la parte di rete dell’IP.
- Marcatura temporale di terzi e Autorità di marcatura temporale.
- Richieste di cancellazione GDPR: vedi sotto.
- Elimina tutti i dati alla disinstallazione: disattivato per impostazione predefinita. Lascialo disattivato, versioni e registro sono le tue prove.
GDPR
Il modulo si collega al modulo GDPR ufficiale di PrestaShop (psgdpr). Le accettazioni di un cliente sono incluse nell’esportazione dei suoi dati. Per le richieste di cancellazione ci sono due scelte:
- Conserva la prova (predefinito): le registrazioni vengono mantenute, come consente l’articolo 17.3.e del GDPR per accertare, esercitare o difendere un diritto in sede giudiziaria. Indicalo nella tua informativa privacy.
- Cancella indirizzo IP e browser: questi campi vengono svuotati. Il registro resta verificabile e un’impronta calcolata alla cancellazione protegge i campi restanti, ma la prova è più debole per quel cliente.
Risoluzione dei problemi
L’avviso non compare al pagamento
Verifica che ci sia una versione in vigore e che l’opzione di visualizzazione sia attiva. Se il tema o il modulo di checkout non richiama l’hook displayPaymentTop, gli ordini vengono registrati con la versione in vigore alla data dell’ordine.
Il PDF non è allegato all’email
Verifica l’opzione Allega il PDF alle email e il nome esatto del modello. Alcuni moduli di pagamento inviano una propria email di conferma con un altro nome di modello: aggiungilo all’elenco.
La marcatura temporale non riesce
Il messaggio di errore indica la causa. Di solito l’hosting blocca le connessioni in uscita. Prova un’altra autorità o chiedi al tuo hosting di aprire l’accesso all’indirizzo dell’autorità. È consigliata l’estensione PHP cURL.
La verifica del registro segnala un’alterazione
Il messaggio indica la voce interessata e il tipo di problema: contenuto modificato, voce inserita o eliminata prima di essa, oppure voce sigillata scomparsa. Ripristina la tabella dftv_acceptance da un backup precedente all’alterazione e rilancia la verifica.
Compatibilità
- PrestaShop da 8.0 a 9.x, lo stesso ZIP copre entrambi i rami.
- Multinegozio e multilingua.
- PDF generati con il TCPDF integrato in PrestaShop, estensione PHP zip necessaria per il fascicolo di prova.
- Architettura ModuleAdminController, senza dipendenze Composer.
- Interfaccia disponibile in italiano, inglese, francese, spagnolo, tedesco, olandese, polacco e portoghese.