# Zoekopdracht zonder resultaat: inhaalpagina en meldingen: volledige gids

> Overzicht De module Zoekopdracht zonder resultaat (dfzerosearch) onderschept de zoekopdrachten in uw winkel die geen enkel resultaat opleveren en vervangt ze door een inhaalpagina: spellingcorrectie "bedoelde u...", vergelijkbare producten, bestsellers…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfzerosearch/>
- Taal: nl
- Bijgewerkt op: 2026-09-10
- Andere talen: [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), [it](https://www.datafirefly.com/it/documentation/dfzerosearch/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfzerosearch/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfzerosearch/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Overzicht

De module **Zoekopdracht zonder resultaat** (`dfzerosearch`) onderschept de zoekopdrachten in uw winkel die geen enkel resultaat opleveren en vervangt ze door een **inhaalpagina**: spellingcorrectie "bedoelde u...", vergelijkbare producten, bestsellers van de geraden categorie, globale bestsellers en een formulier "verwittig me".

In de back-office bundelt een **dashboard van verloren zoekopdrachten** alle zoekopdrachten met nul resultaten en laat het u toe ze met één klik te koppelen aan een product, een categorie of een URL, als suggestie op de pagina of als automatische redirect.

**In het kort:** detectie via de hook `actionSearch`, inhaalpagina geladen via AJAX, correctie tegen de native index, AVG-conform opt-in-formulier, e-mailmelding met één klik en dashboard van verloren zoekopdrachten. Geen enkele afhankelijkheid, geen externe dienst.

## Installatie

1. Open in uw back-office **Modules > Modulebeheer** en klik op **Een module uploaden**.
2. Selecteer het archief `dfzerosearch.zip` en bevestig.
3. Bij de installatie maakt de module haar drie SQL-tabellen, haar beheertabblad (met drie subtabbladen) en haar standaardconfiguratie aan.
4. De module is meteen actief. Er is geen externe afhankelijkheid vereist (geen Composer, geen framework).

De module is compatibel met PrestaShop 8.0 tot 9.x, in single-shop en multistore, en met de vijf catalogustalen (FR, EN, ES, DE, IT).

## Configuratie (back-office)

Open de configuratiepagina van de module (**Modules > Modulebeheer > dfzerosearch > Configureren**). De beschikbare instellingen zijn:

- **Module activeren**: activeert of pauzeert de detectie en de weergave van de inhaalpagina.
- **Spellingcorrectie**: activeert het blok "bedoelde u...".
- **Categorieblok**: activeert de bestsellers van de geraden categorie.
- **Bestsellersblok**: activeert de globale bestsellers, alleen getoond als laatste redmiddel.
- **Formulier "verwittig me"**: activeert het verzamelen van e-mailadressen op de inhaalpagina.
- **Producten per blok**: aantal getoonde producten per blok (standaard 8, van 1 tot 24).
- **Minimale zoekopdrachtlengte**: onder dit aantal tekens wordt de zoekopdracht niet gelogd (standaard 2).
- **Bewaring (dagen)**: bewaartijd van de verloren zoekopdrachten, met een knop voor handmatige opruiming (standaard 180 dagen).

De waarden worden opgeslagen in de configuratievariabelen `DFZS_ENABLED`, `DFZS_FUZZY`, `DFZS_CATEGORY_BLOCK`, `DFZS_BESTSELLERS_BLOCK`, `DFZS_NOTIFY_FORM`, `DFZS_NB_PRODUCTS`, `DFZS_MIN_LENGTH` en `DFZS_RETENTION_DAYS`. Een paneel met snelkoppelingen verwijst naar de drie beheerschermen.

## De inhaalpagina (aan bezoekerszijde)

Op de resultatenpagina detecteert een script dat de productgrid leeg is, en laadt het de inhaalpagina via AJAX met de frontcontroller `rescue`. De blokken verschijnen in deze volgorde:

1. **Voorgestelde bestemming**: bestaat er voor de zoekopdracht een actieve mapping in de modus "suggestie", dan wordt de bestemming (product, categorie of URL) uitgelicht.
2. **"Bedoelde u..."**: de gecorrigeerde zoekopdracht en haar producten, met een link naar de echte gecorrigeerde zoekpagina.
3. **Bestsellers van de geraden categorie**: op basis van de woorden in de zoekopdracht.
4. **Globale bestsellers**: alleen als geen van de vorige blokken resultaat opleverde.
5. **Formulier "verwittig me"**: om het e-mailadres van de bezoeker voor deze zoekopdracht te verzamelen.

Zoekopdrachten die wél resultaat geven, worden nooit vertraagd: de inhaalpagina wordt alleen geladen wanneer de resultatengrid daadwerkelijk leeg is.

## Spellingcorrectie en categorie raden

De **spellingcorrectie** herschrijft de zoekopdracht woord voor woord tegen de native zoekindex van PrestaShop (tabel `ps_search_word`), met een Levenshtein-afstand aangepast aan de woordlengte. Alleen woorden die echt in de index staan, worden voorgesteld; de echte PrestaShop-zoekopdracht wordt daarna opnieuw uitgevoerd met de gecorrigeerde zoekterm.

Het **categorie raden** legt de woorden van de zoekopdracht naast de namen van de actieve categorieën van de winkel (substring-match en dan Levenshtein). De best scorende categorie levert haar bestsellers.

Alle intelligentie is self-hosted: geen enkel gegeven verlaat uw winkel en er is geen externe API-sleutel nodig.

## Dashboard van verloren zoekopdrachten en mapping

Het tabblad **DF Zero Search** bundelt drie schermen:

- **Verloren zoekopdrachten**: alle zoekopdrachten met nul resultaten, geaggregeerd, geteld en gesorteerd op volume, met vier kernindicatoren (totaal verloren zoekopdrachten, unieke zoekopdrachten, actieve mappings, wachtende meldingen). Een actie **"Mappen"** vult het mappingformulier vooraf in.
- **Mappings**: de lijst van koppelingen zoekopdracht → bestemming. Een bestemming kan een **product**, een **categorie** of een **URL** zijn, in de modus **suggestie** (getoond op de inhaalpagina) of **redirect** (de bezoeker wordt automatisch doorgestuurd).
- **Abonnementen "verwittig me"**: de lijst van verzamelde e-mailadressen, met hun status (wachtend / verwittigd).

## Formulier "verwittig me" en meldingen

Op de inhaalpagina laat een **standaard uitgevinkt opt-in-formulier**, beschermd door een honeypot tegen bots, de bezoeker zijn e-mailadres achterlaten voor de lopende zoekopdracht. Wanneer u vanuit de back-office een actieve mapping voor die zoekopdracht aanmaakt, stuurt de actie **"Verwittigen"** de e-mail `dfzerosearch_alert` naar alle wachtende abonnees, elk in zijn eigen taal, en markeert ze daarna als verwittigd.

Er is geen cron nodig: het versturen van de meldingen wordt handmatig geactiveerd, op het moment dat u beslist dat een zoekopdracht haar bestemming heeft gevonden.

## AVG-conformiteit

- **Expliciete opt-in**: de e-mailverzameling steunt op een standaard uitgevinkt vakje, met een duidelijke toestemmingstekst.
- **Honeypot**: een verborgen veld filtert geautomatiseerde inzendingen zonder de bezoeker te hinderen.
- **Beheerste bewaring**: verloren zoekopdrachten worden automatisch opgeruimd na het ingestelde aantal dagen, met op elk moment handmatige opruiming mogelijk.
- **Self-hosting**: geen enkel gegeven wordt aan een externe dienst doorgegeven.

## Compatibiliteit en technische conventies

- PrestaShop 8.0 tot 9.x, multistore, 5 talen.
- Gebruikte hooks: `actionSearch` en `actionFrontControllerSetMedia`.
- SQL-tabellen: `dfzerosearch_query`, `dfzerosearch_mapping`, `dfzerosearch_alert`.
- Beheertabblad `AdminDfZeroSearch` met zijn drie subtabbladen, onder het menu Verbeteren.
- Frontcontroller `rescue` beveiligd met een token, JSON-antwoorden.
- Geen afhankelijkheid: handmatige PSR-4-autoloader, vanilla JS zonder jQuery, geen externe dienst.

## Probleemoplossing

- **De inhaalpagina verschijnt niet**: controleer of de module actief is en of de zoekopdracht wel nul resultaten geeft, en leeg de PrestaShop-cache.
- **Er wordt geen correctie voorgesteld**: de correctie stelt alleen woorden voor die in de native index staan; herindexeer de PrestaShop-zoekfunctie als uw catalogus sterk is veranderd.
- **Er verschijnt geen zoekopdracht in het dashboard**: controleer of de lengte van de zoekopdrachten de ingestelde minimumdrempel overschrijdt en of de module actief is.
- **De meldingsmails vertrekken niet**: controleer de e-mailconfiguratie van PrestaShop en of de actie "Verwittigen" wel is uitgevoerd op een actieve mapping met wachtende abonnees.
