ContentConnect

For SAP Commerce Cloud

e-Spirit AG

19.06.2020
Inhaltsverzeichnis

1. Einleitung

FirstSpirit dient der Erstellung vielseitiger und projektspezifischer Inhalte. Mit dem Modul ContentConnect 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:

FirstSpirit-seitige Komponenten
Diese Komponenten dienen der Erstellung und Pflege der redaktionellen Daten. Sie werden im JSON-Format und in Form von Medien an die jeweilige Content as a Service-Instanz übermittelt und aus dieser von der Commerce Cloud abgefragt.
Commerce Cloud-seitige Komponenten
Diese Komponenten dienen der Einbindung der in FirstSpirit erstellten redaktionellen Inhalte. Die Commerce Cloud integriert diese Daten in den Shop.

Ein Bestandteil der Auslieferung des ContentConnect For SAP Commerce Cloud-Moduls ist das Referenzprojekt ContentConnect 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 ist kein Handbuch für FirstSpirit-Redakteure.

Es wird vorausgesetzt, dass der Leser sicher in der Verwendung FirstSpirits und der Commerce Cloud sowie des CaaS und des Omnichannel Managers ist.

1.1. Funktionsumfang

ContentConnect stellt Redakteuren die folgenden Möglichkeiten zur Verfügung:

  • Erstellung nativer Commerce Cloud-Inhalte mit FirstSpirit
  • Zugriff auf Produkt- und Kategorieinformationen
  • gleichzeitige Darstellung von Shop-Elementen und redaktionellen Inhalten in der FirstSpirit-Vorschau
  • Übertragung von Inhalten in die Commerce Cloud

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.

1.2. Architektur

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:

    • ContentConnect
    • Omnichannel Manager
    • Content as a Service
  • Commerce Cloud-Instanz
Architektur
Abbildung 1. Architektur


Das Zusammenspiel der einzelnen Komponenten erfolgt immer nach dem folgenden Schema:

  1. 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.
  2. Der Staged Storefront greift seinerseits auf den Preview CaaS zu und ermittelt aus diesem die aktuellen FirstSpirit-Inhalte. Gleichzeitig bindet er das Omnichannel Manager JavaScript ein, das die Bearbeitung und das Highlighting der Inhalte im ContentCreator ermöglicht.
  3. Die Bereitstellung von Produkt- und Kategorieinformationen erfolgt über einen Report. Dieser greift dafür über die CMS WebServices-Schnittstelle der Commerce Cloud auf deren Product Catalog zu und fragt so die notwendigen Daten ab.
  4. Neben dem Report nutzt außerdem das Modul die 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.
  5. Die Übertragung der freigegebenen redaktionellen Inhalte in den Online CaaS erfolgt mithilfe einer Generierung. Dieser macht die Inhalte für den Online Storefront verfügbar, über den sie in den Shop integriert werden.

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.

1.3. Technische Voraussetzungen

Für den Einsatz des ContentConnect-Moduls müssen die folgenden technischen Voraussetzungen erfüllt sein:

  • die Module ContentConnect und Content as a Service in der jeweils aktuellen Version
  • Omnichannel Manager in der Version 1.2.23 oder höher
  • FirstSpirit 2018-11 (Legacy oder Isolated Modus)
  • Java 8 oder 11
  • SAP Commerce Cloud 18.08

Bei der Verwendung des mitgelieferten Referenzprojekts ContentConnect Reference Project ist außerdem das BasicWorkflows-Modul in der jeweils aktuellen Version erforderlich.

2. Commerce Cloud - Installation und Konfiguration

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.

2.1. Add-on

Die Abfrage der CaaS-Inhalte durch die Commerce Cloud erfolgt mithilfe eines Add-ons. Dieses ist in Form der contentconnect-<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.

2.1.1. Installation des Add-ons

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 muss das Add-on dem Commerce Cloud-Server bekannt gemacht werden. 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 letzten 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.

2.1.2. Konfiguration des Add-ons

Nach der Installation erwartet das Commerce Cloud-Add-on die Definition der folgenden Parameter:

  • caas-online.apikey / caas-staged.apikey
  • caas-online.database / caas-staged.database
  • caas-online.host / caas-staged.host
  • caas-online.port / caas-staged.port
  • caas-online.scheme / caas-staged.scheme
  • content-catalog-id
  • fscontentconnect.dev (optional)

Bis auf fscontentconnect.dev dienen diese der Verwendung des CaaS und sind in der Commerce Cloud als Konfigurationsparameter anzugeben. Die Konfiguration ist sowohl für den Produktivbetrieb als auch für den Einsatz des CaaS für die Vorschau notwendig.

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

apikey
Der Zugriff auf die im CaaS gespeicherten Daten setzt einen gültigen API Key voraus, der Leserechte auf das entsprechende Projekt benötigt. Er kann im CaaS Admin Interface generiert werden und ist an dieser Stelle anzugeben.
database
Der Wert dieses Parameters entspricht dem Namen des im CaaS gespeicherten Projekts. Dieser lässt sich über das CaaS Admin Interface ermitteln.
host
Dieser Parameter erfordert die Angabe des Hostnames, unter dem der CaaS erreichbar ist.
port
Dieser Parameter erfordert die Angabe des Ports, unter dem der CaaS erreichbar ist.
scheme
Mit diesem Parameter ist anzugeben, ob die Kommunikation mit dem CaaS via http oder https erfolgen soll.

Weitere Informationen zur Verwendung des CaaS sind in der Content as a Service-Dokumentation enthalten.

content-catalog-id
Der Wert dieses Parameters entspricht der Id des eingesetzten Content-Katalogs (z. B. powertoolsContentCatalog).
fscontentconnect.dev
Dieser Parameter steuert die Einbindung der fs-tpp-api-JavaScript-Bibliothek. Bei Angabe von 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 cloud-sap-acc-dev wird durch e-Spirit an jedem DEV/QA-Patchday auf die aktuellste kompatible Version der fs-tpp-api-Bibliothek gehoben. Das Tag cloud-sap-acc respektive an jedem PROD-Patchday.

2.1.3. Aktivierung des FirstSpiritPreviewFilters

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 entsprechende Konfiguration bereits vorgenommen ist: Innerhalb der Datei erfolgt die Definition der Bean firstSpiritPreviewFilter, die der FilterChainList hinzugefügt wird.

Aktivierung des FirstSpiritPreviewFilters. 

<!-- register filter bean from fscontentconnect addon-->
<bean
 id="firstSpiritPreviewFilter"
 class="com.espirit.moddev.contentconnect.sap.filters.FirstSpiritPreviewFilter" >

   <property name="sessionService" ref="sessionService"/>
   <property name="configurationService" ref="configurationService" />
   <property name="cmsPreviewService" ref="cmsPreviewService" />

</bean>

<alias
 name="defaultStorefrontTenantDefaultFilterChainList"
 alias="storefrontTenantDefaultFilterChainList" />
<util:list id="defaultStorefrontTenantDefaultFilterChainList">

   [...]
   <!-- filter to handle requests from FirstSpirit -->
   <ref bean="firstSpiritPreviewFilter"/>

</util:list>

2.1.4. JSP-Tags

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.

caas:includeOcmScripts

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/>

caas:request

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>

caas:whenFirstSpiritPreview

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.

2.1.5. Einbindung des Omnichannel Managers im Storefront

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/>

2.2. OAuth-Konfiguration

Das ContentConnect-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:

  • automatisch per Import des nachfolgenden ImpExes
    (in der Hybris Admin Console unter ConsoleImpEx Import)
  • manuell im Backoffice unter SystemOAuthOAuth Clients
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 previewwebservices.

2.3. FlexibleSearch Restrictions

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 SystemPersonalization. Im B2B Accelerator muss beispielsweise die Search Restriction Frontend_ProductApprovalStatus wie beschrieben angepasst werden.

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 Frontend_PageApprovalStatus wie beschrieben angepasst werden.

3. FirstSpirit - Installation und Konfiguration

Für die Verwendung der Funktionalitäten des ContentConnect-Moduls ist FirstSpirit-seitig die Installation und Konfiguration unterschiedlicher Komponenten erforderlich. Die folgenden Unterkapitel erläutern die dafür notwendigen Schritte.

3.1. Installation der Module

Für die Bereitstellung der Funktionen des ContentConnect-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 ContentConnect-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 Server-EigenschaftenModule.

Server-Eigenschaften - Modulinstallation
Abbildung 2. Server-Eigenschaften - Modulinstallation


Im Hauptpanel ist eine Liste aller auf dem FirstSpirit-Server installierten Module zu sehen. Wählen Sie nach dem Klicken auf Installieren nacheinander die contentconnect-sap-module-<Versionnumber>.fsm, caas-<Versionnumber>.fsm und fs-tpp-api-<Versionnumber>.fsm aus und bestätigen Sie die Auswahl jeweils mit Öffnen. Nach der erfolgreichen Installation wurden der Liste die Ordner ContentConnect, 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.

3.2. Projekt-Import

Ein Bestandteil der Auslieferung ist das Referenzprojekt ContentConnect Reference Project, das auf dem FirstSpirit-Server zu installieren ist. Öffnen Sie dafür im ServerManager den Import-Dialog über den Menüpunkt ProjektImportieren und wählen Sie über den Button Lokal die Datei ContentConnectReferenceProject.tar.gz aus ihrem lokalen Dateisystem aus. Vergeben Sie anschließend einen Projektnamen sowie eine Beschreibung und bestätigen Sie den Import mit Ja. Nach der erfolgreichen Installation wurde das Projekt der Liste im Hauptpanel hinzugefügt.

Importiertes Projekt im ServerManager
Abbildung 3. Importiertes Projekt im ServerManager


Neben den Standardgruppen Everyone und Administrators existieren im Referenzprojekt vier weitere Benutzergruppen: Editors, ChiefEditors, Developers und ProjectAdmins. Diese Gruppen besitzen verschiedene Rechte, die entsprechend ihrer Aufgaben gewählt und für die verschiedenen Verwaltungen definiert wurden. Benutzer außerhalb dieser Gruppen sind standardmäßig nicht berechtigt das Referenzprojekt zu verwenden.

3.3. Konfiguration der Projekt-Komponente

Für den Einsatz des ContentConnect-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 Projekt-EigenschaftenProjekt-Komponenten.

Server-Eigenschaften - Projekt-Komponenten
Abbildung 4. Server-Eigenschaften - Projekt-Komponenten


Im Hauptpanel ist eine Liste aller bereits vorhandenen Projekt-Komponenten zu sehen. Selektieren Sie den Eintrag ContentConnect Project Configuration und öffnen Sie den zugehörigen Konfigurationsdialog über Konfigurieren

Zur Nutzung des ContentConnect-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.

Projekt-Komponente - Allgemein
Abbildung 5. Projekt-Komponente - Allgemein


URI
Die angegebene URI ist die Server-URI zur Commerce Cloud-Instanz.
Connection timeout (sec)
Dieser Parameter bezeichnet die Zeitspanne (in Sekunden), bis der Verbindungsaufbau für die Kommunikation mit der Commerce Cloud abgebrochen wird.
Connection retries
Dieser Parameter definiert die Anzahl der Verbindungsversuche für die Kommunikation mit der Commerce Cloud.

Die nachfolgenden Felder dienen zur Konfiguration der Authentifizierung und sind in jedem Reiter vorhanden. Um die im Reiter Allgemein getätigten Einstellungen zu überschreiben, existiert in den übrigen Tabs die Möglichkeit, den Haken Override general OAuth settings zu setzen.

Auth Server URI
Dieser Parameter entspricht dem Standard-Endpunkt für die OAuth-Authentifizierung (relativ zur URI der Commerce Cloud-Instanz).
Username
In diesem Feld wird der Standardbenutzer für die OAuth-Authentifizierung eingetragen.
Password
In diesem Feld ist das Passwort des zuvor angegebenen Benutzers einzufügen.
OAuth Client ID
Dieses Feld dient der Angabe der Standard-Client-ID, die für die OAuth-Authentifizierung genutzt wird. Sie wirkt sich auf die Rechte der Nutzer aus.
OAuth Client Secret
Für die OAuth-Authentifizierung wird ein Secret genutzt, welches zu der angegebenen Client-ID passen muss.
OAuth Grant Type
Die OAuth-Authentifizierung benötigt abschließend einen Standard-Grant-Typ. Dieser kann entweder auf password oder client credentials gesetzt werden.
Teste OAuth Einstellungen
Dieser Button testet den Verbindungsaufbau anhand der angegebenen Authentifizierungseinstellungen. Falls der Haken Override general OAuth settings in den übrigen Tabs gesetzt ist, werden diese Einstellungen mitgetestet.
Projekt-Komponente - Produkt DAP
Abbildung 6. Projekt-Komponente - Produkt DAP


Collection
In diesem Feld wird der Endpunkt für die Abfrage der Produktdaten festgelegt.
PDP URL
Hier ist die URL einer Produktdetailseite anzugeben. Erlaubt sind sowohl absolute als auch relative URLs. Als Platzhalter für den Produktcode kann {code} verwendet werden. Der Standardwert ist p/{code}.

Sämtliche Authentifizierungseinstellungen in diesem Reiter werden genutzt, sobald der Parameter Override general OAuth settings gesetzt ist. Andernfalls zieht das Produkt DAP zur Authentifizierung alle Einstellungen aus dem Reiter Allgemein heran.

Projekt-Komponente - Kategorie DAP
Abbildung 7. Projekt-Komponente - Kategorie DAP


Katalog Id
Aus dem an dieser Stelle definierten Katalog werden die Kategorien für das Kategorie-DAP bezogen.
Katalog Version
Für die Konfiguration ist die Version des Produktkatalogs notwendig, aus dem die Kategorien für das Kategorie-DAP bezogen werden.
CDP URL
An dieser Stelle ist die URL einer Kategoriedetailseite einzupflegen. Erlaubt sind sowohl absolute als auch relative URLs. Als Platzhalter für den Kategoriecode kann {code} verwendet werden. Der Standardwert ist c/{code}.

Sämtliche Authentifizierungseinstellungen in diesem Reiter werden genutzt, sobald der Parameter Override general OAuth settings gesetzt ist. Andernfalls zieht das Kategorie DAP zur Authentifizierung alle Einstellungen aus dem Reiter Allgemein heran.

Projekt-Komponente - Vorschau
Abbildung 8. Projekt-Komponente - Vorschau


Language
Das Kürzel der gewünschten Sprache konfiguriert an dieser Stelle die Sprache des erzeugten Vorschautickets.
Resource Path
Dieses Feld definiert die URL der Ressource des erzeugten Vorschautickets.
Page Id
Dieses Feld gibt die ID der Seite des erzeugten Vorschautickets an.
Catalog Versions
An dieser Stelle sind die Katalogversionen des erzeugten Vorschautickets hinzuzufügen.

Die bisher genannten Einstellungen im Reiter Vorschau korrespondieren zu den Parametern eines Vorschautickets in der Preview API der Commerce Cloud. Ein solches Ticket wird von FirstSpirit angefragt, um die Vorschau eines geschützten Storefronts im ContentCreator zu ermöglichen. Die Auslieferung enthält die Datei fs-preview-session-initializer.js, die durch das caas:includeOcmScripts-Tag bei Bedarf eingebunden wird und durch den Aufruf einer Executable die Erzeugung eines Vorschautickets anstößt. Bei Bedarf können diesem Aufruf zusätzliche Parameter übergeben werden, die die hier gezeigten Einstellungen des Reiters Vorschau überschreiben. Die Struktur des Parameter-Objekts muss dabei der eines Vorschautickets der Preview API entsprechen.

Sämtliche Authentifizierungseinstellungen in diesem Reiter werden genutzt, sobald der Parameter Override general OAuth settings gesetzt ist. Andernfalls zieht die Vorschau zur Authentifizierung alle Einstellungen aus dem Reiter Allgemein heran.

Projekt-Komponente - Inhalte
Abbildung 9. Projekt-Komponente - Inhalte


Site Id
In diesem Feld ist die ID der Commerce Cloud-Site (z. B. powertools) anzugeben.
Content Catalog Id
Äquivalent zur Site Id ist in diesem Feld die Id des Content-Katalogs (z. B. powertoolsContentCatalog) einzutragen.
Content Catalog Version
An dieser Stelle ist auszuwählen, welche Version des Content-Katalogs zu nutzen ist (Staged oder Online).
Template Mappings

Für die Pflege bestehender Commerce Cloud-Seiten in FirstSpirit muss jedem Commerce Cloud-Template eine FirstSpirit-Vorlage zugeordnet werden. Dafür ist an dieser Stelle ein Mapping zwischen den Commerce Cloud-Template-Item-IDs und den entsprechenden FirstSpirit-Seitenvorlagen-UIDs zu definieren.

Da die auf den Templates basierenden Inhaltsseiten unterschiedliche URLs besitzen können, ermöglicht die Spalte Commerce Cloud URL Pattern darüber hinaus jeweils die Erzeugung einer spezifischen Vorschau-URL. Die Eingabe der URL kann entweder relativ zur Storefront oder zum Host erfolgen (siehe nachfolgendes Beispiel). Außerdem ist die Verwendung des Platzhalters pageUid möglich. Bleibt die Spalte leer, wird stattdessen die im Feld Contentpage URL definierte URL für die Vorschaudarstellung der entsprechenden Seite genutzt.

Beispiel

Die in der Abbildung sichtbare Konfiguration hätte folgende Bedeutung:

Tabelle 1. Commerce Cloud URL Pattern - Beispiel
FirstSpirit-VorlageEingaberesultierende URLBeschreibung

content_page

/magazin/outdoor

http(s)://<host>/magazin/outdoor

Startet die Eingabe mit einem Slash, wird lediglich die Server-URL erweitert.

content_page_1

---

http(s)://<host>/<storefront-context-root>/preview-content?uid={pageUid}

Da in diesem Fall keine spezifische URL definiert ist, wird stattdessen die allgemeine Contentpage URL verwendet.

content_page_2

assortment/{pageUid}

http(s)://<host>/<storefront-context-root>/assortment/{pageUid}

Diese Eingabe besitzt keinen führenden Slash. Sie entspricht daher einer zur Storefront relativen URL. Des Weiteren enthält sie den Platzhalter pageUid.

content_page_3

indoor

http(s)://<host>/<storefront-context-root>/indoor

Auch diese Eingabe enthält keinen führenden Slash und führt daher ebenfalls zu einer Erweiterung der Storefront-URL.



Content Page Attribute Mapping

Die Angabe an dieser Stelle entspricht den Mappings der FirstSpirit-Contentpage-Attribute zu den Commerce Cloud-Contentpage-Attributen.

Zur Eingabe der FirstSpirit-Contentpage-Attribute werden folgende FirstSpirit-Eingabekomponenten unterstütuzt: CMS_INPUT_TEXT, CMS_INPUT_TOGGLE, CMS_INPUT_RADIOBUTTON, CMS_INPUT_CHECKBOX, CMS_INPUT_COMBOBOX, CMS_INPUT_LIST, CMS_INPUT_DATE, CMS_INPUT_NUMBER, CMS_INPUT_TEXTAREA.

Beispiel

Beispielhafte Konfiguration der Attribut-Mappings. 

[{
   "templateUid": "landinglayout2",
   "uidType": "TEMPLATESTORE",
   "attributeMappings": [
      { "source": "pt_title",
        "target": "title",
        "languageDependent": true
      },
      { "source": "pt_label",
        "target": "label",
        "languageDependent": false
      }
   ]
},
{
   "templateUid": "news.news_article",
   "uidType": "TEMPLATESTORE_SCHEMA",
   "attributeMappings": [
      { "source": "tt_title",
        "target": "title",
        "languageDependent": true
      },
      { "source": "tt_label",
        "target": "label",
        "languageDependent": false
      }
   ]
}]

Content Pages Sitestore Folder UID
In diesem Feld ist die UID des Strukturordners, in dem die in FirstSpirit verwalteten Inhaltsseiten abgelegt sind, einzutragen.
Contentpage URL
Inhaltsseiten können spezifische URLs besitzen, die sich optional während der Definition der zuvor zu konfigurierenden Template Mappings festlegen lassen. Verfügt eine Inhaltsseite über keine spezifische URL, wird für ihre Darstellung in der Vorschau stattdessen die in diesem Feld einzutragende allgemeine Contentpage URL genutzt. Für ihre Eingabe sind sowohl absolute als auch relative URLs sowie die Verwendung des Platzhalters {pageUid} erlaubt. Das Feld enthält standardmäßig den Wert preview-content?uid={pageUid}.

Sämtliche Authentifizierungseinstellungen in diesem Reiter werden genutzt, sobald der Parameter Override general OAuth settings gesetzt ist. Andernfalls zieht die Inhaltserstellung zur Authentifizierung alle Einstellungen aus dem Reiter Allgemein heran.

3.4. Hinzufügen der Web-Komponenten

Für den ContentCreator wird eine Web-Komponente benötigt, die dem mitgelieferten Referenzprojekt bereits hinzugefügt ist. Diese muss jedoch noch auf einem aktiven Webserver installiert werden. Öffnen Sie hierfür den ServerManager und wählen Sie den Bereich Projekt-EigenschaftenWeb-Komponenten.

Innerhalb des Hauptpanels sind verschiedene Registerkarten zu sehen, in denen jeweils eine Liste der bereits vorhandenen Web-Komponenten sichtbar ist. Diese Liste enthält für den ContentCreator die folgenden Einträge (vgl. Abbildung Web-Komponenten in den Projekt-Eigenschaften):

  • ContentConnect For SAP Commerce Cloud Web App
  • FirstSpirit ThirdPartyPreview WebApp

Selektieren Sie in der Registerkarte einen Webserver über die Auswahlbox und starten Sie die Installation über den Button Installieren. Nach der erfolgreichen Installation öffnet sich ein Dialog, in welchem die Aktivierung des Webservers zu bestätigen ist.

Für die Nutzung der Web-Komponente FirstSpirit ThirdPartyPreview WebApp ist eine Konfiguration notwendig, die in der Dokumentation des Omnichannel Managers beschrieben ist.

Detaillierte Informationen zum Hinzufügen von Web-Komponenten finden Sie in der FirstSpirit Dokumentation für Administratoren.

Web-Komponenten in den Projekt-Eigenschaften
Abbildung 10. Web-Komponenten in den Projekt-Eigenschaften


3.5. Ausgabekanal

Zusätzlich zu den bereits vorhandenen Ausgabekanälen eines Projekts wird ein weiterer XML-Kanal benötigt. Dieser muss für leere Projekte manuell angelegt werden, ist innerhalb des mitgelieferten Referenzprojekts ContentConnect Reference Project jedoch bereits enthalten.

Der Ausgabekanal wurde im ServerManager unter dem Punkt Projekt-EigenschaftenVorlagensätze angelegt und besitzt folgende Konfiguration:

Ausgabekanal
Abbildung 11. Ausgabekanal


In der gleichnamigen Auswahlbox muss die Konvertierungsregel ausgewählt werden, die für den CaaS anzulegen ist. Eine Beschreibung der dafür notwendigen Schritte ist in der Content as a Service-Dokumentation enthalten.

Der Ausgabekanal ist aktiviert und steht somit im Projekt zur Verfügung. Er dient der Definition der zu übertragenden Inhalte, die während der Generierung in Nachrichten zusammengefasst und an den CaaS übermittelt werden.

3.6. Freigabe-Arbeitsablauf

Die Freigabe von Inhalten durch Redakteure erfolgt innerhalb des mitgelieferten Referenzprojekts ContentConnect Reference Project über den Freigabe-Arbeitsablauf der BasicWorkflows. Dieser kann alternativ zu projektspezifischen Arbeitsabläufen eingesetzt werden.

Installation des BasicWorkflows-Moduls

Vor der Verwendung des Freigabe-Arbeitsablaufs muss zunächst das BasicWorkflows-Modul auf dem FirstSpirit-Server installiert und die Web-Komponente aktiviert sein. Die dafür notwendigen Schritte sind analog zur Installation der anderen Module und der Aktivierung der zugehörigen Web-Komponenten. Die Web-Komponente der BasicWorkflows wird ebenfalls in der Registerkarte ContentCreator benötigt.

Der Einsatz der BasicWorkflows im ContentCreator erfordert darüber hinaus die Auswahl des bereitgestellten BasicWorkflows Status Providers im Bereich Projekt-EigenschaftenContentCreator innerhalb des ServerManagers. Im Referenzprojekt ContentConnect Reference Project ist diese Einstellung bereits vorgenommen.

Element Status Provider
Abbildung 12. Element Status Provider


Vorlagen

Die BasicWorkflows benötigen verschiedene Vorlagen. Diese müssen üblicherweise über das Kontextmenü in das verwendete FirstSpirit-Projekt importiert werden. Im Referenzprojekt sind sie jedoch bereits enthalten und ein Import der Vorlagen ist somit nicht notwendig.

Rechtevergabe

Im letzten Schritt muss der Freigabe-Arbeitsablauf in den einzelnen Verwaltungen erlaubt werden, um auf FirstSpirit-Elementen ausgeführt werden zu können. Dafür lässt sich auf den Root-Knoten der Verwaltungen über den Kontextmenüeintrag ExtrasRechte ändern die Rechtevergabe öffnen. Dieser Schritt ist im Referenzprojekt ebenfalls bereits durchgeführt und entfällt damit.

Die auf den Root-Knoten der Verwaltungen gesetzten Rechte zur Ausführung des Arbeitsablaufs beziehen sich auf die Gruppe Everyone. Falls dies nicht gewünscht ist, muss eine manuelle Anpassung der Rechte erfolgen.

Nähere Informationen zur Installation, Konfiguration und Funktionalität des Arbeitsablaufs finden Sie in der BasicWorkflows-Dokumentation.

3.7. Projekteinstellungen

Für die Verbindung zwischen FirstSpirit und der Commerce Cloud sind einige projektspezifische Informationen unentbehrlich. Sie werden über das Formular der Projekteinstellungen erfasst und sind innerhalb des verwendeten Projekts anzugeben.

Innerhalb des mitgelieferten Referenzprojekts existiert die Projekteinstellungen-Seite mit der notwendigen Konfiguration bereits. In diesem Fall muss die Erzeugung der Vorlage sowie der erforderlichen Komponenten somit nicht mehr erfolgen.

Änderungen an den Projekteinstellungen sind nicht sofort wirksam, da sie in der Session des Benutzers gespeichert werden. Sie erfordern daher einen Neustart des Clients.