Neo Tech Blog

NEO TECH LBLOG - Praxis-Techblog für IT, Web und Mobile
newsbox-cms-onlineshop

Magnolia CMS und SAP Hybris Commerce in 3 Schritten integrieren

Keine Kommentare

Im E-Commerce wird das Thema Content Marketing und Storytelling immer wichtiger. Oft reichen die CMS-Fähigkeiten eines Shopsystems jedoch nicht aus, um eine echte Customer Experience bieten zu können. Des Weiteren erweist sich die Implementierung mithilfe der shopeigenen CMS-Funktionalitäten häufig als aufwändig und unflexibel. Vor diesem Hintergrund ist es sinnvoll, für eine konvergente Shop-Lösung die E-Commerce-Fähigkeiten des Shopsystems mit den Content-Fähigkeiten eines leistungsfähigen CMS zu integrieren. Welche Schritte dabei zu gehen sind, beschreiben Sebastian Haftmann und Benjamin Fiebig vom Berliner IT-Unternehmen Neofonie anhand einer Integration von Magnolia CMS und SAP Hybris Commerce*.

content-commerce

Bildquelle: Shutterstock

Meist werden Shopsysteme durch eine softwaretechnisch horizontale Integration mittels Export/Import und Nachbildung von Datenstrukturen des Product Information Management (PIM) im CMS erweitert. Bei späteren Änderungen im E-Commerce-System müssen diese dann häufig im CMS “nachgezogen” werden. Um dies zu vermeiden und um eine größere Unabhängigkeit und Flexibilität zu erreichen, bieten sich moderne vertikale Architekturen an. E-Commerce-Größen wie Amazon, Otto und Zalando vertrauen bei ihren komplexen Online-Shops auf einen vertikalen Systemschnitt.

Im Rahmen einer prototypischen Shop-Entwicklung auf Basis von Magnolia CMS und SAP Hybris Commerce* untersuchte Neofonie ein Integrationsvorgehen, bei dem folgende Fragen beantwortet werden sollen:

  • Wie sieht der Zuschnitt des Systems aus, um eine lose Koppelung von fachlichen Zuständigkeiten (Separation of Concerns) zu realisieren?
  • Wie sieht eine flexible und erweiterbare Integration aus?
  • Wie kann ein unabhängiges Continuous Deployment für jede fachliche Komponente ermöglicht werden?

Hauptaugenmerk lag dabei auf der sinnvollen technischen und fachlichen Integration aller beteiligten Komponenten.

Vertikalisierung

Für die Realisierung wird das Gesamtsystem in Vertikalen gemäß identifizierter Fachlichkeiten aufgeteilt. Jede Vertikale stellt eine unabhängige Anwendung dar, die ihr eigenes Frontend (sofern notwendig) und ihre eigene Datenhaltung besitzt. Der Datenaustausch zwecks Integration findet über REST-Schnittstellen statt.

Die Vertikale “Publishing” mit Magnolia CMS als Kern stellt den Web-Content (Bühnen, Impressum, AGB etc.) des Shops zur Verfügung. Gleichzeitig wird hier das Frontend für die Auslieferung des Shops integriert. Layout und Styling sowie die Informationsstruktur der Shop-Website sind an dieser Stelle definiert. Fachlich zuständig für diese Vertikale ist in der Realität meist ein Web-Publishing-Team.

In der Vertikale “Commerce” mit Hybris findet das Product-Content-Management statt. In Hybris wird das Produktdatenmodell, Produktkatalog samt Produktattributen und die Produktmedien gepflegt. Darüber hinaus stellt Hybris Verfügbarkeits-, Warenkorb- und Checkout-Funktionalitäten bereit. Es kann davon ausgegangen werden, dass kommerziell relevante Daten (Produkt-, Preis- und Nutzerdaten) aus vorgelagerten CRM- bzw. ERP-Systemen in Hybris fließen. Auch im Bereich Bestellabwicklung ist Hybris außerhalb dieser prototypischen Betrachtung häufig nur der erste Prozessschritt im Rahmen komplexerer Fulfillment-Systeme. Fachlich betreut wird diese Vertikale von einem Produktmanagement-Team.
Weitere Shop-Funktionalitäten außerhalb der beiden Kern-Fachlichkeiten, wie z.B. eine Produktsuche oder ein Mail-Service für das Handling von E-Mail-Kommunikation des Shops lassen sich über weitere Vertikalen realisieren.

Als Persistenz für beide Anwendungen wurde aus Gründen der Einfachheit jeweils eine dedizierte MySQL-Datenbank verwendet, wobei beide Systeme weitere gängige DB-Technologien unterstützen.

integration-magnoliacms-hybrisContainerisierung mit Docker

Um vertikale Services in der Entwicklung, aber auch im Betrieb gerade mit wachsender Komplexität effizient handhaben zu können, empfiehlt sich das Setup einer Container-gestützten Infrastruktur. Die derzeit beliebte Container-Technologie Docker stellt hierfür ein vielseitiges und flexibles Toolset bereit, das zum einen eine enge Verzahnung von Entwicklung und Betrieb und zum anderen einen hohen Grad an Automatisierung verschiedener beteiligter Prozesse ermöglicht.

Für den vertikalen Ansatz werden alle Vertikalen des Gesamtsystems “dockerisiert”, d.h. in einem oder mehreren Docker-Containern bereitgestellt. Die Dockerisierung ermöglicht, dass jede Anwendung eine eigene und fest definierte Laufzeitumgebung unabhängig von der Deployment-Umgebung besitzt. Die Dockerisierung der monolithischen Architekturen Magnolia und Hybris erlaubt es zudem, beide Anwendungen als Services in einer verteilten Microservice-Architektur einzusetzen. Die einzelnen Vertikalen-Anwendungen werden dafür mit Docker Compose technisch zum Gesamtsystem integriert. Diese Vorgehensweise, aber auch der Inhalt aller Docker-Container ist in allen Entwicklungsschritten identisch. Somit kann unter “Live”-Bedingungen entwickelt und getestet werden.
Ein weiterer Vorteil von Docker ist das schnelle Setup von automatisierten Infrastrukturprozessen mit bestehenden Tools. Continuous Integration und Deployment auf eine Staging- oder Production-Umgebung erfolgt z.B. mithilfe von GoCD automatisiert. Für alle Komponenten können Build- und Deployment-Pipelines vorgesehen werden, die per commit hook auf dem Masterbranch der jeweiligen Komponenten oder manuell ausgelöst werden. Damit werden agile Vorgehen bei der Softwareentwicklung optimal unterstützt.

Integration von SAP Hybris Commerce* in Magnolia CMS

Um einen rudimentären Shop bereitzustellen, müssen insbesondere die Vertikalen „Commerce“ und „Publishing“ funktional miteinander integriert werden. Technisch geschieht dies folgendermaßen: Produktinhalte inklusive Produktmedien werden vom Produktmanagement in Hybris, also der Vertikalen „Commerce“, verwaltet. Auch Warenkorbfunktionalität und Order-Management liegen in der fachlichen Zuständigkeit dieser Vertikalen. Um die genannten Funktionen für andere Services bereitzustellen, wurden in Hybris für Shop-Funktionalitäten wie Produkt-Teaser, Produktdetailseiten und Warenkorb- sowie Checkout-Seite REST-Schnittstellen implementiert, welche semantisches (ungestyltes) HTML zurückgeben – wenn man so will, als Frontend der Vertikale „Commerce“. Dieses HTML wird von Magnolia beim Rendern der jeweiligen Seite in einen generischen Rahmen aus Header und Footer integriert und dabei mit einem Styling gemäß Shop-Design versehen. Die Inhalte und Funktionalitäten aus der Vertikalen „Commerce“ können dabei auf einer Seite beliebig mit redaktionellen Inhalten aus Magnolia kombiniert werden.

Der Vorteil der Integration von semantischem HTML besteht darin, dass Magnolia bezüglich der von Hybris gelieferten Ressourcen komplett agnostisch ist. Die Vertikale „Commerce“, also das fiktive Produktmanagement-Team, allein bestimmt den Inhalt und die Struktur der Produktinhalte und „Commerce“-Funktionen ohne technische Abhängigkeiten zur Vertikalen „Publishing“. Änderungen an den Attributen einer Produktkategorie oder Reihenfolge deren Darstellung können in Hybris realisiert und ausgerollt werden, ohne dass Magnolia involviert ist. Neben dieser visuellen REST-Integration mittels HTML als Datenformat, werden weitere klassische Shop-Funktionalitäten als reiner Datenaustausch per REST/JSON-Integration realisiert. Dazu gehören Shop-Funktionen wie beispielsweise der „In den Warenkorb legen“-Button, der Abruf der Anzahl von Produkten im Warenkorb für die Darstellung in der Navigation und das Ändern der Produktmenge im Warenkorb. Hier wird Hybris jeweils per AJAX direkt aus dem Frontend angefragt. Das Datenaustauschformat ist JSON.

Anwendungsbeispiel: Redaktionelle Produkt-Teaser

Ein Anwendungsbeispiel für eine lose technische Koppelung verschiedener Fachlichkeiten ist die redaktionelle Bestückung von Produkt-Teasern. Im Redaktionssystem von Magnolia, also in der Zuständigkeit der Vertikale “Publishing”, können auf einer beliebigen Shop-Seite Produkt-Teaser platziert werden. Dabei legt das Web-Publishing-Team fest, wie viele Produkt-Teaser angezeigt und welche Produkte jeweils angeteasert werden sollen. Letzteres kann für jeden Produkt-Teaser in einem zweistufigen Auswahldialog festgelegt werden. Die Auswahlfelder für Produktkategorie und Produkt im Dialog werden zur Laufzeit über REST/JSON bei Hybris abgefragt. Damit wird gewährleistet, dass das Web-Publishing-Team immer auf dem aktuellen Produktdatenstand arbeiten kann, ohne auf Zulieferungen (z.B. Produktdatenimporte von Hybris in Magnolia) der Vertikale “Commerce” warten zu müssen. Nach erfolgter Auswahl im Dialog wird die entsprechende Produkt-ID persistiert. Bei Abruf der Seite liefert die Vertikale “Commerce” dann die fertige Produktkachel zu der Produkt-ID.

Fazit

Mit dem gewählten Ansatz der vertikalen Integration lassen sich Entwicklung, Weiterentwicklung und regelmäßige fachliche Betreuung insbesondere der Vertikalen “Commerce” und “Publishing” voneinander gut entkoppeln, sowie technische und organisatorische Abhängigkeiten im Sinne des “Seperation of Concerns” stark reduzieren. Die Frontend-Integration der verschiedenen Komponenten aus den Vertikalen und damit die Auslieferung der fertigen Seite übernimmt die Vertikale “Publishing”.

Insgesamt lässt sich mit dem dargestellten Ansatz eine höhere Unabhängigkeit und Flexibilität realisieren.

  • Erweiterbarkeit: Neue Aspekte einer eCommerce-Lösung (z.B. Zahlungsabwicklung, Tracking etc.) können als eigene Vertikale unabhängig entwickelt werden und über REST-Schnittstellen und dazugehörige Entwicklungstools (Mocks etc.) modular und agil integriert werden.
  • Anpassbarkeit: Änderungen am Produktdatenmodell (z.B. neue Typen, Attribute) können allein durch Entwicklung in der Vertikale “Commerce” realisiert werden. Umgekehrt kann ein Frontend-Makeover, bei dem Layout und Styling der Produktdarstellung verändert wird, allein in der Vertikale “Publishing” realisiert werden. Anpassungen am Gesamtsystem lassen sich aufgrund der weitgehenden technischen Entkoppelung der Vertikalen schneller und risikoärmer realisieren.
  • Flexibilität: Aufgrund der Entkoppelung der Vertikalen und ihrer Integration mittels gängiger Standards kann für jede Vertikale die geeignete Technologie und Vorgehensweise gewählt werden. Die starke Modularität des Gesamtsystems vereinfacht Make or Buy-Entscheidungen und reduziert die Wahrscheinlichkeit von Vendor Lock-Ins. Im Zusammenspiel mit dem Aspekt der  hohen Anpassbarkeit des Systems lassen sich technologische Entscheidung auch zu einem späteren Zeitpunkt im Lebenszyklus des Gesamtsystems treffen bzw. revidieren.

 

* SAP Hybris Commerce ist eine eingetragene Marke von SAP.

Sebastian Haftmann & Benjamin Fiebig

Autor: Sebastian Haftmann & Benjamin Fiebig

Benjamin Fiebig ist Technischer Projektleiter bei der Neofonie und hat seinen Schwerpunkt in Enterprise eCommerce Systemen. Benjamin war zuvor mehrere Jahre in den Bereichen Logistik und eCommerce tätig, u.a. beim Aufbau der Digital Commerce Platform für die Daimler AG. Sebastian Haftmann ist Project Manager bei Neofonie und berät Kunden bei der Planung und Realisierung digitaler Lösungen in den Bereichen Portale, Mobile und eCommerce. In den vergangenen Jahren begleitete er u.a. Olympus Europe, Wort & Bild Verlag sowie Creditreform bei der Umsetzung komplexer Projekte.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.