Sie sind auf Seite 1von 60

FACT-Finder

Integration

FACT-Finder Entwicklung

eMail: support@fact-finder.de
Tel.: +49 7231/12597-701

Version: 6.9.2

Aktualisierungsdatum: 16.08.2013

Integration 1
Inhaltsverzeichnis
Inhaltsverzeichnis ............................................................................................................ 2

1. Einleitung ............................................................................................................... 5

2. Produktdatenexport .................................................................................................. 6

2.1. Erstellung .......................................................................................................... 6

2.2. Aktualisierung .................................................................................................... 6

2.2.1. Pull ............................................................................................................ 6

2.2.2. Push .......................................................................................................... 7

3. Integration der Daten in die FACT-Finder Suche ............................................................ 7

4. Integration der Suche in das Shopsystem .................................................................... 7

4.1. Integrationsvarianten .......................................................................................... 8

4.1.1. HTML ......................................................................................................... 8

4.1.2. XML ........................................................................................................... 8

4.1.3. Webservice / SOAP....................................................................................... 9

4.1.4. JSON / JSONP ........................................................................................... 10

4.2. Vergleich der Varianten ..................................................................................... 10

5. Technische Dokumentation der Suchintegration .......................................................... 11

5.1. Allgemeine Tipps & Hinweise .............................................................................. 11

5.1.1. Codebeispiele und Plugins ........................................................................... 11

5.1.2. Suchsyntax ............................................................................................... 12

5.1.3. Benutzerverwaltung ................................................................................... 13

5.1.4. Passwortverschlüsselung ............................................................................. 15

5.1.5. Suchparameter .......................................................................................... 16

5.1.6. Fehlersuche .............................................................................................. 25

5.1.7. Caching von Suchergebnissen ...................................................................... 26

5.1.8. Kompression der Rückgabe.......................................................................... 26


Integration 2
5.1.9. Abschicken leerer Suchanfragen unterdrücken ................................................ 26

5.2. HTML-Integration ............................................................................................. 27

5.3. XML-Integration ............................................................................................... 28

5.3.1. Rückgabestruktur....................................................................................... 28

5.4. Webservice-Integration ..................................................................................... 35

5.4.1. Suchanfrage absetzen................................................................................. 35

5.4.2. Rückgabe verarbeiten ................................................................................. 35

5.5. JSON-Integration .............................................................................................. 37

5.5.1. Rückgabestruktur....................................................................................... 37

5.6. JSONP-Integration ............................................................................................ 45

6. Technische Dokumentation anderer Schnittstellen ....................................................... 46

6.1. Datenbanken aktualisieren ................................................................................. 46

6.1.1. HTTP-Schnittstelle ...................................................................................... 46

6.1.2. Webservice-Schnittstelle ............................................................................. 47

6.2. Ändern, Löschen und Hinzufügen von Datensätzen ................................................ 48

6.2.1. HTTP-Schnittstelle ...................................................................................... 48

6.2.2. Webservice-Schnittstelle ............................................................................. 48

6.3. Neuladen der Datenbank ................................................................................... 49

6.3.1. HTTP-Schnittstelle ...................................................................................... 49

6.3.2. Webservice-Schnittstelle ............................................................................. 49

6.4. Aktualität der Daten prüfen ................................................................................ 50

6.4.1. Text-Schnittstelle ....................................................................................... 50

6.4.2. XML-Schnittstelle ....................................................................................... 50

6.4.3. JSON-Schnittstelle ..................................................................................... 51

6.5. Channelverwaltung ........................................................................................... 51

6.5.1. HTTP-Schnittstelle ...................................................................................... 51

Integration 3
6.5.2. Webservice-Schnittstelle ............................................................................. 51

6.6. Benutzerverwaltung .......................................................................................... 51

6.6.1. HTTP-Schnittstelle ...................................................................................... 52

6.6.2. Webservice-Schnittstelle ............................................................................. 52

7. Optimierung der Suchergebnisse & Tipps ................................................................... 52

7.1. Community-Thesaurus ...................................................................................... 53

7.2. Überblick bewahren .......................................................................................... 53

8. Best Practise ......................................................................................................... 53

8.1. Allgemein ........................................................................................................ 53

8.1.1. Usability ................................................................................................... 53

8.1.2. Design...................................................................................................... 54

8.1.3. Funktion ................................................................................................... 54

8.1.4. Beispiele ................................................................................................... 56

8.2. After Search Navigation ..................................................................................... 58

8.2.1. Usability ................................................................................................... 58

8.2.2. Design...................................................................................................... 58

8.2.3. Funktion ................................................................................................... 59

8.2.4. Beispiele ................................................................................................... 59

Bei Fragen .................................................................................................................... 60

Integration 4
1. Einleitung
Dieses Dokument soll Ihnen einen Überblick verschaffen, wie Sie FACT-Finder in Ihr
Shopsystem integrieren können.

Übersicht der Schritte

Die Integration der Suche lässt sich grob in folgende Punkte unterteilen:

 Generierung eines Exports der Produktdaten

 Integration der Produktdaten in die FACT-Finder Suche

 Integration der Suche und weiterer FACT-Finder Module in das Shopsystem

 Optimierung der Suchqualität

Beispiel-URLs

In der technischen Integrationsdokumentation finden Sie einige URLs, damit diese zu einem
Ergebnis führen, müssen Sie die jeweiligen URL mit den Daten Ihrer Suchumgebung anpassen.
Angenommen Ihre Suche hat den Anwendungsnamen FACT-Finder und liegt auf einem Server
mit der Domain search.fact-finder.com, so ergibt sich beispielsweise folgende Such-URL
search.fact-finder.com/FACT-Finder/Search.ff.

Integration 5
2. Produktdatenexport
Der Produktdatenexport bildet die Grundlage für die Suche. Dieser wird später in FACT-Finder
importiert und kann anschließend durchsucht werden.

2.1. Erstellung
Damit die besten Ergebnisse erzielt werden können, sollten Sie FACT-Finder alle suchrelevanten
Informationen zur Verfügung stellen. Zusätzlich sollten auch Metainformationen, wie der
Verkaufsrang oder der Lagerbestand, exportiert werden. Durch diese Daten ist es später möglich
das Suchergebnis anhand von Regeln zu steuern, so dass beispielsweise die meistverkauften
Artikel als erstes präsentiert werden.

Eine genaue Beschreibung des Aufbaus, der benötigten Daten und Tipps finden Sie in der
Produktdatenexportbeschreibung (weiteres Dokument, das Sie von Omikron beziehen können).

2.2. Aktualisierung
Da sich die Produktdaten stetig ändern, ist es sehr wichtig, dass die Suche stets mit
Aktualisierungen des Produktdatenexports versorgt wird. Andernfalls kann es beispielsweise
vorkommen, dass Produkte nicht gefunden werden weil sie im (veralteten) Export nicht
vorhanden sind. Oder es werden Produkte gefunden, die nicht mehr im Sortiment sind. Um dies
zu vermeiden bietet FACT-Finder zwei automatische Aktualisierungsmöglichkeiten an.

2.2.1. Pull
Bei dieser Variante liegen Ihre Exportdaten an einer über eine URL erreichbaren Stelle. Die Daten
werden vom FACT-Finder Suchserver in einem festgelegten Intervall (z.B.: täglich um 5:00 Uhr)
automatisch heruntergeladen und importiert. Sollte eine Aktualisierung außerhalb des Intervalls
nötig sein, so kann dies über das Management Interface oder einen URL-/Webservice-Aufruf
angestoßen werden. Bei Importfehlern können Sie sich per Mail benachrichtigen lassen. Diese
Methode bereitet für Sie am wenigsten Aufwand.

Sollte es Ihnen aus Datenschutzgründen nicht möglich sein, die Produktdaten über eine öffentlich
erreichbare URL zur Verfügung zu stellen, gibt es eine leicht abgewandelte Form des Pull-
Verfahrens. Bei dieser abgewandelten Form speichert FACT-Finder die URL nicht, sondern Sie
können FACT-Finder über einen Webservice-Aufruf anweisen die Produktdaten von einer
angegebenen URL herunterzuladen. Hierbei haben Sie die Möglichkeit eine Ein-Mal-URL zu
generieren, FACT-Finder anweisen, die Daten von der URL zu beziehen, und die Datei danach
wieder entfernen. Das Vorgehen hat allerdings den Nachteil, dass die Verantwortung der
Zeitsteuerung für die Aktualisierung beim Shopsystem liegt.

Integration 6
2.2.2. Push
Bei der zweiten Möglichkeit müssen Sie die Daten an einen definierten Ort (z.B. FTP) ablegen und
durch einen URL-/Webservice-Aufruf den FACT-Finder Import anstoßen. Diese Variante bietet sich
beispielsweise an, wenn Sie die FACT-Finder Suche auf einem eigenen Server betreiben, oder die
Rückgabe der Importschnittstelle automatisch auswerten wollen.

3. Integration der Daten in die FACT-


Finder Suche
Dieser Schritt wird in den meisten Fällen von Omikron durchgeführt. Es wird hierbei der zuvor
erstellte Produktexport überprüft und auf dessen Grundlage eine Suchumgebung erstellt. Am
Ende des Schrittes steht Ihnen eine voll funktionsfähige Suchanwendung inklusive Management
Interface zur Verfügung.

Falls die Suche als ASP-Dienst (Application Service Providing) betrieben wird, richtet ein Omikron
Mitarbeiter die Anwendung auf einem Server ein und stellt Ihnen dann die Zugangsdaten bereit.
Diese Anwendung ist im Normalfall über das World Wide Web erreichbar.

4. Integration der Suche in das


Shopsystem
In diesem Schritt geht es darum, die von der FACT-Finder Suchanwendung zurückgelieferten
Ergebnisse in Ihrem Shopsystem verfügbar zu machen. Dies beinhaltet folgende Schritte:

1. Übermittlung der Suchanfrage

2. Erhalten des Suchergebnisses

3. Verarbeitung des Suchergebnisses

4. Darstellung des Suchergebnisses

Je nach gewünschter Integrationsvariante unterscheidet sich die praktische Umsetzung. Details


zur technischen Umsetzung finden Sie weiter hinten in diesem Dokument.

Integration 7
4.1. Integrationsvarianten

4.1.1. HTML
In diesem Modus liefert der FACT-Finder-Suchserver fertiges HTML als Suchergebnis zurück.
Diese Art der Rückgabe kann im Shopsystem beispielsweise über ein FRAME oder IFRAME
eingebunden werden.

Das Design wird bei dieser Anbindungsmöglichkeit von Ihnen vorgegeben und von Omikron auf
dem Suchserver umgesetzt. Die Vorgabe sollte in Form von HTML-Templates erfolgen.

Im nachfolgenden Schaubild können Sie den Ablauf einer Suchanfrage sehen. Sie müssen
sicherstellen, dass bei dem Absenden des Suchformulars, das FRAME/IFRAME eingebunden wird.

1. Übermitteln der Suchanfrage an FACT-Finder (Request): Das Suchfeld im Shop muss so


konfiguriert werden, dass das Suchergebnis im FRAME oder IFRAME dargestellt wird.

2. Empfangen des Suchergebnisses (Response): Geschieht durch den Browser des


Anwenders, hier sind keine Integrationsschritte notwendig.

3. Verarbeiten des Suchergebnisses: Ist bei dieser Methode nicht notwendig.

4. Generieren der Suchergebnisseite: Geschieht durch den FACT-Finder-Suchserver.

4.1.2. XML
Bei dieser Variante werden die Suchparameter in Form einer URL vom Shop an den FACT-Finder
Suchserver übergeben. FACT-Finder antwortet auf diese Anfrage in einem spezifizierten XML-
Format, das alle Informationen enthält, die notwendig sind um eine Suchergebnisseite
aufzubauen.

Integration 8
Das obere Schaubild zeigt den Ablauf einer Suchanfrage. Hierbei ist zu beachten, dass zwischen
den Ausgabeseiten und dem FACT-Finder-Suchserver ein Serverscript ist, welches von Ihnen
umgesetzt werden muss.

1. Übermitteln der Suchanfrage an FACT-Finder: Die Suchparameter, die vom Benutzer in


das Suchfeld eingegeben wurden (Query), müssen über einen HTTP-Request an den
FACT-Finder-Suchserver übermittelt werden (Request).

2. Empfangen des Suchergebnisses (Response): Der FACT-Finder-Suchserver liefert das


Suchergebnis als XML-Antwort.

3. Verarbeiten des Suchergebnisses: Das zurück gelieferte XML muss vom Shopsystem
interpretiert (geparst) werden.

4. Generieren der Suchergebnisseite (Display): Auf Basis der gelieferten


Suchergebnisinformationen muss die HTML-Darstellung der Suchergebnisseite aufgebaut
werden.

Der wichtigste Unterschied dieser Methode zu der HTML-Rückgabe ist, dass das Design der
Suchergebnisseite vom Shop erstellt wird. So wird das Design zentral verwaltet und muss nicht
an mehreren Stellen gewartet werden.

4.1.3. Webservice / SOAP


Als dritte Anbindungsmöglichkeit stellt der Suchserver eine Webservice-Schnittstelle bereit.
Webservices sind standardisierte Kommunikations-Schnittstellen für verteilte Anwendungen. Der
Ablauf ist hier identisch mit der XML-Variante, der Unterschied liegt in der standardisierten
Schnittstelle, so dass die Anfrage über Objekte anstatt Parameter einer URL gestellt wird.

1. Übermitteln der Suchanfrage an FACT-Finder: Die Suchparameter, die vom Benutzer in


das Suchfeld eingegeben wurden, werden an den Webservice-Request weitergegeben.

Integration 9
2. Empfangen des Suchergebnisses: Wird durch den über die WSDL generierten
Programmcode erledigt.

3. Verarbeiten des Suchergebnisses: Wird durch den über die WSDL generierten
Programmcode erledigt.

4. Generieren der Suchergebnisseite: Die Suchergebnisinformationen stehen dem


Programmierer in Form von Objekten zur Verfügung. Auf diese kann leicht zugegriffen
und so die HTML-Seite für den Betrachter aufgebaut werden.

4.1.4. JSON / JSONP


Eine abschließende Möglichkeit die FACT-Finder Suche in Ihren Shop zu integrieren, stellt die
JSON- bzw. JSONP-Schnittstelle dar. Bei dieser Methode wird ebenfalls eine URL aufgerufen, die
die Suchparameter übergibt. Als Antwort erhalten Sie ein JSON Objekt, mit dem Sie die
Suchergebnisseite darstellen können. Den Ablauf entnehmen Sie bitte der Webservice-Variante.

4.2. Vergleich der Varianten


Jede der Methoden hat Vor- und Nachteile, es hängt daher von vielen Punkten ab, welche
Variante für Sie die Richtige ist. Um Ihnen die Entscheidung etwas leichter zu machen, wollen wir
nachfolgend diese gegenüberstellen.

HTML XML Webservice JSON

Aufwand für
Gering Mittel Mittel Mittel
Shopbetreiber

Nötige
Gering Hoch Hoch Mittel
Programmierkenntnisse

Änderungen flexibel Nein Ja Ja Ja

Setupkosten Hoch Gering Gering Gering

Daten Overhead Gering Mittel Hoch Gering

Dadurch, dass bei der HTML-Integration FACT-Finder bereits eine fertige HTML-Seite zurückliefert
und diese nur noch vom Shopbetreiber eingebunden werden muss ist hier der Aufwand gering.

Bei den anderen Integrationsvarianten, muss zur Verarbeitung des Suchergebnisses Code erstellt
bzw. verwendet werden, daher sind hier tiefere Programmierkenntnisse vonnöten.

Integration 10
Ein Vorteil der XML-/Webservice- und JSON-Integration ist, dass Änderungen flexibel möglich
sind, da die Anzeige an einer Stelle gepflegt wird. Bei der HTML-Integration kommt das
Seitendesign vom FACT-Finder-Suchserver, d.h. falls die Suche als ASP-Dienst betrieben wird,
müssen Änderungen von Omikron durchgeführt werden.

Die Setupkosten, die Omikron berechnet, sind bei einer XML-, JSON- bzw. Webservice-Integration
niedriger im Vergleich zur HTML-Integration, da die Einbindung der Seiten-Templates entfällt.

Was also sind noch die Unterschiede zwischen der Webservice-, XML- und JSON-Schnittstelle? Die
Schnittstellen sind sehr unterschiedlich und ein Umstieg ist nicht einfach. Jede Schnittstelle bietet
ihre eignen Vor- und Nachteile:

Webservice: Kennt man sich mit dieser Technologie aus, ist der Einstieg bei den meisten
Programmiersprachen ziemlich einfach. Aus der WSDL Beschreibung wird Client-Code generiert,
der sofort verwendet werden kann. Der Nachteil ist jedoch der Datenoverhead der Webservice-
Schnittstelle, der für die strikte Typisierung verwendet wird. Die Datenmenge für dasselbe
Suchergebnis ist etwa sechsmal größer als bei der XML Schnittstelle.

XML: Da es sich um ein proprietäres Format handelt, muss das XML selbst geparst und
verarbeitet werden. Trotzdem kann XSTL verwendet werden, um die Daten zu verarbeiten.

JSON: Grundsätzlich ist diese Schnittstelle noch schlanker als XML, was sich vor allem bei großen
Datenmengen bemerkbar macht. Auch hier muss das Verarbeiten aber selbst gestaltet werden.

5. Technische Dokumentation der


Suchintegration
Je nach gewählter Variante gibt es bei der Integration der FACT-Finder Suche in das Shopsystem
unterschiedliche Punkte zu beachten. Welche dies sind wird in diesem Abschnitt beschrieben.

5.1. Allgemeine Tipps & Hinweise

5.1.1. Codebeispiele und Plugins


Um Ihnen Entwicklungsarbeit zu sparen, haben wir zahlreichen Beispielcode geschrieben, der die
unterschiedlichen Schnittstellen und Programmiersprachen abdeckt und als Grundlage Ihrer
Integration dienen kann. Diesen stellen wir Ihnen natürlich gerne zur Verfügung, nennen Sie dem
entsprechenden Projektleiter einfach Ihre Programmiersprache und Integrationsvariante.

Integration 11
Für einige Shopsysteme existieren fertige Plugins, die Sie nur noch in Ihr Shopsystem einbinden
oder an Ihre Anforderungen anpassen müssen. Fragen Sie uns am besten ob wir auch für Ihr
System ein solches Plugin haben.

5.1.2. Suchsyntax
Es ist möglich bei der Suche eine bestimmte Syntax zu verwenden, um so ein spezielles Ergebnis
zu erreichen.

Exakte Suche

Soll exakt nach etwas (z.B.: Artikelnummer) gesucht werden, so kann vor den Begriff ein
Pluszeichen gesetzt werden. Falls es sich um eine Phrase handelt muss diese in Hochkommas
eingeschlossen werden.

+exaktSo
″exakte Phrase″

Begriffe ausschließen

Ist einem Begriff ein Minuszeichen vorangestellt, so werden Ergebnisse die dieses enthalten, aus
dem Suchergebnis ausgeschlossen.

Suchbegriff –unterwünschtesWort

Wildcards

Es werden Fragezeichen(?) und Sterne(*) unterstützt. Das Fragezeichen steht für ein einzelnes
Zeichen, der Stern für beliebige Zeichen. Falls der Suchbegriff ein Wildcard enthält, wird dieser
nicht mehr fehlertolerant gesucht.

Suchb?griff
Such*

Verknüpfung

Es ist möglich zwei Suchbegriffe mit einem Booleschen Oder zu verknüpfen. Das Steuerzeichen
dafür besteht aus zwei Balken: ||. Dies wird häufig in Kombination mit der exakten Suche
verwendet.

Hose || Jacke

Sollen die Begriffe mit einem Booleschen Und verknüpft werden, ist dies über das Steuerzeichen
&& möglich.

Integration 12
Hose && Jeans

5.1.3. Benutzerverwaltung
Die Benutzerverwaltung ermöglicht Ihnen eine feingranulare Autorisierung einzelner Benutzer.
Dadurch können beispielsweise einzelne Benutzer nur bestimmte Channels verwalten oder die
dazugehörigen Konfigurationen pflegen. Dieses Rechtesystem basiert auf Rollen, welche
bestimmte Module zugänglich machen. Diese Rollen können dem Benutzer direkt oder indirekt
über Gruppen zugewiesen werden. Durch die Gruppen lassen sich komplexe Rollenvergaben
realisieren ohne diese für jeden Benutzer einzeln durchführen zu müssen.

Wenn Sie die Webserviceanbindung verwenden, müssen Sie bei jedem Aufruf
Authentifizierungsdaten mitgeben. Bei den anderen Methoden kann die Autorisierung deaktiviert
werden. Dies ist allerdings nur zu empfehlen, wenn FACT-Finder auf einem Server betrieben wird,
der sonst nicht aus dem Internet erreichbar ist.

Rollen

Über die Managementoberfläche können Benutzern und Gruppen bestimmte Rollen zugeordnet
werden. Die Abfrage der Suche, des Suggest und der TagCloud sind für alle eingeloggten
Benutzer verfügbar. Für diese Funktionalität ist keine bestimmte Rolle notwendig.

AfterSearchNavigationManager

Benutzern, die diese Rolle besitzen, ist es erlaubt im Konfigurationseditor Änderungen im


Unterpunkt ASN durchzuführen.

BackupManager

Besitzt ein Benutzer diese Rolle, so kann er Sicherungskopien der Konfiguration wiederherstellen.

CacheManager

Benutzer mit dieser Rolle können den Suchcache leeren.

CampaignManager

Durch diese Rolle ist es dem Benutzer erlaubt Kampagnen zu erstellen und zu verwalten.

ConfiguratorManager

Besitzer dieser Rolle können Standardeinstellungen im Konfigurationseditor ändern. Damit alle


Einstellungen eingesehen und verändert werden können sind weitere Rollen notwendig.

DeploymentManager

Mit dieser Rolle ist es erlaubt Dateien vom Staging- in das Produktivsystem zu übernehmen, wenn
ein zusätzliches FACT-Finder-Staging System eingerichtet ist.

Integration 13
ImportManager

Hat ein Benutzer diese Rolle, so darf er Produktdatenaktualisierungen ausführen.

InstallManager

Diese Rolle erlaubt es den Einrichtungsassistenten zu verwenden.

LanguageManager

Eigentümer dieser Rolle können die Spracheinstellungen im Konfigurationseditor anpassen.

LogfileAnalyzerManager

Diese Rolle erlaubt dem Benutzer Logfileanalysen durchzuführen.

MayChangePassword

Diese Rolle erlaubt es dem Benutzer sein eigenes Passwort zu ändern.

MessagesManager

Benutzer mit dieser Rolle erhalten im Benachrichtigungsmenü Informationen über die


Suchanwendung.

NotificationManager

Dadurch ist es dem Benutzer erlaubt die E-Mail Benachrichtigungseinstellungen zu verwalten.

PreprocessorManager

Benutzer mit dieser Rolle haben Zugang zum Modul „Präprozessor“.

RecommendationEngineManager

Wenn ein Benutzer diese Rolle besitzt kann er alle zur Recommendation-Engine gehörenden
Einstellungen treffen.

SearchInterfaceUser

Diese Rolle ermöglicht es dem Benutzer die Suchoberfläche zu verwenden.

SearchManager

Besitzern dieser Gruppe ist es erlaubt die Sucheinstellungen im Konfigurationseditor zu ändern.

ShowHelpSection

Ist diese Rolle vorhanden ist der „Hilfe“-Bereich zugänglich.

SuggestManager

Integration 14
Durch diese Rolle wird dem Benutzer erlaubt Suggesteinstellungen zu ändern und den
Suggestimport anzustoßen.

ThesaurusManager

Benutzer mit dieser Rolle haben Zugang zum Thesaurus-Modul.

UserManager

Besitzt ein Benutzer diese Rolle, so darf er Benutzerkonten und Gruppen verwalten.

WhatshotManager

Hat ein Benutzer diese Rolle, so kann er die What's Hot Analyse betrachten.

WordValuesManager

Benutzer mit dieser Rolle haben Zugang zum „Stoppwörter“-Modul.

5.1.4. Passwortverschlüsselung
FACT-Finder bietet zwei Möglichkeiten an, wie das Passwort übermittelt werden kann. Eine
einfache und eine erweiterte Methode. Per Standard wird die Erweiterte verwendet.

Der Grund warum es zwei Möglichkeiten gibt ist, dass die FACT-Finder Schnittstellen keine
gesicherte Verbindung (https) voraussetzen. Um die Sicherheit der übertragenen Passwörter
trotzdem zu gewährleisten, wird bei der erweiterten Methode ein zweistufiges Hashverfahren
angewandt. Grundvoraussetzung hierfür ist, dass sowohl auf FACT-Finder Seite als auch auf Client
Seite, dieselben geheimen Schlüssel verwendet werden.

Als Encoding zur Hasherzeugung wird UTF-8 verwendet. Als Hashalgorithmus wird standardmäßig
MD5 verwendet, es kann aber auch auf Wunsch ein anderer Algorithmus verwendet werden.

Die Passworthashbildung läuft folgendermaßen ab:

Klartext-Passwort: userpw

Aus dem Klartextpasswort wird zuerst ein Hash mit dem definierten Algorithmus. Im Beispiel wird
aus userpw der Hash d8118f1bb6bd9998031053176a2c4bee. Dies ist der String, der in der
einfachen Methode als Passwort übertragen werden muss. Da dieser Hash-Wert, wenn er
ausspioniert werden sollte, so gut wie das Passwort zur Authentifizierung verwendet werden
könnte, sollten Requests mit diesem Wert nur über gesicherte Verbindungen (https) erfolgen.

Will man die erweiterte Hashmethode verwenden, so benötigt man noch die geheimen Schlüssel
und einen aktuellen Zeitstempel (in Millisekunden seit Mitternacht 1. Januar 1970 GMT). Den
Zeitstempel kann man in Java beispielsweise über die Methode System.currentTimeMillis();
bekommen. Diese Methode liefert den Zeitstempel bereits relativ zur Zeitzone UTC zurück.

Integration 15
Im Beispiel nehmen wir folgende Werte an:

Prefix: FACT-FINDER

Postfix: FACT-FINDER

Zeitstempel: 1270732953523

Grundlage für die erweiterte Übertragungsvariante ist das Ergebnis der einfachen
Verschlüsselung, also der Hash des Klartextpasswortes. Diesem Hash wird der Prefix und der
Zeitstempel vorangestellt und der Postfix hinten angefügt, aus dem Ergebnis wird erneut ein Hash
generiert, der dann übertragen werden kann.

Im Beispiel ergibt sich so folgender String:

FACT-FINDER1270732953523d8118f1bb6bd9998031053176a2c4beeFACT-FINDER

Ergebnis ist: 167539c3e7aba8388eee252f429a4a1a. Dies wird als Passwort an FACT-Finder


übertragen. Da sich der Zeitstempel je Aufruf ändert, ändert sich auch der Hash je Aufruf, was zu
einer erhöhten Sicherheit führt. Der Hash ist per Standard 60 Sekunden gültig, sollten Sie eine
andere Lebensdauer wünschen, teilen Sie uns dies bitte mit. Durch dieses Vorgehen ist ein
Ausspionieren des übertragenen Hash-Werts unkritisch. Nach Ablauf des eingestellten Time-Outs
ist eine Authentifizierung mit dem ausspionierten Hash-Wert nicht mehr möglich. Wenn die Uhren
des Shopsystem-Servers und des FACT-Finder Servers recht synchron laufen, kann der Time-Out-
Wert zur Erhöhung der Sicherheit verringert werden.

Login

Je nach Schnittstelle unterscheidet sich die Art des Logins. Bei Webservice-Anfragen muss ein
AuthenticationToken-Objekt übergeben werden, bei dem die Werte entsprechend gesetzt sind.
Bei den anderen Varianten werden die Logindaten, wie auch die Suchparameter, über die URL
übergeben. Die Parameternamen hierfür sind username, password und timestamp.

Wenn wir das vorgegangene Beispiel wieder aufgreifen und das Passwort dem Benutzer user
gehört, ergibt sich folgende Login-URL:

../Search.ff?timestamp=1270732953523&username=user&password=
167539c3e7aba8388eee252f429a4a1a&...

Sie können diese Parameter auch bei den Management Interface Seiten übergeben, so dass sich
ein „Single Sign On“-System erzeugen lässt.

5.1.5. Suchparameter
Über die Suchparameter wird FACT-Finder mitgeteilt, welche Produkte zurückgeliefert werden
sollen. Generell gibt es zwei unterschiedliche Möglichkeiten diese zu übergeben. Die HTML-, XML
Integration 16
und JSON-Schnittstellen reagieren jeweils auf eine Anfrage-URL mit entsprechenden Parametern.
In der Webservice-Schnittstelle werden Programm-Objekte mit Eigenschaften übergeben.

Wann immer Daten über eine URL an FACT-Finder übergeben werden, ist es wichtig, dass das
Encoding korrekt eingestellt ist. Ist dies nicht der Fall, so werden Sonderzeichen und Umlaute
falsch verarbeitet. Das Standard-URL-Encoding für FACT-Finder ist UTF-8. Im Folgenden sind die
möglichen Suchparameter aufgelistet.

Integration 17
5.1.5.1. Basis-Parameter

Diese Auflistung entspricht der Params-Klasse bei Webservice-Verwendung.

Beschreibung URL-Parameter Webservice

Der Suchbegriff gibt an, nach


welchem Begriff in der FACT-
Finder Datenbank gesucht Wird im Params-
Such- Der Parametername
werden soll. Zusammen mit Objekt über setQuery
begriff lautet query
dem Channel Parameter sind gesetzt.
das die einzigen Pflicht-
Parameter.

Falls Ihre Suchumgebung


mehrere Channels umfasst,
müssen Sie über diesen
Parameter angeben, welchen
Channel Sie durchsuchen wollen. Ist channel=NAME Params.setChannel
kein Channel explizit
angegeben, so wird der erste
Channel in der Channel-Liste
verwendet.

Falls ein Suchergebnis viele


Ergebnisse beinhaltet werden
diese in Seiten unterteilt. So
wird die zu übertragende
Seite page=NUMMER Params.setPage
Menge kleingehalten. Hierüber
können Sie angeben, welche
Seite zurückgegeben werden
soll, die Zählung beginnt bei 1.

Sie können im FACT-Finder Params


Management Interface .setResultsPerPage
definieren, wie viele Ergebnisse
per Standard auf einer Seite Diesen Wert müssen
Ergebnisse productsPerPage= Sie immer setzen,
zurückgeliefert werden soll.
pro Seite ANZAHL ansonsten bekommen
Möchten Sie eine andere
Anzahl anzeigen, können Sie Sie per Standard
dies mit diesem Parameter einen Artikel pro Seite
einstellen. zurück.

Integration 18
Der Parameter ist ein
Konstrukt aus dem
Prefix sort und dem
Feldnamen nach dem
sortiert werden soll
Per Standard wird das Ergebnis (sortFELDNAME). Als
nach Relevanz sortiert Wert wird die Eine Sortierung wird
zurückgegeben, soll es anders Sortierrichtung durch ein SortItem-
sortiert werden kann dies angegeben, asc für Objekt beschrieben.
Sortierung hierüber eingestellt werden. Es aufsteigend und desc den Params kann eine
ist auch möglich mehrere
für absteigend. Liste dieser Objekte
Sortierungen zu verwenden,
gesetzt werden.
diese werden der Reihe nach Soll bei mehreren
angewendet. übergebenen
Sortierungen auch nach
Ähnlichkeit sortiert
werden, so lautet der
Parameter
sortRelevancy=desc

Der Name des Ein Filter-Objekt


Durch die Übergabe eines
Parameters ist wie die symbolisiert einen
Filter-Parameters liefert FACT-
Sortierung ein Filter je Feld. Dieses
Finder nur Suchergebnisse
Konstrukt aus Prefix Objekt kann mehrere
zurück, die in dem
und Feldname, hier FilterValue-Objekte
angegebenen Filter
lautet der Prefix jedoch enthalten. Neben
entsprechen. Der Filterwert
filter. einem Filterwert ist in
trifft nicht, wenn dieser nur
diesen die Information
teilweise enthalten ist. Als Wert wird der
wie mehrere
Filterwert übergeben.
Es besteht zudem die FilterValues
Falls eine
Filterung Möglichkeit Filter in einem Feld verknüpft
Mehrfachfilterung
mit UND bzw. ODER zu werden(type). Die
angewandt werden soll
verknüpfen. Objekt-Eigenschaft
muss zwischen den
exclude besagt, ob
Es ist auch möglich einen Filter Werten ein Trenner
der Filter
zu übergeben, der übergeben werden. Im
ausschließend
ausschließend angewandt Normalfall sind dies für
angewandt werden
werden soll. Beispielsweise eine UND-Verknüpfung
soll, oder nicht.
werden alle Produkte 3 Unterstriche (___),
zurückgegeben, die NICHT rot für eine ODER- Dem Params-Objekt
sind. Verknüpfung sind dies 3 können wiederum
Tilden (~~~). Beispiel: mehrere Filter-

Integration 19
Rot~~~Blau. Diese Objekte hinzugefügt
Trenn-Strings können in werden.
der config.xml
konfiguriert werden.

Soll der Filter


ausschließend wirken,
so übergeben Sie vor
den Filterwert ein
Prefix, per Standard ist
dies ein Ausrufezeichen
(!). Beispiel: !Rot. Der
String wird ebenso in
der config.xml
konfiguriert.

Im Normalfall durchsucht
FACT-Finder alle als
durchsuchbar definierten Params
Suchfeld searchField=FELDNAME
Felder. Es ist jedoch auch .setSearchField
möglich nur in einem
bestimmten Feld zu suchen.

Das Params-Objekt
besitzt ein Attribut
noArticleNumberSear

Normalerweise wird eine ch über dieses lässt


Artikelnummernsuche sich die
Wenn Sie als Parameter Artikelnummernsuche
durchgeführt, falls der
noArticleNumberSearc
Suchbegriff einem oder verhindern.
Artikelnum h und den Wert true
mehreren Schemas entspricht.
mernsuche übergeben, so wird die Zudem können Sie
Sie können aber per Parameter
Artikelnummernsuche über das Attribut
verhindern, dass die isArticleNumber
nicht ausgeführt.
Artikelnummernsuche explizit sagen, dass
ausgeführt wird. eine
Artikelnummernsuche
ausgeführt werden
soll.

Integration 20
5.1.5.2. Parameter für die Steuerung des Such-Ablaufs

Beschreibung URL-Parameter Webservice

Steuert die Erzeugung der


ASN. true = ASN wird
erstellt, false = ASN wird SearchControlPara
ASN Erstellung nicht erstellt. Default ist useAsn=true
ms.useAsn
true.

FACT-Finder ist in der Lage


zu den gefundenen
Datensätzen die Wörter
zurückzuliefern, die zum
Fund des Datensatzes
geführt haben. Die
Gefundene Ermittlung dieser Wörter
SearchControlPara
Wörter kostet Rechenzeit. Daher ist useFoundWords=true
ms.useFoundWords
zurückliefern diese per Default
deaktiviert. true = Wörter
werden erzeugt, false =
Wörter werden nicht
erzeugt. Default ist false.

Falls Sie verhindern wollen,


dass der Kampagnen-
Manager überprüft, ob für
diese Suchanfrage eine
Kampagne vorliegt,
verwenden Sie diesen
Kampagnen Parameter. true = SearchControlPara
useCampaigns=true
unterdrücken Kampagnen werden ms.useCampaigns
ausgewertet und
zurückgeliefert, false =
Kampagnen werden
ignoriert.

Nähere Informationen zum


Kampagnen-Manager finden

Integration 21
Sie in dessen
Dokumentation.

Über FACT-Finder lässt sich


auch Ihre komplette Der query-Parameter
Shopnavigation abbilden. ist hier überflüssig, Sie
Shopnavigation Hierfür benötigen Sie benötigen nur den CustomParameter
keinen Suchbegriff sondern Parameter
übergeben lediglich die navigation=true.
Anfrage entsprechend.

In der Rückgabe erhalten


Sie normalerweise alle
Feldinformationen der
gefunden Produkte, sollten
Sie nur die IDs benötigen
Datensätze nicht SearchControlPara
können Sie die Übertragung idsOnly=true.
übertragen ms.idsOnly
Feldinhalte deaktivieren und
so Bandbreite sparen. True
= Feldinhalte nicht
übergeben. Default-Wert ist
false.

FACT-Finder ist in der Lage


zu Produkten
Schlüsselwörter zu
generieren, die für SEO1
verwendet werden können.
SEO- true = SEO-
SearchControlPara
Schlüsselwörter Schlüsselwörter werden useKeywords=false
ms.useKeywords
erzeugen ausgewertet und an die
Produkt-Datensätze
angehängt, false = SEO-
Schlüsselwörter werden
nicht zurückgeliefert.
Default ist false.

Vollständigen Wird im Zusammenhang SearchControlPara


Frage-Antwort- mit Berater-Kampagnen generateAdvisorTree=
ms.generateAdviso
false
Baum für verwendet. Siehe dazu die rTree
Berater- Dokumentation zum

1
Search Engine Optimization
Integration 22
Kampagnen Kampagnen-Manager. true
zurückliefern = der vollständige Frage-
Antwort-Baum wird
zusammen mit der Berater-
Kampagne zurückgeliefert.
false = nur die aktuell
aktiven Fragen und deren
Antworten werden
zurückgeliefert. Default ist
false.

Steuert die Verwendung des


Such-Ergebnis-Caches.
true = Cache wird SearchControlPara
Cache-Kontrolle disableCache=false
ignoriert, false = Cache ms.disableCache
wird verwendet. Default ist
false.

5.1.5.3. Authentifizierungs-Parameter

Beschreibung URL-Parameter Webservice

Übergeben Sie den


Da Sie sich bei FACT-Finder Namen des
Aufrufen autorisieren Benutzers, der AuthenticationToken
Benutzernamen
müssen, müssen Sie einen verwendet werden .setUsername
Benutzer übergeben. soll, per Parameter
username.

Zu dem übergebenen
Benutzer muss das
Passwort übertragen AuthenticationToken
Passwort password=HASH
werden. Dieses muss nach .setPassword
vorher erklärtem Schema
verschlüsselt werden.

Sollten Sie die erweiterte


Verschlüsselungsmethode timestamp= AuthenticationToken
Zeitstempel verwenden, muss zusätzlich ZEITSTEMPEL .setTimestamp
der für den Hash
verwendete Zeitstempel

Integration 23
übertragen werden.

5.1.5.4. Shop-Besucher-Informationen

Mit den nachfolgenden Parametern werden Informationen zum Shop-Besucher übertragen. Die
Übergabe der Session-ID und des Site-Parameters ist Pflicht, wenn das Tracking-Modul benutzt
wird. In zukünftigen FACT-Finder Releases ist geplant diese Informationen für Behavioural-
Targeting-Funktionen zu verwenden.

Beschreibung URL-Parameter Webservice

Hier übergeben Sie bitte


eine Kennung für die
Session des Users. Diese
kann anonymisiert werden.
Einzige Anforderung ist, UserInformation.
Session-ID sid
dass diese ID sich im sessionID
Verlauf des Besuchs des
Anwenders nicht ändert.

Hier übergeben Sie bitte


eine Benutzerkennung.
Diese kann, wie auch die
Session-ID anonymisiert
UserInformation.
Benutzer-ID werden. Die Benutzer- uid
userID
Kennung unterscheidet sich
von der sid, dadurch dass
sie bei wiederkehrenden
Benutzern gleich bleibt.

Hier übergeben Sie eine Id,


die einen Anwender über
einen längeren Zeitraum
identifiziert, auch wenn
UserInformation.
Cookie-ID dieser nicht im Shop cid
cookieID
eingeloggt ist.
Typischerweise wird diese in
einem Browser-Cookie
abgelegt.

Integration 24
Hier übergeben Sie eine
Kennung, die Ihren Shop
oder Ihre Shopinstanz site= UserInformation.
Site
eindeutig identifiziert. Z.B. exampleShopName site
Ihren Shopnamen
exampleShopName.

5.1.5.5. XML/JSON Parameter

Die nachfolgenden Parameter sind nur für Aufrufe über XML/JSON relevant.

Beschreibung URL-Parameter

Der Parameter hat den Namen


Da die HTML-, XML- und JSON-
format. Wird dieser nicht mit
Schnittstellen per URL aufgerufen werden,
einem Wert belegt handelt es
Rückgabeformat wird ein Parameter benötigt, der angibt in
sich um die HTML Rückgabe.
welchem Format die Rückgabe geliefert
Als Werte können xml, json
werden soll.
und jsonp angegeben werden.

Die zurückgelieferten Suchparameter-URLs


fangen im Normalfall mit dem Namen der
FACT-Finder Serverapplikation an. Dies
kann jedoch deaktiviert werden. Dies ist
Wenn Sie omitContextName=
Anwendungs- z.B. bei Installationen mit Lastverteilung
true übergeben beginnen die
namen sinnvoll, bei der die unterschiedlichen
URLs mit dem Action- anstatt
verbergen FACT-Finder-Applikationen unterschiedliche
dem Anwendungsnamen.
Namen tragen. Das kann aber auch in
„normalen“ Einsatzszenarien verwendet
werden um Übertragungsvolumen zu
sparen.

5.1.6. Fehlersuche
Falls die FACT-Finder Oberfläche eine allgemeine Fehlerseite anzeigt (Fehler 500 Seite), kann
über den Parameter verbose=true zusätzliche Information abgerufen werden. Parameter an die
URL anhängen und die Seite aktualisieren. Der HTML-Quelltext enthält dann einen Stacktrace zum
Fehler. Sollte Ihnen die Fehlermeldung nicht weiterhelfen, wenden Sie sich bitte an den FACT-
Finder Support.

Integration 25
5.1.7. Caching von Suchergebnissen
FACT-Finder verfügt über ein Caching der Suchergebnisse, so dass eine Anfrage schneller
abgearbeitet wird, wenn diese bereits zuvor bearbeitet wurde. Um festzustellen, ob es sich um die
gleiche Anfrage handelt oder nicht, werden die übergebenen Suchparameter überprüft. Bitte
übergeben Sie keine von FACT-Finder nicht benötigten Parameter an die Suchumgebung. FACT-
Finder betrachtet standardmäßig alle empfangenen Parameter als cache-relevant2. Werden
überflüssige Parameter an FACT-Finder übergeben, sinkt die Effizienz des Caches.

Sie können FACT-Finder-Ergebnisse selbstverständlich auch shop-seitig cachen. Dabei müssen Sie
beachten: Es gibt unterschiedliche Situationen in denen FACT-Finder seinen eigenen Cache als
veraltet betrachtet und diesen leert: Konfigurationsänderungen, Produkt-Datenänderungen. Der
Onlineshop bekommt von diesen Änderungen nichts mit. Es wird also in so einem Fall immer dazu
führen, dass die vom Online-Shop gecachten Ergebnisse immer etwas veraltet sind.

5.1.8. Kompression der Rückgabe


Bei großen Ergebnissen und einer Vielzahl von Filtermöglichkeiten steigt die FACT-Finder
Rückgabegröße stark an, so dass es dazu führen kann, dass die Netzwerklaufzeit einen
erheblichen Anteil der gesamten Suchzeit einnimmt.

Sollte der Webserver es unterstützen, besteht die Möglichkeit die Serverantwort GZIP-
komprimiert zu übertragen, wodurch die zu übertragende Datenmenge stark reduziert werden
kann.

Je nach verwendeter Programmiersprache ist jedoch auch clientseitig Code notwendig, so dass
diese Kompressionsmethode unterstützt wird. Der Client muss explizit eine komprimierte
Rückgabe anfordern.

5.1.9. Abschicken leerer Suchanfragen unterdrücken


Viele Online-Shop Besucher klicken direkt auf den "Suche"-Knopf, ohne etwas in das Such-
Textfeld einzugeben. Statt nun eine Suche auszulösen, sollte der Besucher darauf hingewiesen
werden, dass er den Suchbegriff in das Textfeld eingeben soll. Beispielsweise durch einen Hinweis
mit erklärendem Text und gleichzeitigem Fokus auf das Suchfeld setzen. Dies vermeidet leere
Anfragen (bzw. Suchen nach dem Standardtext des Suchfelds) und Irritation beim Anwender.

2
Parameter, die FACT-Finder selbst nicht verwendet, könnten von kundenspezifischen Erweiterungen
verwendet werden und damit das Suchergebnis verändern. Daher werden alle Parameter standardmäßig als
cache-relevant betrachtet.
Integration 26
5.2. HTML-Integration
Wenn Sie FACT-Finder über diese Schnittstelle integrieren, binden Sie das Rückgabe-HTML in den
meisten Fällen als IFRAME in Ihre Seite ein. Sie müssen daher Ihre Suchbox so programmieren,
dass diese eine FACT-Finder Suche aufruft. Im Normalfall wird lediglich der Suchbegriff
übertragen, eine Aufzählung der Suchparameter finden Sie in der Beschreibung der XML-
Integration.

Zusätzlich ist es noch nötig im parent-Frame folgende Methode zu definieren:

function setFrameHeight(h) {
if (document.all) {
document.all.search_result.style.height = h;
} else if (!document.all) {
document.getElementById("search_result").height = h;
}
}

Durch diese Methode wird das FRAME/IFRAME mit der ID search_result nur so groß wie nötig
dargestellt. Die Funktion wird aus der Rückgabe heraus aufgerufen.

Aufgrund von Sicherheitsbeschränkungen des Browsers (Cross-Site-Scripting) kann die FACT-


Finder Rückgabeseite Methoden der Parent-Seite erst aufrufen, wenn sie als Subdomain im
FRAME/IFRAME eingebunden und die Seiteneigenschaft document.domain der Parent- und
Rückgabeseite auf die Hauptdomain gesetzt ist. Fügen Sie daher bitte folgende Zeile als ersten
JavaScript-Block in Ihrem HTML-Head-Bereich ein:

document.domain = "ihreDomain.de";

Die Domain des Suchservers muss eine Subdomain dieser Hauptdomain sein. Also z.B.:
"suche.ihreDomain.de".

Falls Sie das Kampagnen Manager-Modul einsetzen wollen, ist es zudem nötig zu definieren, wann
eine Weiterleitungskampagne in der IFRAME-Fläche und wann diese auf der kompletten Seite
angezeigt werden soll. Dies kann beispielsweise über die Syntax beim Anlegen der Kampagne
geschehen oder über einen Parameter.

Integration 27
5.3. XML-Integration
Bei der XML-Integration müssen Sie die Parameter der Suchanfrage in eine URL konvertieren und
erhalten das Suchergebnis als Rückgabe in einem definierten XML-Format. Sie erreichen die
Rückgabe beispielsweise unter folgender URL:

../Search.ff?query=begriff&format=xml

5.3.1. Rückgabestruktur

<ff>
<searchStatus>resultsFound</searchStatus>
<articleNumberSearchStatus>noArticleNumberSearch
</articleNumberSearchStatus>
<searchTimedOut>false</searchTimedOut>
<searchParams>
<searchPhrase>animation dvd</searchPhrase>
<filters>
<filter name="Category" exclude="false">DVD</filter>
</filters>
<channel>de</channel>
<productsPerPage>20</productsPerPage>
</searchParams>
<productsPerPageOptions default="12" selected="24">
<option value="12">
<searchParams>...searchParams...</searchParams>
</option>
<option value="24">
...
</option>
</productsPerPageOptions>
<breadCrumbTrail>
<item nr="0" type="search" value="dvd">
<searchParams>...</searchParams>
</item>
...
</breadCrumbTrail>
<singleWordSearch>
<item nr="0" word="dvd" count="23">
<record ...>...</record>
...
</item>
...
</singleWordSearch>

Integration 28
<campaigns> ... </campaigns>
<asn>
<group name="Category" refKey="spzBMw5jS" >
<element name="DVD" count="0" clusterLevel="0" selected="true">
<searchParams>...</searchParams>
</element>
...
</group>
...
</asn>
<paging pageCount="3" currentPage="1" productsPerPage="20">
<searchParams>...</searchParams>
<settings>
<linkCount>9</linkCount>
<nextCaption>&gt;&gt;</nextCaption>
<previousCaption>&lt;&lt;</previousCaption>
</settings>
</paging>
<sorting>
<sort name="Relevancy" description="Relevancy" method="desc"
selected="true">
<searchParams>...</searchParams>
</sort>
...
</sorting>
<results count="42">
<record nr="0" id="71004851">
<field name="EAN">4011846012801</field>
<field name="Category">DVD</field>
<field name="Description">...here is the description...</field>
<field name="Title">products title</field>
...
</record>
...
</results>
</ff>

Für das Rückgabeformat existiert eine XSD-Beschreibungsdatei, so dass Verarbeitungscode


generiert werden kann. Bei vielen Elementen finden Sie ein searchParams-Tag, dieses beinhaltet
die für diesen Schritt zugehörigen Suchparameter in URL-Form.

Statusinformationen

Der Wert, den Sie unter dem Tag searchStatus finden, gibt an, ob ein Ergebnis gefunden wurde
oder nicht. Mögliche Werte sind resultsFound, nothingFound oder errorOccured.
Integration 29
Das Tag articleNumberSearchStatus zeigt auf, ob eine Artikelnummernsuche durchgeführt
wurde oder nicht. Mögliche Werte sind hier resultsFound, nothingFound oder
noArticleNumberSearch.

Falls während der Suche eine Zeitüberschreitung aufgetreten ist, wird in dem Tag
searchTimedOut der Wert true zurückgeliefert, andernfalls steht hier der Wert false. Eine
Suche, die die Zeit überschritten hat, beinhaltet unter Umständen nicht alle passenden Produkte.

searchParams-Block

Dieser Block beinhaltet die übergebenen Suchparameter. Aus diesem Abschnitt lassen sich zum
einen die Anfrage-Parameter für die Darstellung herauslesen, zum anderen kann hierdurch
überprüft werden, ob die Parameter korrekt erkannt wurden.

productsPerPageOptions-Block

In diesem Block werden die in der Konfiguration definierten Optionen aufgelistet, wie viele
Produkte pro Seite angezeigt werden dürfen. Als Attribute werden die Standardoption (default)
und die aktuell ausgewählte Option (selected) übermittelt. Die untergeordneten option-Blöcke
selbst enthalten auch noch die Suchparameter, um die entsprechende Option auszuwählen.

breadCrumbTrail-Block

In diesem Block werden die bisherigen Schritte des Benutzers (z.B.: Suchanfrage, gesetzte Filter)
aufgelistet. Dieser Abschnitt wird im Normalfall für die Erstellung eines Brotkrümelpfads
verwendet. Dies bietet dem Benutzer die Möglichkeit zu einem früheren Punkt zurück zu springen.

<breadCrumbTrail>
<item nr="0" type="search" value="12">
<searchParams>
... here’s the url for the initial search ...
</searchParams>
</item>
<item nr="1" type="filter" value="DVD"
associatedFieldName="Kategorie">
<searchParams>
... here’s the url for the filter ...
</searchParams>
</item>
</breadCrumbTrail>

singleWordSearch-Block

Dieser Block wird nur angezeigt, wenn aktiviert ist, dass bei keinen Treffern oder schlechten
Ergebnissen nach den einzelnen Worten der Suchanfrage gesucht werden soll. Die einzelnen

Integration 30
Wörter der Suchanfrage werden in diesen Fällen aufgetrennt und es wird einzeln nach ihnen
gesucht, so dass der Benutzer sich das Ergebnis von diesen anzeigen lassen kann. Dieses
Features ist aus Performancegründen standardmäßig deaktiviert.

Jeder Bestandteil, der Ergebnisse liefern würde, wird als item-Element zurückgeliefert, dieses
besitzt als Attribute einen Index (nr), das Wort (word), die zu erwartende Trefferanzahl (count).
Zudem ist es möglich für die einzelnen Begriffe eine bestimmte Anzahl von Vorschauprodukten
anzeigen zu lassen, diese werden optional als jeweiliger record-Tag unter dem item-Tag
zurückgeliefert. Der Aufbau ist identisch mit dem Tag unter records.

<singleWordSearch>
<item nr="0" word="dvd" count="23">
<record ...>...</record>
...
</item>
...
</singleWordSearch>

campaigns-Block

Dieser Block ist nur in der Rückgabe enthalten, wenn Sie das Modul Kampagnen Manager aktiviert
haben und für die abgesetzte Suche eine Kampagne vorhanden ist. Genaueres zu diesem Block
finden Sie in der Dokumentation des Moduls.

asn-Block

Diese Abkürzung steht für „After Search Navigation“ und in diesem Block finden Sie alle
Filtermöglichkeiten um das Suchergebnis weiter einzuschränken. Die ASN enthält Gruppen (z.B.
Preis, Farbe, Kategorie) und deren Filterelemente (z.B. Blau, Rot, Gelb).

<group name="Category" detailedLinks="7" style="DEFAULT"


refKey="spzBMw5jS">
<element name="DVD" count="0" clusterLevel="0" selected="true">
<searchParams>
... here’s the url for deselecting the filter ...
</searchParams>
</element>
<element name="Drama" count="25" clusterLevel="1" selected="false"
previewImage="ImageURL">
<searchParams>
... here’s the url for selecting the filter ...
</searchParams>
</element>
...
</group>
Integration 31
<group name="Price" detailedLinks="5" unit="EUR" style="SLIDER"
refKey="yoBNNMwcx">
<element name="Preis" count="0" clusterLevel="0" selected="false"
selectedMin="2"
selectedMax="1599" absoluteMin="2" absoluteMax="1599">
<searchParams>
... here’s the main url for the slider ...
</searchParams>
</element>
</group>

Ein group-Tag stellt eine Filtergruppe dar, wobei das Attribut name der Name der Gruppe ist. Im
Attribut detailedLinks ist angegeben, wie viel Links detailliert angezeigt werden sollen, alle
anderen werden im Normalfall in einer Selectbox dargestellt. Der Wert lässt sich über das
Management Interface definieren, so dass die Einstellungen einfach geändert werden können. Ist
bei der Gruppe zudem eine Einheit definiert, so ist zusätzlich das Attribut unit vorhanden, dessen
Wert hinter jeden Elementnamen gehängt werden sollte.

Jedes mögliche Filterelement der Gruppe wird in einem element-Tag zurückgegeben. In den
Attributen steckt neben dem Namen (name) auch die Anzahl der zu erwarteten Treffer, falls darauf
eingeschränkt würde (count). Das Attribut clusterLevel gibt an, auf welcher Ebene das Element
ist. Dies kann beispielsweise zur Einrückung bei Kategorien genutzt werden. Der boolsche Wert
bei selected gibt an, ob auf das Element gefiltert wurde oder nicht. Ist das Element ausgewählt,
so wird bei den searchParams die URL zum Aufheben des Filters zurückgegeben. FACT-Finder
bietet die Möglichkeit Vorschaubilder für Filterelemente anzuzeigen, ist dieses Feature aktiv, so ist
die Vorschau-URL für den Filter der Wert von previewImage.

Falls die Gruppe im Management Interface als Slidergruppe konfiguriert wurde, ist der
Attributswert von style im group-Tag SLIDER. Das Element in der Gruppe besitzt dann die
weiteren Attribute selectedMin, selectedMax, absoluteMin und absoluteMax. Die Werte der
Attribute beziehen sich auf die Mindest- und Maximalwerte, die im Schieberegler dargestellt
werden. Wurde noch nicht auf die Gruppe selektiert, so sind die Maximal- und die Minimalwerte
jeweils identisch. Wurde ein Bereich ausgewählt, so wird dieser mit selectedMin und
selectedMax zurückgegeben. Der Wertebereich bei absoluteMin und absoluteMax gibt die
maximale Spanne des Schiebereglers an, so dass unter Umständen wieder ein größerer Bereich
gewählt werden kann.

Soll auf einen Bereich mit dem Regler eingeschränkt werden, so müssen Sie den Wertebereich an
die URL unter searchParams anhängen. Der Wert ergibt sich aus dem Mindest- und dem
Maximalwert, die mit einem Bindestrich getrennt sind (z.B.: 5 - 23).

Das Attribut refKey wird für das FACT-Finder-Tracking verwendet. Siehe separate Dokumentation
„FACT-Finder Tracking Integration“.

Integration 32
paging-Block

In diesem Block finden Sie Informationen darüber auf welcher Seite des Suchergebnisses Sie sich
befinden (Attribut currentPage) und wie viele Seiten es gibt (pageCount). Die Seitenzählung
beginnt mit 1. Zudem wird angegeben, wie viele Produkte maximal auf einer Seite dargestellt
werden (productsPerPage). Der <settings>-Block enthält Werte die im FACT-Finder Backoffice
konfiguriert wurden. Hier finden Sie Einstellung wie viele Paging-Links im Detail angezeigt werden
sollen (<linkCount>, Beispiel: „1 2 3 4 5 6 7 8 … 13“). <nextCaption> enthält den Text für den
Link, der zur nächsten Seite führt. <previousCaption> beschreibt den Link für die vorhergehende
Seite.

Wenn Sie eine weitere Seite aufrufen wollen, so müssen Sie lediglich die gewünschte Seitenzahl
an die URL unter searchParams anhängen.

<paging pageCount="3" currentPage="1" productsPerPage="20">


<searchParams>
... here’s the url which can be used for the paging. You only have to
add the page number at the end ...
</searchParams>
<settings>
<linkCount>9</linkCount>
<nextCaption>&gt;&gt;</nextCaption>
<previousCaption>&lt;&lt;</previousCaption>
</settings>
</paging>

sorting-Block

Falls es mehrere Sortierkriterien gibt, werden diese als sort-Elemente in diesem Block
aufgelistet. Im Attribut name finden Sie entweder den Wert Relevancy oder den entsprechenden
Feldnamen. description ist der Name des Kriteriums, dieser kann auf der Oberfläche angezeigt
werden. Die restlichen Attribute geben Aufschluss über die Sortierreihenfolge (method) und ob
das Kriterium gewählt ist (selected).

<sorting>
<sort name="Relevancy" description="Relevancy" method="desc"
selected="true">
<searchParams>
... Here’s the url for choosing the sorting ...
</searchParams>
</sort>
...
</sorting>

Integration 33
results-Block

In diesem Abschnitt werden die Details zu den gefundenen Artikeln auf dieser Seite
zurückgeliefert. Das Attribut count gibt an, wie viele Artikel insgesamt gefunden wurden.

Jedes record-Tag stellt einen Artikel dar. Dieser hat als Attribute einen Index (nr), die
Datensatz-ID (id) und die Ähnlichkeit zum Suchbegriff (relevancy). Wenn Sie den idsOnly-
Parameter nicht aktiviert haben, enthält ein record zudem die Feldinformationen des Produktes.
Diese werden im darunterliegenden field-Element zurückgegeben. Der Feldname ist hierbei ein
Attribut (name) und der Feldinhalt der Wert des Tags.

<results count="42">
<record nr="0" id="71004851" relevancy="100.0">
<field name="EAN">4011846012801</field>
<field name="Category">DVD</field>
<field name="Description">...here is the description of this
product...</field>
<field name="Title">products title</field>
...
</record>
...
</results>

Integration 34
5.4. Webservice-Integration
Seit der Version 6.5 führt FACT-Finder eine Webservice-Schnittstellen-Stabilisierung ein. Das
heißt, dass die Schnittstelle wie Sie aktuell verfügbar ist auch in neueren Versionen verfügbar
sein wird. Dieses Vorgehen macht FACT-Finder Aktualisierungen für Sie zu einem Kinderspiel. Sie
müssen nichts an Ihrem Code ändern. Wenn Sie allerdings neue Möglichkeiten der neuen
Versionen verwenden wollen, müssen Sie Ihre Integration aktualisieren.

Je nach Schnittstellen-Version, die Sie ansprechen wollen, unterscheidet sich der Pfad zum
Webservice. Wenn Sie beispielsweise die Webservice-Schnittstelle der Version 6.5 ansprechen
wollen, gilt folgendes Schema. Aus diesem können Sie entweder eigene Verarbeitungsklassen
generieren lassen, oder Sie verwenden unsere bereits vorhandenen.

../webservice/ws69/Search?wsdl

Diese Dokumentation soll die Verwendung der Schnittstelle verdeutlichen. Es wird kein
Beispielcode oder Implementierungsdetail vorgestellt, hierfür stellen wir Ihnen gerne neben den
Beispielimplementierungen auch ein JavaDoc bereit.

5.4.1. Suchanfrage absetzen


Um ein Suchergebnis abzufragen gibt es die Methoden getResult.

Die Methoden haben als Parameter zum einen die Suchparameter als Params-Objekt und zum
anderen ein AuthenticationToken-Objekt mit dem Sie die Logindaten übergeben müssen. Im
AuthenticationToken-Objekt müssen der Benutzername, der Zeitstempel und, das nach
vorheriger Anleitung, verschlüsselte Passwort gesetzt sein.

Im Params-Objekt werden alle Einstellungen für die Suchanfrage über einfache Setter-Methoden
gesetzt. Bei den Filtern gibt es zu beachten, dass wenn man eine Mehrfachauswahl in einem Feld
realisieren will, zuerst mehrere FilterValue-Objekte in dem entsprechenden Filter-Objekt
setzen und dieses dann den Parametern hinzufügt.

Sollten Sie spezielle Parameter an FACT-Finder übergeben wollen, durch die eine Sonderlösung
realisiert werden soll, so setzen Sie diese bitte über die customParameters. Diese Fälle sollten
aber mit einem Omikron Techniker im Detail besprochen werden.

5.4.2. Rückgabe verarbeiten


Als Rückgabe der oben genannten Methoden erhalten Sie ein Result-Objekt. In diesem befinden
sich alle Informationen des Suchergebnisses, die Sie für die Darstellung benötigen.

Die wichtigsten Daten sind zum einen die Statusinformationen des Suchergebnisses. Diese
besagen, ob ein Suchergebnis gefunden wurde und ob eine Artikelnummernsuche durchgeführt
wurde. An Hand dieser entscheiden Sie, welche Ergebnisseite Sie dem Benutzer anzeigen. Die

Integration 35
Suchergebnisse vom Typ SearchRecord sind in einer Liste gespeichert und können dadurch
dargestellt werden. Diese Objekte enthalten alle Felder, die in der FACT-Finder Datenbank
gespeichert sind, diese können Sie über getRecord() abfragen.

Bitte entnehmen Sie eine detailliertere Beschreibung der Informationen der XML-Integrations-
Beschreibung oder dem JavaDoc.

Integration 36
5.5. JSON-Integration
Die Rückgabestruktur der JSON-Schnittstelle lehnt sich stark an der XML-Struktur an, jedoch
handelt es sich um JavaScript-Objekte und –Listen die Sie abfragen müssen. Um eine JSON-
Rückgabe zu erhalten, müssen Sie dem format-Parameter den Wert json geben.:

../Search.ff?format=json

5.5.1. Rückgabestruktur

{
"searchResult": {
"resultStatus": "resultsFound",
"resultArticleNumberStatus": "noArticleNumberSearch",
"timedOut": false,
"resultCount": 1238,
"searchTime": 385,
"simiFirstRecord": 9991,
"simiLastRecord": 8791,
"channel": "de",
"searchParams": "... URL to current search result ...",
"searchControlParams": {
"disableCache": false,
"generateAdvisorTree": false,
"idsOnly": false,
"useAsn": true,
"useCampaigns": true,
"useFoundWords": false,
"useKeywords": true
},

"campaigns": [ ...This object holds information about the matching


campaigns... ],

"singleWordResults": null,

"breadCrumbTrailItems": [
{
"associatedFieldName": null,
"searchParams": ""... URL to get back to this step ...",
"text": "bmx",
"type": "search",
"value": "bmx"
},

Integration 37
...
],

"sortsList": [
{
"description": "sort.relevanceDescription",
"name": null,
"order": "desc",
"searchParams": "... URL to select this sort option ...",
"selected": true
},
...
],

"resultsPerPageList": [
{
"default": true,
"selected": true,
"value": 12,
"searchParams": "...URL to select this results per page
count..."
},
...
],

"paging": {
"currentPage": 1,
"pageCount": 104,
"resultsPerPage": 12,
"firstLink": {
"caption": "1",
"currentPage": false,
"number": 1,
"searchParams": "... URL to first page ..."
},
"lastLink": { ... Object for last page ... },
"previousLink": {... Object for previous page ... },
"nextLink": {... Object for next page ... },
"pageLinks": [
{
"caption": "1",
"currentPage": true,
"number": 1,
"searchParams": "... URL to page link ..."
},
Integration 38
...
]
},

"groups": [
{
"groupOrder": 1,
"name": "Kategorie",
"filterStyle": "DEFAULT",
"showPreviewImages": false,
"type": "text",
"unit": "",
"detailedLinks": 5,
"refKey":"MSvsVoY4A",
"elements": [
{
"associatedFieldName": "category1",
"clusterLevel": 0,
"name": "Fahrradteile",
"previewImageURL": null,
"recordCount": 752,
"searchParams": "... URL to select this filter ...",
"selected": false,
},
...
],
"selectedElements": [ ... List with group objects that are
selected ... ],
},
{
"filterStyle": "SLIDER",
"type": "number",
...
"elements": [
{
"absoluteMaxValue": 2999.0,
"absoluteMinValue": 1.99,
"selectedMaxValue": 2999.0,
"selectedMinValue": 1.99,
"selected": false,
"associatedFieldName": "products_price_min",
"clusterLevel": 0,
"name": "Preis",
"previewImageURL": null,
"recordCount": 0,
Integration 39
"searchParams": "... prefix URL to select this filter ..."
}
],
...
],

"filters": [
{
"name": "category",
"substring": false,
"valueList": [
{
"exclude": false,
"type": "or",
"value": "299"
}
]
}
],

"records": [
{
"position": 1,
"id": "221910",
"searchSimilarity": 99.91,
"simiMalusAdd": 0,
"seoPath": "/KHE-Serious-BMX-Spot-221910.html",
"foundWords": [],
"keywords": [... List with SEO keywords ...],
"record": {
"products_retail_price": "299.99",
"category0": "Bikes",
... other fields as key-value-pair ...
}
},
...
]
}

Da die Schnittstelle auf URLs basiert, enthalten die weiterführenden searchParams Elemente
URLs. Bei Filter-Objekten ist dies beispielsweise die URL, die Sie übergeben müssen um auf den
entsprechenden Wert zu filtern bzw. die Filterung aufzuheben.

Integration 40
Statusinformationen

Über die Schlüssel resultStatus und resultArticleNumberStatus erhalten Sie zum einen die
Information, ob ein Ergebnis gefunden wurde und zum anderen ob eine Artikelnummernsuche
durchgeführt wurde (und deren Status). Mögliche Werte sind resultsFound, nothingFound,
errorOccured und noArticleNumberSearch (nur resultArticleNumberStatus).

Sollte während der Suche eine Zeitüberschreitung aufgetreten sein, so erhalten Sie true als Wert
von timedOut zurück. Suchen, die die Zeit überschritten haben wurden abgebrochen und sind
unter Umständen unvollständig.

Um Nachzuvollziehen ob die Suchanfrage korrekt von der FACT-Finder Anwendung


entgegengenommen wurde stehen die Informationen unter channel (=Datenbankname),
searchParams (=URL des Suchergebnisses) und searchControlParams (=Anzeigeoptionen des
Suchergebnisses) zur Verfügung.

Der Wert von resultsCount stellt die Anzahl der insgesamt gefundenen Artikel dar. Unter
searchTime wird die benötigte Suchzeit in ms zurückgegeben. Die Zahlen bei simiFirstRecord
und simiLastRecord geben Aufschluss über die Ähnlichkeit des ersten und letzen Datensatz im
Ergebnis. Der Wertebereich reicht von 0 bis 10000.

campaigns

Die Rückgabeobjekte im Schlüssel campaigns beziehen sich auf das Kampagnen Manager Modul.
Details hierzu finden Sie in der zugehörigen Integrationsdokumentation.

singleWordResults

"singleWordResults": [
{
"word": "rot",
"recordCount": 513,
"previewRecords": [{...list with records, see description
below...}]
},
...
],

Sollte dieses Feature aktiviert sein und die Suche kein Ergebnis liefern bzw. die Ähnlichkeit des
Besten Artikels unter einen eingestellten Grenzwert fallen, so wird nach den einzelnen
Wortbestandteilen der Suchphrase gesucht. Die zurückgegebenen Einzelwort-Objekte haben als
Attribute das jeweilige Wort (word), die Treffermenge die bei einer Suche nach diesem erzielt wird
(recordCount) und optional auch noch eine bestimmte Anzahl von Produkten aus dem jeweiligen
Suchergebnis (previewRecords). Diese haben den identischen Aufbau wie die normalen

Integration 41
Suchergebnisse. Die Anzahl der zurückgegebenen Wörter wird jedoch in einer Konfiguration
begrenzt.

breadCrumbTrailItems

Hier finden Sie Objekte, die zur Generierung eines Brotkrümelpfads genutzt werden können.
Jedes Objekt in dieser Liste entspricht einem Schritt des Pfades. Über den Wert unter type
können Sie feststellen welche Aktion zu diesem Schritt geführt hat. Der Name des Schrittes, was
dem Suchbegriff oder dem Filterwert entspricht, finden Sie als Wert von text. Der Wert des
Schlüssels searchParams ist die URL, die aufgerufen werden muss, um wieder zu diesem Punkt zu
gelangen. Falls die Aktion einem Feld in der Suchdatenbank zugehörig ist (z.B. Filterung auf ein
Feld), so steht der Name des Feldes im Attribut associatedFieldName.

sortsList

Jedes dieser Objekte entspricht einer Sortiermöglichkeit des Ergebnisses. Unter description
finden Sie normalerweise einen Key, der für eine internationalisierte Sprachausgabe verwendet
werden kann. Der Schlüssel name enthält bei der Relevanzsortierung den Wert null, ansonsten
steht hier der Name des Feldes nachdem sortiert werden soll. Die Sortierreihenfolge ist unter
order angegeben, mögliche Werte sind hier asc und desc. Welches Kriterium gewählt ist erfahren
Sie über den Wert von selected. Die URL unter searchParams stellt die, zu dieser Sortierung
gehörende, URL zur Verfügung.

resultsPerPageList

Im Management Interface können Sie konfigurieren, wie viele Artikel auf einer Ergebnisseite
maximal dargestellt werden sollen. Jede konfigurierte Anzahl wird als value eines dieser Objekte
zurückgegeben. Der boolesche Operator unter selected gibt an ob dieser Wert ausgewählt ist,
der unter default gibt an ob es sich bei der Anzahl um den Standardwert handelt. Die URL unter
searchParams stellt die zur Auswahl der Ergebnismenge gehörende URL dar.

paging

Über die Werte, die Ihnen hier zurückgegeben werden, können Sie die Seitennavigation aufbauen.
Die Anzahl der Seiten erhalten Sie über pageCount, die maximale Anzahl Ergebnisse je Seite
unter resultsPerPage. Die Nummer der aktuellen Seite steht unter currentPage.

Bei den Punkten firstLink, lastLink, previousLink, nextLink und pageLinks erhalten Sie
entweder ein Objekt oder eine Liste von Objekten zurück, die jeweils ein Seitenlink beschreiben.
Hier finden Sie den Text, der für die Seite dargestellt werden soll, als Wert des Schlüssels
caption. Anstatt der Seitenzahl (1, 2, 3,…) ist es auch möglich den Produktbereich (1-10, 11-
20,…) generieren zu lassen. Daher kann sich dies vom Wert bei number unterscheiden. Der Wert
von currentPage gibt an ob es sich bei der Seite um die aktuell dargestellte Seite handelt oder
nicht.
Integration 42
group

Unter group finden Sie für jede ASN-Gruppe ein Element, der Name der Gruppe wird als Wert des
Schlüssels name übergeben. Die Anzahl der Filterelemente, die detailliert dargestellt werden
sollen, wird durch den Wert von detailedLinks beschrieben. Im Normalfall werden alle
Elemente, die über diesen Wert gehen in einer Selectbox dargestellt. Wichtig für die Anzeige von
Gruppen ist zudem der Wert, der bei unit gesetzt ist. Dieser sollte hinter jedem Elementwert
dargestellt werden.

In den zwei Listen elements und selectedElements erhalten Sie alle zu der Gruppe gehörende
Filterelemente, auf die eingeschränkt werden kann. Jedes Objekt dieser Listen besitzt
Informationen über dessen Namen (name), die zu erwartende Anzahl nach der Einschränkung
(recordCount), das zugehörige Feld (associatedFieldName) und ob dieses ausgewählt ist oder
nicht. Der Wert von clusterLevel gibt an auf welcher Ebene das Element ist. Dies soll zur
Einrückung bei Kategoriepfaden genutzt werden. Sollen für die Elemente der Gruppe
Vorschaubilder angezeigt werden (showPreviewImages im Gruppen-Objekt), so finden Sie als
Wert von previewImageURL die URL des Vorschaubildes für dieses Element.

Eine Besonderheit gibt es bei ASN-Gruppen, die als Schieberegler dargestellt werden sollen, diese
besitzen als Attribute filterStyle den Wert SLIDER. Zusätzlich besitzt das Element, welches
zurückgeliefert wird die Attribute selectedMinValue, selectedMaxValue, absoluteMinValue und
absoluteMaxValue. Eine genauere Erklärung hierzu finden Sie in der Beschreibung der XML-
Schnittstelle. Möchten Sie auf einen Bereich eingrenzen, so müssen Sie an die URL unter
searchParams noch je einen Parameter für den ausgewählten Bereich anhängen. Der
Parameterwert ergibt sich aus den Bereichswerten getrennt mit einem Bindestrich (z.B.: 5 - 23),
der Parametername ergibt sich durch das Prefix filter und dem zugehörigen Feldnamen. Für ein
Feld mit dem Namen Preis ergeben sich also beispielsweise folgende Parameter:
…&filterPreis=5+-+23.

Neben den filterStyle-Ausprägungen DEFAULT und SLIDER gibt es noch die Werte TREE, für
Gruppen die in einer Baumstruktur angezeigt werden sollen, und MULTISELECT für Gruppen die
eine Mehrfachauswahl unterstützen.

Das Attribut refKey wird für das FACT-Finder-Tracking verwendet. Siehe separate Dokumentation
„FACT-Finder Tracking Integration“.

filters

Unter filters sind die aktuell gesetzten Filter zu finden. Diese sind zwar auch unterhalb von
group über die selectedElements zu finden, müssten daraus aber extrahiert werden. Mit filter
finden Sie alle Informationen an einer Stelle. Dies kann z.B. verwendet werden, um alle aktuell
selektierten Elemente zusammen anzuzeigen.

Integration 43
Die filters sind entsprechend der Datenstruktur im FACT-Finder Kern aufgebaut und enthalten
folgende Informationen: name enthält den Daten-Feldnamen über den der Filter angewendet
wurde, Der boolean Wert in substring besagt, ob es sich hier um einen Filter handelt, der das
ganze Feld gefiltert hat oder nur ein Teil übereinstimmen musste. In der valueList sind dann die
einzelnen Filter-Werte als Objekte hinterlegt. Jedes Filter-Wert Objekt enthält unter value den
eigentlichen Filter-Wert (String), unter exclude als boolean Wert die Information, ob es sich um
einen negativen Filter handelt (zeige alle Produkte die diesen Wert nicht enthalten) und über type
wird mitgeteilt, wie bei mehreren Filter diese miteinander logisch verknüpft wurden
beziehungsweise wie dieser Filter gewirkt hat: inklusiv (or) oder exklusiv (and).

records

In records finden Sie die Suchergebnisse, die auf der gewählten Seite angezeigt werden sollen.
Jedes Suchergebnis-Objekt besitzt die ID des Produktes in der FACT-Finder Datenbank (id),
dessen Position im Ergebnis (position), die errechnete Ähnlichkeit zum Suchbegriff
(searchSimilarity), sowie die Abwertung des Produktes (simiMalusAdd). Die Abwertung eines
Produktes kann viele Faktoren als Ursache haben, der häufigste Grund sind Businessregeln. Die
Feldinformationen eines Produktes finden Sie unter record. In dieser Liste bilden jeweils der
Feldname und dessen Wert ein Paar.

Die Werte unter seoPath und keywords werden durch das SEO Enhancer Modul geliefert, eine
genaue Beschreibung hierfür finden Sie in der zugehörigen Integrationsdokumentation.

Integration 44
5.6. JSONP-Integration
Zusätzlich zur JSON-Schnittstelle verfügt die JSONP-Schnittstelle über die Möglichkeit einen
Callback-Methodennamen mitzugeben, so diese Funktion beim Client aufgerufen wird.

Der Aufruf des JSONP-Interfaces wird über den Parameter format=jsonp durchgeführt, der
Methodennamen wird über den Parameter callback übergeben.

../Search.ff?format=jsonp&callback=METHOD_NAME

Sie können JSONP bei allen Schnittstellen verwenden, die auch JSON unterstützen.

Integration 45
6. Technische Dokumentation anderer
Schnittstellen
In diesem Kapitel finden Sie technische Dokumentationen zu Schnittstellen, die optional
verwendet werden können. Es ist nicht immer notwendig eine dieser zu verwenden, jedoch macht
es in manchen Fällen Sinn dies zu tun.

Dokumentationen der einzelnen FACT-Finder Module (z.B.: Kampagnen Manager,


Recommendation Engine) finden Sie in separaten Dokumenten.

Bitte achten Sie darauf, dass der User den Sie als Authentifizierung an diese Schnittstellen
übergeben, die relevanten Rechte besitzt. Sollte dies nicht der Fall sein, erhalten Sie eine
Fehlermeldung.

6.1. Datenbanken aktualisieren


In den meisten Fällen kümmert sich FACT-Finder um die Aktualität der Daten, je nach Definition
des Updateprozesses wird der Import jedoch nicht von FACT-Finder selbst angestoßen, sondern
über die Importschnittstelle. Dies macht vor allem dann Sinn, wenn die Daten per Push-Methode
zur Verfügung gestellt werden.

Ist in der FACT-Finder Suche eine URL hinterlegt, von der Ihre Exportdaten bezogen werden
können, so ist es möglich diese vor dem Import herunterzuladen, so dass diese eingespielt
werden.

6.1.1. HTTP-Schnittstelle
Einen FACT-Finder Datenimport können Sie mit unten stehender URL anstoßen. Über Parameter
lässt sich auf die Rückgabe und Durchführung Einfluss nehmen:

../Import.ff

Ist kein spezieller Channel definiert, so wird der angestoßene Import für alle Channels
durchgeführt. Möchten Sie nur die Datenbank für einen speziellen Channel aktualisieren, müssen
Sie den Namen des Channels als Wert des Parameters channel übergeben.

Über den Parameter download=true lassen sich die Daten, die importiert werden sollen, zuvor
aktualisieren. Ist in der FACT-Finder Konfiguration keine URL hinterlegt, so hat dieser Parameter
keine Wirkung.

Neben dem Datenimport für die normalen Suchdaten lässt sich auch der Import der Suggestdaten
anstoßen, hierfür muss der Parameter type=suggest übergeben werden.

Integration 46
Die Rückgabe dieser Schnittstelle ist im Normalfall eine HTML-Seite, wird der Parameter
format=xml übergeben, so wird als Rückgabe ein XML-Format geliefert, das sich besser
maschinell verarbeiten lässt. Um nur eine Rückgabe zu erhalten, falls während des Importes ein
Fehler aufgetreten ist, hängen Sie bitte den Parameter quiet=true an (dieser Parameter ist
unabhängig vom format-Parameter). Die Rückgabe hat folgendes Format:

<importProgress>
<currentChannel/>
<progress>0</progress>
<percentage/>
<totalPercentage/>
<finished>false</finished>
<running>true</running>
<status>
<message>... A Status message ...</message>
</status>
<errors>
<message>...An error message...</message>
</errors>
</importProgress>

6.1.2. Webservice-Schnittstelle
Der Pfad zur WSDL hängt, wie auch bei der Suche, von der verwendeten FACT-Finder Version ab.

../webservice/ws69/Import?wsdl

Sie können die Importe über die Methoden startImport, startImports, startSuggestImport
und startSuggestImports aufrufen. Als Rückgabe erhalten Sie eine Map, die als Schlüssel
ERRORS oder STATUS enthalten kann. Als Wert der Schlüssel wird eine Liste mit Meldungen
zurückgegeben. Falls Sie startImports aufrufen, ist die Rückgabe in einer weiteren Map
hinterlegt, die als Schlüssel den jeweiligen Channelnamen enthält.

Ist eine Update-URL für die Produktdaten konfiguriert, so kann über das download-Flag einiger
Methoden die Produktexportdatei zuvor aktualisiert werden. Ist dies nicht der Fall kann für die
Aktualisierung der Produktdaten die Methode downloadProductExport verwendet werden. Diese
Methode nimmt als Parameter den Channelnamen, den Dateinamen (fileType) die URL und die
Benutzerdaten entgegen. Der Dateiname ist in der FACT-Finder Suche fest konfiguriert, der
Standard lautet productData, fragen Sie hier jedoch zur Sicherheit nach bzw. schauen Sie in die
Konfiguration.

Integration 47
6.2. Ändern, Löschen und Hinzufügen von Datensätzen
Über diese Schnittstelle lassen sich einzelne oder mehrere Datensätze in der Suchdatenbank
aktualisieren, löschen oder hinzufügen. Es ist jedoch zu beachten, dass bei einem Datenimport
die über diese Schnittstelle gemachten Änderungen verloren gehen. Als Importgrundlage wird
immer die zur Verfügung stehenden Produktexportdaten Ihres Systems verwendet. Verwenden
Sie diese Schnittstelle also nur um temporär mal schnell einen Datensatz zu korrigieren.

Alle Änderungen sind sofort in der Suche verfügbar. Indem Sie die Datenbank speichern, werden
die gemachen Änderungen auf die Festplatte geschrieben, so dass die Änderungen auch nach
einem Serverneustart verfügbar sind. Der Speichervorgang benötigt jedoch Rechenleistung, so
dass dies nicht bei jedem Änderungsaufruf ausgeführt werden sollte.

6.2.1. HTTP-Schnittstelle
Jede der Aktualisierungs-Methoden, wird über eine andere URL angesprochen:

../Update.ff
../Delete.ff
../Insert.ff

Über den Parameter id müssen Sie die Datensatz-ID des Datensatzes angeben, der entweder
gelöscht oder aktualisiert werden soll. Bei einem neuen Artikel wird über diesen Parameter die ID
in der Datenbank festgelegt.

Wenn Sie einen Artikel aktualisieren oder anlegen, so müssen Sie dessen Felder als Parameter
übergeben. Der Parametername ist hierbei der Feldname und der Parameterwert der zugehörige
Feldwert.

Wird zudem save=true als Parameter übergeben, so wird die Datenbank nach der Änderung
gespeichert. Ohne die Persistierung der Datenbank würden die Änderungen bei einem Server-
oder Anwendungsneustart verloren gehen. Bitte beachten Sie jedoch, dass während dem
Speichern der Datenbank keine Suchen ausgeführt werden können, was zu Verzögerungen im
Suchablauf führen kann. Wir empfehlen daher den Parameter nicht bei jedem Aufruf mitzugeben,
sondern die Übergabe abhängig von der Zeit oder der Anzahl gemachter Änderungen zu
definieren.

6.2.2. Webservice-Schnittstelle
Die WSDL dieser Schnittstelle ist identisch mit der der Importschnittstelle, jedoch werden hierfür
die Methoden insertRecord, insertRecords, deleteRecord, deleteRecords und updateRecord
verwendet.

Allen Methoden werden der Channelname, die Logindaten und das Speichern-Flag übergeben.
Den Löschen-Methoden wird zudem entweder eine ID oder eine Liste mit IDs übergeben, die

Integration 48
gelöscht werden sollen. Die Aktualisierungs- und Hinzufügenmethoden haben weiterhin ein bzw.
mehrere ImportRecord-Objekte.

6.3. Neuladen der Datenbank


Im Normalfall wird eine Suchdatenbank neu geladen, falls diese geändert wurde. Dieses Verhalten
lässt sich zugunsten der Performance deaktivieren. In diesem Fall muss nach Änderungen an der
Datenbank der Lade-Vorgang manuell angestoßen werden.

Es ist möglich die Such- und die Suggestdatenbank sowohl zusammen als auch getrennt neu
laden zu lassen. Zudem können Sie definieren, ob die Datenbanken sofort oder erst bei der
nächsten Anfrage neu geladen werden sollen.

6.3.1. HTTP-Schnittstelle
Je nachdem, welche Parameter und Werte Sie der Schnittstelle übergeben verhält diese sich
anders. Die Basis-URL lautet beispielsweise:

../RefreshDatabases.ff

Über den Parameter do wird definiert, welche Datenbank neu geladen werden soll. Mögliche
Werte sind refreshDatabases um nur die Suchdatenbank neuzuladen,
refreshSuggestDatabases für die Suggestdatenbank und refreshAllDatabases für beide.
Zudem ist es möglich mit refreshDatabasesOnNextRequest beide Datenbanken bei der nächsten
Anfrage neuzuladen.

Bei allen Varianten, bis auf refreshDatabasesOnNextRequest, ist es zudem möglich über den
Parameter channel nur die Datenbank/en für einen bestimmten Channel neu laden zu lassen. Soll
es für mehrere Channels gelten, so müssen die Channelnamen durch Komma getrennt übergeben
werden.

War der Aufruf erfolgreich erhalten Sie eine leere Seite als Rückgabe. Sollte ein Fehler
aufgetreten sein, erhalten Sie eine Fehlerseite.

6.3.2. Webservice-Schnittstelle
Die WSDL dieser Schnittstelle erreichen Sie beispielsweise unter:

../webservice/ws69/RefreshDatabases?wsdl

Die verfügbaren Methoden nehmen neben den Benutzerdaten den gewünschten Channelnamen
bzw. eine Liste mit diesen an.

Integration 49
6.4. Aktualität der Daten prüfen
Die Aktualität der zugrunde liegenden Daten ist bei einem Such-Service enorm wichtig. Um dies
überprüfen zu können, gibt es eine Schnittstelle, die diese Informationen liefert. In der FACT-
Finder-Konfiguration lässt sich für jede Datenbank ein Zeitraum angeben. Wird die Datenbank
innerhalb dieses Zeitraums nicht aktualisiert, betrachtet FACT-Finder diese als veraltet und liefert
über diese Schnittstelle entsprechende Informationen.

6.4.1. Text-Schnittstelle
Diese Funktion ist nur über eine HTTP-Schnittstelle verfügbar und unter folgender URL aufrufbar:

../DatabaseExpiration.ff

Als Parameter übergeben Sie bitte einen entsprechenden Benutzer. Zusätzlich können Sie über
den Parameter channel, diese Schnittstelle speziell für einen oder mehrere Channels anfragen.
Wollen Sie mehrere abfragen, so müssen Sie die Channelnamen durch Komma getrennt
übergeben.

Sind alle Daten aktuell bekommen Sie keine Rückgabe. Sind eine oder mehrere der abgefragten
Datendateien veraltet, erhalten Sie eine Rückgabe die etwa so aussieht:

expired file for channel de: productData - Tue Apr 27 10:06:07 CEST 2010
expired file for channel de: database - Tue Apr 27 10:06:10 CEST 2010

6.4.2. XML-Schnittstelle
Sie können die Aktualitätsinformationen auch in einem XML-Format zurückgeliefert bekommen.
Sollten Sie dies wünschen, müssen Sie beim Aufruf zusätzlich den Parameter format=xml
übergeben. Als Rückgabe erhalten Sie beispielsweise folgendes:

<ff>
<messages channel="de">
<message>images - Wed Mar 23 16:52:52 CET 2011</message>
<message>productData - Fri Apr 08 10:29:07 CEST 2011</message>
...
</messages>
...
</ff>

Die Nachrichten (message) sind pro Channel in messages-Tags gegliedert. Sollte keine Nachricht
existieren erhalten Sie lediglich das ff-Tag zurück.

Integration 50
6.4.3. JSON-Schnittstelle
Wenn der Parameter format=json übergeben wird, so erhalten Sie die Antwort im JSON-Format.

{
"de": [
"productData - Fri Apr 08 10:29:07 CEST 2011",
"images - Wed Mar 23 16:52:52 CET 2011",
...
],
...
}

Die Rückgabe besteht aus einer Map, die als Schlüssel den Channelnamen und als Wert eine Liste
mit den Meldungen hat. Sollten keine Nachrichten vorhanden sein, so ist diese Map leer.

6.5. Channelverwaltung
Über diese Schnittstelle ist es möglich sich alle in der Suchumgebung vorhandenen Channels
anzeigen zu lassen, neue hinzuzufügen und bestimmte zu löschen.

6.5.1. HTTP-Schnittstelle
Um einen der genannten Punkte auszuführen verwenden Sie bitte den Einrichtungsassistenten auf
der Management-Oberfläche.

6.5.2. Webservice-Schnittstelle
Um die Informationen über die Webservice-Schnittstelle abzugreifen müssen Sie folgende WSDL
ansprechen:

../webservice/ws69/ChannelManagement?wsdl

In dieser stehen Ihnen die Methoden getAllChannels, createChannel und deleteChannel zur
Verfügung. Als Parameter erwarten diese Methoden die Benutzerdaten und den Channelnamen
der erstellt bzw. gelöscht werden soll.

6.6. Benutzerverwaltung
Um Benutzer anzulegen, zu löschen und deren Rechte anzupassen wurde diese Schnittstelle
eingeführt. Eine beliebige Anzahl von Rollen lässt sich zudem zu einer Gruppe zusammenfassen,
wodurch Benutzer indirekt mit Rechten ausgestattet werden können. Darüber lässt sich die Pflege
von größeren Benutzeranzahlen mit identischen Rechten vereinfachen.

Integration 51
6.6.1. HTTP-Schnittstelle
Um die Benutzer und Rechte zu verwalten verwenden Sie bitte die Management-Oberfläche.

6.6.2. Webservice-Schnittstelle
Die WSDL dieser Schnittstelle finden Sie unter:

../webservice/ws69/UserManagement?wsdl

Hier gilt es zu beachten, dass das Passwort eines neuen Benutzers nur nach einfacher Variante
verschlüsselt übertragen wird. Es wird daher davon abgeraten dies über eine ungesicherte
Verbindung zu übertragen.

7. Optimierung der Suchergebnisse &


Tipps
FACT-Finder ist darauf ausgelegt, sofort und mit wenig Konfigurationsaufwand gut zu
funktionieren. Um das beste Ergebnis mit FACT-Finder zu erzielen, ist es aber notwendig, der
Suche an manchen Stellen unter die Arme zu greifen. FACT-Finder stellt dazu Werkzeuge bereit,
mit deren Hilfe genau das möglich ist.

Wir empfehlen die Suchergebnisse erst zu optimieren, sobald die technische Integration
abgeschlossen ist. Bitte prüfen Sie bevor Sie mit der Optimierung beginnen, ob die
Anzeigereihenfolge der Suchergebnisse auf der FACT-Finder Oberfläche und Ihrer Oberfläche
identisch ist. Die Reihenfolge der Produkte sollte gleich sein. Sollte dies nicht der Fall sein, finden
Sie zuerst die Ursache für den Unterschied, bevor Sie mit der Optimierung beginnen. Eine häufige
Ursache ist ein Filter-Parameter, der vom Shop standardmäßig an FACT-Finder übergeben wird
(z.B. nach Name). Dies sollte auf keinen Fall so geschehen. FACT-Finder sortiert seine Treffer
nach Relevanz. Eine standardmäßige Sortierung nach einem anderen Kriterium wird irritierende
Ergebnisse liefern.

Ist sichergestellt, dass die Integration und die FACT-Finder Demooberfläche keine
unterschiedlichen Ergebnisse liefern, kann mit der Optimierung begonnen werden. Für diesen Teil
hat es sich bewährt häufig gesuchte Begriffe der letzten Zeit zu testen und deren Ergebnis zu
überprüfen. Sollte FACT-Finder zu einigen keine korrekten bzw. gewünschten Ergebnisse liefern,
so notieren Sie sich diese und beginnen anschließend mit der Optimierung.

Da viele Optimierungen sehr speziell sind, wird in diesem Dokument darauf verzichtet, dies
detaillierter zu erklären. Sie können von Omikron ein Dokument beziehen, dass sich ausschließlich
mit Suchergebnisoptimierungen befasst. Sollten Sie Fragen zu einem konkreten Problem haben,
helfen wir Ihnen gerne weiter.

Integration 52
7.1. Community-Thesaurus
Die meisten Probleme lassen sich entweder über den Thesaurus oder den Präprozessor lösen. Das
Community-Thesaurus-Projekt stellt eine Datenbank mit geprüften Thesauruseinträgen zur
Verfügung. Diese sind nach Thema und Sprache kategorisiert, so dass Sie zu Ihrem Shop
passende Einträge einfach finden und übernehmen können.

7.2. Überblick bewahren


Wir empfehlen Ihnen die Suchergebnisse Ihrer Suche immer mal wieder genauer unter die Lupe
zu nehmen. Hierfür eignen sich die Logfileanalyse und das What’s Hot Modul am Besten. Sie
können im Management Interface einstellen, dass Ihnen automatisch in gewissen Zeitabständen
ein Suchreport per Mail zugeschickt wird. Dieser beinhaltet neben den Topsuchbegriffen auch die
Suchbegriffe, die schlechte oder keine Ergebnisse geliefert haben. Auf diese sollten Sie sich
konzentrieren und daraus Schlüsse ziehen. Ein ebenfalls interessanter Abschnitt in diesem Report
sind die Trendanalysen, also Suchbegriffe, die in letzter Zeit unerwartet häufiger bzw. weniger
gesucht wurden.

Sie können sich ebenfalls benachrichtigen lassen, falls Probleme beim Import aufgetreten sind.

8. Best Practise
Der "Best Practise"-Bereich soll Ihnen Vorschläge und Ideen zur Integration von FACT-Finder
liefern. So sind die Punkte als Richtlinien bzw. Tipps zu verstehen und sollen aufzeigen welche
Möglichkeiten es bei der Umsetzung gibt. Je nach Shop und Branche kann es sein, dass einige der
genannten Punkte unpassend oder schlicht nicht erwünscht sind.

8.1. Allgemein

8.1.1. Usability
 Aus Usability Studien lässt sich entnehmen, dass ein sehr großer Prozentanteil der
Besucher eines Shops direkt über die Suche einsteigt. Wir empfehlen daher die Suchbox
relativ groß und prominent auf der Seite zu platzieren, so dass diese sofort ins Auge fällt.
Zudem sollte auch der Fokus direkt auf die Suchbox gesetzt werden, so dass der Besucher
seinen Suchbegriff eintippen kann.

Integration 53
 Je nach Produktsortiment sollte die Ergebnisdarstellung unterschiedlich sein, haben Sie
beispielsweise Fashion-Produkte, bei denen das Aussehen im Mittelpunkt steht, so eignet
sich eine Galerieansicht am Besten. Vertreiben Sie Produkte bei denen sich der Kunde
eher für Daten interessiert, ist eine Listenansicht empfehlenswerter.

 Stehen dem Besucher auf der Detailseite eines Produktes besondere Zusatzinformationen
zur Verfügung (z.B.: 360° Ansicht, Produktvideos), so sollten Sie diesen bereits auf der
Ergebnisdarstellung darauf hinweisen und eventuell dort schon ausführen lassen können.

 Sollte der Benutzer nicht das gewünschte Produkt finden, so sollte er auf eine "Nichts-
Gefunden"-Seite gelangen, auf welcher er weitere Hinweise oder Produktvorschläge
erhält. Ein andere Möglichkeit ist hier das gesamte Sortiment anzuzeigen ihm aber jedoch
den Hinweis zu geben, dass die Produkte nicht aus seiner Suchanfrage stammen.

 Durch die Integration von weiteren FACT-Finder Modulen können Sie zudem dem Kunden
ein besseres Sucherlebnis bieten. Vor allem das Suggest-, TagCloud- und Kampagnen
Manager-Modul bieten einen deutlichen Mehrwert für den Kunden.

8.1.2. Design
 Die Suchbox sollte dem Besucher der Seite direkt ins Auge springen, daher empfiehlt es
sich diese im links oder zentral im Kopfbereich unterzubringen.

 Wollen Sie gezielt auf Besonderheiten der Produkte hinweisen (Neuheit, Schnäppchen,
Video, etc.) können Sie entsprechende Icons im Suchergebnis anzeigen. Bitte beachten
Sie jedoch, dass sich die Anzahl der verschiedenen Informationen im Rahmen hält, da die
Ergebnisseite sonst schnell überladen aussieht und den Kunden irritiert.

 In manchen Fällen macht es Sinn dem Kunden mehrere Ansichtsmöglichkeiten


anzubieten, so dass er zwischen Listen- und Galerieansicht wählen kann.

8.1.3. Funktion

Artikelnummernsuche anpassen

FACT-Finder kann so eingestellt werden, dass falls der Suchbegriff einem oder mehreren Schemas
entspricht, in einem bestimmten Feld exakt gesucht wird. Dadurch wird bei einer
Artikelnummernsuche nur das exakt passende Produkt zurückgeliefert.

Sollte kein Produkt mit der eingegebenen Artikelnummer übereinstimmen, so sucht FACT-Finder
gewohnt fehlertolerant. Wenn Sie die dadurch gefundenen Artikel nicht anzeigen, sondern
stattdessen die Nichts-Gefunden-Seite darstellen wollen, müssen Sie den Suchrückgabestatus
entsprechend auswerten.

Integration 54
Hinweise auf der "Nichts Gefunden"-Seite anzeigen

FACT-Finder minimiert durch seine Fehlertoleranz und Algorithmen die Häufigkeit einer
erfolglosen Suchanfrage Ihrer Kunden. Gänzlich ausschließen lässt sich dies aber nicht, so dass
Sie sich auch darüber Gedanken machen sollten, was Sie den Benutzern anzeigen wollen, die
nicht fündig werden.

Hier gibt es eine Reihe von unterschiedlichen Ansätzen. In jedem Fall sollte ein Hinweistext
verdeutlichen, dass keine passenden Produkte gefunden wurden und er seine Suchanfrage
nochmals mit anderen Begrifflichkeiten wiederholen sollte.

Auch ist es ratsam dem Kunden auf dieser, normalerweise sehr leeren Seite zusätzliche
Informationen zu bieten. So können die häufigsten Suchbegriffe oder Topseller-Produkte hier
zusätzlich positioniert werden, um das Interesse des Besucher zu wecken. Die FACT-Finder
Module Kampagnen Manager und TagCloud können Ihnen in diesen Fällen behilflich sein.

Nur Suchanfragen von Kunden auswerten

Um gezielter die Suchanfragen Ihrer Kunden auszuwerten, ist es ratsam die Anfragen, die von
Ihnen und Ihren Mitarbeitern gestellt werden aus den Auswertungen auszuschließen. Auch ein
Ausschluss der Suchen, die über bestimmte Werbekanäle kommen, kann Sinn machen.

Um dies umzusetzen übergeben Sie bitte log als zusätzlichen Parameter beim Suchaufruf. Der
Wert des Parameters wird zur Beschreibung der Logfiles verwendet, Sie sehen diese
beispielsweise in der Logfileanalyse. Es eignen sich als Werte beispielsweise "internal" oder
"adwords".

Den Parameter und dessen Wert übergeben Sie wie gewohnt als URL- oder CustomParameter.

Darstellungswechsel anbieten

Sollte Ihr Produktsortiment sehr vielreich sein, so kann es für die Besucher einen Mehrwert
darstellen, wenn diese zwischen der Galerie- und Listenansicht der Ergebnisse wählen können.
Der Wechsel zwischen den Ansichten sollte bequem über ein zugehöriges Icon machbar sein.

Sie haben auch die Möglichkeit, die Ansicht dynamisch anhand von Attributen der Trefferliste zu
wählen. Sollte beispielsweise das Suchergebnis überwiegend aus Fashion-Artikeln bestehen
zeigen Sie per Standard die Ergebnisse in einer Galerieansicht. Stammt der Großteil der Produkte
hingegen aus dem Technikbereich wird dem Kunden eine Listenansicht geboten.

Fail-Over-Fall berücksichtigen

Trotz aller Vorkehrungen und Absicherungen kann es gelegentlich vorkommen, dass die Suche
nicht erreichbar ist. In solchen Fällen sollten Sie dem Benutzer eine aufklärende Fehlerseite
präsentieren, da dies eher auf Verständnis stößt, als eine rein technische Information.

Integration 55
8.1.4. Beispiele

Integration 56
Integration 57
8.2. After Search Navigation

8.2.1. Usability
 Der Kunde sollte die Möglichkeit haben nach einer Vielzahl von Attributen einschränken zu
können, jedoch darf er durch die Anzahl nicht vom eigentlichen Suchergebnis abgelenkt
werden. Sie sollten daher die Möglichkeiten eingrenzen, wofür es sich entweder anbietet
eine Abhängigkeit zwischen den Gruppen zu definieren oder diese nur anzuzeigen, wenn
ein bestimmter Prozentsatz des Suchergebnisses den Attributfilter unterstützt.

 Für numerische Gruppen gelten ein paar Besonderheiten, die es zu beachten gilt. So ist es
vorteilhaft, wenn der Kunde leicht seinen gewünschten Bereich eingrenzen kann, was mit
einem Schieberegler umgesetzt werden kann. Ist dies nicht gewünscht so sollten Ihm
sinnvolle Bereiche vorgeschlagen werden, auf die er filtern kann.

 Je nach Attribut sollten Sie auch eine Mehrfachauswahl erlauben, um dem Besucher
dadurch eine bessere Navigation zu seinem gewünschten Produkt anzubieten.

 Wichtige Filterungsmöglichkeiten (z.B. Kategorie, Hersteller) sollten leicht sicht- und


verwendbar sein, so dass der Benutzer diese problemlos wahrnimmt. Attributsfilter (z.B.
Größe, Speicherkapazität) könnten Sie beispielsweise hingegen in einer Drop-Down-Box
anzeigen.

 Die Sortierung innerhalb der Filterelemente sollte nach Trefferanzahl sortiert sein. Jedoch
gibt es hier auch Ausnahmen, so macht es beispielsweise bei Herstellern Sinn diese
alphabetisch anzuzeigen. Auch bei Modegrößen ist eine logische Sortierung zu empfehlen.

8.2.2. Design
 Die ASN sollte im Normalfall links neben den Suchergebnissen zu finden sein. Eine
Darstellung über dem Suchergebnis kann leicht dazu führen, dass die Produkte nicht mehr
sofort sichtbar sind und der Kunde erst nach unten scrollen muss.

 Es besteht die Möglichkeit sich zu den einzelnen Filtermöglichkeiten Vorschaubilder


zurückliefern zu lassen, die Sie dann präsentieren können. Dadurch erhält der Besucher
schon im Voraus einen groben Blick dafür, was das gefilterte Ergebnis enthält.

 Einige Attribute bieten sich sehr gut für eine bildhafte Darstellung an, wodurch der
Benutzer schnell erkennt um welchen Filter es sich handelt. So können Sie beispielsweise
einen Farbfilter in entsprechenden Farbklecksen darstellen. Auch lassen sich dem
Benutzer durch kleine Icons bei den Filterelementen die Bedeutung (z.B. bei
Modeschnitten) einfach erklären.

Integration 58
8.2.3. Funktion

Attribute aus Beschreibungstexten extrahieren

Sollten in Ihrem System keine Attribute in strukturierter Form vorliegen und diese nur in den
Beschreibungstexten "versteckt" sein, so kann Ihnen das Attribute Generator Modul behilflich
sein. Den dieses Modul extrahiert die relevanten Attribute aus den Kurz- und Langtexten und
bereitet die Produktdaten so für die Filternavigation auf.

Einfache Eingrenzung von numerischen Gruppen

Zur Eingrenzung von numerischen Filterbereichen gibt es viele Ansätze, so können Sie dem
Kunden vordefinierte oder dynamische Preisbereiche, einen Schieberegler und/oder Eingabefelder
anbieten. Als FACT-Finder Kunde steht Ihnen jedoch auch die Möglichkeit zur Verfügung den
eigen entwickelten One Touch Slider zu verwenden. Mit dem es mit nur einem Klick bzw. einer
Mausbewegung möglich ist den gewünschten Bereich zu wählen.

8.2.4. Beispiele

Integration 59
Bei Fragen
Wenn Sie Fragen oder Anregungen zur Dokumentation haben, dann rufen Sie uns einfach an:
07231/12597-701. Oder senden uns eine eMail an support@fact-finder.de. Ein kompetenter
Mitarbeiter hilft Ihnen gerne weiter.

Integration 60