PS PrestaShop Principiante

dfsavecart — Salvataggio carrello con magic link

Installazione, configurazione e utilizzo del modulo di salvataggio carrello con magic link per PrestaShop 8 e 9.

Aggiornato Versione del modulo 1.0.0

Panoramica

dfsavecart aggiunge una funzione «Salva per dopo» alla pagina del carrello del tuo negozio PrestaShop 8 o 9. Il visitatore, connesso o ospite, inserisce il proprio indirizzo email e riceve un link sicuro («magic link») che ripristina il suo carrello esatto — stessi prodotti, stesse quantità — su qualsiasi dispositivo, in qualsiasi momento entro il periodo di validità configurato.

Il modulo non è invasivo: non influisce sul funnel d’ordine, sul checkout né sugli altri moduli. Funziona con il sistema email nativo di PrestaShop (e quindi con il tuo SMTP esistente).

Requisiti

  • PrestaShop da 8.0.x a 9.x
  • PHP 8.1 o superiore
  • MySQL 5.7+ o MariaDB 10.3+
  • Invio email funzionante (Parametri avanzati > E-mail — testa l’invio prima di installare il modulo)

Installazione

  1. Scarica il file dfsavecart.zip dal tuo account DataFirefly.
  2. Nel back office di PrestaShop, vai su Moduli > Gestore dei moduli.
  3. Clicca su Carica un modulo e seleziona lo ZIP.
  4. PrestaShop installa il modulo automaticamente: viene creata la tabella ps_df_savecart e vengono registrati gli hook.
  5. Clicca su Configura per accedere alle impostazioni.

Non viene installato alcun override di classe o controller: la disinstallazione è pulita e senza residui (tabella e chiavi di configurazione vengono rimosse).

Configurazione

Tutte le impostazioni si trovano su un’unica pagina: Moduli > Gestore dei moduli > dfsavecart > Configura.

Impostazioni principali

  • Attiva il modulo — interruttore generale. Disattivato, il blocco scompare dal front office senza disinstallare.
  • Posizione del pulsantePiè del carrello (consigliato, hook displayShoppingCartFooter), Nel carrello (hook displayShoppingCart) o Entrambi. La scelta dipende dal tuo tema: verifica la resa sulla pagina del carrello dopo la modifica.
  • Durata di validità del link — da 1 a 365 giorni, 30 di default. Oltre, il link scade e la voce viene eliminata.

Sicurezza e anti-spam

  • Limite per email / giorno — numero massimo di invii per lo stesso indirizzo in 24 h mobili (10 di default). Imposta 0 per disattivare. Il contatore si basa su un hash salato dell’email: l’indirizzo non viene memorizzato in chiaro per questa funzione.
  • Link monouso — se attivo, il link diventa non valido dopo il primo ripristino. Utile per carrelli riservati (B2B, preventivi).

Comportamento del ripristino

  • Svuota il carrello attuale prima del ripristino — attivo di default. Se disattivato, i prodotti del link si aggiungono al carrello in corso (cumulativo).

GDPR ed email

  • Richiedi consenso GDPR — mostra una casella obbligatoria prima dell’invio (attivo di default, consigliato).
  • Invia copia nascosta al commerciante — aggiunge l’email di contatto del negozio in BCC a ogni invio, per tracciamento interno.
  • Oggetto email (per lingua) — personalizzabile per ogni lingua attiva del negozio. Variabili disponibili: {shop_name} e {firstname}.

Funzionamento lato cliente

  1. Il cliente aggiunge prodotti al carrello e apre la pagina del carrello.
  2. Vede il blocco «Salva questo carrello per dopo» con un campo email (precompilato se connesso).
  3. Inserisce la propria email, spunta il consenso se richiesto, e clicca su Invia il link.
  4. Riceve un’email con un riepilogo del carrello (prodotti, quantità, totale stimato), la data di scadenza e un pulsante Ripristina il mio carrello.
  5. Un clic sul pulsante ripristina il carrello esatto e reindirizza alla pagina del carrello, con un messaggio di conferma.

Casi particolari al ripristino

  • Prodotto disattivato o eliminato — la riga viene ignorata e il cliente è informato tramite un messaggio che elenca i prodotti non disponibili.
  • Stock insufficiente — la quantità viene adattata al massimo disponibile, con un messaggio che segnala l’adeguamento.
  • Link scaduto o già utilizzato (modalità monouso) — viene mostrata una pagina di errore sobria, con link al carrello attuale e alla home.
  • Lingua e valuta — vengono ripristinate quelle del carrello originale.

Email

I template HTML e testo sono forniti in francese, inglese, spagnolo e tedesco in modules/dfsavecart/mails/{iso}/savecart.html e savecart.txt. La lingua utilizzata è quella del carrello al momento del salvataggio.

Variabili disponibili nei template: {firstname}, {shop_name}, {restore_link}, {cart_items_html}, {cart_items_txt}, {cart_total}, {expiry_date}.

Per personalizzare i template in modo duraturo, duplicali nella cartella mails del tuo tema invece di modificare quelli del modulo: verrebbero sovrascritti all’aggiornamento.

Sicurezza

  • Token a 256 bit — generato da random_bytes(32), il generatore crittograficamente sicuro di PHP. 64 caratteri esadecimali nell’URL.
  • Memorizzazione in hash — solo l’impronta SHA-256 del token viene salvata nel database. In caso di compromissione del database, nessun link può essere ricostruito.
  • CSRF — l’endpoint AJAX di salvataggio verifica il token di sessione di PrestaShop.
  • Validazione rigorosa — il formato del token viene verificato lato server ([a-f0-9]{64}) prima di qualsiasi query al database.

GDPR

  • Consenso esplicito configurabile prima dell’invio dell’email.
  • Per il limite anti-spam, l’email non è conservata in chiaro: viene utilizzato solo un hash salato (con la chiave segreta del negozio).
  • I record scaduti vengono eliminati automaticamente (pulizia) — vedi sezione successiva.
  • Nessun dato viene trasmesso a servizi terzi: tutto resta nel tuo database PrestaShop.
  • In caso di richiesta di cancellazione di un cliente, elimina le sue righe nella tabella ps_df_savecart (colonna email).

Tre opzioni, dalla più semplice alla più automatizzata:

  1. Pulsante manuale — nella pagina di configurazione del modulo, «Elimina le voci scadute».
  2. Modulo CronJobs — installa il modulo gratuito CronJobs di PrestaShop: l’hook actionCronJob del modulo viene chiamato automaticamente e attiva la pulizia.
  3. Crontab di sistema — pianifica una chiamata regolare al cron del tuo negozio secondo la configurazione del server.

Statistiche

La pagina di configurazione mostra quattro contatori in tempo reale: totale salvati, attivi (non scaduti), scaduti (in attesa di pulizia) e ripristinati (link utilizzati almeno una volta). Il rapporto ripristinati / totale fornisce il tasso di conversione della funzionalità.

Multinegozio

Il modulo è compatibile con il multinegozio: ogni salvataggio memorizza l’ID del negozio di origine, utilizzato durante il ripristino. La configurazione segue il contesto negozio standard di PrestaShop.

Risoluzione dei problemi

L’email non arriva

  • Verifica l’invio email globale del negozio: Parametri avanzati > E-mail > Prova invio.
  • Controlla la cartella spam del destinatario.
  • Consulta i log: Parametri avanzati > Log (gli errori del modulo hanno il prefisso [dfsavecart]).

Il blocco non appare nella pagina del carrello

  • Verifica che il modulo sia attivo nella sua configurazione.
  • Verifica che il carrello contenga almeno un prodotto (il blocco è nascosto con carrello vuoto).
  • Verifica la posizione scelta: alcuni temi non implementano l’hook displayShoppingCartFooter — passa a «Nel carrello» o «Entrambi».
  • Svuota la cache: Parametri avanzati > Prestazioni > Svuota cache.

Messaggio «Token di sicurezza non valido»

  • La pagina del carrello è rimasta aperta troppo a lungo e la sessione è scaduta: ricarica la pagina e riprova.

Messaggio «Troppe richieste per questo indirizzo»

  • Il limite anti-spam giornaliero è stato raggiunto per questa email. Aumenta il limite nella configurazione o attendi 24 h.

Disinstallazione

La disinstallazione elimina la tabella ps_df_savecart (tutti i carrelli salvati vengono persi) e tutte le chiavi di configurazione. Non resta alcun residuo nel database né nei file.

Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza