Modulo di contatto PrestaShop: instradare ogni richiesta per oggetto
Un modulo di contatto per oggetto in PrestaShop: campi condizionali, instradamento al team giusto, allegati protetti, limiti antispam, consenso GDPR e licenza 2.0.1.
Un cliente segnala un guasto, un altro chiede un preventivo e un terzo vuole restituire un articolo. Non dovrebbero compilare lo stesso modulo. Dynamic Contact Form sostituisce il modulo di contatto di PrestaShop con un modulo per oggetto: i campi compaiono in base alle risposte, la richiesta arriva al reparto giusto e resta disponibile nel back office. Questa guida mostra come configurarlo, cosa fa e cosa non fa.
A cosa serve un modulo di contatto dinamico per oggetto?
Pone a ogni cliente le domande del suo motivo e invia la richiesta al reparto competente, invece di imporre gli stessi campi a tutti.
Il modulo nativo di PrestaShop offre un'e-mail, un oggetto e un messaggio, qualunque sia il motivo. Il reparto risponde poi per chiedere il numero d'ordine, la quantità o una foto. Con un modulo per oggetto quelle domande arrivano al momento giusto e il cliente non deve descrivere due volte il problema. Un oggetto senza modulo mantiene un modulo semplice: e-mail, messaggio e allegato.
Il modulo è adatto ai negozi che ricevono più tipi di richiesta: assistenza post-vendita, resi, preventivi, collaborazioni, domande sulla consegna. È utile anche quando più persone gestiscono i messaggi, o quando una parte del modulo deve restare riservata a un gruppo di clienti.
Non serve se il negozio ha un solo indirizzo e un solo tipo di richiesta: il modulo nativo basta. Non sostituisce un software di assistenza completo né uno strumento di preventivi. Richiede PrestaShop 1.7.8, 8.0+ o 9.0+ e PHP 7.4; le versioni 1.7.7 e precedenti non sono supportate.
La scheda del modulo descrive le funzioni: Dynamic Contact Form.
Come si crea un modulo per oggetto, passo dopo passo?
Crea prima l'oggetto in Parametri del negozio > Contatti > Contatti, poi un modulo per quell'oggetto in Moduli > Gestione moduli > Dynamic Contact Form > Configura.
La pagina Configura porta a Gestisci i moduli e Apri le richieste. Le pagine Moduli e Richieste hanno tre collegamenti: Moduli, Richieste e Impostazioni.

- In Moduli, clicca Aggiungi un modulo e scegli il suo oggetto di contatto.
- Lascia Attivo selezionato, scegli i gruppi di clienti se l'oggetto è riservato e seleziona Riferimento dell'ordine perché i clienti connessi indichino il loro ordine.
- Attiva Consenso GDPR e scrivi il testo del consenso se il modulo deve chiedere un accordo, poi salva: appare il pannello Campi.
- Clicca Aggiungi un campo e scegli il tipo tra i nove disponibili (testo (una riga), testo (più righe), elenco a discesa, pulsanti di opzione, casella di controllo, più caselle di controllo, data, file, blocco informativo). Scrivi poi l'etichetta, il testo suggerito e l'aiuto in ogni lingua, e seleziona Obbligatorio se la risposta è necessaria.
- Per un elenco o delle caselle, aggiungi le risposte una per una, oppure incollale una per riga con Aggiungi queste risposte.
- Per un campo di testo, in Controllo, scegli il valore atteso: e-mail, indirizzo web, numero di telefono, numero o espressione regolare personalizzata.
- In Condizione, scegli il campo da cui dipende questo e le risposte che devono farlo comparire.
La tabella dei campi scrive ogni condizione per esteso, per esempio «Mostrato se Motivo è uno di Guasto, Reso». Una condizione dipende da un solo altro campo e non si combina su due livelli: un campo che dipende da un altro non può essere a sua volta verificato da un terzo. Il browser e il server applicano le stesse regole, e un campo nascosto non è obbligatorio né viene salvato.
Termina con Vedilo sul negozio: scegli l'oggetto nella pagina di contatto e compila il modulo come un cliente. La documentazione del modulo descrive ogni schermata. Per mantenere il modulo utilizzabile da tutti, l'audit di accessibilità EAA analizza le tue pagine reali, contrasti compresi.
Come si instrada ogni richiesta al reparto giusto?
Ogni modulo va all'indirizzo del suo oggetto, e un instradamento può sostituire o integrare quel destinatario in base alla risposta a un elenco.
Il pannello E-mail al tuo team imposta gli indirizzi e l'oggetto. Copia a e Copia nascosta a aggiungono indirizzi fissi a ogni richiesta. Oggetto dell'e-mail accetta variabili: {firstname}, {lastname}, {email}, {order_reference}, {reference}, {subject}, {shop_name} e {field:chiave} per la risposta a un campo.
In Instradamenti, scegli un campo di tipo elenco, una o più risposte, poi i destinatari, e decidi se la richiesta parte al posto dell'indirizzo dell'oggetto o in aggiunta a esso. Un esempio frequente: quando la risposta a Motivo è Reso, la richiesta va al reparto resi; quando è Guasto, l'assistenza è in copia.
Prova ogni instradamento prima dell'apertura: invia una richiesta per risposta, controlla la casella del destinatario e apri la scheda Richieste, dove la richiesta deve comparire con le sue risposte. Se un messaggio non arriva, controlla l'indirizzo dell'oggetto in Parametri del negozio > Contatti > Contatti e gli indirizzi dell'instradamento.
Se una richiesta di preventivo deve poi diventare un ordine con un prezzo negoziato, il modulo Preventivo B2B prende il posto; la pagina di contatto resta il punto di ingresso.
Come si accettano allegati senza esporre il negozio?
Aggiungi un campo di tipo File al modulo: imposti i tipi accettati, la dimensione massima e il numero di file, e i file restano fuori dalla cartella pubblica.
Il campo file funziona senza codice. Nelle impostazioni del campo elenchi le estensioni accettate, per esempio pdf, png o jpg. Nella scheda Impostazioni, il pannello Richieste, file e privacy fissa la dimensione massima di un file e quella dei file allegati all'e-mail del team.
I file vengono ispezionati in base al contenuto quando l'estensione fileinfo di PHP è disponibile; senza di essa si controlla solo l'estensione. Sono rinominati a caso, salvati fuori dalla cartella pubblica e scaricabili dalla richiesta, senza mai aprirsi nel browser. I file più grandi del limite e-mail restano nel back office; controlla lo spazio su disco dell'hosting se accetti file grandi.
Come frenare lo spam senza allontanare i clienti?
Il modulo accumula diverse barriere prima del captcha: limiti all'ora e per indirizzo o e-mail, un tempo minimo di compilazione, un limite di link e un campo trappola invisibile.
Queste impostazioni sono nella scheda Impostazioni, pannello Antispam. I valori predefiniti sono 10 richieste all'ora e per indirizzo, 5 all'ora e per e-mail, 3 secondi di compilazione minima e 3 link per messaggio. Adattali al tuo traffico: un limite troppo basso respinge un cliente di fretta, un limite troppo alto lascia passare i robot.
Un token di sicurezza accompagna ogni invio, e un campo trappola invisibile ferma i robot più semplici. Puoi aggiungere Cloudflare Turnstile o Google reCAPTCHA con le tue chiavi; il modulo chiede allora cosa fare se il servizio non è raggiungibile: accettare la richiesta o rifiutarla.
Il modulo non dipende da un captcha: limiti, tempo minimo e campo trappola si applicano anche senza. Uno sviluppatore può usare l'hook actionWeprestaDcfSubmitBefore per accettare o rifiutare una richiesta con le proprie regole.
Cosa fa il modulo per il GDPR e cosa non fa?
Raccoglie un consenso con il tuo testo, ne conserva la data, lascia che il modulo GDPR ufficiale esporti o cancelli le richieste e le elimina dopo il termine che imposti.
Ogni modulo può mostrare una casella di consenso con il tuo testo, HTML compreso, o quella del modulo GDPR ufficiale se è attivo. La data del consenso è salvata con la richiesta. Il modulo GDPR ufficiale di PrestaShop può esportare o cancellare le richieste di un cliente, come fa per gli altri dati del negozio.
In Impostazioni, il pannello Richieste, file e privacy permette di conservare le richieste e di eliminarle dopo un numero di giorni; il valore 0 le conserva fino alla cancellazione manuale. L'esportazione CSV è disponibile per oggetto e per date nella scheda Richieste.
Cosa il modulo non fa: non scrive la tua informativa sulla privacy, non sceglie la base giuridica dei tuoi trattamenti e non rende il negozio conforme da solo. Consenso, conservazione e avvisi restano una tua decisione, da verificare con il tuo consulente legale. Non sostituisce nemmeno il modulo GDPR ufficiale: si collega a esso.
Le richieste contengono dati personali: l'accesso al back office merita una protezione propria. Il modulo 2FA back office aggiunge un codice monouso dopo la password.
Cosa cambia la versione 2.0.1 quando la licenza non è più valida?
La versione 2.0.1 toglie il modulo semplice che restava senza licenza. Il modulo si disattiva del tutto; moduli, richieste e impostazioni restano nel database, i file sul server.
In pratica, la pagina di contatto mostra di nuovo il modulo di contatto nativo di PrestaShop se il negozio lo usava prima, e le pagine Moduli e Richieste si chiudono, download dei file compreso. La voce di menu del modulo scompare. La pagina Configura resta aperta. In quel periodo il modulo GDPR ufficiale non riceve più le richieste di questo modulo, e la loro eliminazione automatica è sospesa.
Si torna dalla pagina Configura: attiva o rinnova la licenza e il modulo si riattiva con i tuoi moduli, al posto del modulo nativo.
Una licenza pagata non viene disattivata per una risposta passeggera. Nei sette giorni successivi alla data di scadenza salvata il modulo funziona senza contattare il server; oltre, verifica al massimo una volta all'ora se l'abbonamento è stato rinnovato. Un errore, un limite di richieste, un orologio sfasato o un server irraggiungibile non fanno scadere la licenza: questi incidenti sono tollerati per sette giorni dal primo. Una risposta conclusiva si applica subito: licenza scaduta, sospesa o revocata, licenza sconosciuta, dominio o firma errati. La visita che avvia la verifica può attendere fino a tre secondi; la verifica successiva arriva almeno un'ora dopo.
In multinegozio, attiva la licenza da «Tutti i negozi»: una licenza attivata in un solo negozio non è vista dagli altri, che si disattivano alla prima richiesta.

Domande frequenti
Come faccio arrivare una richiesta all'assistenza post-vendita invece che all'indirizzo generale?
Si possono accettare allegati senza modificare il codice del tema?
Il modulo basta a fermare lo spam quando il reCAPTCHA non blocca tutto?
Cosa succede ai miei moduli e alle richieste se la licenza scade?
Un campo può comparire solo per alcuni motivi?
Per quanto tempo vengono conservate le richieste?
Prodotti di questo articolo
Form contatto dinamico per soggetto
Un form di contatto per soggetto, con campi condizionali che compaiono in base alle risposte Validazione...
Preventivi B2B: negozia i prezzi e trasformali in ordini
Un pulsante «Richiedi un preventivo» nella scheda prodotto e nel carrello, con o senza account cliente Un prezzo...
2FA back office: proteggi gli accessi admin
Codice a 6 cifre di un'app (Google Authenticator, Authy, Microsoft Authenticator…) dopo la password Un codice al...
Audit EAA e WCAG 2.1 AA
Analisi di accessibilità WCAG 2.1 AA delle pagine reali, contrasti compresi Correzioni automatiche sicure,...