Prova Sociale — Notifiche di acquisto e Visitatori — Guida completa
Installare, configurare e sfruttare la prova sociale etica: notifiche di acquisti reali anonimizzate (3 livelli), contatore visitatori live senza cookie, orari arrotondati, soglia minima di visualizzazione e conformità GDPR per PrestaShop 8 e 9.
Panoramica
Il modulo Prova Sociale — Notifiche di acquisto e Visitatori live aggiunge due meccanismi di rassicurazione alle tue schede prodotto: notifiche discrete di acquisti recenti («Maria L. ha acquistato questo prodotto 2 h fa») e un badge dei visitatori live («12 persone stanno guardando questo prodotto»).
Il suo tratto distintivo è l’approccio etico e GDPR by design: mostra solo ordini realmente effettuati nel tuo negozio e visitatori realmente presenti. Non inventa mai nulla. L’anonimizzazione viene applicata lato server prima di qualsiasi invio al browser, gli orari sono arrotondati, nessun dato grezzo del cliente viene esposto e il modulo non installa alcun cookie.
Compatibile con PrestaShop da 8.0 a 9.x, multinegozio e multilingue (FR/EN/ES/DE/IT inclusi), senza Composer né jQuery. Se non ci sono ordini recenti o abbastanza visitatori, il modulo semplicemente non mostra nulla.
Installazione
- Nel back-office, apri Moduli > Gestione moduli.
- Clicca su Carica un modulo e seleziona il file
dfsocialproof.zip. - L’installazione crea automaticamente la tabella dei visitatori e registra i valori di configurazione predefiniti.
- Il modulo è attivo immediatamente sulle schede prodotto con impostazioni prudenti e funzionanti.
Nessuna impostazione è obbligatoria per iniziare. Predefiniti: notifiche sugli ordini degli ultimi 7 giorni, anonimizzazione «nome + iniziale», contatore visibile a partire da 3 visitatori simultanei.
Configurazione
La pagina Configura è organizzata in tre pannelli, più un riquadro «Privacy by design» che riassume le garanzie del modulo.
Notifiche di acquisto
- Attivare le notifiche di acquisto: interruttore del primo meccanismo.
- Finestra temporale (ore): vengono mostrati solo gli ordini reali effettuati in questa finestra (168 h di default, cioè 7 giorni). Se non ce ne sono, non viene mostrato nulla.
- Numero massimo di notifiche: tetto per caricamento pagina (5 di default).
- Livello di anonimizzazione: tre modalità descritte nella sezione seguente.
- Stati ordine presi in considerazione: elenco a selezione multipla (Ctrl/Cmd per sceglierne diversi). Solo gli ordini in questi stati generano notifiche; di default, gli stati «validi» del tuo negozio.
Contatore visitatori
- Attivare il contatore visitatori: interruttore del secondo meccanismo.
- Finestra di conteggio (minuti): un visitatore viene contato finché è attivo in questa finestra (15 min di default). I record vengono poi eliminati automaticamente.
- Minimo di visitatori per la visualizzazione: sotto questa soglia (3 di default), il badge resta nascosto per non indicare mai un visitatore isolato.
Visualizzazione
- Posizione: angolo in cui appaiono le notifiche (in basso a sinistra o a destra).
- Ritardo iniziale (secondi): tempo prima della prima notifica (4 s di default).
- Intervallo tra le notifiche (secondi): distanza tra due toast (9 s di default).
- Durata di visualizzazione (secondi): tempo di visibilità di ogni toast (6 s di default).
Le notifiche vengono mostrate una sola volta per caricamento pagina: nessun loop infinito che finisce per infastidire. Il visitatore può chiudere i toast, e questa scelta viene memorizzata per tutta la sessione di navigazione.
I tre livelli di anonimizzazione
Il livello scelto si applica a tutte le notifiche, e la trasformazione avviene sul server: il browser riceve solo il testo finale, mai i dati originali.
- Nome + iniziale: «Maria L. ha acquistato questo prodotto». Il più coinvolgente, pur restando non identificativo.
- Solo città: «Un cliente di Nizza ha acquistato questo prodotto». La città proviene dall’indirizzo di consegna dell’ordine.
- Anonimato completo: «Qualcuno ha acquistato questo prodotto». Il più prudente, adatto ai cataloghi sensibili.
Orari relativi arrotondati
Gli orari mostrati («2 h fa», «25 min fa») sono volutamente arrotondati — i minuti ai 5 minuti più vicini. Obiettivo: impedire di re-identificare un cliente incrociando l’ora esatta di un ordine con altre informazioni. È una scelta di privacy by design, non un’approssimazione tecnica.
Funzionamento del contatore visitatori
Ogni visitatore di una scheda prodotto viene contato tramite un’impronta SHA-256 con salt derivato dalla chiave segreta del tuo negozio (_COOKIE_KEY_). Questa impronta non viene mai mostrata, mai esposta al browser, e serve solo a deduplicare le visite.
- Nessun cookie: il modulo non installa né cookie né local storage per contare.
- Pulizia automatica: i record scaduti vengono rimossi in modo opportunistico dal database, senza attività cron da configurare.
- Soglia di dignità: sotto il minimo configurato, il badge scompare — un visitatore solitario non viene mai indicato come «1 persona sta guardando questo prodotto».
- Aggiornamento: il contatore si aggiorna ogni 60 secondi tramite una richiesta AJAX leggera.
Privacy by design e GDPR
- Solo ordini reali: nessun dato inventato, mai. La credibilità del tuo negozio è preservata e resti dalla parte giusta del diritto dei consumatori (pratiche commerciali ingannevoli).
- Anonimizzazione lato server: i testi arrivano al browser già anonimizzati e formattati. Nessun dato grezzo del cliente (nome completo, email, indirizzo) viaggia verso il front-office.
- Risposte AJAX non memorizzate in cache: gli header impediscono qualsiasi memorizzazione intermedia dei testi.
- Impronte eliminate: la tabella dei visitatori si pulisce da sola, la conservazione è limitata allo stretto necessario.
- Zero cookie, zero risorse esterne: nulla da aggiungere al tuo banner di consenso per questo modulo.
Un pannello «Privacy by design» nel back-office riassume queste garanzie: puoi presentarlo così com’è al tuo DPO o allegarlo al tuo registro dei trattamenti.
Accessibilità e prestazioni
- Toast annunciati con aria-live polite per gli screen reader.
- Rispetto di prefers-reduced-motion: le animazioni vengono disattivate se il visitatore lo richiede.
- Dark mode supportata automaticamente.
- JavaScript vanilla senza jQuery, risorse caricate solo sulla pagina prodotto: impatto trascurabile sulla velocità.
Compatibilità tecnica
- PrestaShop: da 8.0 a 9.x.
- PHP: da 7.4 a 8.x.
- Hooks: actionFrontControllerSetMedia (risorse e configurazione front, solo pagina prodotto) e displayProductAdditionalInfo (badge visitatori).
- Multinegozio e multilingue supportati (traduzioni FR/EN/ES/DE/IT incluse).
- Nessuna dipendenza Composer, niente jQuery.
FAQ
Il modulo inventa acquisti o visitatori?
No, mai. Le notifiche provengono solo da ordini realmente registrati, e il contatore conta solo visitatori realmente presenti. Senza dati, il modulo non mostra nulla.
Cosa succede se il mio negozio ha pochi ordini?
Amplia la finestra temporale (ad esempio 336 h per 14 giorni): le notifiche restano vere, solo l’orario relativo è più datato. Il modulo non riempirà mai un vuoto con dati falsi.
Il contatore installa un cookie?
No. Si basa su un’impronta SHA-256 con salt calcolata lato server, mai esposta ed eliminata automaticamente. Nessun consenso aggiuntivo da raccogliere.
È compatibile con PrestaShop 9 e multinegozio?
Sì, da PrestaShop 8.0 a 9.x, con supporto nativo del multinegozio.
Risoluzione dei problemi
- Nessuna notifica viene mostrata: verifica che esistano ordini nella finestra temporale con uno degli stati selezionati. È il comportamento normale del modulo in assenza di dati reali.
- Il contatore visitatori non appare: il numero di visitatori attivi è probabilmente sotto la soglia minima. Abbassa la soglia o prova con più browser/dispositivi contemporaneamente.
- Le notifiche non riappaiono: se il visitatore ha chiuso un toast, quella scelta viene memorizzata per la sessione. Apri una finestra di navigazione in incognito per riprovare.
- Il badge non si aggiorna: l’aggiornamento avviene ogni 60 secondi; verifica anche che nessuna cache aggressiva blocchi le richieste AJAX del controller front.