Descrizione
Pagina del prodotto e documentazione: https://solucom.si/solucom-recesso-eu/
Dal 19 giugno 2026 il diritto UE (Direttiva (UE) 2023/2673, nuovo Art. 11a della direttiva sui diritti dei consumatori; Italia: Art. 54-bis del Codice del Consumo, D.Lgs. 209/2025) impone ai negozi online di offrire una funzione di recesso che consenta ai consumatori di recedere da un contratto a distanza con la stessa facilità con cui lo hanno concluso. Solucom Recesso EU aggiunge quella funzione — e tutto ciò che le serve intorno per gestirla e per dimostrare di averlo fatto bene — a WooCommerce e ai negozi WooCommerce con FunnelKit.
Come funziona (in parole semplici)
- Un cliente avente diritto apre il proprio ordine e fa clic sul pulsante di legge “Recedere dal contratto qui” — nel suo account, da un link nell’email d’ordine o su una pagina pubblica (senza bisogno di account: cerca l’ordine con numero + email).
- Compare un semplice modulo in due passaggi: il cliente rivede da che cosa sta recedendo (selezionando facoltativamente solo alcuni articoli — il recesso parziale è ammesso), poi conferma. Nessuna motivazione necessaria, nessun ostacolo.
- Nell’istante in cui conferma, il cliente riceve una conferma di ricevimento su supporto durevole — un’email, una copia PDF e un link verificabile permanente — che mostra esattamente da che cosa ha receduto e la data e l’ora precise. L’ordine viene contrassegnato “recesso richiesto”.
- Ogni passaggio viene scritto in un log append-only a prova di manomissione (concatenato con hash e marcato temporalmente), così puoi dimostrare che cosa è successo e quando. Il rimborso poi lo gestisci come sempre — il plugin registra anche quello.
Questa è l’intera esperienza del cliente. Tutto ciò che segue esiste per renderla corretta, facile da gestire e difendibile.
Per i tuoi clienti
- Un pulsante ben visibile e leggibile con l’esatta dicitura di legge per ogni lingua (IT, EN, DE, FR, ES, SV — estensibile).
- Il pulsante compare dove i clienti guardano davvero: l’area account (elenco ordini, dettaglio ordine, una scheda dedicata “Diritto di recesso”), un link dentro le email d’ordine, una pagina pubblica self-service con ricerca per gli ospiti e ovunque tramite shortcode o il blocco Gutenberg.
- Nei negozi con FunnelKit, il link di recesso compare anche sulla pagina di ringraziamento di FunnelKit e può essere inserito nelle email di FunnelKit Automations tramite il merge tag
{{recesso_url}}. - Una guida passo passo breve e rassicurante durante il flusso (tempi, rimborso, resi); il testo e la finestra di recesso (≥14 giorni — puoi concederne di più) sono modificabili.
- Quando un ordine è davvero esente, una chiara nota “perché il pulsante non c’è” spiega l’eccezione di legge specifica, invece di lasciare il cliente nel dubbio.
- Un certificato di verifica leggibile per la ricevuta (integrità, ordine, data, hash) — non codice grezzo.
Per te (il commerciante)
- Una bacheca di onboarding con una checklist di configurazione (correzioni con un clic), una spiegazione semplice di “come funziona” e una guida su “dove compare il pulsante / perché potrebbe non comparire”.
- Un test di consegna email con un clic che rileva il tuo plugin SMTP e dimostra che la ricevuta arriva davvero nella casella di posta — la causa n. 1 di “non è successo niente”.
- Una bacheca Richieste per gestire ogni recesso: stato (aperto / gestito / rimborsato), un badge di integrità della catena e, con un clic, segna come gestito, reinvia la ricevuta e apri l’ordine per rimborsare (il rimborso viene registrato come prova di aver rispettato i 14 giorni). Le richieste da abbonamento e i recessi parziali sono evidenziati.
- Una pagina Conformità: un conto alla rovescia verso l’obbligo, le diciture di legge in uso, la checklist dei documenti con clausole pronte da incollare e gli avvisi d’ambiente (Complianz / cache / multilingua) da sistemare.
- Le ricevute sono vere email WooCommerce (il tuo logo, i tuoi colori, il tuo header) con anteprima; il frontend è personalizzabile tramite variabili CSS e nomi di classe documentati dal tuo tema o dai CSS aggiuntivi del Customizer.
Gestione legale intelligente (così non devi pensarci tu)
- Abbonamenti — la legge dà un diritto di 14 giorni per contratto, quindi il pulsante compare solo sull’ordine iniziale ed è nascosto sui rinnovi (WooCommerce Subscriptions). Fail-safe, con forzature opt-in.
- Recesso parziale — i clienti possono recedere solo da alcuni articoli di un ordine.
- Esenzioni Art. 59 — associa prodotti o categorie al motivo di legge specifico (eventi con data fissa, contenuto digitale ad accesso immediato, servizio completamente eseguito…). Per i motivi condizionali il plugin acquisisce il consenso espresso in fase di pagamento (pagamento WooCommerce classico + a blocchi e pagamento Aero di FunnelKit), lo conserva come prova, invia la conferma su supporto durevole richiesta dalla legge e solo allora nasconde il pulsante. I prodotti fisici mantengono sempre il diritto — mai nascosto per errore.
- Applicabilità per paese — solo consumatori UE/SEE (impostazione predefinita) oppure sempre; gli ordini B2B (con partita IVA) possono essere trattati come fuori ambito.
Integrazione FunnelKit
L’integrazione FunnelKit lavora sopra gli ordini WooCommerce standard — nessun archivio ordini separato, nessuna duplicazione di dati. In concreto:
- Il link di recesso compare sulla pagina di ringraziamento di FunnelKit (Funnel Builder / Aero Checkout), così i clienti possono agire subito dopo l’acquisto.
- I checkbox di consenso alle esenzioni dell’Art. 59 vengono mostrati sul pagamento Aero di FunnelKit, con la stessa validazione del pagamento WooCommerce.
- Per le email di FunnelKit Automations è registrato un merge tag
{{recesso_url}}che si risolve nel link di recesso del singolo ordine, così puoi includerlo in qualsiasi sequenza di follow-up. - Fail-open / fail-safe: tutte le superfici FunnelKit sono additive. Il recesso è sempre raggiungibile dall’area Il mio account di WooCommerce e dalla pagina pubblica autonoma (ricerca per gli ospiti con numero d’ordine + email) indipendentemente dalla configurazione di FunnelKit.
Prove, marche temporali e integrità
- Il log immutabile è append-only e concatenato con hash (HMAC con chiave derivata dal segreto del tuo sito): ogni manomissione è rilevabile.
- Marcatura temporale facoltativa, opt-in (disattivata per impostazione predefinita — nessuna chiamata esterna finché non abiliti un provider): ancoraggio OpenTimestamps (Bitcoin) gratuito e verificabile in modo indipendente, oppure una marca temporale RFC 3161 qualificata eIDAS (Sectigo, o la tua autorità nazionale — Aruba, InfoCert, D-Trust, Universign, FNMT, SwissSign) per una “data certa” più solida. Le marcature non riuscite vengono ritentate automaticamente e i record non ancora ancorati sono segnalati nell’amministrazione.
Privacy e GDPR
- Il log si vincola a un IP anonimizzato; l’IP completo vive separatamente e viene eliminato dopo una conservazione configurabile (10 anni per impostazione predefinita).
- Una schermata Registro consensi elenca ed esporta i consensi alle esenzioni (CSV). Vengono generate due clausole privacy pronte da incollare (log dei recessi + consenso alle esenzioni), su base di legittimo interesse. La disinstallazione mantiene il log delle prove per impostazione predefinita (conservazione legale), salvo tua scelta di eliminarlo.
Documenti e conformità
- Genera il modulo tipo di recesso dell’Allegato I-B e clausole pronte per informazioni precontrattuali, Condizioni di vendita e Privacy — e ti ricorda, chiaramente, che installare il pulsante non basta: le tue Condizioni e l’articolo precontrattuale sul recesso vanno aggiornati per descrivere la nuova modalità con pulsante (il plugin ti dà il testo esatto da incollare).
Integrazioni e automazione
- Una REST API in sola lettura (autenticata con una normale Application Password) per elencare le richieste e verificare lo stato di recesso di un ordine, più un webhook firmato facoltativo (HMAC-SHA256) inviato nel momento in cui un recesso viene confermato — per Zapier, Make, n8n, un CRM o un helpdesk. Privacy-first: l’IP del consumatore non è mai esposto. 33 hook/filtri documentati per gli sviluppatori.
- Convive senza problemi con Complianz, TranslatePress e i plugin di cache di pagina (WP Rocket / LiteSpeed / W3TC).
Piattaforme e licenza
- WooCommerce (HPOS + legacy) e WooCommerce + FunnelKit (Funnel Builder / Aero Checkout / FunnelKit Automations). L’area Il mio account di WooCommerce e la pagina pubblica autonoma restano sempre disponibili indipendentemente dalla configurazione di FunnelKit.
- Gratuito e open source (GPLv3) — nessun upsell, nessun tracciamento, nessuno script o font remoto caricato sul tuo sito. Ha superato un audit di sicurezza completo multidimensionale (0 criticità / 0 gravi).
Questo plugin è un supporto tecnico alla conformità e non costituisce consulenza legale. Fai revisionare i documenti del tuo negozio dal tuo legale.
Supporto e servizi professionali
Questo è uno strumento gratuito. Per supporto personalizzato, revisione dei testi legali, sviluppo su misura o altri plugin personalizzati per il tuo negozio WooCommerce / FunnelKit, Solucom può aiutarti: https://solucom.si
Servizi esterni
Questo plugin non contatta alcun servizio esterno a meno che tu non ne abiliti esplicitamente uno. Di serie il provider di marcatura temporale è impostato su “nessuno”: il flusso di recesso, la ricevuta su supporto durevole e il log a prova di manomissione funzionano interamente sul tuo server, senza alcuna richiesta in uscita.
I servizi seguenti sono opt-in e disattivati per impostazione predefinita. Ciascuno viene abilitato da te, nelle impostazioni del plugin.
1. OpenTimestamps (provider di marcatura temporale facoltativo)
Che cos’è e perché: OpenTimestamps è un servizio di marcatura temporale pubblico e gratuito che ancora una prova nella blockchain di Bitcoin. Abilitarlo (Impostazioni -> Marcatura temporale -> provider “OpenTimestamps”) aggiunge una prova verificabile in modo indipendente di quando un recesso è stato registrato, rafforzando il valore probatorio del log.
- Che cosa viene inviato: solo un hash SHA-256 (un digest unidirezionale) del record di log, più un nonce casuale a tutela della privacy. Non vengono mai trasmessi dati personali, contenuti dell’ordine, nomi, indirizzi email o indirizzi IP — solo un hash opaco che non può essere invertito.
- Quando: una volta alla conferma di un recesso (per inviare l’hash), poi periodicamente via WP-Cron per recuperare la prova completata.
- Dove: i calendar pubblici di OpenTimestamps: a.pool.opentimestamps.org, b.pool.opentimestamps.org, a.pool.eternitywall.com, ots.btc.catallaxy.com.
- Sito del servizio: https://opentimestamps.org/
- Condizioni di servizio: https://opentimestamps.org/ — OpenTimestamps è un servizio pubblico gratuito e open source gestito da volontari; non pubblica un documento di condizioni di servizio separato. Il codice sorgente e il modello operativo sono documentati su https://github.com/opentimestamps
- Privacy policy: https://opentimestamps.org/ — il servizio non pubblica un documento di privacy policy separato. Per costruzione riceve soltanto un hash irreversibile e un nonce casuale, mai dati personali.
2. Autorità di marcatura temporale RFC 3161 / eIDAS (facoltativa, scegli tu il provider)
Che cos’è e perché: al posto di OpenTimestamps puoi configurare qualsiasi autorità di marcatura temporale RFC 3161 (per esempio una qualificata eIDAS) per ottenere una marca temporale legalmente qualificata.
- Che cosa viene inviato: lo stesso hash SHA-256 unidirezionale del record di log e un nonce. Nessun dato personale.
- Quando: una volta per ogni recesso confermato.
- Dove: l’URL dell’autorità di marcatura temporale che inserisci tu nelle impostazioni. Il plugin esce senza alcun endpoint configurato e non contatta alcuna autorità finché non ne imposti una.
- Condizioni e privacy: quelle dell’autorità che scegli. La schermata delle impostazioni elenca per comodità alcuni provider noti; il plugin non ha alcuna affiliazione con nessuno di essi e non li contatta finché non inserisci il loro endpoint. Per le due opzioni gratuite lì citate: Sectigo — condizioni d’uso: https://www.sectigo.com/legal, privacy policy: https://www.sectigo.com/privacy-policy; DigiCert — condizioni d’uso: https://www.digicert.com/legal-repository, privacy policy: https://www.digicert.com/privacy-policy.
3. Webhook in uscita (facoltativo, verso il tuo endpoint)
Che cos’è e perché: ti consente di inoltrare gli eventi di recesso ai tuoi sistemi (CRM, Zapier, Make, n8n).
- Che cosa viene inviato: un payload JSON firmato (HMAC-SHA256) con il riferimento del recesso, il riferimento del contratto e l’hash di verifica. L’indirizzo IP del consumatore non è mai incluso.
- Quando: solo quando un recesso viene confermato, e solo se abiliti il webhook.
- Dove: esclusivamente l’URL dell’endpoint che inserisci tu nelle impostazioni.
- Condizioni e privacy: quelle dell’endpoint che controlli tu.
Non viene usato nessun altro servizio esterno. Il plugin non carica script, font, immagini o tracker remoti sul tuo sito e non raccoglie alcun dato di utilizzo.
Privacy
Il plugin registra le dichiarazioni di recesso (nome, contratto identificato, email, indirizzo IP, data e ora) in un log append-only a prova di manomissione sul tuo server, perché l’Art. 54-bis lo richiede come prova legale (GDPR Art. 6(1)(c)/(f)). Genera una clausola privacy pronta da incollare nella tua informativa. I dati sono conservati per un periodo configurabile (10 anni per impostazione predefinita) e la disinstallazione mantiene il log delle prove per impostazione predefinita (conservazione legale), salvo tua scelta di eliminarlo.
Per le esenzioni condizionali dell’Art. 59 il plugin conserva anche il consenso + presa d’atto espressi dal consumatore in fase di pagamento (il testo concordato, un hash, data/ora e — a meno che tu non lo disattivi — l’IP) come prova della validità dell’esenzione. La base giuridica è il legittimo interesse (GDPR Art. 6(1)(f); difesa di diritti in sede giudiziaria), non il consenso GDPR. L’IP vive solo sull’ordine (mai nel log immutabile) e viene anonimizzato automaticamente alla scadenza del periodo di conservazione. Per questo trattamento viene generata una seconda clausola privacy pronta da incollare.
Blocchi
Questo plugin fornisce 1 blocco.
- Withdrawal — self-service Lets a logged-in customer pick an eligible order and withdraw from it, or shows the two-step withdrawal form for a specific order. Server-rendered with the same applicability and ownership checks as the [solrec_form] shortcode.
Installazione
- Carica il plugin in
/wp-content/plugins/e attivalo. - Assicurati che WooCommerce sia attivo (necessario). FunnelKit è facoltativo.
- Vai in Pulsante di recesso Impostazioni, abilita la funzione e scegli la modalità di applicabilità (la predefinita è solo UE/SEE).
- Pubblica il modulo tipo dell’Allegato I-B generato e aggiorna privacy, condizioni e informazioni precontrattuali dalla pagina Conformità.
FAQ
-
Chi deve adeguarsi?
-
Qualsiasi professionista che conclude contratti B2C a distanza tramite un’interfaccia online con consumatori UE/SEE, indipendentemente dal paese del professionista (Roma I, Art. 6). I consumatori residenti in Svizzera sono fuori ambito (modalità volontaria).
-
Sostituisce il modulo tipo di recesso?
-
No. Il pulsante è aggiuntivo rispetto al modulo tipo dell’Allegato I-B, che resta obbligatorio nelle informazioni precontrattuali. Il plugin li genera entrambi.
-
I prodotti digitali perdono automaticamente il diritto di recesso?
-
No. Il diritto di recesso si applica per impostazione predefinita, anche ai prodotti digitali. Viene meno solo per le due esenzioni condizionali dell’Art. 59 (contenuto digitale ad accesso immediato; servizio completamente eseguito) e solo quando il consumatore presta consenso espresso preventivo + presa d’atto in fase di pagamento. Il plugin li acquisisce sul pagamento WooCommerce e sul pagamento Aero di FunnelKit (un checkbox obbligatorio), li conserva come prova e solo allora nasconde il pulsante — altrimenti il pulsante resta (fail-safe). I prodotti fisici non richiedono mai consenso. Per l’esenzione digitale il plugin invia inoltre al consumatore una conferma via email su supporto durevole, come richiede la legge.
-
Devo tenere un registro di questi consensi?
-
La legge non parla di un “registro”, ma l’onere della prova è a tuo carico (Art. 6(9) Dir. 2011/83/UE; accountability GDPR Art. 5(2)) — devi poter dimostrare il consenso. Il plugin lo conserva per te: il testo concordato, un hash SHA-256, data/ora e (facoltativamente) l’IP vengono salvati sull’ordine e ancorati nel log a prova di manomissione; una schermata di amministrazione Registro consensi li elenca e li esporta. L’IP viene anonimizzato automaticamente al termine del periodo di conservazione.
-
La marca temporale è valida legalmente?
-
OpenTimestamps fornisce una prova gratuita, verificabile in modo indipendente e ancorata alla blockchain di Bitcoin. È disponibile un provider innestabile di marche temporali RFC 3161 / eIDAS qualificate per una “data certa” più solida.
-
Mi serve FunnelKit?
-
No. FunnelKit è del tutto facoltativo. Il pulsante di recesso, il flusso in due passaggi, la ricevuta su supporto durevole e il log immutabile funzionano pienamente su WooCommerce standard. L’integrazione FunnelKit aggiunge il link nella pagina di ringraziamento, il checkbox di consenso sul pagamento Aero e il merge tag
{{recesso_url}}per le email di FunnelKit Automations — ma il recesso resta sempre raggiungibile da Il mio account e dalla pagina pubblica autonoma.
Recensioni
Non ci sono recensioni per questo plugin.
Contributi e sviluppo
“Solucom Recesso EU for WooCommerce” è un software open source. Le persone che hanno contribuito allo sviluppo di questo plugin sono indicate di seguito.
Collaboratori“Solucom Recesso EU for WooCommerce” è stato tradotto in 1 lingua. Grazie a chi traduce per il contributo.
Traduci “Solucom Recesso EU for WooCommerce” nella tua lingua.
Ti interessa lo sviluppo?
Esplora il codice segui il repository SVN, segui il log delle modifiche tramite RSS.
Changelog
1.0.1
- Correzione: i gestori admin-post erano registrati con un prefisso di azione obsoleto, perciò il salvataggio delle impostazioni, i pulsanti di anteprima/test email, le azioni della bacheca richieste (segna come gestito, reinvio), l’esportazione CSV dei consensi e il fallback di recesso senza JavaScript restituivano una pagina di errore vuota. Ora tutti i gestori corrispondono alle azioni inviate.
1.0.0
- Prima release. Pulsante di recesso online UE per WooCommerce e FunnelKit (Art. 11a / Art. 54-bis), applicabile dal 19 giugno 2026.
