28.07.2020 | Christian Eiden | Commerce | Content | Amplience

Integration von SAP CX und Amplience

Integration von SAP CX und Amplience

Immer wieder erleben wir in SAP CX (Commerce) Projekten, dass der Wunsch nach einem alternativen Content Management System im Raum steht. SAPs Smart Edit bietet zwar durch seine tiefe Integration mit dem Accelerator, als auch mit Spartacus, einen hohen Komfort für seine Nutzer, ist aber nicht für alle denkbaren Szenarien das Werkzeug der Wahl.

Sobald Content von verschiedenen Applikationen konsumiert wird, bietet es sich an, Headless Content Management Systeme genauer anzusehen. Matthias Forberg hat in seinem Artikel “Headless - wer wird denn gleich den Kopf verlieren?" die Vor- und Nachteile dieses Ansatzes beleuchtet.

Headless mit Amplience

Wir haben uns die Möglichkeiten der Integration von SAP CX mit Amplience etwas genauer angesehen und hierzu eine quelloffene Integration unter Apache 2.0 Lizenz veröffentlicht.

GitHub: neteleven/sap-cx-amplience

Dabei waren für uns einige Punkte besonders wichtig:

  • Es existiert noch keine Integration mit Amplience Dynamic Content, somit ergänzen wir die bestehende Integration, die ihren Schwerpunkt auf Medien hat
  • Der Fokus liegt nicht auf der Erstellung von Seitenstrukturen, sondern auf der Anreicherung von bestehenden Seiten, wie Produkt- oder Kategorieseiten
  • Die Möglichkeit Kampagnen mittels „Editions“ abzubilden soll unterstützt werden, ebenso wie die zeitliche Steuerung
  • Die Integration soll möglichst wenig Abhängigkeiten aufweisen, um in vielen Szenarien einsetzbar zu sein
  • Eine Integration in den Accelerator und in Spartacus soll möglich sein

Herausforderung

Ein zentraler Punkt bei der Integration eines Headless CMS ist, dass eine Zuordnung von Inhalten aus dem konsumierenden System in die Seitenstruktur nicht immer ganz einfach ist. Dies kommt daher, dass der Content in der Regel neutral im CMS angelegt ist und nicht bereits nach Seiten strukturiert ist.

In unserer Integration ist die Anreicherung von Produkt- und Kategorieseiten um zusätzliche Inhalte ein zentraler Punkt. Somit liegt es nahe, dass ein Kennzeichner, wie z.B. eine Produkt- oder Kategorie-ID für den Lookup in Amplience verwendet wird. Dieser Kennzeichner alleine reicht allerdings noch nicht aus, wenn es möglich sein soll, mehrere Inhalte an unterschiedlichen Stellen einer Seite einzubinden.

Um diese Anforderungen zu erfüllen und gleichzeitig eine hohe Flexibilität zu ermöglichen, verwenden wir für den Lookup gleich drei Werte:

SAP CX und Amplience

  • Position bezeichnet die Position des Slots innerhalb SAP CX
  • Context wird zur Unterscheidung von z.B. Produkten und Kategorien verwendet
  • Lookup ist ein Code, nach dem gesucht werden soll

Art der Integration

Wir haben uns im ersten Schritt dafür entschieden, eine klassische, backendseitige Integration in den Accelerator zu erstellen. Dabei wird, gesteuert durch die Verwendung von Webhooks, der Inhalt der Amplience Slots in SAP CX importiert.

Importiert werden immer nur komplette Slots, einzelne Content Items werden nicht unterschieden. Es ist möglich, alleinstehende Slots zu verwenden, oder aber die von Amplience angebotenen Editions, die eine zeitliche Planung von Events bzw. Kampagnen ermöglichen.

Der Inhalt kann durch Amplience mit Hilfe des Content Rendering Services bereits komplett vorgerendert werden. Dieses vorgerenderte Markup wird, zusätzlich zum JSON, in SAP CX gespeichert.

Das von uns verwendete Datenmodell hat so gut wie keine Abhängigkeiten zu bestehenden Datenmodellen und kann daher in fast jedem System problemlos verwendet werden, Updates stellen kein Problem dar.

Ein schlankes Accelerator Addon ist zur Demonstration einer JSP Integration zwar Teil des Sourcecodes, ist aber lediglich als Beispiel gedacht. Der generische Aufbau erlaubt es, Amplience auf viele Arten zu nutzen – so kann z.B. anhand der in SAP CX bekannten ID eines Slots jederzeit mit einem JS Frontend live auf den Content zugegriffen werden.

Use Cases

Die folgenden Use Cases sind gut für die Integration mit Amplience geeignet:

  • Anreicherung von festen Seiten wie z.B. der Homepage
  • Die Pflege von geteilten Inhalten wie z.B. im Footer oder Header
  • Anreicherung von z.B. Produkt und Kategorieseiten
  • Fallbackinhalte, wenn ein angereicherter Inhalt nicht verfügbar ist

Weitere Szenarien sind natürlich jederzeit denkbar.

Fazit

Mit der soeben vorgestellten Integration ermöglicht neteleven eine einfache aber trotzdem flexible Möglichkeit, Inhalte aus Amplience in SAP CX zu verwenden. Weitere Informationen finden sich in der Dokumentation auf GitHub.

Wir können Sie unterstützen.