# Documentazione Ricerca Senza Risultati: Pagina di Recupero e Avvisi

> Presentazione Il modulo Ricerca Senza Risultati (dfzerosearch) entra in gioco quando una ricerca nel vostro negozio non trova nulla. Invece di una pagina vuota, il visitatore vede una pagina di…

- Pagina: <https://www.datafirefly.com/it/documentation/dfzerosearch/>
- Lingua: it
- Aggiornato il: 2026-10-08
- Altre lingue: [fr](https://www.datafirefly.com/documentation/dfzerosearch/index.md), [en](https://www.datafirefly.com/en/documentation/dfzerosearch/index.md), [es](https://www.datafirefly.com/es/documentation/dfzerosearch/index.md), [de](https://www.datafirefly.com/de/documentation/dfzerosearch/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfzerosearch/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfzerosearch/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfzerosearch/index.md)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

## Presentazione

Il modulo **Ricerca Senza Risultati** (`dfzerosearch`) entra in gioco quando una ricerca nel vostro negozio non trova nulla. Invece di una pagina vuota, il visitatore vede una **pagina di recupero**: la destinazione che avete scelto per quella query, i prodotti con un riferimento simile a quello digitato, la ricerca corretta, una ricerca più ampia, i più venduti della categoria individuata e un modulo «Avvisami».

Nel back-office ogni ricerca persa viene conteggiata. La collegate a un prodotto, una categoria, un'altra ricerca o un URL, con una regola esatta, «contiene» o jolly. Il modulo misura poi quanto rendono questi recuperi: tasso di recupero, ordini e fatturato IVA esclusa.

**Novità della 1.3.0:** blocco **Riferimenti simili** (una ricerca di `M91650-0005` mostra `M91650-0001` e `M91650-0002`) e regole **jolly** (`M91650*` copre un'intera famiglia di riferimenti con una sola regola).

## Installazione e aggiornamento

### Prima installazione

1. Aprite **Moduli > Gestione moduli** e fate clic su **Carica un modulo**.
2. Selezionate l'archivio `dfzerosearch.zip`.
3. Il modulo crea le sue tabelle, il suo menu di amministrazione e la configurazione predefinita. È subito attivo.
4. Copiate l'URL dell'attività pianificata indicato nella pagina di configurazione e programmatelo ogni ora (vedi sotto).

### Aggiornamento da una versione precedente

Caricate il nuovo ZIP sopra il precedente, senza disinstallare. PrestaShop esegue gli script di aggiornamento: nuove colonne, nuove impostazioni con il loro valore predefinito, svuotamento della cache del modulo. Query perse, regole, iscritti e statistiche vengono conservati.

Non disinstallate il modulo per aggiornarlo: la disinstallazione elimina le sue tabelle e quindi tutto lo storico.

## Configurazione

La pagina **Configura** inizia con le scorciatoie verso le tre schermate del modulo, seguite da tre pannelli di impostazioni e dal pannello dell'attività pianificata.

### Pagina di recupero

- **Attiva il modulo**: attiva o sospende il rilevamento e la pagina di recupero.
- **Correzione dei refusi («Forse cercava...»)**: corregge i refusi parola per parola rispetto all'indice di ricerca e mostra i prodotti corrispondenti.
- **Riferimenti simili**: per un riferimento assente dal catalogo, mostra i prodotti il cui riferimento inizia allo stesso modo. Trattini, spazi e maiuscole vengono ignorati, i riferimenti delle combinazioni sono inclusi.
- **Corrispondenza parziale**: quando una query lunga fallisce per una parola («stivali pelle taglia 45»), mostra i risultati della query più corta più vicina.
- **Più venduti della categoria individuata**: confronta la query con i nomi delle categorie, sottocategorie comprese.
- **Più venduti del negozio come ultima risorsa**: mostrati solo se nessun altro blocco ha trovato qualcosa. Senza vendite vengono usate le novità.
- **Modulo «Avvisami»**: il visitatore lascia la sua email per essere avvisato quando la sua ricerca troverà un prodotto.
- **Usa le miniature prodotto del tema**: i prodotti appaiono come nelle pagine categoria (aggiungi al carrello, anteprima rapida, etichette). Se disattivato, il modulo usa le sue schede compatte.
- **Solo prodotti disponibili**: nasconde i prodotti esauriti in tutti i blocchi.
- **Messaggio personalizzato** (per lingua): testo mostrato in cima alla pagina di recupero, ad esempio un numero di telefono o un link agli ordini speciali. `%query%` viene sostituito dalle parole cercate.
- **Ricerche popolari**: chip cliccabili con ricerche che funzionano. Inserite la vostra lista per lingua o lasciate vuoto per usare le ricerche frequenti che danno risultati.
- **Prodotti per blocco**: da 1 a 24 (8 predefinito).

### Tracciamento e dati

- **Lunghezza minima della query**: al di sotto, la ricerca non viene registrata né recuperata (2 predefinito).
- **Considerare persi i risultati solo approssimativi**: la ricerca approssimativa nativa di PrestaShop restituisce spesso prodotti senza rapporto per una parola sconosciuta. Quando una ricerca trova solo risultati di questo tipo, viene conteggiata come persa e il blocco di recupero appare sopra di essi.
- **Ignora bot e crawler**: le ricerche di motori, strumenti SEO e script non vengono registrate.
- **Finestra di attribuzione (giorni)** (7 predefinito): un ordine effettuato entro questo periodo dopo un recupero viene attribuito alla query e al blocco che hanno riportato il visitatore (ultimo contatto).
- **Metti in cache i risultati di recupero**: conserva il lavoro di ricerca 15 minuti per query. Prezzi e disponibilità restano in tempo reale. La cache viene svuotata appena modificate un'impostazione o una regola.
- **Conservazione (giorni)** (180 predefinito): le query perse non più viste da questo periodo e le iscrizioni già avvisate vengono eliminate dall'attività pianificata. 0 conserva tutto. Un pulsante permette di eliminare subito.

### Automazione

- **Email «avvisami» automatiche**: gli iscritti vengono avvisati non appena la loro query riceve una regola attiva o la ricerca trova di nuovo prodotti.
- **Report settimanale**: ogni 7 giorni, ricerche perse, tasso di recupero e principali query perse, inviati via email.
- **Destinatario del report**: se vuoto, viene usato l'indirizzo email del negozio.

## Attività pianificata

Il pannello **Attività pianificata (cron)** mostra un URL protetto da token. Richiamatelo ogni ora da cPanel, Plesk o qualsiasi servizio cron, ad esempio:

```
0 * * * * curl -s "https://www.il-tuo-negozio.it/module/dfzerosearch/cron?token=..." > /dev/null
```

Invia le email «avvisami» automatiche, applica la conservazione e invia il report settimanale. Il pannello indica la data dell'ultima esecuzione, **Esegui ora** avvia l'attività manualmente e **Genera un nuovo token** sostituisce l'URL se è stato divulgato. In multinegozio, programmate un'attività per negozio con l'URL mostrato nel contesto di ciascun negozio.

Se l'attività non è stata eseguita nelle ultime 48 ore, sulla dashboard compare un avviso: le email automatiche e il report settimanale restano in attesa finché non riparte.

## La pagina di recupero

Quando la griglia dei risultati è vuota, uno script carica la pagina di recupero in AJAX. Le ricerche che trovano prodotti non vengono rallentate. I blocchi compaiono in quest'ordine, senza prodotti ripetuti tra un blocco e l'altro:

1. **La vostra regola**: se una regola attiva corrisponde alla query, la sua destinazione viene messa in evidenza. In modalità reindirizzamento, il visitatore arriva direttamente alla destinazione. Un sinonimo mostra anche i suoi prodotti.
2. **Riferimenti simili**: prodotti della stessa famiglia di riferimento.
3. **«Forse cercava...»**: la query corretta e i suoi prodotti, con un link alla ricerca corretta. Questo blocco compare solo se i blocchi precedenti non hanno mostrato nulla.
4. **Corrispondenza parziale**: risultati della query accorciata, solo se non è ancora stato trovato nulla.
5. **Più venduti della categoria individuata**.
6. **Più venduti del negozio**: solo come ultima risorsa.

Il messaggio personalizzato compare sopra i blocchi, le ricerche popolari e il modulo «Avvisami» sotto.

## Riferimenti simili

Molti clienti cercano un prodotto con il suo riferimento esatto. Quando quel riferimento non esiste nel catalogo, il modulo propone i prodotti della stessa famiglia.

- Il modulo individua nella query la parola che sembra un riferimento: almeno 5 caratteri, di cui almeno 2 cifre.
- La confronta con i riferimenti di prodotti e combinazioni, ignorando trattini, spazi, punti e maiuscole. `M91650-0005`, `m91650 0005` e `M916500005` sono trattati allo stesso modo.
- Vengono tenuti solo i prodotti che condividono un inizio di riferimento abbastanza lungo (almeno 5 caratteri e il 60% del riferimento cercato). I più vicini compaiono per primi.
- Esempio: una ricerca di `M91650-0005` mostra `M91650-0001` e `M91650-0002`, ma non `M91651-0003`.

La correzione dei refusi non modifica mai una parola con almeno 2 cifre: un riferimento non viene «corretto» in un altro.

## Regole: associazioni e sinonimi

La schermata **Associazioni e sinonimi** elenca le vostre regole. Per crearne una, fate clic su **Aggiungi un'associazione** oppure usate l'azione **Associa** di una query persa, che precompila il modulo.

### Tipi di corrispondenza

- **Esatta**: la query deve essere identica alla regola. Maiuscole, accenti e spazi in eccesso vengono ignorati.
- **Contiene**: la regola deve comparire come parola o sequenza di parole nella query. Trattini, barre, punti e altri separatori contano come spazi: la regola `m91651` si applica a `M91651-0003`.
- **Jolly**: `*` sostituisce qualsiasi sequenza di caratteri e `?` un solo carattere. `M91650*` copre `M91650-0001`, `M91650-0007` o `m916500009`, ma non `M91659-0001`. Ogni regola che contiene `*` o `?` viene salvata automaticamente come jolly.

Una regola jolly richiede almeno 3 caratteri oltre ai jolly, e `**` viene rifiutato. Scrivete `M91650*` invece di `M91650-*` se i vostri clienti digitano il riferimento anche senza trattino.

### Priorità

Quando più regole corrispondono a una query, vince la più precisa: una regola esatta prevale su una jolly, che prevale su una «contiene». A parità di tipo, una regola per una lingua specifica prevale su una per «tutte le lingue», poi vince la regola più lunga.

### Destinazioni e modalità

- **Prodotto**: ricerca per nome, riferimento o ID nel modulo.
- **Categoria**.
- **Sinonimo (altra ricerca)**: altre parole che danno risultati («felpa» per «maglione»). I prodotti di quella ricerca compaiono sulla pagina di recupero.
- **URL personalizzato**: URL assoluto o percorso che inizia con una barra.

Ogni regola funziona in modalità **Suggerimento** (destinazione evidenziata sulla pagina di recupero) o **Reindirizzamento** (il visitatore arriva direttamente alla destinazione). Una regola può riguardare una lingua specifica o tutte le lingue.

## Importazione ed esportazione CSV

Il pannello **Importa / esporta (CSV)** della schermata delle regole importa fino a 5.000 righe ed esporta tutte le regole. Separatore `;` o `,`, riga di intestazione facoltativa. Colonne:

```
query ; match ; language ; type ; target ; mode ; active
M91650* ; wildcard ; all ; category ; 12 ; redirect ; 1
maglione ; exact ; it ; search ; felpa ; suggest ; 1
M91651 ; contains ; all ; product ; M91651-0003 ; suggest ; 1
```

- **match**: `exact`, `contains` o `wildcard` (exact predefinito; jolly rilevato automaticamente se la regola contiene `*` o `?`).
- **language**: codice ISO, oppure vuoto, `*` o `all` per tutte le lingue.
- **type**: `product`, `category`, `search` o `url`.
- **target**: ID o riferimento prodotto, ID categoria, parole da cercare o URL.
- **mode**: `suggest` o `redirect` (suggest predefinito). **active**: 1 o 0 (1 predefinito).

Una regola esistente con la stessa query e la stessa lingua viene aggiornata. Il report di importazione indica le righe create, aggiornate e rifiutate con il loro numero.

## Avvisi «Avvisami»

Il modulo della pagina di recupero ha una casella di consenso non spuntata per impostazione predefinita e un campo trappola contro i bot. Per un cliente connesso, l'email è già compilata. Le richieste sono elencate nella schermata **Richieste «avvisami»** con il loro stato.

Con l'attività pianificata e l'opzione **Email «avvisami» automatiche**, l'iscritto riceve l'email `dfzerosearch_alert` nella sua lingua non appena la sua query riceve una regola attiva o la ricerca trova di nuovo prodotti. Potete anche inviarla manualmente con l'azione **Avvisa** di una regola. Ogni email contiene un link di disiscrizione.

## Dashboard e fatturato recuperato

La schermata **Query perse** mostra i dati degli ultimi 30 giorni: ricerche perse, tasso di recupero, ordini dopo un recupero, fatturato recuperato IVA esclusa, nuove iscrizioni ed email in attesa. Un grafico confronta giorno per giorno ricerche perse e recuperate, un altro mostra i clic per blocco di recupero (regola, riferimenti simili, correzione, corrispondenza parziale, categoria, più venduti, ricerche popolari).

L'elenco delle query perse è ordinato per volume. Ogni riga offre **Associa**, **Ignora / ripristina** e, quando è stata trovata una correzione, **Crea un sinonimo da questa correzione**. La tabella **Ultimi ordini dopo un recupero** indica la query e il blocco a cui è attribuito l'ordine.

L'attribuzione è all'ultimo contatto: l'ordine viene attribuito all'ultimo recupero dello stesso visitatore entro la finestra di attribuzione configurata.

## Report settimanale

Ogni 7 giorni l'attività pianificata invia l'email `dfzerosearch_digest`: ricerche perse, visitatori recuperati, tasso di recupero, ordini e fatturato IVA esclusa dopo un recupero, nuove richieste «avvisami» e query perse più frequenti. Se nella settimana non è successo nulla, non viene inviata alcuna email.

## GDPR

- **Consenso esplicito**: casella non spuntata per impostazione predefinita e testo di consenso chiaro.
- **Modulo GDPR ufficiale**: il modulo è registrato presso `psgdpr`. L'esportazione e la cancellazione dei dati di un cliente includono le sue richieste «avvisami».
- **Disiscrizione**: un link in ogni email.
- **Conservazione**: eliminazione automatica delle vecchie query e delle iscrizioni già avvisate.
- **Self-hosted**: nessun dato viene inviato a servizi terzi.

## Compatibilità e informazioni tecniche

- PrestaShop da 8.0 a 9.x, multinegozio.
- Interfaccia ed email in inglese, francese, spagnolo, tedesco e italiano.
- Hook: `actionSearch`, `actionFrontControllerSetMedia`, `actionValidateOrder`, `registerGDPRConsent`, `actionDeleteGDPRCustomer`, `actionExportGDPRData`.
- Tabelle: `dfzerosearch_query`, `dfzerosearch_mapping`, `dfzerosearch_alert`, `dfzerosearch_stat`, `dfzerosearch_session`, `dfzerosearch_conversion`.
- Menu `AdminDfZeroSearch` sotto Moduli, con tre schermate: query perse, associazioni e sinonimi, richieste «avvisami».
- Controller front: `rescue` (pagina di recupero, JSON), `cron` (attività pianificata, token) e `unsubscribe`.
- Nessuna dipendenza: niente Composer, JavaScript senza jQuery, nessun servizio esterno.

## Risoluzione dei problemi

- **La pagina di recupero non compare**: verificate che il modulo sia attivo e che la ricerca restituisca davvero zero risultati, poi svuotate la cache di PrestaShop e del browser. Con un tema molto personalizzato, contattateci indicando il nome del tema.
- **Una ricerca mostra prodotti senza rapporto e non viene conteggiata come persa**: attivate **Considerare persi i risultati solo approssimativi**.
- **Nessun riferimento simile**: la parola cercata deve avere almeno 5 caratteri con 2 cifre, e devono esistere prodotti attivi, visibili nella ricerca, che condividono l'inizio di quel riferimento.
- **Una regola jolly non si applica**: verificate che sia attiva, nella lingua giusta, e che nessuna regola esatta abbia la precedenza. Provatela senza separatore (`M91650*`) se i clienti digitano il riferimento in modi diversi.
- **Nessuna correzione proposta**: la correzione suggerisce solo parole presenti nell'indice; ricostruite l'indice di ricerca di PrestaShop se il catalogo è cambiato molto.
- **Le email automatiche o il report non partono**: controllate la data dell'ultima esecuzione dell'attività pianificata e la configurazione email di PrestaShop. Il pulsante Avvisa mostra un errore esplicito se l'invio fallisce.
- **La dashboard resta vuota**: controllate la lunghezza minima della query e fate una prova da un browser normale, poiché i bot vengono ignorati.
