Ricerca Senza Risultati — Pagina di Recupero e Avvisi — Documentazione
Installare, configurare e utilizzare il modulo dfzerosearch: pagina di recupero sulle ricerche senza risultati, correzione ortografica, individuazione della categoria, modulo «avvisami» e dashboard delle query perse.
Panoramica
Il modulo Ricerca Senza Risultati (dfzerosearch) intercetta le ricerche del tuo negozio che non restituiscono alcun risultato e le sostituisce con una pagina di recupero: correzione ortografica «forse cercavi…?», prodotti simili, best seller della categoria indovinata, più venduti globali e modulo «avvisami».
Nel back-office, una dashboard delle query perse aggrega tutte le ricerche senza risultati e ti permette di associarle, con un clic, a un prodotto, una categoria o un URL — come suggerimento mostrato nella pagina o come reindirizzamento automatico.
In breve: rilevamento tramite l’hook actionSearch, pagina di recupero caricata via AJAX, correzione contro l’indice nativo, modulo opt-in GDPR, avviso email con un clic e dashboard delle query perse. Senza dipendenze, senza servizio esterno.
Installazione
- Nel tuo back-office, apri Moduli > Gestore dei moduli e clicca su Carica un modulo.
- Seleziona l’archivio
dfzerosearch.zipe conferma. - All’installazione, il modulo crea le sue tre tabelle SQL, la sua scheda di amministrazione (e le sue tre sotto-schede) e la sua configurazione predefinita.
- Il modulo è attivo immediatamente. Non è richiesta alcuna dipendenza esterna (né Composer, né framework).
Il modulo è compatibile con PrestaShop 8.0 a 9.x, in negozio singolo o multi-negozio, nelle cinque lingue del catalogo (FR, EN, ES, DE, IT).
Configurazione (back-office)
Apri la pagina di configurazione del modulo (Moduli > Gestore dei moduli > dfzerosearch > Configura). Le impostazioni disponibili sono:
- Attiva il modulo — attiva o sospende il rilevamento e la visualizzazione della pagina di recupero.
- Correzione ortografica — attiva il blocco «forse cercavi…?».
- Blocco categoria — attiva i best seller della categoria indovinata.
- Blocco più venduti — attiva i più venduti globali, mostrati solo come ultima risorsa.
- Modulo «avvisami» — attiva la cattura dell’email nella pagina di recupero.
- Prodotti per blocco — numero di prodotti mostrati in ogni blocco (8 per impostazione predefinita, da 1 a 24).
- Lunghezza minima della query — al di sotto di questo numero di caratteri, la ricerca non viene registrata (2 per impostazione predefinita).
- Conservazione (giorni) — durata di conservazione delle query perse, con un pulsante di pulizia manuale (180 giorni per impostazione predefinita).
I valori sono memorizzati nelle variabili di configurazione DFZS_ENABLED, DFZS_FUZZY, DFZS_CATEGORY_BLOCK, DFZS_BESTSELLERS_BLOCK, DFZS_NOTIFY_FORM, DFZS_NB_PRODUCTS, DFZS_MIN_LENGTH e DFZS_RETENTION_DAYS. Un pannello di collegamenti rapidi rimanda alle tre schermate di amministrazione.
La pagina di recupero (lato visitatore)
Nella pagina dei risultati, uno script rileva che la griglia dei prodotti è vuota, poi carica la pagina di recupero via AJAX tramite il controller front rescue. I blocchi appaiono in questo ordine:
- Obiettivo suggerito — se esiste un’associazione attiva in modalità «suggerimento» per la query, viene evidenziato il suo obiettivo (prodotto, categoria o URL).
- «Forse cercavi…?» — la query corretta e i suoi prodotti, con un link alla vera pagina di ricerca corretta.
- Best seller della categoria indovinata — a partire dalle parole della query.
- Più venduti globali — solo se nessuno dei blocchi precedenti ha prodotto un risultato.
- Modulo «avvisami» — per catturare l’email del visitatore per quella query.
Le ricerche che vanno a buon fine non vengono mai rallentate: la pagina di recupero viene caricata solo quando la griglia dei risultati è effettivamente vuota.
Correzione ortografica e individuazione della categoria
La correzione ortografica riscrive la query parola per parola contro l’indice di ricerca nativo di PrestaShop (tabella ps_search_word), con una distanza di Levenshtein adattata alla lunghezza della parola. Vengono proposte solo parole realmente presenti nell’indice; la vera ricerca di PrestaShop viene poi rilanciata con la query corretta.
L’individuazione della categoria confronta le parole della query con i nomi delle categorie attive del negozio (corrispondenza di sottostringa, poi Levenshtein). La categoria con il punteggio migliore fornisce i suoi best seller.
Tutta la logica è self-hosted: nessun dato lascia il tuo negozio e non è richiesta alcuna chiave API esterna.
Dashboard delle query perse e associazione
La scheda DF Zero Search riunisce tre schermate:
- Query perse — tutte le ricerche senza risultati, aggregate, contate e ordinate per volume, con quattro indicatori chiave (totale ricerche perse, query distinte, associazioni attive, avvisi in attesa). Un’azione «Associa» precompila il modulo di associazione.
- Associazioni — l’elenco delle associazioni query → obiettivo. Un obiettivo può essere un prodotto, una categoria o un URL, in modalità suggerimento (mostrata nella pagina di recupero) o reindirizzamento (il visitatore viene reindirizzato automaticamente).
- Abbonamenti «avvisami» — l’elenco delle email catturate, con il loro stato (in attesa / notificato).
Modulo «avvisami» e avvisi
Nella pagina di recupero, un modulo opt-in deselezionato per impostazione predefinita, protetto da un honeypot anti-bot, permette al visitatore di lasciare la sua email per la query in corso. Dal back-office, quando crei un’associazione attiva per quella query, l’azione «Notifica» invia l’email dfzerosearch_alert a tutti gli iscritti in attesa, ciascuno nella propria lingua, poi li contrassegna come notificati.
Non è necessario alcun cron: l’invio degli avvisi viene attivato manualmente, nel momento in cui decidi che una query ha trovato il suo obiettivo.
Conformità al GDPR
- Opt-in esplicito: la cattura dell’email si basa su una casella deselezionata per impostazione predefinita, con un testo di consenso chiaro.
- Honeypot: un campo nascosto filtra gli invii automatizzati senza disturbare il visitatore.
- Conservazione controllata: le query perse vengono ripulite automaticamente oltre il numero di giorni configurato, con pulizia manuale disponibile in qualsiasi momento.
- Self-hosting: nessun dato viene trasmesso a terze parti.
Compatibilità e convenzioni tecniche
- PrestaShop 8.0 a 9.x, multi-negozio, 5 lingue.
- Hook utilizzati:
actionSearcheactionFrontControllerSetMedia. - Tabelle SQL:
dfzerosearch_query,dfzerosearch_mapping,dfzerosearch_alert. - Scheda di amministrazione
AdminDfZeroSearche le sue tre sotto-schede, sotto il menu Migliora. - Controller front
rescueprotetto da token, risposte JSON. - Senza dipendenze: autoloader PSR-4 manuale, JS vanilla senza jQuery, nessun servizio esterno.
Risoluzione dei problemi
- La pagina di recupero non appare — verifica che il modulo sia attivato, che la ricerca restituisca davvero zero risultati, e svuota la cache di PrestaShop.
- Non viene proposta alcuna correzione — la correzione suggerisce solo parole presenti nell’indice nativo; reindicizza la ricerca di PrestaShop se il tuo catalogo è cambiato molto.
- Nessuna query appare nella dashboard — assicurati che la lunghezza delle query superi la soglia minima configurata e che il modulo sia attivato.
- Le email di avviso non partono — verifica la configurazione email di PrestaShop e che l’azione «Notifica» sia stata effettivamente lanciata su un’associazione attiva con iscritti in attesa.