FirstSpirit dient der Erstellung vielseitiger und projektspezifischer Inhalte. Mit dem Modul FirstSpirit Connect for SAP Commerce Cloud wurde die Möglichkeit geschaffen, diese Inhalte in das E-Commerce-Shopsystem SAP Commerce Cloud zu übertragen und dort zu nutzen.
Im restlichen Dokument wird anstelle von "SAP Commerce Cloud" die Kurzform "Commerce Cloud" benutzt. Damit ist immer ausschließlich die SAP Commerce Cloud gemeint. Des Weiteren ist die gesamte Dokumentation auf die Anbindung des B2B Accelerator Storefronts ausgerichtet. Die Erwähnung des Storefronts bezieht sich somit ausschließlich auf den B2B Accelerator Storefront. |
Das Modul kombiniert die funktionalen Stärken beider Systeme, um so die besten Vorteile zu erzielen und ein erfolgreiches Gesamtsystem zu schaffen. Dieses Gesamtsystem besteht aus zwei Bereichen, die parallel und größtenteils entkoppelt voneinander arbeiten:
Ein Bestandteil der Auslieferung des FirstSpirit Connect for SAP Commerce Cloud-Moduls ist das Referenzprojekt FirstSpirit Connect Reference Project. Die vorliegende Dokumentation orientiert sich durchgängig an dem Referenzprojekt und erläutert die mit dem Modul bereitgestellten Funktionalitäten anhand gängiger Anwendungsfälle.
Das vorliegende Dokument richtet sich sowohl an SAP- als auch an FirstSpirit-Entwickler, die mithilfe der Dokumentation die Integration durchführen können sollen. Es wird vorausgesetzt, dass der Leser sicher in der Verwendung FirstSpirits und der Commerce Cloud sowie des CaaS und des Omnichannel Managers ist. |
FirstSpirit Connect stellt Redakteuren die folgenden Möglichkeiten zur Verfügung:
Die entsprechenden Funktionalitäten werden mit der Installation und Konfiguration des Moduls im ContentCreator bereitgestellt.
Die Pflege der Inhalte findet über die gewohnten FirstSpirit-Mittel statt. Mit FirstSpirit vertraute Redakteure benötigen daher keine darüber hinausgehenden Kenntnisse. Die Inhalte werden der Commerce Cloud im Rahmen eines Deployments zum Import bereitgestellt. Diese integriert die Informationen in den Shop.
Für die Commerce Cloud ergibt sich somit bei der Auslieferung redaktioneller Inhalte in den Live-Stand keinerlei Unterschied. Auch wenn der FirstSpirit-Server beispielsweise aufgrund von Wartungsarbeiten heruntergefahren wird, beeinflusst dies die Commerce Cloud nicht.
Die Verbindung von FirstSpirit und der Commerce Cloud wird über eine Architektur aus verschiedenen Komponenten realisiert (vgl. Abbildung Architektur).
Diese Komponenten sind:
die auf dem FirstSpirit-Server installierten Module:
Das Zusammenspiel der einzelnen Komponenten erfolgt immer nach dem folgenden Schema:
Omnichannel Manager JavaScript
ein, das die Bearbeitung und das Highlighting der Inhalte im ContentCreator ermöglicht.
CMS WebServices
-Schnittstelle der Commerce Cloud auf deren Product Catalog zu und fragt so die notwendigen Daten ab.
CMS WebServices
-Schnittstelle.
Es veranlasst die automatische Synchronisation FirstSpirit-seitig erstellter bzw. veränderter Inhaltsseiten im Content Catalog des Staged Storefronts.
Eine automatische Synchronisation der Informationen in den Online Storefront ist stets projektspezifisch zu entwickeln und existiert daher nicht.
Die Commerce Cloud stellt somit die Hauptkomponente dieser Architektur dar. Neben der Bereitstellung sämtlicher Shop-Funktionalitäten fragt sie die in FirstSpirit erstellten bzw. gepflegten Inhalte aus dem Online CaaS ab und liefert sie an die Kunden aus. Zwischen beiden Systemen existiert lediglich eine lose Kopplung. Sie arbeiten hauptsächlich parallel zueinander. Wird der FirstSpirit-Server beispielsweise aufgrund von Wartungsarbeiten heruntergefahren, beeinflusst dies die Commerce Cloud nicht.
Für den Einsatz des FirstSpirit Connect-Moduls müssen die folgenden technischen Voraussetzungen erfüllt sein:
Bei der Verwendung des mitgelieferten Referenzprojekts FirstSpirit Connect Reference Project ist außerdem das BasicWorkflows-Modul in der jeweils aktuellen Version erforderlich.
Die Versionsnummer der Auslieferung unterscheidet sich von den Versionsnummern der einzelnen Bestandteile der Auslieferung.
Sie folgt einem Schema aus zweistelliger Jahreszahl, Monatszahl und der Nummer des Releases innerhalb des jeweiligen Monats (zum Beispiel: |
FirstSpirit dient der Erstellung und Pflege redaktioneller Daten, die in den CaaS übertragen und von diesem persistiert werden. Um die Daten in den Shop zu integrieren, benötigt die Commerce Cloud eine Zugriffsmöglichkeit auf den CaaS. Diese wird durch ein Add-on bereitgestellt, das in der Auslieferung enthalten ist und eine Commerce Cloud-seitige Installation und Konfiguration erfordert. Die Auslieferung enthält außerdem Storefront-Anpassungen, in denen das Add-on bereits eingebunden ist.
Die nachfolgenden Kapitel beschreiben alle notwendigen Schritte für die Installation und die Konfiguration des Add-ons sowie für die erforderlichen Commerce Cloud-seitigen Erweiterungen.
Die Abfrage der CaaS-Inhalte durch die Commerce Cloud erfolgt mithilfe eines Add-ons.
Dieses ist in Form der fscontentconnect-<Versionsnummer>.zip
-Datei ein Bestandteil der Auslieferung und erfordert eine Commerce Cloud-seitige Installation und Konfiguration.
Des Weiteren ist der in dem Add-on enthaltene FirstSpiritPreviewFilter Commerce Cloud-seitig zu aktivieren.
Die nachfolgenden Kapitel beschreiben die Durchführung der notwendigen Schritte.
Vor der Ausführung der nachfolgenden Schritte ist der Commerce Cloud-Server zu stoppen. Andernfalls kann es zu Fehlfunktionen kommen. |
Die für die Installation des Add-ons zunächst zu entpackende zip-Datei enthält das Verzeichnis fscontentconnect
, das in das Verzeichnis $HYBRISHOME/hybris/bin/custom
des Commerce Cloud-Servers zu kopieren ist.
Anschließend ist das Add-on dem Commerce Cloud-Server bekanntzumachen.
Dies erfolgt über einen Eintrag in der localextensions.xml
-Datei im Verzeichnis $HYBRISHOME/hybris/config
.
Eintragung des Add-ons in der localextensions.xml-Datei.
<hybrisconfig> <extensions> [...] <extension name='fscontentconnect' /> </extensions> </hybrisconfig>
Die Installation erfordert im nächsten Schritt das Bauen des Add-ons.
Dies lässt sich über die folgende Befehlsfolge realisieren.
Sie ist im Verzeichnis $HYBRISHOME/hybris/bin/platform
des zuvor gestoppten Commerce Cloud-Servers auszuführen.
// 1. . ./setantenv.sh // 2. ant addoninstall -Daddonnames="fscontentconnect" -DaddonStorefront.yb2bacceleratorstorefront="yb2bacceleratorstorefront" // 3. ant clean all
Während der erste Befehl Umgebungsvariablen setzt, fügt der zweite Befehl das Add-on der Commerce Cloud hinzu, bevor der letzte Befehl die Kompilierung auslöst.
Um die Installation des Add-ons abzuschließen, ist im letzten Schritt ein Update des Commerce Cloud-Servers notwendig.
Das Update ist über den Bereich →
in der hybris administration console
ausführbar.
Die Integration der in FirstSpirit gepflegten Inhalte in den Shop setzt eine Anbindung der Commerce Cloud an den CaaS voraus. Dafür sind nach der Installation des Add-ons sowohl für den Produktivbetrieb als auch für die Vorschau die folgenden Informationen erforderlich:
Sie sind entweder pro verwendeter Site oder in der project.properties
-Datei im Verzeichnis fscontentconnect
des Add-ons anzugeben.
Im Gegensatz zu den Angaben an der jeweiligen Site, beziehen sich die Parameter in der Konfigurationsdatei immer auf alle Sites.
Sie dienen daher als Fallback-Parameter.
Der nachfolgende Code-Block zeigt ein Beispiel für den Inhalt der project.properties
-Datei:
Konfigurationsbeispiel.
caas-online.apikey=abcdefghijklmn1234567890 caas-online.database=MyProject caas-online.host=caas.mydomain.com caas-online.port=80 caas-online.scheme=http caas-staged.apikey=abcdefghijklmn1234567890 caas-staged.database=MyProject caas-staged.host=caas-preview.mydomain.com caas-staged.port=80 caas-staged.scheme=http content-catalog-id=powertoolsContentCatalog fscontentconnect.dev=true
Weitere Informationen zur Verwendung des CaaS sind in der Content as a Service-Dokumentation enthalten. |
powertoolsContentCatalog
).
fscontentconnect.dev
definierbar.
Er steuert die Einbindung der fs-tpp-api
-JavaScript-Bibliothek und ist ausschließlich in der Konfigurationsdatei des Add-ons benutzbar.
Bei Angabe des Werts true
wird das Tag cloud-sap-acc-dev
beim Laden der fs-tpp-api
-Bibliothek verwendet.
Fehlt der Parameter oder wird er auf false
gesetzt, so wird das Tag cloud-sap-acc
verwendet.
Welche Versionen hinter diesen beiden Tags liegen, kann jederzeit auf https://www.npmjs.com/package/fs-tpp-api → Versions eingesehen werden.
Das Tag |
Das FirstSpirit Connect-Modul stellt Redakteuren die Möglichkeit zur Verfügung, Commerce Cloud-Inhalte in FirstSpirit zu pflegen und sie in den Shop zu intergrieren. Dafür ist eine Anbindung der Commerce Cloud an den CaaS notwendig. Die für die Anbindung erforderlichen Parameter sind entweder in der Konfigurationsdatei des zuvor installierten Add-ons oder pro Site definierbar. Das FirstSpirit Connect-Modul ermöglicht somit die Anbindung mehrerer Sites an FirstSpirit.
Die Konfiguration der Sites erfolgt im Commerce Cloud Backoffice.
Unter dem Punkt Verwaltung
besitzt jede Site die auf der folgenden Abbildung sichtbaren Felder.
Die in den Feldern definierten Informationen beziehen sich immer nur auf die entsprechende Site. Existiert für ein Feld keine Eingabe, dient der in der Konfigurationsdatei des Add-ons angegebene Parameter als Fallback-Wert. Da die in der Konfigurationsdatei gespeicherten Angaben für alle Sites gelten, ist auf diesem Weg ein Mischbetrieb umsetzbar. So ist es beispielsweise möglich, den API Key, das Protokoll sowie die URL und den Port des CaaS zentral in der Konfigurationsdatei zu hinterlegen, während der Name der zu verwendenden Datenbank jeweils pro Site angegeben ist. Die Site-spezifischen Parameter überschreiben dabei grundsätzlich die in der Konfigurationsdatei persistierten Daten.
Das zuvor installierte und konfigurierte Add-on FSContentConnect
enthält den FirstSpiritPreviewFilter.
Dieser setzt Sessionvariablen, die für die Funktionalität der Integration notwendig sind.
Er erfordert eine Commerce Cloud-seitige Aktivierung und muss dafür der PlatformFilterChain
hinzugefügt werden.
Die Auslieferung enthält einen B2B Accelerator Storefront, in dessen spring-filter-config.xml
-Datei die firstSpiritPreviewFilter
-Bean der FilterChainList bereits hinzugefügt ist.
Aktivierung des FirstSpiritPreviewFilters.
<alias name="defaultStorefrontTenantDefaultFilterChainList" alias="storefrontTenantDefaultFilterChainList" /> <util:list id="defaultStorefrontTenantDefaultFilterChainList"> [...] <!-- filter to handle requests from FirstSpirit --> <ref bean="firstSpiritPreviewFilter"/> </util:list>
Das in der Auslieferung enthaltene und zuvor installierte sowie konfigurierte Add-on FSContentConnect
stellt die folgenden JSP-Tags bereit:
caas:includeOcmScripts
caas:request
caas:whenFirstSpiritPreview
Sie dienen der Abfrage der CaaS-Inhalte und können innerhalb der gewünschten Commerce Cloud Page Templates benutzt werden.
Die Verwendung des Omnichannel Managers setzt verschiedene JavaScript-Dateien voraus, für deren Einbindung das Tag im Vorschaufall die notwendigen script-Tags erzeugt. Den Vorschaufall ermittelt es dabei über Session-Attribute, die der im Add-on enthaltene FirstSpiritPreviewFilter setzt. Das Tag muss lediglich eingebunden werden.
Einbindung - JSP-Tag caas:includeOcmScripts.
<caas:includeOcmScripts/>
Das Tag ermöglicht die Abfrage von Daten aus dem CaaS.
Dafür benötigt es eine Angabe des zu ermitteltenden Elements sowie der Collection, die das Element beinhaltet.
Diese Informationen lassen sich dem Tag über die Attribute itemId
und collection
übergeben.
Das Ergebnis der Anfrage wird in einer Variablen gespeichert, deren Name das Attibut var
definiert.
Die Variable wird nach einer erfolgreichen Abfrage des angegebenen CaaS-Items im Page-Scope hinterlegt.
Beispiel - JSP-Tag caas:request.
<caas:request itemId="homepage" collection="contentpages" var="homepageItem" /> <!-- Display the revision of the current content --> ${homepageItem['fs_revision_id']}
Der Fall, dass für eine definierte Abfrage keine Inhalte im CaaS existieren, lässt sich mit den bekannten JSP-Mitteln abfangen:
Angabe eines Fallback-Contents.
<c:choose> <c:when test = "${homepageItem != null}"> <!-- do this if we have a response --> <%-- ${homepageItem['slots']['section1']} --%> </c:when> <c:otherwise> <!-- do this when nothing else is true, i.e. output the fallback content. --> </c:otherwise> </c:choose>
Das Tag ermöglicht die Ausführung von Code ausschließlich in der FirstSpirit-Vorschau. Dafür wertet es ein Session-Attribut aus, das der FirstSpiritPreviewFilter setzt. Dieser ist im zuvor installierten Add-on enthalten.
Beispiel - JSP-Tag whenFirstSpiritPreview.
<caas:whenFirstSpiritPreview> <script type="text/javascript"> const PAGE_PREVIEW_DATA = { pageType: '${cmsPage.typeCode}', pagePreviewId: '${pagePreviewId}', pageId: '${cmsPage.uid}', pageTemplate: '${cmsPage.masterTemplate.uid}' }; </script> </caas:whenFirstSpiritPreview>
Weitere Informationen zur Verwendung des CaaS bzw. des Omnichannel Managers sind in der Content as a Service-Dokumentation bzw. in der Dokumentation des Omnichannel Managers enthalten. |
Die Erstellung und Bearbeitung redaktioneller Inhalte findet FirstSpirit-seitig im ContentCreator statt. In diesem ist mithilfe des Omnichannel Managers der Staged Storefront der Commerce Cloud eingebettet. Der Staged Storefront greift seinerseits auf den Preview CaaS zu und ermittelt aus diesem die aktuellen FirstSpirit-Inhalte.
Um die Bearbeitung der Inhalte aus dem Storefront im ContentCreator zu ermöglichen, ist Commerce Cloud-seitig die Einbindung des JavaScripts des Omnichannel Managers erforderlich.
Dafür muss in der javaScript.tag
-Datei eine Einbindung der Taglib und des Tags caas:includeOcmScripts
erfolgen.
Die Auslieferung enthält Storefront-Anpassungen, in denen die Einbindung des Omnichannel Managers bereits erfolgt und somit nicht mehr notwendig ist.
Einbindung der Taglib und des Tags caas:includeOcmScripts.
<%@ taglib prefix="caas" tagdir="/WEB-INF/tags/addons/fscontentconnect/responsive/caas"%> <caas:includeOcmScripts/>
Das FirstSpirit Connect-Modul benötigt für die Abfrage der Informationen aus der Commerce Cloud eine OAuth-Authentifizierung. Daher ist die Konfiguration eines OAuth-Clients innerhalb der Commerce Cloud erforderlich. Für das Anlegen eines solchen OAuth-Clients stehen zwei Möglichkeiten zur Verfügung:
Hybris Admin Console
unter →
)
→ →
INSERT_UPDATE OAuthClientDetails;clientId[unique=true] ;resourceIds;scope ;authorizedGrantTypes ;authorities ;clientSecret;registeredRedirectUri ;firstspirit ;hybris ;extended,previewwebservices;authorization_code,refresh_token,password,client_credentials;ROLE_TRUSTED_CLIENT ;secret; ;
Der für die Vorschau genutzte OAuth-Client benötigt zwingend den Gültigkeitsbereich |
Der Produktreport im ContentCreator zeigt alle Produkte eines Produktkatalogs an und setzt somit voraus, dass die Detailseiten aller angezeigten Produkte aufrufbar sind. Falls Search Restrictions existieren, die den Aufruf der Produktdetailseiten bestimmter Produkte eines Produktkatalogs verhindern, müssen diese um die folgende Bedingung erweitert werden. Innerhalb der Bedingung muss der Platzhalter mit der ID des Produktkatalogs ausgetauscht werden.
Zusätzliche Bedingung innerhalb der Filter-Query einer Search Restriction für Produkte.
-- existing conditions such as approval status check OR ({{ SELECT {PK} FROM {CatalogVersion} WHERE {Catalog} IN ({{ SELECT {PK} FROM {Catalog as c} WHERE {c.id} = '<Catalog Id of product catalog>'}}) AND {version} = 'Staged' AND {PK} IN (?session.catalogversions) }}) IS NOT NULL
Diese zusätzliche Bedingung verhindert, dass die jeweilige Search Restriction im Kontext der Staged
-Version des Produktkatalogs angewandt wird.
Die Konfiguration von Search Restrictions erfolgt im Backoffice unter |
Eine Erweiterung ist auch für Search Restrictions notwendig, die Inhaltsseiten betreffen. Auch hierbei muss innerhalb der Bedingung der Platzhalter mit der ID des Inhaltskatalogs ausgetauscht werden.
Zusätzliche Bedingung innerhalb der Filter-Query einer Search Restriction für Seiten.
-- existing conditions such as approval status check OR ({{ SELECT {PK} FROM {CatalogVersion} WHERE {Catalog} IN ({{ SELECT {PK} FROM {Catalog as c} WHERE {c.id} = '<Catalog Id of content catalog>'}}) AND {version} = 'Staged' AND {PK} IN (?session.catalogversions) }}) IS NOT NULL
Im B2B Accelerator muss beispielsweise die Search Restriction |
Für die Verwendung der Funktionalitäten des FirstSpirit Connect-Moduls ist FirstSpirit-seitig die Installation und Konfiguration unterschiedlicher Komponenten erforderlich. Die folgenden Unterkapitel erläutern die dafür notwendigen Schritte.
Für die Bereitstellung der Funktionen des FirstSpirit Connect-Moduls werden zusätzlich die Module Content as a Service und Omnichannel Manager benötigt, die ebenfalls auf dem FirstSpirit-Server zu installieren sind.
Die Auslieferung enthält nur das FirstSpirit Connect-Modul. Das Content as a Service- sowie das Omnichannel Manager-Modul sind über den Technical Support zu beziehen. |
Öffnen Sie für die Installation der Module den ServerManager
und wählen Sie den Bereich →
.
Im Hauptpanel ist eine Liste aller auf dem FirstSpirit-Server installierten Module zu sehen.
Wählen Sie nach dem Klicken auf contentconnect-sap-module-<Versionnumber>.fsm
, caas-<Versionnumber>.fsm
und fs-tpp-api-<Versionnumber>.fsm
aus
und bestätigen Sie die Auswahl jeweils mit .
Nach der erfolgreichen Installation wurden der Liste die Ordner FirstSpirit Connect for SAP Commerce Cloud
, Content as a Service
und FirstSpirit ThirdPartyPreview
hinzugefügt, die jeweils Alle Rechte
erhalten müssen.
Das Content as a Service-Modul enthält einen Service, über den eine Standardkonfiguration anzugeben ist. Die dafür notwendigen Schritte sind in der Content as a Service-Dokumentation beschrieben. |
Nach jeder Installation oder Aktualisierung eines Moduls ist ein Neustart des FirstSpirit-Servers notwendig. |
Ein Bestandteil der Auslieferung ist das Referenzprojekt FirstSpirit Connect Reference Project, das auf dem FirstSpirit-Server zu installieren ist.
Öffnen Sie dafür im ServerManager
den Import-Dialog über den Menüpunkt →
und wählen Sie über den Button die Datei referenceproject-<VERSIONSNUMMER>.tar.gz
aus ihrem lokalen Dateisystem aus.
Vergeben Sie anschließend einen Projektnamen sowie eine Beschreibung und bestätigen Sie den Import mit .
Nach der erfolgreichen Installation wurde das Projekt der Liste im Hauptpanel hinzugefügt.
Neben den Standardgruppen |
Für den Einsatz des FirstSpirit Connect-Moduls ist eine projektspezifische Konfiguration notwendig. Diese wird über die Projekt-Komponente vorgenommen, die dem mitgelieferten Referenzprojekt bereits hinzugefügt ist.
Öffnen Sie für die Konfiguration den ServerManager
und wählen Sie den Bereich →
.
Im Hauptpanel ist eine Liste aller bereits vorhandenen Projekt-Komponenten zu sehen.
Selektieren Sie den Eintrag FirstSpirit Connect for SAP Commerce Cloud Project Configuration
und öffnen Sie den zugehörigen Konfigurationsdialog über .
Zur Nutzung des FirstSpirit Connect-Moduls müssen außerdem das Content as a Service- sowie das Omnichannel Manager-Modul konfiguriert werden. Die dafür notwendigen Schritte sind in der Content as a Service-Dokumentation bzw. in der Dokumentation des Omnichannel Managers beschrieben. |
Die nachfolgenden Felder dienen zur Konfiguration der Authentifizierung und sind in jedem Reiter vorhanden.
Um die im Reiter |
Der hier angegebene Benutzer muss in der Commerce Cloud folgenden Benutzergruppen angehören:
|
password
oder client credentials
gesetzt werden.
Override general OAuth settings
in den übrigen Tabs gesetzt ist, werden diese Einstellungen mitgetestet.
{code}
verwendet werden.
Der Standardwert ist p/{code}
.
Suchergebnisse im Produkte-Report zeigen standardmäßig im Kennsatz den Produktnamen, im Ausriss die Katalog-Id und eine Miniaturansicht an.
Die Felder Header
, Extract
, Icon
und Thumbnail
ermöglichen eine Konfiguration dieser Informationen.
Dafür stehen neben einfachen Texteingaben die folgenden Platzhalter zur Verfügung:
${catalogId}
${catalogVersion}
${code}
${description}
${name}
${thumbnailMediaUrl}
Allgemein
.
Die Überschreibung erfolgt durch die Aktivierung der Checkbox Override general OAuth settings
.
Andernfalls werden weiterhin die Eingaben aus dem Reiter Allgemein
für die Authentifizierung verwendet.
{code}
verwendet werden.
Der Standardwert ist c/{code}
.
Allgemein
.
Die Überschreibung erfolgt durch die Aktivierung der Checkbox Override general OAuth settings
.
Andernfalls werden weiterhin die Eingaben aus dem Reiter Allgemein
für die Authentifizierung verwendet.