Entdecken Sie eBooks
Kategorien
Entdecken Sie Hörbücher
Kategorien
Entdecken Sie Zeitschriften
Kategorien
Entdecken Sie Dokumente
Kategorien
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
5.3.1. Rückgabestruktur....................................................................................... 28
5.5.1. Rückgabestruktur....................................................................................... 37
Integration 3
6.5.2. Webservice-Schnittstelle ............................................................................. 51
8.1.2. Design...................................................................................................... 54
8.2.2. Design...................................................................................................... 58
Integration 4
1. Einleitung
Dieses Dokument soll Ihnen einen Überblick verschaffen, wie Sie FACT-Finder in Ihr
Shopsystem integrieren können.
Die Integration der Suche lässt sich grob in folgende Punkte unterteilen:
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.
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.
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.
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.
3. Verarbeiten des Suchergebnisses: Das zurück gelieferte XML muss vom Shopsystem
interpretiert (geparst) 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.
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.
Aufwand für
Gering Mittel Mittel Mittel
Shopbetreiber
Nötige
Gering Hoch Hoch Mittel
Programmierkenntnisse
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.
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
BackupManager
Besitzt ein Benutzer diese Rolle, so kann er Sicherungskopien der Konfiguration wiederherstellen.
CacheManager
CampaignManager
Durch diese Rolle ist es dem Benutzer erlaubt Kampagnen zu erstellen und zu verwalten.
ConfiguratorManager
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
InstallManager
LanguageManager
LogfileAnalyzerManager
MayChangePassword
MessagesManager
NotificationManager
PreprocessorManager
RecommendationEngineManager
Wenn ein Benutzer diese Rolle besitzt kann er alle zur Recommendation-Engine gehörenden
Einstellungen treffen.
SearchInterfaceUser
SearchManager
ShowHelpSection
SuggestManager
Integration 14
Durch diese Rolle wird dem Benutzer erlaubt Suggesteinstellungen zu ändern und den
Suggestimport anzustoßen.
ThesaurusManager
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
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.
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.
FACT-FINDER1270732953523d8118f1bb6bd9998031053176a2c4beeFACT-FINDER
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
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
Integration 19
Rot~~~Blau. Diese Objekte hinzugefügt
Trenn-Strings können in werden.
der config.xml
konfiguriert werden.
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
Integration 20
5.1.5.2. Parameter für die Steuerung des Such-Ablaufs
Integration 21
Sie in dessen
Dokumentation.
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.
5.1.5.3. Authentifizierungs-Parameter
Zu dem übergebenen
Benutzer muss das
Passwort übertragen AuthenticationToken
Passwort password=HASH
werden. Dieses muss nach .setPassword
vorher erklärtem Schema
verschlüsselt werden.
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.
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.
Die nachfolgenden Parameter sind nur für Aufrufe über XML/JSON relevant.
Beschreibung URL-Parameter
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.
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.
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.
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.
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>>></nextCaption>
<previousCaption><<</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>
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).
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.
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.
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.
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
},
"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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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