PS PrestaShop Gemiddeld

AJAX Facetfilters voor PrestaShop: documentatie

Installeren, configureren en gebruiken van de AJAX-facetnavigatie: facetten, prijsschuif, SEO van gefilterde URL's, beperking per categorie, cache en statistieken.

Bijgewerkt Moduleversie 1.2.0

Deze handleiding behandelt de installatie, configuratie en het gebruik van de module AJAX Facetfilters voor PrestaShop 8 en 9. De module vervangt het native facetzoeken door snellere AJAX-navigatie, een prijsschuif met histogram en fijnmazige controle over de SEO-indexering van gefilterde pagina’s.

Installatie

Open in je back-office Modules > Modulebeheer, klik op Een module uploaden en sleep het bestand dffacetedfilter.zip erin. Bij de installatie voert de module automatisch drie acties uit:

  • ze maakt haar tabellen en haar beheertab aan;
  • ze synchroniseert een eerste keer de facetten vanuit je catalogus;
  • ze warmt de prijsindex op (binnen enkele seconden).

De module krijgt voorrang op de hook productSearchProvider zodat ze vóór het native facetzoeken van PrestaShop draait. Geen enkel bestand van je thema wordt overschreven.

Eerste configuratie

Ga naar Catalogus > Facetfilters. Daar vind je de lijst met facetten, een overzichtsdashboard en de algemene en SEO-instellingen.

Facetten synchroniseren

De knop Synchroniseren vanuit de catalogus maakt automatisch de ontbrekende facetten aan op basis van je attribuutgroepen, je kenmerken en de ingebouwde facetten (prijs, merk, aanbiedingen, beschikbaarheid, staat). Bestaande facetten worden nooit gewijzigd: je kunt de synchronisatie zonder risico opnieuw uitvoeren nadat je een attribuut of kenmerk hebt toegevoegd.

De prijsindex opnieuw opbouwen

De knop Prijsindex opnieuw opbouwen herberekent de prijsgrenzen van alle producten, in batches, met een voortgangsbalk. Voer hem uit na de installatie en na elke massale productimport.

Facetten beheren

Elke rij in de lijst kan met slepen en neerzetten worden herschikt (de volgorde bepaalt zowel de weergavevolgorde in de front-office als de genormaliseerde URL-volgorde), in- of uitgeschakeld en bewerkt.

Opties van een facet

  • Label: de weergegeven naam, vertaalbaar per taal.
  • Weergave: selectievakjes, kleur-/textuurstalen of eenvoudige links. Kleurgroepen erven automatisch de weergave met stalen.
  • Meervoudige selectie: staat toe om meerdere waarden van hetzelfde facet tegelijk te selecteren, gecombineerd met een OF.
  • Tellers tonen: toont het aantal producten naast elke waarde.
  • Lege waarden verbergen: verbergt waarden met nul producten in plaats van ze grijs weer te geven.
  • Standaard ingeklapt: het facet wordt gesloten weergegeven en de bezoeker klapt het open met een klik.
  • Waarden vóór “Meer tonen”: aantal zichtbare waarden vóór de uitklapknop (0 = alles tonen).

Er wordt disjunctief geteld: elk facet wordt geteld met inachtneming van alle andere selecties, maar niet van zijn eigen. “Rood” selecteren zet “Blauw” binnen hetzelfde facet dus nooit op nul.

De prijsschuif en zijn index

Het facet Prijs verschijnt als een dubbele schuifregelaar. Erboven helpt een histogram van de productverdeling over twaalf klassen de bezoeker om de prijzen in te schatten. Deze gegevens komen uit een eigen prijsindex, gescheiden van de PrestaShop-tabellen, om snel te blijven, ook bij een grote catalogus.

Onderhoud van de index

De index wordt in realtime bijgewerkt door hooks zodra een product, een specifieke prijs of een combinatie verandert. Gebruik voor een geplande volledige heropbouw het cron-endpoint dat in de back-office wordt getoond:

/module/dffacetedfilter/cron?token=JOUW_TOKEN

De aanroep verwerkt de index in delen met een tijdslimiet van ongeveer 20 seconden; als er producten overblijven, geeft het antwoord de vervolg-URL om opnieuw aan te roepen. Eén nachtelijke aanroep per dag volstaat in de meeste gevallen.

De instelling Prijzen incl. btw filteren bepaalt of de schuif redeneert in prijzen inclusief of exclusief btw. De index slaat de prijzen op in de standaardvaluta; de weergave wordt omgerekend naar de huidige valuta.

Het facet Aanbiedingen

Het facet In de aanbieding filtert de producten die momenteel zijn afgeprijsd: producten gemarkeerd als “in de uitverkoop” of gedekt door een actieve specifieke prijs (een lopende korting, binnen het datumbereik, voor de huidige valuta, het land en de groep). Het wordt bij de synchronisatie standaard ingeschakeld aangemaakt.

Beschikbaarheid en staat

Twee aanvullende ingebouwde facetten worden uitgeschakeld aangemaakt, in te schakelen naar behoefte:

  • Beschikbaarheid: een waarde “Op voorraad” die rekening houdt met je instelling voor bestellen bij uitverkochte voorraad.
  • Staat: nieuw, gebruikt, refurbished.

Een facet beperken tot categorieën

Standaard verschijnt een facet op alle listingpagina’s. In het bewerkingsformulier kun je in de sectie Beperken tot categorieën een of meer categorieën aanvinken: het facet verschijnt dan alleen op die categorieën en hun subcategorieën.

Zo houd je een relevant filtermenu bij een heterogene catalogus: toon “Schoenmaat” alleen onder Schoenen, “Schermformaat” alleen onder Elektronica. Laat alles uitgevinkt voor een globaal facet.

De SEO van de facetten

Dit is een van de sterke punten van de module: jij bepaalt precies welke gefilterde pagina’s geïndexeerd mogen worden. De filter-URL’s zijn leesbaar en volgen dit formaat:

/categorie?dff=kleur:rood,marineblauw/prijs:10,50/merk:nike

Facetten worden gescheiden door een schuine streep, de slug van het facet en zijn waarden door een dubbele punt, en de waarden onderling door een komma. De facetvolgorde en de sortering van de waarden zijn genormaliseerd, zodat eenzelfde combinatie altijd één canonieke URL oplevert.

SEO-instellingen

  • Indexeerbaar (per facet): een niet-indexeerbaar facet dwingt de gefilterde pagina naar noindex, follow en voegt rel="nofollow" toe aan zijn links.
  • Max. aantal indexeerbare waarden: boven deze drempel van geselecteerde waarden gaat de pagina naar noindex, follow. De waarde 1 is het veiligst tegen een explosie van het crawlbudget.
  • Automatische canonical op indexeerbare pagina’s: indexeerbare pagina’s krijgen een canonical-tag die naar hun eigen genormaliseerde filter-URL wijst. De canonical van het thema wordt aan de front-office-kant verwijderd om duplicaten te vermijden.
  • Alles op noindex: dwingt noindex, follow af op alle gefilterde pagina’s, ongeacht de instellingen per facet.

Een gefilterde pagina wordt ook op noindex, follow gezet wanneer er een sorteerparameter aanwezig is, omdat het dan een duplicaat is van de pagina in haar standaardvolgorde.

AJAX-modi

De instelling AJAX-modus bepaalt hoe de pagina zich vernieuwt bij een klik op een filter:

  • Thema (native events), aanbevolen: de module verstuurt het native event van PrestaShop en laat de kern en het thema de lijst, de facetten en de browsergeschiedenis vernieuwen. Dit is de modus die het meest compatibel is met op classic gebaseerde thema’s.
  • Zelfstandig: voor niet-standaardthema’s haalt de module de pagina zelf op via AJAX en vervangt ze de betrokken blokken. Alleen gebruiken als de Thema-modus de pagina niet correct vernieuwt.

Tellercache

Het berekenen van de disjunctieve tellers kan kostbaar zijn bij een grote catalogus. De module bewaart het resultaat in een cache voor een korte, instelbare duur (standaard 300 seconden). Deze cache wordt automatisch ongeldig gemaakt bij elke wijziging van de catalogus en elke bewerking van een facet. In de back-office is een knop Tellercache legen beschikbaar.

Gebruiksstatistieken

Het dashboard bovenaan de beheerpagina vat de laatste 30 dagen samen: geïndexeerde producten, aantal weergaven van gefilterde pagina’s, aandeel van het crawlbudget dat buiten de index wordt gehouden (gefilterde pagina’s geserveerd als noindex) en een rangschikking van de meest gebruikte facetten. Je kunt het registreren van statistieken uitschakelen in de prestatie-instellingen.

Ondersteunde pagina’s

De facetten gelden voor de pagina’s categorie, merk, leverancier, nieuwe producten, bestsellers, aanbiedingen en zoekresultaten (met respect voor de native rangschikking van PrestaShop). Het facet Merk wordt automatisch verborgen op een merkpagina, en categoriegebonden facetten op een zoekpagina.

Het native facetzoeken uitschakelen

De module heeft voorrang op ps_facetedsearch, maar we raden aan om die laatste uit te schakelen om dubbel indexeringswerk te vermijden. Een waarschuwing in de back-office herinnert je eraan als hij nog actief is.

Probleemoplossing

  • De facetten verschijnen niet: start een synchronisatie, controleer of minstens één facet actief is en of je op een ondersteunde listingpagina bent.
  • De prijsschuif ontbreekt: bouw de prijsindex opnieuw op; het facet Prijs verbergt zichzelf zolang de index leeg is voor de weergegeven categorie.
  • De pagina vernieuwt niet via AJAX: zet de AJAX-modus op “Zelfstandig” als je thema de PrestaShop-standaard niet volgt.
  • Te veel geïndexeerde pagina’s: verlaag het max. aantal indexeerbare waarden, maak facetten met hoge kardinaliteit (kleur, maat) niet-indexeerbaar, of schakel “Alles op noindex” in terwijl je de controle terugneemt.

De broncode wordt onversleuteld geleverd. Je krijgt 12 maanden compatibiliteitsupdates en support binnen 24 uur.

Nieuw in versie 1.2

SEO-landingspagina’s

Maak in Catalogus > Facetfilters > SEO-landingspagina’s van een precieze filtercombinatie (bijvoorbeeld Schoenen × Kleur: rood × Merk: Nike) een echte landingspagina: meta title, meta description, H1 en redactionele intro, per taal. Om een combinatie te kiezen, kopieer je de waarde van de parameter dff uit een gefilterde URL van je winkel en plak je die in het formulier.

Een actieve landingspagina is altijd indexeerbaar: ze gaat vóór de instellingen per facet, de waardelimiet en zelfs de schakelaar “Alles op noindex”. De strategie “alles op noindex behalve mijn gecureerde pagina’s” wordt zo mogelijk.

Alle actieve landingspagina’s staan in een eigen XML-sitemap met hreflang-alternates, klaar om in Search Console in te dienen:

/module/dffacetedfilter/sitemap

Overige verbeteringen

  • Facet Subcategorieën: biedt de directe subcategorieën van de weergegeven categorie aan; de listing omvat dan automatisch de hele substructuur.
  • Waardesortering per facet: cataloguspositie, alfabetisch of aflopend aantal producten.
  • Kleurstalen als raster of lijst: elk kleurfacet kan verschijnen als horizontaal stalenraster of als verticale lijst met labels en tellers.
  • Facetten met één waarde verbergen: een facet waarvan de enige waarde de hele listing dekt, voegt geen filterkracht toe; deze instelling verwijdert het automatisch.
  • Accentkleur: kies met de kleurkiezer de kleur van aangevinkte vakjes, schakelaars, de schuif en de badges; het tekstcontrast wordt automatisch berekend.
  • Veerkrachtige AJAX: reageert het thema niet op het native event, dan schakelt de module automatisch over naar de zelfstandige modus; de scrollpositie blijft na elke filteractie behouden en de mobiele filters openen in een modal op volledig scherm.
  • 8 front-office-talen: NL, EN, FR, ES, DE, IT, PL, PT meegeleverd met de module.
Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support