Zum Hauptinhalt springen
Der Suggest-Layer zeigt Suchvorschläge, während der Besucher tippt. Er spricht FACT-Finder direkt an, unabhängig von der Suchergebnisseite. Diese Seite enthält die Vorlagen dafür in beiden Ausbaustufen.
Die Direktanbindung ist veraltet und wird nicht mehr unterstützt. Sie steht nur bis FACT-Finder 6.9 zur Verfügung und wird von WEBSALE weder gepflegt noch weiterentwickelt. Für neue Integrationen verwenden Sie die FACT-Finder WebComponents nach der offiziellen Dokumentation von FACT-Finder.Diese Seite ist für bestehende Shops gedacht, die noch mit der Direktanbindung arbeiten.
Wegweiser: FACT-Finder-Integration · Materialien: FACT-Finder-Templates

Zwei Ausbaustufen

Beide verwenden dieselben CSS-Klassennamen für die Zeilen, die Stylesheets sind aber nicht austauschbar. Der einfache Layer baut eine Tabelle, der erweiterte Listen in zwei Spalten.

Der einfache Suggest-Layer

ff_suggest.js

Die Datei definiert einen Konstruktor FFSuggest. Sie legen eine Instanz an und rufen init() mit acht Parametern auf.
instanceName muss genau dem Namen der Variablen entsprechen, unter der Sie die Instanz angelegt haben. Das Modul setzt diesen Namen als Text in die erzeugten onMouseOver- und onMouseDown-Attribute ein. Stimmt er nicht, bleibt der Layer stumm, ohne dass eine Fehlermeldung erscheint.
Das Modul fragt FACT-Finder nicht bei jedem Tastendruck. Es vergleicht vorher mit der letzten Anfrage und überspringt Suchbegriffe über 50 Zeichen ganz.Die Antwort ist reiner Text: eine Zeile je Vorschlag, darin drei mit ### getrennte Felder in der Reihenfolge Vorschlag, Trefferzahl, Typ. Im erzeugten HTML stehen sie in der Reihenfolge Vorschlag, Typ, Trefferzahl.
Die Überschrift “Vorschläge zu Ihrer Suche…” steht fest im JavaScript. Wenn Ihr Shop mehrsprachig ist, ziehen Sie diesen Text heraus und übergeben ihn von außen.

ff_suggest.css

Die Werte für top und left an div.suggestLayer sind auf ein bestimmtes Shopdesign gemünzt. Passen Sie sie an Ihre Kopfzeile an, oder positionieren Sie den Layer relativ zum Suchfeld.

Der erweiterte Suggest-Layer

Der erweiterte Layer teilt die Vorschläge in zwei Spalten: links Produktvorschläge mit Bild, rechts die übrigen Suchbegriffe. Er braucht jQuery, holt die Vorschläge per JSONP und reagiert auf mehr Tasten.

Welche Fassung Sie brauchen

Sie unterscheiden sich zusammen in dreizehn Zeilen. Diese Seite zeigt deshalb eine Fassung und beschreibt die beiden Abweichungen. Welche FACT-Finder-Version Sie einsetzen, klären Sie mit Omikron.

Die Abweichung für jQuery 2

jQuery 3 hat .error() entfernt. Die Vorlage verwendet deshalb .fail(). Für jQuery 2 ändern Sie diese eine Zeile am Ende von getSuggestions() zurück:

Die Abweichung für FACT-Finder 6.10

Ab 6.10 liefert FACT-Finder die Vorschläge nicht mehr als blankes Array, sondern verpackt in ein Objekt mit der Eigenschaft suggestions. Das geht einfacher. Ergänzen Sie in der Antwortfunktion von getSuggestions() direkt nach pCurrentSelection = -1; eine Zeile:
Danach ist jsonObj in beiden FACT-Finder-Versionen das Array der Vorschläge, und der Rest der Datei bleibt unverändert.
Sie folgt aus dem Vergleich der beiden Originaldateien, deren einziger sachlicher Unterschied dieses Auspacken ist. Prüfen Sie sie in einem Testshop, bevor Sie sie übernehmen.Die Originaldatei für 6.10 enthält an einer Stelle pSuggest[i] = pSuggest[i];, eine Zuweisung ohne Wirkung. Sie ist beim Umbenennen aus pSuggest[i] = jsonObj[i]; entstanden und ein weiteres Zeichen dafür, dass die vier Dateien mechanisch auseinander hervorgegangen sind.

Die Parameter von init()

init() nimmt hier vierzehn Parameter statt acht. Die ersten acht sind dieselben wie beim einfachen Layer. sid, uid und site werden nur angehängt, wenn sie gefüllt sind. Sie landen sowohl in der Suggest-Anfrage als auch im Ziel-Link, den ein angeklickter Vorschlag ansteuert. FACT-Finder wertet sie für seine Statistik aus.

Das Übersetzungsobjekt

Anders als der einfache Layer enthält der erweiterte keine fest eingebauten Texte. Er erwartet sie im Parameter translation: Fehlt eine Überschrift, verwendet das Modul den technischen Typnamen.

Die Rückmeldefunktionen

Drei davon sind globale Funktionen, die Sie einfach definieren. Die vierte übergeben Sie an init().
displayElementCallback läuft verzögert, das Modul stellt jeden Aufruf um zehn Millisekunden zurück. Verlassen Sie sich darin also nicht darauf, dass der Layer noch sichtbar ist.Mit onSubmitSuggest hängen Sie eigene Zielseiten an Vorschläge, beispielsweise um einen Kategorievorschlag direkt auf die Kategorieseite statt auf die Suche zu führen.

Die Klassen, die das Modul erwartet

Das Modul setzt diese Klassen selbst in das erzeugte HTML. Ihr Stylesheet muss sie kennen.

ff_big_suggest.css

Dieses Stylesheet stammt aus einem konkreten Shopdesign. Die festen Breiten von 988, 670 und 242 Pixeln, die Auswahl #head_search und das Hintergrundbild navi_level_2.gif passen nur dort. Nehmen Sie es als Gerüst, nicht als fertige Gestaltung..suggestParentCategory ist auf display: none gesetzt. Das Modul liefert die übergeordnete Kategorie eines Produktvorschlags also mit, das Beispiel blendet sie nur aus. Entfernen Sie die Regel, wenn Sie sie zeigen wollen.

Woher Sie ff_big_suggest.js bekommen

Die Datei selbst ist hier nicht abgedruckt. Sie ist 509 Zeilen lang und besteht fast vollständig aus Ablauflogik, die Sie unverändert übernehmen: Tastatursteuerung, Auf- und Abbau des Layers, Zusammenbau der Links. Alles, was Sie daran einstellen, steht oben auf dieser Seite. Für die beiden Abweichungen bei jQuery 2 und FACT-Finder 6.10 ändern Sie je eine Zeile, wie oben beschrieben. Falls Sie die Datei nicht zur Hand haben, fragen Sie bei WEBSALE nach. Weil die Direktanbindung nicht mehr weiterentwickelt wird, ändert sich an ihr nichts mehr.

Was beide Stufen gemeinsam haben

Beide erwarten ein Suchformular mit einem Namen und ein leeres div für den Layer. Beide hängen sich an das Eingabefeld und nicht an einen Knopf. Und beide bieten eine Funktion, mit der Sie den Layer von außen schließen können:
Das brauchen Sie, wenn Ihr Shop den Layer bei einem Klick an anderer Stelle schließen soll, etwa beim Öffnen der Warenkorbvorschau.