- Falls die Suche & Suchergebnisseite bereits in den Shop integriert wurde, sind viele erforderliche Komponenten bereits vorhanden, und es sind nur gezielte Anpassungen für die Kategorie-Templates erforderlich.
- Falls keine WEBSALE Suche genutzt wird (z. B. weil ein externer Dienstleister wie Findologic oder FACT Finder für die Suche zuständig ist), müssen die notwendigen Komponenten und Skripte vollständig für die Kategorieseiten eingebunden werden.
Szenario: Suche & Suchergebnisseite bereits integriert
Bereits vorhandene Komponenten
Falls die Suche bereits im Shop implementiert wurde, dann sind die folgenden Komponenten bereits in allen Templates eingebunden und müssen nicht erneut integriert werden:- WEBSALE JavaScript Bibliothek
- JavaScript Bundle (
ws-search-component-<Versionskennung>.js) - Kommunikationskomponente (
ws-search) - Sucheingabefeld mit optionaler Suggestfunktion (
ws-search-box) - Such-Event-Dispatcher & Weiterleitung von Suchanfragen (
wsResultDispatcher.subscribe)
Anpassungen für die Kategorie-Seite (ws_category.htm)
Für das Kategorietemplate ws_category.htm müssen dann nur die folgenden zusätzlichen Anpassungen vorgenommen werden:
- Einbindung der Komponente
ws-search-result - Template-Platzhalter für die Produktbox (
<template id="resultItemTemplate">) - Filterung der Kategorie-Produkte über
ws-filter - Optional: Include/Exclude-Umschaltung einzelner Filter über
ws-filter-toggle - JavaScript zum Rendering der Filter
- Sortierung der Kategorie-Produkte über
ws-sort-box - Paginierung / Blättern der Kategorie-Produkte über
ws-pagination
Erweiterung der bestehenden Kommunikationskomponente
Die Komponente<ws-search> darf im Template nur einmal vorkommen. Da sie bereits für die Suche & Suchergebnisseite eingebunden wurde, muss für die Kategorieseite lediglich der Parameter category="" mit einer Breadcrumb-Ausgabe ohne Trennzeichen ergänzt werden.
Szenario: Keine bestehende Suchintegration
Falls die Shop-Suche über externe Anbieter wie Findologic oder FACT Finder läuft, dann ist die WEBSALE Suche nicht integriert. In diesem Fall müssen für die Filter- und Sortierfunktionen auf Kategorieseiten alle erforderlichen Komponenten explizit für das Kategorietemplate (ws_category.htm) eingebunden werden.
Die folgende Anleitung beschreibt die notwendigen Anpassungen, um die Filterung und Sortierung über das WEBSALE Such-Modul korrekt zu integrieren.
Bereitstellung der benötigten Ressourcen
Damit das Such-Modul auf der Kategorieseite funktioniert, müssen folgende Ressourcen eingebunden werden:WEBSALE JavaScript-Bibliothek
Die WEBSALE JavaScript-Bibliothek stellt alle relevanten JavaScript-Module für das Such-Modul sowie weitere Standard-Shop-Funktionen bereit. Es gibt zwei Varianten der Bibliothek:ws-system-<Versionskennung>.js- WEBSALE JavaScript-Module inklusive der jQuery-Bibliothek.ws-core-<Versionskennung>.js- WEBSALE JavaScript-Module ohne jQuery. In diesem Fall muss jQuery separat eingebunden werden.
Falls die WEBSALE JavaScript-Bibliothek bereits für andere Shop-Funktionen eingebunden ist, muss sie nicht erneut integriert werden.
JavaScript-Bundle
WEBSALE stellt das JavaScript-Bundlews-search-component-<Versionskennung>.js bereit. Dieses ist erforderlich für die Funktionalität der Filter- und Sortierkomponenten.
Sie können das Bundle über das WEBSALE PageSpeed-Tool einbinden oder direkt herunterladen unter:
Kommunikationskomponente
Zusätzlich zum JavaScript-Bundle ist diews-search-Komponente erforderlich. Sie wird von WEBSALE bereitgestellt und dient der Kommunikation zwischen dem Frontend, dem Backend sowie den eingebundenen WebComponents. Diese Komponente darf nur einmal pro Template vorkommen.
Einbindung der Suchbox-Komponente
Damit die Filter- und Sortierfunktionen korrekt genutzt werden können, muss diews-search-box-Komponente technisch eingebunden werden - auch wenn sie nicht aktiv für die Suche genutzt wird.
Such-Event-Dispatcher für Filter & Sortierung
Das folgende Skript sorgt für das korrekte Rendering der Filter- und Sortierfunktionen und sollte im<head> des Templates eingebunden werden.
- Erkennt, wenn neue Suchergebnisse oder Filter-Ergebnisse vorliegen.
- Lädt die Produktboxen über AJAX nach.
- Ermöglicht eine reibungslose Filter- und Sortierungserfahrung.
Integration der Produkte
Die Integration für die Produkte auf dem Kategorietemplate muss wie folgt angepasst werden:Verwendung der Komponente ws-search-result
Die Komponente<ws-search-result> verarbeitet die Daten aus dem Such-Modul und stellt die gefilterten Produkte auf der Kategorieseite dar.
Template-Platzhalter für die Produktbox
Damit es nicht zu Höhenverschiebungen beim Laden der Produktboxen kommt, kann innerhalb vonws-search-result ein <template> angegeben werden. Dieses wird angezeigt, sobald die Produktbox geladen wird.
Um das Template für die Platzhalter zu definieren, muss beim slot result-placeholder angegeben werden:
Template für die WEBSALE Produktbox (incl_productbox.htm)
Um die Produktbox nachzuladen, muss ein zusätzliches Template erstellt und im Template-Verzeichnis des Shops gespeichert werden (Standard: translation- Templateverzeichnis).
Falls sich der Name des Templates von incl_productbox.htm unterscheidet, muss das zugehörige JavaScript-Skript (siehe Such-Event-Dispatcher & Weiterleitung von Suchanfragen) entsprechend angepasst werden.
~WS-Fast_Include(Incl-ProductBoxCategory)~: Dies ist der Include-Bereich, der die vollständige Produktbox mit allen Shop-Funktionen lädt.
Incl-ProductBoxCategory stammt üblicherweise aus der Datei incl_fast_includes.htm, kann aber je nach Shop anders lauten. Achten Sie darauf, den korrekten Include-Namen einzutragen. Innerhalb der Productbox sollte die Klasse wsProductBox-XX (XX mit Produktnummer ersetzen) vorhanden sein, damit diese Produkte, sofern vorhanden, bei einer Sortierung oder Filterung nicht erneut geladen werden.Filterung der Produkte
Bevor Filter im Frontend verfügbar sind, müssen die Produktdatenfelder, die für eine Filterung verwendet werden können, in der Konfiguration des Such-Moduls definiert werden. Diese Konfiguration legt fest, welche Filterarten (z. B. Checkboxen, Slider) für bestimmte Felder genutzt werden können.Filter-Komponenten
Beispiel für die Integration der Filter-Komponenten:Include (eq) und E (neq) umschalten können, kann zusätzlich die Komponente ws-filter-toggle vor dem jeweiligen Filter eingebunden werden:
JavaScript zum Rendering der Filter
Ab
ws-search-component-1.9.1.js ist diese Funktionalität nativ in den WebComponents enthalten: Filter werden beim Seitenaufruf automatisch aus den URL-Parametern und dem Kategorie-Pfad gesetzt (siehe Automatische Filter-Initialisierung). Das folgende Skript ist nur noch für ältere Bundle-Versionen erforderlich.Sortierung der Produkte
Die Sortierung wird über die Komponente<ws-sort-box> gesteuert:
