AJAX-Facettenfilter für PrestaShop — Dokumentation
AJAX-Facettennavigation installieren, konfigurieren und betreiben: Facetten, Preis-Slider, SEO gefilterter URLs, Scoping pro Kategorie, Cache und Statistiken.
Diese Anleitung behandelt Installation, Konfiguration und Betrieb des Moduls AJAX-Facettenfilter für PrestaShop 8 und 9. Das Modul ersetzt die native Facettensuche durch eine schnellere AJAX-Navigation, einen Preis-Slider mit Histogramm und eine feingranulare Kontrolle über die SEO-Indexierbarkeit gefilterter Seiten.
Installation
Öffnen Sie im Back-Office Module > Modul-Manager, klicken Sie auf Modul hochladen und legen Sie die Datei dffacetedfilter.zip ab. Bei der Installation führt das Modul automatisch Folgendes aus:
- es legt seine Tabellen und seinen Admin-Tab an;
- es führt eine erste Facetten-Synchronisation aus Ihrem Katalog durch;
- es wärmt den Preisindex vor (innerhalb weniger Sekunden).
Das Modul erhält Vorrang beim Hook productSearchProvider, damit es vor der nativen Facettensuche von PrestaShop läuft. Keine Datei Ihres Themes wird überschrieben.
Erste Konfiguration
Gehen Sie zu Katalog > Facettenfilter. Dort finden Sie die Facettenliste, ein Übersichts-Dashboard sowie die allgemeinen und die SEO-Einstellungen.
Facetten synchronisieren
Die Schaltfläche Facetten aus dem Katalog synchronisieren erstellt automatisch die fehlenden Facetten aus Ihren Attributgruppen, Ihren Merkmalen und den integrierten Facetten (Preis, Marke, Sale, Verfügbarkeit, Zustand). Bestehende Facetten werden nie verändert: Sie können die Synchronisation nach dem Hinzufügen eines Attributs oder Merkmals bedenkenlos erneut ausführen.
Preisindex neu aufbauen
Die Schaltfläche Preisindex neu aufbauen berechnet die Preisgrenzen aller Produkte in Stapeln neu, mit einer Fortschrittsanzeige. Führen Sie sie nach der Installation und nach jedem Massenimport von Produkten aus.
Facetten verwalten
Jede Zeile lässt sich per Drag-and-drop neu anordnen (die Reihenfolge steuert sowohl die Anzeige im Frontend als auch die normalisierte URL-Reihenfolge), aktivieren oder deaktivieren und bearbeiten.
Optionen einer Facette
- Bezeichnung: der angezeigte Name, pro Sprache übersetzbar.
- Anzeige: Checkboxen, Farb-/Textur-Swatches oder einfache Links. Farbgruppen erben automatisch die Swatch-Anzeige.
- Mehrfachauswahl: erlaubt die gleichzeitige Auswahl mehrerer Werte derselben Facette, per ODER kombiniert.
- Zähler anzeigen: zeigt die Produktanzahl neben jedem Wert.
- Leere Werte ausblenden: blendet Werte ohne Produkte aus, statt sie ausgegraut anzuzeigen.
- Standardmäßig eingeklappt: die Facette wird geschlossen angezeigt und vom Besucher per Klick aufgeklappt.
- Werte vor „Mehr anzeigen“: Anzahl der Werte vor der Aufklapp-Schaltfläche (0 = alle anzeigen).
Es wird disjunktive Zählung angewandt: jede Facette wird unter Berücksichtigung aller anderen Auswahlen gezählt, aber nicht ihrer eigenen. „Rot“ auszuwählen setzt „Blau“ innerhalb derselben Facette daher nie auf null.
Der Preis-Slider und sein Index
Die Preis-Facette erscheint als doppelter Schieberegler. Darüber hilft ein Produktverteilungs-Histogramm über zwölf Klassen dem Besucher, die Preise einzuordnen. Diese Daten stammen aus einem dedizierten Preisindex, getrennt von den PrestaShop-Tabellen, um auch bei großem Katalog schnell zu bleiben.
Wartung des Index
Der Index wird in Echtzeit durch Hooks aktualisiert, sobald sich ein Produkt, ein spezifischer Preis oder eine Kombination ändert. Für einen geplanten vollständigen Neuaufbau nutzen Sie den im Back-Office angezeigten Cron-Endpunkt:
/module/dffacetedfilter/cron?token=IHR_TOKEN
Der Aufruf verarbeitet den Index in Abschnitten mit einer Zeitgrenze von etwa 20 Sekunden; wenn Produkte übrig bleiben, liefert die Antwort die Fortsetzungs-URL zum erneuten Aufruf. Ein nächtlicher Aufruf reicht in den meisten Fällen aus.
Die Einstellung Preise inkl. Steuer filtern legt fest, ob der Slider mit Brutto- oder Nettopreisen rechnet. Der Index speichert die Preise in der Standardwährung; die Anzeige wird in die aktuelle Währung umgerechnet.
Die Sale-Facette
Die Facette Im Sale filtert aktuell reduzierte Produkte: als „reduziert“ gekennzeichnete Artikel oder solche mit einem aktiven spezifischen Preis (eine laufende Reduzierung, innerhalb ihres Datumsbereichs, für die aktuelle Währung, das Land und die Gruppe). Sie wird bei der Synchronisation standardmäßig aktiviert erstellt.
Verfügbarkeit und Zustand
Zwei ergänzende integrierte Facetten werden deaktiviert erstellt und können nach Bedarf aktiviert werden:
- Verfügbarkeit: ein Wert „Auf Lager“, der Ihre Einstellung für Bestellungen bei Nichtverfügbarkeit berücksichtigt.
- Zustand: neu, gebraucht, generalüberholt.
Eine Facette auf Kategorien beschränken
Standardmäßig erscheint eine Facette auf jeder Listing-Seite. Im Bearbeitungsformular können Sie im Abschnitt Auf Kategorien beschränken eine oder mehrere Kategorien anhaken: die Facette erscheint dann nur auf diesen Kategorien und ihren Unterkategorien.
So halten Sie das Filtermenü bei einem heterogenen Katalog relevant: zeigen Sie „Schuhgröße“ nur unter Schuhe, „Bildschirmgröße“ nur unter Technik. Lassen Sie alles unangehakt für eine globale Facette.
Facetten-SEO
Dies ist eine der Stärken des Moduls: Sie entscheiden präzise, welche gefilterten Seiten indexiert werden dürfen. Filter-URLs sind lesbar und folgen diesem Format:
/kategorie?dff=farbe:rot,marineblau/preis:10,50/marke:nike
Facetten werden durch einen Schrägstrich getrennt, ein Facetten-Slug und seine Werte durch einen Doppelpunkt, und die Werte untereinander durch ein Komma. Die Facettenreihenfolge und die Wertsortierung sind normalisiert, damit eine bestimmte Kombination immer eine einzige kanonische URL ergibt.
SEO-Einstellungen
- Indexierbar (pro Facette): eine nicht indexierbare Facette zwingt die gefilterte Seite auf
noindex, followund fügtrel="nofollow"an ihren Links hinzu. - Max. indexierbare Werte: über dieser Zahl ausgewählter Werte wechselt die Seite auf
noindex, follow. Der Wert 1 ist am sichersten gegen eine Explosion des Crawl-Budgets. - Selbst-Canonical auf indexierbaren Seiten: indexierbare Seiten erhalten ein Canonical-Tag, das auf ihre eigene normalisierte Filter-URL zeigt. Das Theme-Canonical wird im Frontend entfernt, um Duplikate zu vermeiden.
- Alle auf noindex: erzwingt
noindex, followauf allen gefilterten Seiten, unabhängig von den Einstellungen pro Facette.
Eine gefilterte Seite wird auch auf noindex, follow gesetzt, wenn ein Sortierparameter vorhanden ist, da sie ein Duplikat der Seite in ihrer Standardreihenfolge ist.
AJAX-Modi
Die Einstellung AJAX-Modus bestimmt, wie sich die Seite beim Klick auf einen Filter aktualisiert:
- Theme (native Events) — empfohlen: das Modul löst das native Event von PrestaShop aus und überlässt es dem Kern und dem Theme, die Liste, die Facetten und den Browserverlauf zu aktualisieren. Das ist der kompatibelste Modus mit classic-basierten Themes.
- Selbstverwaltet: für Nicht-Standard-Themes holt das Modul die Seite selbst per AJAX und tauscht die betreffenden Blöcke aus. Nur verwenden, wenn der Theme-Modus die Seite nicht korrekt aktualisiert.
Zähler-Cache
Die Berechnung der disjunktiven Zähler kann bei großem Katalog aufwendig sein. Das Modul speichert ihr Ergebnis für eine kurze, konfigurierbare Zeit im Cache (standardmäßig 300 Sekunden). Dieser Cache wird bei jeder Katalogänderung und jeder Facettenbearbeitung automatisch invalidiert. Im Back-Office steht eine Schaltfläche Zähler-Cache leeren zur Verfügung.
Nutzungsstatistiken
Das Dashboard oben auf der Admin-Seite fasst die letzten 30 Tage zusammen: indexierte Produkte, Anzahl der Aufrufe gefilterter Seiten, Anteil des aus dem Index gehaltenen Crawl-Budgets (als noindex ausgelieferte gefilterte Seiten) und eine Rangliste der meistgenutzten Facetten. Sie können die Statistikerfassung in den Leistungseinstellungen deaktivieren.
Unterstützte Seiten
Facetten gelten für Kategorie-, Marken-, Lieferanten-, Neuheiten-, Bestseller-, Sale- und Suchergebnisseiten (unter Beachtung des nativen PrestaShop-Rankings). Die Marken-Facette wird auf einer Markenseite automatisch ausgeblendet, ebenso kategoriebeschränkte Facetten auf einer Suchseite.
Die native Facettensuche deaktivieren
Das Modul hat Vorrang vor ps_facetedsearch, wir empfehlen jedoch, Letzteres zu deaktivieren, um doppelte Indexierungsarbeit zu vermeiden. Eine Warnung im Back-Office erinnert Sie daran, falls es noch aktiv ist.
Fehlerbehebung
- Facetten erscheinen nicht: führen Sie eine Synchronisation aus, prüfen Sie, dass mindestens eine Facette aktiv ist und dass Sie sich auf einer unterstützten Listing-Seite befinden.
- Der Preis-Slider fehlt: bauen Sie den Preisindex neu auf; die Preis-Facette blendet sich aus, solange der Index für die angezeigte Kategorie leer ist.
- Die Seite aktualisiert sich nicht per AJAX: stellen Sie den AJAX-Modus auf „Selbstverwaltet“, wenn Ihr Theme dem PrestaShop-Standard nicht folgt.
- Zu viele indexierte Seiten: senken Sie die max. indexierbaren Werte, machen Sie Facetten mit hoher Kardinalität (Farbe, Größe) nicht indexierbar oder aktivieren Sie „Alle auf noindex“, während Sie die Kontrolle zurückgewinnen.
Der Quellcode wird unverschlüsselt geliefert. Sie erhalten 12 Monate Kompatibilitäts-Updates und Support innerhalb von 24 Stunden.