Slim Live Search: volledige gids
DF Live Search 2.1 installeren, configureren en gebruiken: direct-zoekpaneel, optionele filters, hybride semantisch zoeken, zelflerend, merchandisingregels, synoniemen, doorverwijzingen en zoekdashboard voor PrestaShop 1.7.8, 8 en 9.
Overzicht en vereisten
DF Live Search vervangt de zoekfunctie van je winkel door een direct-zoekpaneel. Vóór het typen toont het de recente zoekopdrachten van de bezoeker, populaire zoekopdrachten en aanbevolen producten. Tijdens het typen biedt het aanvulling in het veld, suggesties en het resultatenraster met direct toevoegen aan de winkelwagen. Filters (prijs, beschikbaarheid, categorieën, merken, attributen, kenmerken) en sortering zijn optioneel beschikbaar.
- Compatibel met PrestaShop 1.7.8 tot 9.x, de thema’s Hummingbird, Classic en afgeleiden, en het Warehouse-thema (iqit).
- PHP 7.4 tot 8.5.
- Meertalig (FR, EN, ES, DE, IT, PT, PL, NL) en multistore.
- Geen overrides, geen externe bronnen.

Installatie en update
- Download
dflivesearch-2.1.0.zipvanuit je klantaccount. - Open in de back-office Modules > Modulebeheer, klik op Een module uploaden en sleep het archief erin.
- Klik op Configureren.
Bij de installatie maakt de module haar tabellen aan, bouwt ze haar eigen zoekindex en correctiewoordenboek op en vult ze gangbare synoniemen in elke taal vooraf in. Het zoeken werkt meteen: standaard opent het zoekveld van je thema het paneel.
Update vanaf een 1.x-versie: upload de nieuwe zip in Modulebeheer en start de update. Je instellingen, synoniemen en statistieken blijven behouden. Nieuwe opties behouden het gedrag van 1.x (modulebalk en themavelden, referenties zichtbaar) en de filters blijven uitgeschakeld tot je ze inschakelt. Reeds opgeslagen IP-adressen worden vervangen door een anonieme hash.
Leeg na een update de cache van PrestaShop (Geavanceerde parameters > Prestaties). Als je thema CSS- en JS-bestanden samenvoegt (CCC), wordt het nieuwe script dan meteen geladen.
Algemene instellingen
De configuratiepagina is in tabbladen ingedeeld, met rechts een live voorbeeld dat je instellingen volgt (kleuren, indeling, inhoud van de kaarten). Het tabblad Algemeen bevat:
- Indeling van het paneel: Overlay (groot paneel boven de pagina) of Uitklapmenu (opent onder de zoekbalk, schermvullend op mobiel).
- Zoekbalk: Themabalk (het zoekveld van het thema opent het paneel, aanbevolen), Modulebalk (vervangt de standaard zoekbalk van PrestaShop) of Beide (gedrag van 1.x).
- Plaatshoudertekst van het veld per taal, tekens voordat het zoeken start, producten per pagina (de volgende worden geladen met „Meer producten tonen”).
- Sneltoets: Ctrl+K (⌘K op Mac) of
/opent het zoeken vanaf elke pagina. - Deze zoekmachine gebruiken op de resultatenpagina: de volledige resultatenpagina van PrestaShop toont dan dezelfde producten, in dezelfde volgorde, als het paneel.


Weergave en productkaarten
- Hoofdkleur en kleur bij aanwijzen (knoppen, actieve filters, focus), met voorgestelde kleuren.
- Maximale breedte van het paneel: bijvoorbeeld
1320px,100%of90vw. - Modulebalk: hoogte, maximale breedte en afronding (0 = rechthoekig, 50 = pil).
- Productkaarten: prijzen, kortingen (doorgestreepte prijs en percentage), merk, referentie, knop „In winkelwagen”, aantalkeuze, afbeeldingsformaat.
De regels van PrestaShop gelden altijd: catalogusmodus, klantgroepen zonder prijzen en producten met „Prijs tonen” uitgeschakeld tonen nooit een prijs of winkelwagenknop. Prijzen volgen de groep van de bezoeker (incl. of excl. btw), de kortingen en de valuta.

Het zoekpaneel in de winkel
Vóór het typen
Het tabblad Leeg paneel bepaalt wat bezoekers zien bij het openen:
- Recente zoekopdrachten: alleen in de browser van de bezoeker opgeslagen, één voor één of allemaal tegelijk te verwijderen.
- Populaire zoekopdrachten: automatisch (statistieken), je eigen lijst per taal of je lijst aangevuld met de statistieken. Een zoekterm verschijnt alleen als hij producten heeft gevonden voor een minimumaantal verschillende bezoekers (standaard 2): zo kan niemand tekst in deze lijst publiceren. Je kunt woorden uitsluiten; links en e-mailadressen zijn altijd uitgesloten.
- Aanbevolen producten: bestsellers en daarna nieuwe producten, je eigen selectie (zoeken, slepen of pijlen voor de volgorde) of personalisatie voor ingelogde klanten.
Tijdens het typen
Het paneel toont de aanvulling in het veld (accepteren met Tab of →), suggestielabels, overeenkomende categorieën en merken, het aantal resultaten en het productraster. Gezochte woorden staan vet. Je navigeert met het toetsenbord door de suggesties (pijlen, Enter, Esc) en het aantal resultaten wordt aan schermlezers doorgegeven.

In de winkelwagen
De winkelwagenknop gebruikt de winkelwagencontroller van PrestaShop: voorraad, minimumaantallen en winkelwagenregels worden gerespecteerd. In het paneel verschijnt een bevestiging met een link naar de winkelwagen, en de winkelwagen in de header wordt bijgewerkt. Producten met combinaties tonen „Opties kiezen”, dat de productpagina opent.

Filters en sortering (optioneel)
De filters zijn standaard uitgeschakeld. Schakel ze in op het tabblad Filters en sortering, vink de te tonen filters aan en sleep ze (of gebruik de pijlen) om hun volgorde te bepalen:
- Prijs: dubbele schuifregelaar en min/max-velden, in de valuta en btw-weergave van de bezoeker.
- Beschikbaarheid: producten op voorraad.
- Categorieën en merken.
- Attributen en kenmerken van je catalogus naar keuze (kleurstalen voor kleuren).
De tellers worden bij elke keuze bijgewerkt en waarden van hetzelfde filter kunnen samen worden aangevinkt. Lange lijsten krijgen een zoekveld en een link „Meer tonen”. Actieve filters verschijnen als labels boven de resultaten. Het sorteermenu biedt relevantie, prijs oplopend of aflopend, nieuw, bestsellers en naam; kies de aangeboden sorteringen op hetzelfde tabblad.



Op mobiel
Op mobiel opent het paneel schermvullend, gaat het raster naar twee kolommen en openen de filters in een lade met een knop „N resultaten tonen”. De suggesties scrollen horizontaal onder het veld.



Relevantie en tolerantie voor typfouten
Altijd actief: accenten en hoofdletters genegeerd, meervouden in de 8 talen („lampen” vindt „lamp”), woorden in elke volgorde, woorden met koppelteken („t-shirt” = „tshirt”), overeenkomst al tijdens het typen, referenties van producten en combinaties, EAN, UPC, MPN en leveranciersreferenties. Is de zoekterm de referentie van een combinatie, dan opent het resultaat precies die combinatie.
Het tabblad Relevantie regelt:
- Suggesties en aanvulling en hun maximumaantal.
- Zoeken in merken: „merk + product” werkt ook als het merk niet in de naam staat.
- Tolerantie voor typfouten en maximaal aantal fouten per woord (2 aanbevolen; woorden van 4 letters of minder staan er één toe). Vindt een zoekopdracht niets, dan worden de dichtstbijzijnde woorden uit de catalogus geprobeerd.
- Bezoekers informeren over correcties: „Resultaten voor… In plaats daarvan zoeken naar…” met een link naar de oorspronkelijke spelling.
- Producten op voorraad eerst en bestsellers eerst, bij vergelijkbare relevantie.

Synoniemen en doorverwijzingen
Voer op het tabblad Synoniemen en doorverwijzingen één groep synoniemen per regel en per taal in:
bank, sofa, canapé
chocolade => truffel, bonbons
Een regel met komma’s verbindt gelijkwaardige woorden: elk woord vindt de andere. Een regel met => werkt in één richting: „chocolade” vindt ook de woorden rechts, niet andersom. Meervouden worden ondersteund en een synoniem vindt alleen hele woorden.
Doorverwijzingen sturen een zoekterm direct naar een pagina: „levering” naar je verzendpagina, een merk naar zijn pagina… Kies „Exacte zoekterm” of „Bevat deze woorden”, de taal en de URL (volledig adres of een pad van je winkel dat met / begint). Het paneel toont dan een snelkoppeling, Enter opent de pagina en ook de resultatenpagina verwijst door. Het aantal keren dat elke doorverwijzing is gebruikt, wordt getoond.


Zoekopdrachten zonder resultaat
Als niets overeenkomt, stelt het paneel populaire zoekopdrachten en aanbevolen producten voor in plaats van een lege pagina. Zijn er filters actief, dan nodigt een melding uit om ze te wissen. Deze zoektermen verschijnen in het dashboard, met een knop om met één klik een synoniem of doorverwijzing aan te maken.

Slim zoeken (optioneel)
Twee optionele lagen verbeteren de resultaten verder dan het matchen van woorden. Beide staan standaard uit, op het tabblad Slim zoeken.
Zelflerend (zonder externe dienst)
De module leert van de zoekstatistieken van je eigen winkel:
- Kliks en bestellingen: voor een zoekopdracht stijgen de producten die meerdere verschillende bezoekers openden en kochten in de resultaten.
- Herformuleringen: wanneer bezoekers die niets vonden direct daarna slagen met een andere zoekopdracht, wordt die herformulering geleerd en krijgen de volgende bezoekers de resultaten ervan („Resultaten voor… In plaats daarvan zoeken naar…”).
Een signaal telt pas als een minimumaantal verschillende bezoekers het gaf (standaard 3): niemand kan in z’n eentje een product pushen. Het leren wordt elke 6 uur bijgewerkt, via de nachtelijke opdracht of met Nu bijwerken. Geleerde herformuleringen staan in een lijst met de knoppen Als synoniem gebruiken en Negeren.
Semantisch zoeken (hybride rangschikking)
Semantisch zoeken begrijpt de betekenis van een zoekopdracht: „cadeau voor een koffieliefhebber” vindt mokken, „iets om in te schrijven” vindt notitieboeken, ook als die woorden niet in de productnamen staan. Het gebruikt een embeddingsdienst die compatibel is met de OpenAI-API: OpenAI, Mistral AI of je eigen server (Ollama…), met één klik ingesteld.
- Schakel de optie in, kies de aanbieder, vul de API-sleutel in (opgeslagen in je database, nooit getoond in de winkel) en sla op.
- Klik op Verbinding testen en daarna op Vectoren genereren. Het tabblad toont de voortgang en een schatting van het te versturen volume. Daarna worden alleen nieuwe of gewijzigde producten opnieuw verstuurd: met de knop, de nachtelijke opdracht of automatisch bij het opslaan van een product.
De rangschikking is hybride: de woordscore en de gelijkenis worden gecombineerd met een instelbaar gewicht (standaard 40 %), en producten die minder lijken dan de minimale gelijkenis worden niet toegevoegd. Standaard draait semantisch zoeken alleen als het matchen van woorden weinig producten vindt; referenties en EAN-codes gebruiken altijd woorden. Is de dienst traag of onbereikbaar, dan antwoordt het zoeken na de maximale wachttijd met woorden. Bij 10.000 producten duurt het vectorzoeken zelf ongeveer 15 ms.
Indien ingeschakeld, worden de tekst van je producten (naam, merk, categorieën, kenmerken, korte beschrijving) en de zoekopdrachten van bezoekers naar de gekozen dienst gestuurd. Er worden geen persoonsgegevens verstuurd. Kies een aanbieder die past bij je privacybeleid, of je eigen server.
Merchandising
Op het tabblad Merchandising bepaal je wat bezoekers zien voor bepaalde zoekopdrachten. Een regel geldt voor exacte zoekopdrachten, voor zoekopdrachten met bepaalde woorden of voor elke zoekopdracht, in één taal of alle, en kan tussen twee data worden ingepland. Meervouden en accenten maken niet uit.
- Bovenaan vastgezet: producten die eerst verschijnen, in jouw volgorde, ook als de zoekfunctie ze niet zou vinden.
- Verborgen: producten die nooit verschijnen voor deze zoekopdrachten.
- Versterken of verlagen: van -100 % tot +100 % voor een product, een categorie, een merk, producten op voorraad of uitverkocht, nieuwe producten of aanbiedingen.
- Banner: een tekst, met optionele afbeelding en link, boven de resultaten.
Regels gelden in de volgorde van de lijst. Het Voorbeeld van de rangschikking toont voor een zoekopdracht en een taal de producten in de volgorde waarin bezoekers ze krijgen, en waarom: woorden, betekenis, leren, vastgezette producten, versterkingen en verborgen producten.
Index en prestaties
De module zoekt in haar eigen index (één regel per product, winkel en taal), die automatisch wordt bijgewerkt bij het opslaan van een product, combinatie, voorraad, specifieke prijs, categorie of merk. Alleen actieve producten die „overal” of „alleen in zoekresultaten” zichtbaar zijn, worden geïndexeerd, en categorieën die voor bepaalde klantgroepen zijn gereserveerd, worden gerespecteerd.
- Index opnieuw opbouwen: handig na een import rechtstreeks in de database.
- Geplande opbouw: de cron-opdracht wordt kant-en-klaar getoond, bijvoorbeeld
0 3 * * * php /pad/naar/winkel/modules/dflivesearch/cli/reindex.php. Elke nacht aanbevolen als je prijsregels met data gebruikt. - Resultatencache: identieke zoekopdrachten worden uit de cache beantwoord (standaard 5 minuten, per taal, valuta en klantgroep). De cache wordt automatisch geleegd wanneer de catalogus verandert.
Geen aanroep bij het laden van pagina’s: de gegevens van het paneel worden geladen wanneer het opent. Op onze testcatalogus van 5.000 producten antwoordt een zoekopdracht in 57–80 ms (8 producten) en in 41–45 ms uit de cache, opstarttijd van PrestaShop inbegrepen.

Zoekdashboard en waarschuwingen
Het menu Catalogus > Zoekstatistieken (of Klanten in een winkel die vanaf 1.x is bijgewerkt) toont voor de gekozen periode en taal:
- zoekopdrachten, unieke zoektermen, aandeel zoekopdrachten met resultaten, klikratio, zoekopdrachten gevolgd door een bestelling binnen 24 uur, zoekopdrachten zonder resultaat, elk met de trend ten opzichte van de vorige periode;
- een grafiek van de zoekopdrachten per dag;
- de topzoekopdrachten met klikratio en bestellingen;
- de zoekopdrachten zonder resultaat met de knoppen + Synoniem en → Doorverwijzing;
- de producten die het vaakst vanuit het zoeken worden geopend;
- CSV-exports (top, zonder resultaat, alle zoekopdrachten).
Er ontstaat een waarschuwing wanneer dezelfde zoekterm zonder resultaat binnen 7 dagen wordt gezocht door een door jou gekozen aantal verschillende bezoekers (standaard 5). Ze kan per e-mail (8 talen) naar het adres van je keuze worden verzonden.

Privacy en beveiliging
- IP-adressen van bezoekers worden nooit opgeslagen: alleen een gezouten hash dient om unieke bezoekers te tellen. Recente zoekopdrachten blijven in de browser van de bezoeker.
- Het opgeslagen aantal resultaten is door de server ondertekend: de statistieken kunnen niet vanuit de browser worden vervalst.
- Het zoek-endpoint is beperkt tot 120 zoekopdrachten per minuut per bezoeker.
- Elke tekst die een bezoeker typt, wordt bij weergave beveiligd: in het paneel, in de back-office en in de waarschuwingsmails.
- De geschiedenis wordt standaard 90 dagen bewaard (instelbaar) en daarna automatisch verwijderd.
Verwijderen
Standaard verwijdert het verwijderen van de module haar tabellen, instellingen, tabbladen, hooks en cache. Schakel Gegevens bewaren bij verwijderen in (tabblad Statistieken en waarschuwingen) om statistieken, synoniemen, doorverwijzingen en instellingen te bewaren voor een latere herinstallatie.
FAQ en probleemoplossing
Er staan twee zoekbalken in de header
Kies op het tabblad Algemeen Themabalk (het veld van het thema opent het paneel) of Modulebalk (de standaard zoekbalk van PrestaShop wordt verborgen).
Een product wordt niet gevonden
Controleer of het actief is, „overal” of „alleen in zoekresultaten” zichtbaar is en of een van zijn categorieën toegankelijk is voor de groep van de bezoeker. Bouw na een rechtstreekse database-import de index opnieuw op (tabblad Index en prestaties).
De gefilterde prijs wijkt af van de getoonde prijs
Het prijsfilter en de prijssortering gebruiken de geïndexeerde publieke prijs. Prijzen per groep of klant worden correct op de kaarten getoond. Gebruik je prijsregels met data, plan dan een nachtelijke opbouw van de index.
De populaire zoekopdrachten blijven leeg
Een zoekterm verschijnt pas nadat hij in 30 dagen producten heeft gevonden voor het minimumaantal verschillende bezoekers. Verlaag dat minimum of voer je eigen lijst in (tabblad Leeg paneel).
Het nieuwe ontwerp verschijnt niet na de update
Leeg de cache van PrestaShop. Als je thema CSS- en JS-bestanden samenvoegt (CCC), worden de samengevoegde bestanden opnieuw aangemaakt.
Het zoeken meldt „Te veel zoekopdrachten in korte tijd”
De limiet van 120 zoekopdrachten per minuut beschermt je server tegen bots. Een normale bezoeker bereikt die nooit; controleer of geen testtool of bot het endpoint in een lus bevraagt.
Hoe open ik het zoeken vanuit een knop van mijn thema?
Voeg het attribuut data-dflivesearch-trigger (of de klasse dflivesearch-trigger) aan de knop toe, of roep in JavaScript window.dflivesearchOpen('zoekterm') aan. De zoekiconen van het Warehouse-thema worden automatisch ondersteund.
Stuurt semantisch zoeken mijn gegevens naar een externe dienst?
Alleen als je het inschakelt: productteksten en zoekopdrachten van bezoekers gaan naar de aanbieder die je kiest, nooit persoonsgegevens. Met je eigen server (Ollama) verlaat niets je infrastructuur. Zelflerend en merchandising gebruiken geen externe dienst.
Hoe zet ik een product bovenaan voor een zoekopdracht?
Voeg op het tabblad Merchandising een regel toe met de zoekopdracht, zet het product vast en sla op. Controleer het resultaat met het voorbeeld van de rangschikking.