Im Rahmen eines Kunden-Projekts sollte von der Hybris-internen Solr-Suche zu einer externen Searchengine umgestiegen werden. Der Kunde legte uns mehrere Kandidaten vor, wir konnten ihn von Fredhopper überzeugen.

Unsere Entscheidung pro Fredhopper fußte auf unterschiedlichen Aspekten. Das System bietet eine einfach zu bedienende Benutzeroberfläche, eine hohe Verfügbarkeit und ist dank Cloud-Anbindung hoch skalierbar. Fredhopper ist aber auch mehr, als nur eine einfache Suchmaschine. Die Recommendation-Engine ermöglicht Produktempfehlungen auf der Basis von Nutzerdaten, wodurch eine hohe Personalisierung der präsentierten Ergebnisse erreicht werden kann. Dieser so genannte Ranking-Cocktail kann nach und nach verfeinert werden, so dass unser Kunde langsam an das Thema herangeführt  wird. Betrachtet man nun alle Seiten eines Online-Stores als Suche, eröffnet sich das ganze Potenzial von Fredhopper. Auf jeder Seite im Frontend können personalisierte Empfehlungen angezeigt und die Produkte in der für den Kunden relevanten Reihenfolge angezeigt werden. Hinzu kommen konfigurierbare Kampagnen. Zu guter Letzt half auch unsere Expertise der Anbindung von Fredhopper an Hybris-Systeme bei der Entscheidung zu Gunsten Fredhoppers.

Projektablauf

Vor der Implementierung wurden zunächst die einzelnen Anwendungsfälle skizziert. Kampagnen sollten auf statischen und dynamischen Seiten, im Warenkorb und bei Hinzufügen eines Artikels zum Warenkorb  angezeigt werden. Doch wie soll die Auswahl der anzuzeigenden Produkte getroffen werden? Auf den statischen Seiten verwenden wir von unserem Kunden konfigurierte Kampagnen. Dadurch ist die Darstellung des statischen Content komplett in der Hand unseres Kunden. Bei dynamischen Seiten (Beispielsweise Kategorieseiten) setzen wir auf Kampagnen, welche sich am dargestellten Inhalt orientieren. Im Warenkorb-Prozess finden Produkt- oder Sortiment-spezifische Kampagnen Anwendung, um den Store-Kunden zu weiteren Käufen zu inspirieren.

Im Anschluss an die Spezifizierung der Anwendungsfälle wurde geklärt welche Informationen an das Fredhopper-System übertragen werden. Hierfür waren nicht nur die für die Darstellung des Frontends benötigten Daten relevant, sondern auch die von Fredhopper für die Auswahl der Produkte entscheidenden Informationen. Aus diesen Informationen ergab sich das Datenmodel für Fredhopper.

Die Daten werden über einen täglichen Vollexport aus dem Hybris-System nach Fredhopper importiert, zuzüglich mehrfach am Tag ausgeführten Delta-Exporten. Dieser Export aus dem Hybris-System wurde  bei der Implementierung zuerst angegangen. So konnten wir bei der Umsetzung der Kommunikation zwischen Frontend und Fredhopper bereits von Beginn an auf das spezifizierte Datenmodell zurückgreifen.

Die Kommunikation zwischen den Systemen erfolgt über die von Fredhopper bereitgestellte API, was die Implementierungsgeschwindigkeit deutlich erhöhte. So konnten wir uns auf die Interpretation der von der Schnittstelle gelieferten Daten für das Frontend konzentrieren. Hier konnte der Aufwand durch die Wiederverwendung von bereits im Frontend verwendeter Beans ebenfalls minimiert werden.

Exporte aus Hybris

Ein Hybris CronJob überträgt einmal täglich die kompletten Produktdaten nach Fredhopper. Für den Voll-Export werden alle Daten der Produkte und ihrer Varianten ausgelesen und weitere Werte berechnet. Diese Daten werden dann in eine Tab-getrennte CSV-Datei geschrieben. Zusätzlich werden mehrmals am Tage die Bestände  und Genehmigungsstatus aktualisiert damit im Shop-Frontend nur erhältliche Artikel angezeigt werden.

Ausspielen der Daten im Frontend

Zunächst mussten Services geschrieben werden, um die von Fredhopper gelieferten Daten entsprechend aufzubereiten. Das Ziel die bereits bestehenden Beans der abzulösenden Solr-Suche wiederverwenden zu können führte zu einem großen Umbau der Provider, welche nun alle mit Fredhopperdaten gefüllt werden mussten.  Hierbei ist zu beachten, dass der Shop komplett über die Suche funktioniert, selbst Navigations-Links werden über die Suche realisiert. Soll in der Navigation ein neuer Link erscheinen, so muss im CMS-System nur ein entsprechender Link werden und mit einer Suchanfrage verknüpft werden. Somit hat der Kunde die Navigation in eigener Hand und kann schnell Korrekturen eigenständig durchführen.

Zudem sollten neue Kampagnen mit dem Wechsel der Searchengine umgesetzt werden, bereits existierende auch über Fredhopper konfiguriert werden können.  Die Kampagnen können nun ebenfalls über das CMS gesteuert werden.  Auch hier wurde bei der Darstellung auf bereits existierende Beans und Templates zurückgegriffen.  Die Komplexität lag hier in der Art einzelner Kampagnen,  die automatisiert bestimmte Produkte anhand von definierten Parametern ausschließen sollten.