FirstSpirit dient der Erstellung vielseitiger und projektspezifischer Inhalte. Mit dem Modul ContentConnect for Spryker Commerce OS wurde die Möglichkeit geschaffen, diese Inhalte in das E-Commerce-Shopsystem Spryker Commerce OS zu übertragen und dort zu nutzen.
Im restlichen Dokument wird anstelle von "Spryker Commerce OS" die Kurzform "Spryker" benutzt. Des Weiteren ist die gesamte Dokumentation auf die Anbindung des Spryker B2C Demo Shops in der Version 201907.0 ausgerichtet. Die Erwähnung des Shops bezieht sich somit ausschließlich auf den B2C Demo Shop. |
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 ContentConnect for Spryker Commerce OS-Moduls ist das Referenzprojekt ContentConnect Reference Project, das in Form eines GitHub-Repositories zur Verfügung steht. 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 Spryker- 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 Sprykers sowie des CaaS und des Omnichannel Managers ist. |
ContentConnect 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 Spryker im Rahmen eines Deployments zum Import bereitgestellt. Spryker integriert die Informationen in den Shop.
Für Spryker 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 Spryker nicht.
Die Verbindung von FirstSpirit und Spryker 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:
Spryker stellt somit die Hauptkomponente dieser Architektur dar. Neben der Bereitstellung sämtlicher Shop-Funktionalitäten importiert es die in FirstSpirit erstellten bzw. gepflegten Inhalte aus dem Online CaaS und integriert sie in den Shop. Zwischen FirstSpirit und Spryker existiert lediglich eine lose Kopplung. Die beiden Systeme arbeiten hauptsächlich parallel zueinander.
Das ContentConnect-Modul bietet die Möglichkeit, redaktionelle Inhalte FirstSpirit-seitig zu pflegen und diese anschließend per Deployment an Spryker zu übertragen. Dafür muss die Verarbeitung von Inhalten in beiden Systemen aufeinander abgestimmt und zueinander kompatibel sein. Die nachfolgenden Unterkapitel beschreiben das zugrunde liegende Konzept, mit dem diese Kompatibilität erreicht wird.
Ähnlich wie in FirstSpirit basieren Seiten in Spryker auf einer Struktur unterschiedlicher Komponenten. Um redaktionelle Inhalte zwischen den beiden Systemen austauschen zu können, müssen diese Komponenten aufeinander abgestimmt sein.
Innerhalb des in der Auslieferung enthaltenen Referenzprojekts ContentConnect Reference Project werden die CMS Placeholder aus Spryker durch die Inhaltsbereiche einer Seitenvorlage in FirstSpirit repräsentiert. Ihnen können Absätze hinzugefügt werden, die jeweils einem CMS Block entsprechen.
Mit FirstSpirit lassen sich somit CMS Blöcke generieren, die über CMS Placeholder in einer Seite dargestellt werden.
Die mit dem ContentConnect-Modul realisierte Integration sieht FirstSpirit-seitig lediglich die Erzeugung und Pflege der redaktionellen Inhalte sowie ihre Publizierung in Form von CMS Blöcken vor. Spryker bestimmt jedoch weiterhin das Rahmenwerk einer Seite, deren CMS Placeholder die generierten Blöcke einbinden.
Für die Darstellung der Vorschau einer Seite ermittelt FirstSpirit daher ihre aktuelle Ansicht in der Storefront. Diese fragt ihrerseits die redaktionellen Inhalte aus dem Preview CaaS ab und ersetzt die entsprechenden CMS Blöcke. FirstSpirit stellt das Resultat mithilfe des Omnichannel Managers im ContentCreator dar.
Die Übertragung der FirstSpirit-seitig erstellten Inhalte in den Live-Stand erfolgt durch Spryker. Dafür müssen die Inhalte bereitgestellt werden, was in Form des Online CaaS geschieht. Aus ihm importiert Spryker die redaktionellen Inhalte und persistiert sie in seinem Datensystem.
Für den Einsatz des ContentConnect-Moduls müssen die folgenden technischen Voraussetzungen erfüllt sein:
Bei der Verwendung des mitgelieferten Referenzprojekts ContentConnect Reference Project ist außerdem das BasicWorkflows-Modul in der jeweils aktuellen Version erforderlich.
Dieses Kapitel enthält Hinweise, die bei der Verwendung des ContentConnect-Moduls zu beachten sind.
Die in FirstSpirit gepflegten Inhalte werden während eines Deployments mithilfe des Importers aus dem Online CaaS abgefragt. Der Importer überträgt die Daten nach Spryker und persistiert sie Backend-seitig in dessen Datensystem.
Da der Online CaaS potentiell eine große Datenmenge enthält, erfordert die Übertragung der Inhalte eine gewisse Zeitspanne. Frühzeitige Timeouts während des Imports sind daher zu vermeiden. Aus diesem Grund ist der Webserver der Glue-API so zu konfigurieren, dass er http-Requests für eine Dauer von mindestens 60 Sekunden erlaubt.
Die CaaS-Generierungen setzen voraus, dass im FirstSpirit-Projekt eine Vorlage für die Projekteinstellungen gepflegt ist. Andernfalls bricht der Generierungsauftrag frühzeitig ab und meldet den folgenden Fehler in den Auftragslogs:
Exception bei fehlender Einstellungsseite.
error during script execution : java.lang.IllegalStateException: Invalid value for key 'usedCaasProjects' - Value is not a HashMap (null). This can happen when a deployment does not include a single PageRef (blue), which is not supported (e.g. remote-media-project).
Aus diesem Grund muss im Projekt eine entsprechende Vorlage existieren und diese in den Projektoptionen im ServerManager
konfiguriert sein, selbst wenn sie keinen Inhalt besitzt.
Wie zuvor erwähnt ist die gesamte Dokumentation auf die Anbindung des Spryker B2C Demo Shops ausgerichtet. Bei dessen Verwendung können einige Schwierigkeiten auftreten, deren Ursache weder das ContentConnect-Modul noch die Integration ist. Dennoch werden sie nachfolgend aufgelistet und eine mögliche Lösung skizziert.
Vagrant findet VirtualBox nicht
Ist es Vagrant nicht möglich, VirtualBox zu finden, ist der vagrant up
-Befehl wie folgt zu erweitern:
Erweiterung des Befehls vagrant up.
vagrant up --provider=virtualbox
Vorschauseite wird im ContentCreator nicht gefunden
Kann der ContentCreator die Vorschauseite nicht finden, ist das Zertifikat der Seite ungültig oder nicht vorhanden. In diesem Fall muss die Seite in einem separaten Browser-Tab geöffnet werden, um das SSL-Zertifikat zu erneuern und die Anzeige der Seite zu erlauben. Anschließend ist die Vorschauseite im ContentCreator wieder sichtbar.
Fehlender RAM bei Composer-Aufrufen
Für PHP existiert standardmäßig ein RAM-Limit, das für die Ausführung von Composer-Aktionen jedoch zu niedrig ist.
Aus diesem Grund muss das Limit, das in der Konfigurationsdatei php.ini
im Verzeichnis etc/php/7.2/cli
definiert ist, deaktiviert werden:
Deaktivierung des RAM-Limits.
[...] set memory_limit=-1 [...]
FirstSpirit dient der Erstellung und Pflege redaktioneller Daten, die in den CaaS übertragen und von diesem persistiert werden.
Um die Daten zu integrieren, benötigt Spryker eine Zugriffsmöglichkeit auf den CaaS.
Diese wird durch die Spryker-Module firstspirit-preview
und firstspirit-caas
bereitgestellt, die eine Spryker-seitige Installation und Konfiguration erfordern.
Das Modul firstspirit-preview
ermöglicht die Darstellung der Storefront im ContentCreator.
Die Abfrage der Inhalte aus dem CaaS erfolgt mithilfe des Moduls firstspirit-caas
.
Die nachfolgenden Kapitel beschreiben alle notwendigen Schritte für die Installation und die Konfiguration sowie zusätzlich erforderliche Spryker-seitige Erweiterungen.
Sowohl die Abfrage der CaaS-Inhalte durch Spryker als auch ihre Darstellung und Bearbeitung im ContentCreator erfolgt mithilfe verschiedener Spryker-Module. Diese erfordern eine Spryker-seitige Installation sowie eine Erweiterung der Konfiguration. Des Weiteren benötigen sie verschiedene JavaScript- und CSS-Dateien, die Spryker-seitig einzubinden sind.
Die nachfolgenden Kapitel beschreiben die Durchführung der notwendigen Schritte.
Die Pflege von Shop-Inhalten im ContentCreator erfordert die Installation mehrerer Spryker-Module, die in Form von zip-Dateien in der Auslieferung enthalten sind.
Sie müssen in einem beliebigen Verzeichnis unterhalb des Spryker-Projektverzeichnisses gespeichert werden, das Composer als weiteres Repository bekannt zu machen ist.
Dies geschieht über den im Projektverzeichnis auszuführenden Befehl, der die composer.json
-Datei des Spryker-Servers entsprechend erweitert.
Erweiterung der composer.json-Datei.
composer config repo.espirit artifact ./PATH-TO-DIRECTORY
Die zu installierenden Spryker-Module nutzen den Namespace FirstSpirit
, der Spryker bekannt zu machen ist.
Dafür ist in der Environment-unabhängigen Datei config_default.php
im Verzeichnis config/Shared
eine Erweiterung der KernelConstants
erforderlich:
Erweiterung der KernelConstants.
$config[KernelConstants::CORE_NAMESPACES] = [ 'SprykerShop', 'SprykerEco', 'Spryker', 'FirstSpirit' ];
Die Installation der Spryker-Module erfolgt anschließend über die nachfolgenden Befehle, die ebenfalls im Spryker-Projektverzeichnis in der angegebenen Reihenfolge auszuführen sind.
Installationsbefehle.
composer require firstspirit/firstspirit-caas composer require firstspirit/firstspirit-preview composer require firstspirit/firstspirit-data-state-writer composer require firstspirit/firstspirit-data-cleanup composer require firstspirit/firstspirit-data-import composer require firstspirit/firstspirit-data-inconsistency-check composer require firstspirit/firstspirit-data-rest-api composer require firstspirit/firstspirit-cms-data-connector composer require firstspirit/firstspirit-cms-data-storage
Die Befehle laden die Module aus dem erstellten Repository und installieren sie automatisch.
Der letzte Schritt der Installation entspricht der Generierung der Transfer-Objekte des Data Import-Moduls sowie der Erzeugung des Datenbankschemas, das im CMS Block Data Connector-Modul enthalten ist:
Generierung der Transfer-Objekte und Erzeugung des Datenbankschemas.
vendor/bin/console transfer:generate vendor/bin/console propel:install
Das ContentConnect-Modul stellt unterschiedliche Möglichkeiten bereit, auf Shop-Inhalte aus Spryker zuzugreifen und diese in FirstSpirit zu verwenden. Diese Möglichkeiten werden im weiteren Verlauf dieser Dokumentation anhand des mitgelieferten Referenzprojekts in Form von Anwendungsfällen beschrieben.
Besteht der Wunsch, die im Referenzprojekt enthaltenen Absatz- und Seitenvorlagen zu verwenden, setzt dies Spryker-seitig unterschiedliche Twig-Templates voraus.
Die Absätze entsprechen Spryker-seitig verschiedenen Molekülen, Atomen und Organismen, die im Ordner FirstSpiritReferenceComponents
zusammengefasst sind.
Dieser ist ein Bestandteil der Auslieferung und wird in Form eines weiteren Spryker-Moduls bereitgestellt, das über den folgenden Befehl zu installieren ist:
Installationsbefehl.
composer require firstspirit/firstspirit-reference-components
Damit die mit dem Modul zur Verfügung gestellten Komponenten Spryker-seitig einsetzbar sind, muss der ihnen zugehörige Pfad in Spryker bekannt gemacht werden.
Dies erfolgt über die Anpassung der Dateien settings.js
und tsconfig.json
.
Innerhalb der settings.js
-Datei im Verzeichnis Spryker-Verzeichnis/frontend
ist eine Erweiterung des Kontextes notwendig:
Anpassung der settings.js-Datei.
[...] dirs: [ join(globalSettings.context, paths.core), join(globalSettings.context, './vendor/firstspirit'), join(globalSettings.context, paths.eco), join(globalSettings.context, paths.project) ],
Der tsconfig.json
-Datei im Spryker-Verzeichnis
ist ein weiterer Include hinzuzufügen:
Anpassung der tsconfig.json-Datei.
[...] "include": [ "./vendor/spryker-shop/**/*", "./vendor/spryker-eco/**/*", "./src/Pyz/Yves/**/*", "./vendor/firstspirit/**/*" ],
Das generische Twig-Template fs_molecule_block.twig
steuert die Ausgabe der mitgelieferten Moleküle.
Es ist ein Bestandteil der in der Auslieferung enthaltenen zip-Datei b2c-demo-shop-extensions-<VERSION>.zip
und muss Spryker-seitig unter dem Pfad src/Pyz/Shared/CmsBlock/Theme/default/template
abgelegt werden.
Die Spryker-seitige Einbindung der Twig-Templates erfolgt über den nachfolgenden Befehl, der abschließend im Spryker-Projektverzeichnis auszuführen ist.
Einbindung der Twig-Templates.
npm run yves
Die FirstSpirit-Vorlagen ermöglichen die Erweiterung bestehender statischer Seiten, Produkt- und Kategorieseiten
sowie die Erzeugung dynamischer Inhaltsseiten oder eines Magazins.
Das Referenzprojekt enthält dafür die Seitenvorlagen homepage
, productpage
, categorypage
, contentpage
und magazine_detail_page
.
Gleichzeitig müssen Spryker-seitig die folgenden Twig-Templates existieren:
Das Twig-Template home.twig
, das unter dem Pfad src/Pyz/Yves/HomePage/Theme/default/views/home
zu finden ist, benötigt einige Anpassungen.
Diese werden in der Beschreibung statischer Seiten erläutert.
Die übrigen Twig-Templates sind ein Bestandteil der in der Auslieferung enthaltenen zip-Datei und unter den folgenden Pfaden abzulegen:
src/Pyz/Yves/CmsBlockWidget/Theme/default/views/catalog-with-cms-block
src/Pyz/Yves/CmsBlockWidget/Theme/default/components/molecules/product-cms-block
src/Pyz/Shared/Cms/Theme/default/templates/fs-content-page
Die Erstellung und Bearbeitung redaktioneller Inhalte findet FirstSpirit-seitig im ContentCreator statt. In diesem ist mithilfe des Omnichannel Manager die Storefront eingebettet.
Um die Darstellung der Shop-Inhalte aus Spryker im ContentCreator zu ermöglichen, ist eine Erweiterung der umgebungsspezifischen Konfiguration erforderlich.
Dafür muss in der Datei config_default-[environment].php
im Verzeichnis config/Shared
die Definition eines Tokens sowie die Angabe des Hosts und Ports der FirstSpirit-Startseite erfolgen.
Außerdem erfordert der Betrieb des CaaS die Angabe einiger Parameter.
Diese Parameter sind sowohl für den Produktivbetrieb als auch für den Einsatz des CaaS für die Vorschau notwendig.
Erweiterung der Konfiguration.
// ----------- FirstSpirit Preview Configurations $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_AUTHENTICATION_INIT_TOKEN] = '<ADD TOKEN>'; $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_WEB_HOST] = '<ADD FS PREVIEW HOST>'; $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_CAAS_CONTENT_PAGE_COLLECTION] = '<CAAS COLLECTION>'; $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_CAAS_CATEGORY_PAGE_COLLECTION] = '<CAAS COLLECTION>'; $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_CAAS_PRODUCT_PAGE_COLLECTION] = '<CAAS COLLECTION>'; $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_CAAS_TECHNICAL_PAGE_COLLECTION] = '<CAAS COLLECTION>'; $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_CAAS_NAVIGATION_DOCUMENT] = '<NAVIGATION DOCUMENT>'; $config[FirstSpiritPreviewConstants::FIRSTSPIRIT_PREVIEW_DISPLAY_BLOCK_RENDER_ERRORS] = true; // ----------- FirstSpirit Data Import Configurations $config[FirstSpiritDataImportConstants::FIRSTSPIRIT_DATA_IMPORT_BLOCK_DATA_CAAS_PATH] = '/_aggrs/blocks'; $config[FirstSpiritDataImportConstants::FIRSTSPIRIT_CAAS_REQUEST_PAGESIZE] = <VALUE>; // ----------- FirstSpirit CaaS Configurations $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_HOSTNAME_PREVIEW] = '<ADD CAAS HOST>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_PORT_PREVIEW] = '<ADD CAAS PORT>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_SCHEME_PREVIEW] = '<ADD CAAS SCHEME>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_APIKEY_PREVIEW] = '<ADD APIKEY>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_DATABASE_PREVIEW] = '<ADD CAAS DATABASE>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_HOSTNAME_ONLINE] = '<ADD CAAS HOST>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_PORT_ONLINE] = '<ADD CAAS PORT>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_SCHEME_ONLINE] = '<ADD CAAS SCHEME>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_APIKEY_ONLINE] = '<ADD APIKEY>'; $config[FirstSpiritCaaSConstants::FIRSTSPIRIT_CAAS_DATABASE_ONLINE] = '<ADD CAAS DATABASE>';
Der Token dient der Authentifizierung und ist während der FirstSpirit-seitig durchzuführenden Konfiguration als Query-Parameter der externen Vorschau-URL in den ContentCreator-Einstellungen anzugeben. Er kann beliebig definiert werden.
Die Angabe des vollqualifizierten Hosts der FirstSpirit-Startseite (z. B. http://localhost:8000
) ist eine Anforderung des noch zu installierenden HeadersSecurityExtensionPlugins.
Es nutzt die Information, um die Vorschauanzeige im ContentCreator zu erlauben.
Die Nennungen der CaaS Collections für Inhalts-, Kategorie-, und Produktseiten ermöglichen den Zugriff auf die im Preview CaaS gespeicherten redaktionellen Inhalte und ihre Darstellung im ContentCreator.
Die Konfiguration der CaaS Collection für technische Seiten sowie des Dokuments für Navigationen sind für die Pflege und Erweiterung der im Shop enthaltenen Navigationen mit FirstSpirit erforderlich.
Da beide Parameter einen Standardwert (technical
bzw. navigations
) besitzen, ist ihre Konfiguration optional und lediglich bei Abweichungen notwendig.
Der Error-Parameter ermöglicht die Anzeige von Fehlerausgaben in der Seite.
Die Verwendung des Werts true
ist daher nur für Dev- und QA-Instanzen sinnvoll.
Der Pfad dient der Abfrage und Persistierung der im Online CaaS gespeicherten Block-Daten.
Er wird vom FsDataImportConsole
-Befehl benötigt, der bei einer FirstSpirit-Veröffentlichung den Importer anstößt.
Mithilfe der Pagesize lässt sich die Anzahl der Dokumente definieren, die der CaaS bei einem Request zurückgibt.
Der Parameter, dessen Wert durch den CaaS auf maximal 1000
Dokumente limitiert wird, ist optional und besitzt standardmäßig den Wert 100
.
Der CaaS-Host, der zugehörige Port und das zu verwendende Scheme (http
oder https
) ermöglichen Spryker die Verbindung zum CaaS.
Der Zugriff auf die in ihm gespeicherten Daten setzt einen gültigen API Key voraus, der das Leserecht auf das entsprechende Projekt benötigt.
Der Name des im CaaS gespeicherten Projekts ist in der Konfigurationsdatei als Wert des Database-Parameters anzugeben.
Weitere Informationen zur Verwendung des CaaS sind in der Content as a Service-Dokumentation enthalten. |
Damit die verwendete Klassen FirstSpiritPreviewConstants
, FirstSpiritDataImportConstants
und FirstSpiritCaaSConstants
gefunden werden, sind sie per use-Statement in die Konfigurationsdatei einzubinden:
Einbindung der Klassen.
use FirstSpirit\Shared\FirstSpiritPreview\FirstSpiritPreviewConstants; use FirstSpirit\Shared\FirstSpiritDataImport\FirstSpiritDataImportConstants; use FirstSpirit\Shared\FirstSpiritCaaS\FirstSpiritCaaSConstants;
Der Omnichannel Manager ermöglicht die Darstellung und Bearbeitung externer Inhalte im ContentCreator, wofür er einige vorschauspezifische Data-Attribute benötigt. Darüber hinaus setzt er Spryker-seitig einige vorschauspezifische JavaScript- und CSS-Dateien voraus, die im FirstSpiritPreview-Modul enthalten sind.
Sowohl die JavaScript- als auch die CSS-Dateien sind dem Twig-Template hinzuzufügen, das für das Basis-Layout aller Shopseiten verantwortlich ist.
Im Standardfall handelt es sich dabei um das page-blank.twig
-Template, das unter dem Pfad src/Pyz/Yves/ShopUi/Theme/default/templates/page-blank
abgelegt ist.
In demselben Template muss außerdem die Ermittlung der Data-Attribute durch die Twig-Funktion fsIncludeDataAttributes
stattfinden.
Die Anpassung des Twig-Templates erfolgt über den Aufruf der Twig-Funktionen fsIncludeDataAttributes
und fsIncludeOcmFiles
sowie über die Erweiterung der Template-Daten.
Die Twig-Funktion fsIncludeOcmFiles
erwartet für die Einbindung der JavaScript- bzw. CSS-Dateien einen entsprechenden Identifier.
Anpassung des Twig-Templates.
{% block headStyles %} <link rel="stylesheet" href="{{publicPath('css/yves_default.app.css')}}" /> {{ fsIncludeOcmFiles(identifier='css') }} {% endblock %} <body [..] {{ fsIncludeDataAttributes() }}> [..] {% block footerScripts %} <script src="{{publicPath('js/yves_default.es6-polyfill.js')}}"></script> <script src="{{publicPath('js/yves_default.vendor.js')}}"></script> <script src="{{publicPath('js/yves_default.app.js')}}"></script> {{ fsIncludeOcmFiles(identifier='js') }} {% endblock %} </body>
Zusätzlich zur Installation der Spryker-Module ist die Einbindung folgender Plugins erforderlich:
HeadersSecurityExtensionPlugin
FsTwigExtensionPlugin
FirstSpiritDataImportsResourceRoutePlugin
FirstSpiritDataCleanupsResourceRoutePlugin
FirstSpiritCmsPagesResourceRoutePlugin
UserAndCustomerOauthScopeProviderPlugin
Das HeadersSecurityExtensionPlugin
nutzt den in der Konfigurationsdatei config_default-[environment].php
angegebenen Hosts der FirstSpirit-Startseite, um die Anzeige der Storefront im ContentCreator zu erlauben.
Dafür prüft es, ob Storefront-Abfragen den ebenfalls in der Konfigurationsdatei definierten Token enthalten bzw. ob ein eingeloggter Benutzer existiert.
Trifft eine der beiden Optionen zu, setzt das Plugin den Content Security Policy Header und erweitert die Cookie Header.
Das FsTwigExtensionPlugin
ermöglicht die FirstSpirit-seitige Pflege von CMS Placeholdern und CMS Blöcken.
Dafür greift es auf Informationen zu, die der noch zu installierende CmsController bereitstellt.
Die Informationen werden für das Mapping zwischen den in FirstSpirit und den in Spryker gespeicherten Daten benötigt.
Die Einbindung der beiden Plugins erfolgt mithilfe des folgenden Codes, der dem ShopApplicationDependencyProvider
im Verzeichnis
src/Pyz/Yves/ShopApplication
hinzuzufügen ist.
Erweiterung des ShopApplicationDependencyProviders.
use FirstSpirit\Yves\FirstSpiritPreview\Plugin\HeadersSecurityExtensionPlugin; use FirstSpirit\Yves\FirstSpiritPreview\Plugin\FsTwigExtensionPlugin; [...] protected function getApplicationPlugins(): array { return [ new HeadersSecurityExtensionPlugin(), new FsTwigExtensionPlugin() ]; }
Das FirstSpiritDataImportsResourceRoutePlugin
und das FirstSpiritDataCleanupsResourceRoutePlugin
stellen jeweils einen API-Endpunkt bereit.
Mithilfe dieses Endpunkts kann der FirstSpirit-seitige Deployment-Auftrag den Importer ansprechen.
Das FirstSpiritDataImportsResourceRoutePlugin
steuert auf diesem Weg die Übertragung der redaktionellen Inhalte aus dem Online CaaS nach Spryker und ihre dortige Persistierung.
Im Gegensatz dazu dient das FirstSpiritDataCleanupsResourceRoutePlugin
der Ermittlung und Löschung veralteter Daten in Spryker.
Beide Plugins und das nachfolgende FirstSpiritCmsPagesResourceRoutePlugin
sind dem GlueApplicationDependencyProvider
hinzuzufügen.
Wird innerhalb des ContentCreators eine neue Seite angelegt, ist parallel die Erzeugung einer CMS Page in Spryker erforderlich. Da der ContentCreator die Storefront anzeigt, wäre die neu erstellte Seite andernfalls nicht in der Vorschau sichtbar. Stattdessen wäre sie bereits gleichzeitig im Live-Stand verfügbar, würde sie erst mit einem Deployment Spryker-seitig erstellt.
Das FirstSpiritCmsPagesResourceRoutePlugin
dient der Erzeugung der neuen Seite.
Dieses Plugin und die zuvor beschriebenen anderen beiden ResourceRoutePlugins sind dem GlueApplicationDependencyProvider
im Verzeichnis src/Pyz/Glue/GlueApplication
hinzuzufügen:
Erweiterung des GlueApplicationDependencyProviders.
use FirstSpirit\Glue\FirstSpiritDataRestApi\Plugin\FirstSpiritDataImportsResourceRoutePlugin; use FirstSpirit\Glue\FirstSpiritDataRestApi\Plugin\FirstSpiritDataCleanupsResourceRoutePlugin; use FirstSpirit\Glue\FirstSpiritDataRestApi\Plugin\FirstSpiritCmsPagesResourceRoutePlugin; [...] protected function getResourceRoutePlugins(): array { return [ new FirstSpiritDataImportsResourceRoutePlugin(), new FirstSpiritDataCleanupsResourceRoutePlugin(), new FirstSpiritCmsPagesResourceRoutePlugin() [...] ]; }
Während der FirstSpirit-Generierung erfolgt eine Spryker-seitige Authentifizierung mit dem Customer, der während der FirstSpirit-seitig durchzuführenden Konfiguration in der Projekt-Komponente anzugeben ist.
Das UserAndCustomerOauthScopeProviderPlugin
prüft, ob dieser Customer einem Zed-User zugewiesen ist.
Ist dies der Fall, fügt das Plugin dem von Spryker zurückgelieferten Authentifizierungstoken die für den Import notwendige Berechtigung zed-user
hinzu.
Das Plugin erfordert eine Registrierung innerhalb des OauthDependencyProviders
im Verzeichnis src/Pyz/Zed/Oauth
.
Dafür ist innerhalb der Methode getScopeProviderPlugins
das CustomerOauthScopeProviderPlugin
wie folgt zu ersetzen:
Registrierung des UserAndCustomerOauthScopeProviderPlugins.
use FirstSpirit\Zed\FirstSpiritDataImport\Communication\Plugin\Oauth\UserAndCustomerOauthScopeProviderPlugin; [...] protected function getScopeProviderPlugins(): array { return [ new UserAndCustomerOauthScopeProviderPlugin() ]; }
Neben den Spryker-Modulen und den Plugins enthält die Auslieferung die nachfolgenden Widgets. Sie ermöglichen die Erweiterbarkeit der im Shop enthaltenen Navigationen sowie den Einsatz der im Referenzprojekt enthaltenen DOM-Verweise und des Shoppable Images. Ausschließlich bei der Verwendung dieser Elemente ist eine Registrierung der Widgets erforderlich.
FirstSpiritCategoryLinkWidget
FirstSpiritProductLinkWidget
FirstSpiritContentLinkWidget
FirstSpiritExternalLinkWidget
FirstSpiritProductFlyoutWidget
ExtendedNavigationWidget
Die ersten beiden Widgets dienen der Darstellung redaktioneller DOM-Verweise auf Kategorie- bzw. Produkt-Detailseiten. In beiden Fällen ermittelt das Widget dafür die entsprechende Kategorie bzw. das Produkt anhand eines eindeutigen Identifiers und übergibt das Ergebnis dem Twig-Template, das die Spryker-seitige Darstellung des jeweiligen Verweises steuert. Jedes der beiden Widgets referenziert das ihm zugehörige Twig-Template. Die Twig-Templates werden durch das zuvor installierte FirstSpiritPreview-Modul bereitgestellt.
Das FirstSpiritContentLinkWidget
und das FirstSpiritExternalLinkWidget
ermöglichen DOM-Verweise auf redaktionelle Inhalte, wobei sich die Art dieser Inhalte jeweils unterscheidet.
Das FirstSpiritExternalLinkWidget
erlaubt ausschließlich die Referenzierung externer Inhalte.
Im Gegensatz dazu dient das FirstSpiritContentLinkWidget
der Darstellung interner DOM-Verweise auf dynamische Inhaltsseiten bzw. Magazinartikel, die innerhalb des FirstSpirit-Projekts gepflegt sind.
Ein wichtiger Aspekt dabei ist, dass die Ziel-URL interner Verweise auf dynamische Inhaltsseiten von der Ausgabe abhängig sind:
Während sich der Verweis im Live-Stand auf die veröffentlichte CMS Page bezieht, muss in der Vorschau die zugehörige Vorschau-URL verwendet werden.
Das Widget steuert in beiden Fällen die Ermittlung der jeweils benötigten URL.
Die Registrierung des FirstSpiritProductFlyoutWidgets
ist nur dann erforderlich, wenn das mit der Auslieferung bereitgestellte Shoppable Image im Projekt verwendet wird.
Das Widget steuert die Darstellung der Flyouts für die auf dem Shoppable Image verlinkten Produkte.
Das ExtendedNavigationWidget
schafft die Möglichkeit, die im Shop enthaltenen Navigationen mit FirstSpirit zu pflegen und um weitere Menüpunkte zu ergänzen.
Es erweitert das bestehende NavigationWidget
in Spryker und stellt verschiedene Attribute zur Verfügung, die für die Darstellung der entsprechenden Navigation in der Vorschau erforderlich sind.
Die Registrierung der Widgets erfolgt mithilfe des folgenden Codes, der dem ShopApplicationDependencyProvider
im Verzeichnis src/Pyz/Yves/ShopApplication
hinzuzufügen ist.
Erweiterung des ShopApplicationDependencyProviders.
use FirstSpirit\Yves\FirstSpiritPreview\Widget\FirstSpiritCategoryLinkWidget; use FirstSpirit\Yves\FirstSpiritPreview\Widget\FirstSpiritProductLinkWidget; use FirstSpirit\Yves\FirstSpiritPreview\Widget\FirstSpiritContentLinkWidget; use FirstSpirit\Yves\FirstSpiritPreview\Widget\FirstSpiritExternalLinkWidget; use FirstSpirit\Yves\FirstSpiritPreview\Widget\FirstSpiritProductFlyoutWidget; use Pyz\Yves\NavigationWidget\Widget\ExtendedNavigationWidget; [...] protected function getGlobalWidgets(): array { return [ [...] FirstSpiritCategoryLinkWidget::class, FirstSpiritProductLinkWidget::class, FirstSpiritContentLinkWidget::class, FirstSpiritExternalLinkWidget::class, FirstSpiritProductFlyoutWidget::class ]; }
Das zuvor installierte CmsBlockTwigFunctionPlugin
ermöglicht das Mapping zwischen den in FirstSpirit und den in Spryker gespeicherten Inhalten.
Dafür setzt es voraus, dass die View-Daten einer Page deren Id und Typ enthalten.
Diese Informationen stellen die Controller von Spryker standardmäßig jedoch nicht bereit.
Aus diesem Grund ist sowohl für Inhalts- und Kategorieseiten als auch im Fall der Homepage, die einer statischen Seite entspricht, eine Überschreibung der folgenden Controller notwendig:
Die Überschreibung erfolgt durch das Anlegen der zugehörigen Klassen, die alle ein Bestandteil der in der Auslieferung enthaltenen zip-Datei b2c-demo-shop-extensions-<VERSION>.zip
sind.
Sie müssen in das jeweils zu erzeugende Verzeichnis Controller
unterhalb von src/Pyz/Yves/HomePage|CatalogPage|CmsPage
kopiert werden.
Existieren die Klassen bereits unter dem für sie genannten Pfad, werden die Controller bereits projektspezifisch überschrieben. In diesem Fall ist jeweils sicherzustellen, dass die View-Parameter entsprechend erweitert werden. |
Im Gegensatz zu den übrigen Seiten ist für die Produktseiten die Anpassung des Spryker-seitig bereits existierenden ProductControllers erforderlich.
Er ist im Verzeichnis src/Pyz/Yves/ProductDetailPage/Controller/ProductController
enthalten und muss um die Definition des Seitentyps und der Product SKU ergänzt werden.
Der folgende Code-Ausschnitt zeigt die durchzuführenden Änderungen:
Erweiterung des ProductControllers.
<?php namespace Pyz\Yves\ProductDetailPage\Controller; [...] use FirstSpirit\Shared\FirstSpiritPreview\FirstSpiritPreviewConstants; class ProductController extends SprykerShopProductController { protected function executeDetailAction(array $productData, Request $request): array { [...] $viewData['cart'] = $quoteTransfer; $viewData[FirstSpiritPreviewConstants::VIEW_DATA_PAGE_TYPE_KEY] = FirstSpiritPreviewConstants::PRODUCT_PAGE_TYPE; $viewData[FirstSpiritPreviewConstants::VIEW_DATA_PAGE_ID_KEY] = $productData['sku']; return $viewData; } }
Zusätzlich zu den anfangs genannten Controllern enthält die Auslieferung weitere RenderController, mit denen die Aktualisierung einzelner CMS-Elemente in der Vorschau möglich ist.
Sie werden vom FirstSpiritPreviewControllerProvider
angesprochen, der initial nicht in Spryker existiert und daher eine Registrierung in der YvesBootstrap
-Datei im Verzeichnis Pyz/Yves/ShopApplication
erfordert.
Innerhalb der Datei ist die Methode getControllerProviderStack
wie folgt zu erweitern.
Erweiterung der Methode getControllerProviderStack.
use FirstSpirit\Yves\FirstSpiritPreview\Plugin\Provider\FirstSpiritPreviewControllerProvider; [...] protected function getControllerProviderStack($isSsl) { return [ [...] new FirstSpiritPreviewControllerProvider($isSsl) ]; }
Enthält eine Seite illegalen Code zeigt Spryker einen sogenannten Fail Whale an. Dabei handelt es sich um eine von Spryker standardmäßig bereitgestellte Fehlerseite. Da diese keine Navigationsmöglichkeiten besitzt, versetzt sie den Benutzer in einen Zustand, aus dem er keine andere Shopseite mehr aufrufen kann.
In der Auslieferung ist daher eine Fehlerseite enthalten, die sich dem Design der übrigen Shopseiten anpasst und sowohl einen Header als auch einen Footer einbindet.
Für ihre Verwendung muss der Inhalt des Ordners ErrorPage
in das bereits bestehende Verzeichnis src/Pyz/Yves/ErrorPage
kopiert werden.
Der Ordner ist ein Bestandteil der mitgelieferten zip-Datei b2c-demo-shop-extensions-<VERSION>.zip
.
Des Weiteren ist der Seite error.html
im Verzeichnis src/public/Yves/errorpage
die folgende Zeile hinzuzufügen:
Erweitererung der error.html.
<meta http-equiv="Refresh" content="0; url=/error/500" />
Das zuvor installierte Cms Block Data Connector-Modul erzeugt eine Zed-Tabelle. In dieser Tabelle werden während des Imports die aus dem Online CaaS ermittelten redaktionellen Inhalte gespeichert. Die Persistierung der CMS Blöcke erfolgt in einer weiteren Tabelle.
Da die CMS Blöcke keine Placeholder enthalten, werden sie von Spryker standardmäßig nicht publiziert.
Aus diesem Grund ist es notwendig, den CmsBlockStorageQueryContainer
zu überschreiben und damit das Spryker-seitige Standardverhalten zur Publizierung von CMS Blöcken anzupassen.
Die Überschreibung des Query Containers erfolgt durch das Anlegen der Klasse CmsBlockStorageQueryContainer.php
.
Sie ist ein Bestandteil der in der Auslieferung enthaltenen zip-Datei b2c-demo-shop-extensions-<VERSION>.zip
und ist in das zu erzeugenden Verzeichnis src/Pyz/Zed/CmsBlockStorage/Persistence
zu kopieren.
Die mit dem ContentConnect-Modul realisierte Integration sieht FirstSpirit-seitig lediglich die Erzeugung und Pflege der redaktionellen Inhalte sowie ihre Publizierung in Form von JSON-Objekten vor. Die Einbindung dieser Inhalte und die Erzeugung der Vorschau findet jedoch weiterhin Spryker-seitig statt.
Im Vorschaufall ermittelt FirstSpirit die aktuelle Ansicht einer Seite in der Storefront und zeigt sie mithilfe des Omnichannel Managers im ContentCreator an. Für die Integration der redaktionellen Inhalte in den Shop, importiert Spryker sie aus dem Online CaaS und persistiert sie in seinem internen Datensystem.
Da sowohl die Vorschau als auch der Importprozess per Authentifizierung geschützt ist, muss in der Projekt-Komponente des ContentConnect-Moduls ein technischer Benutzer angegeben werden.
Dieser entspricht einem Customer, der wiederum einem Zed-User zugewiesen ist.
Die Zuweisung lässt sich im Menü →
über den Button durchführen.
Eine genauere Beschreibung der für die Zuweisung notwendigen Schritte ist in den Kapiteln Assigning Customers und Previewing a Page der Spryker-Dokumentation enthalten. |
Die Integration der FirstSpirit-seitig erstellten bzw. gepflegten Inhalte in den Shop erfolgt durch Spryker. Dafür importiert Spryker die Daten aus dem Online CaaS und persistiert sie in seinem Datensystem. Die Übertragung der Informationen muss bei jeder FirstSpirit-Veröffentlichung stattfinden, die aus diesem Grund jedes Mal einen Spryker-seitigen Import-Befehl anstößt.
Der Befehl weist den Importer an, die im Online CaaS gespeicherten Block-Daten zu importieren.
Dabei nutzt er den in der Konfigurationsdatei config_default-[environment].php
angegebenen FirstSpirit Data Import Block CaaS Path
.
Mithilfe dieses Pfads greift der Importer auf die CaaS-Aggregation zu, die während der FirstSpirit-Veröffentlichung erzeugt wird.
Der Import-Befehl muss Spryker-seitig in den getConsoleCommands
registriert werden.
Dafür ist die folgende Erweiterung der ConsoleDependencyProvider.php
-Datei im Verzeichnis src/Pyz/Zed/Console
erforderlich:
Erweiterung der getConsoleCommands.
use FirstSpirit\Zed\FirstSpiritDataImport\Communication\Console\FsDataImportConsole; [...] $commands = [ // Default commands [...] // FirstSpirit Data importers new FsDataImportConsole(FsDataImportConsole::DEFAULT_NAME) ];
Der FirstSpirit ContentCreator generiert und aktualisiert standardmäßig lediglich vollständige Seiten.
Um innerhalb der Vorschau zusätzlich die Aktualisierung einzelner Absätze zu ermöglichen, wird Spryker-seitig ein weiterer EventListener benötigt.
Dieser muss dem Frontend-Einstiegspunkt hinzugefügt werden.
Dafür ist die app.ts
-Datei im Verzeichnis src/Pyz/Yves/ShopUi/Theme/default
wie folgt zu erweitern:
Erweiterung der Datei app.ts.
import { bootstrap, mount } from 'ShopUi/app'; bootstrap(); document.addEventListener('NewComponentAttached', () => mount());
Existiert die |
Die in FirstSpirit gepflegten redaktionellen Inhalte werden während des Deployments mithilfe des Importers aus dem Online CaaS abgefragt. Der Importer überträgt die Daten nach Spryker und persistiert sie Backend-seitig in dessen Datensystem. Die Anzeige der Daten im Live-Stand erfordert zusätzlich ihre Übertragung nach Yves. Die Übertragung der Daten erfordert die Registrierung eines Event Subscribers, veschiedener Queues und eines Message Processors.
Nähere Informationen sind im Kapitel Publish and Synchronization der Spryker Dokumentation enthalten. |
Die Registrierung des EventSubscribers erfolgt mithilfe des folgenden Codes, der dem EventDependencyProviders
im Verzeichnis Pyz/Zed/Event
hinzuzufügen ist.
Erweiterung des EventDependencyProviders.
use FirstSpirit\Zed\FirstSpiritCmsDataStorage\Communication\Plugin\Event\Subscriber\FirstSpiritCmsDataStorageEventSubscriber; [...] public function getEventSubscriberCollection() { $eventSubscriberCollection = parent::getEventSubscriberCollection(); [...] $eventSubscriberCollection->add(new FirstSpiritCmsDataStorageEventSubscriber()); [...] return $eventSubscriberCollection; } }
Die Registrierung der Queues setzt die folgende Anpassung der RabbitMqConfig
-Datei im Verzeichnis Pyz/Client/RabbitMq
voraus:
Erweiterung der RabbitMqConfig-Datei.
use FirstSpirit\Shared\FirstSpiritCmsDataStorage\FirstSpiritCmsDataStorageConstants; [...] class RabbitMqConfig extends SprykerRabbitMqConfig { protected function getQueueOptions() { $queueOptionCollection = new ArrayObject(); [...] $queueOptionCollection->append($this->createQueueOption( FirstSpiritCmsDataStorageConstants::FS_CMS_BLOCK_DATA_SYNC_STORAGE_QUEUE, FirstSpiritCmsDataStorageConstants::FS_CMS_BLOCK_DATA_SYNC_STORAGE_ERROR_QUEUE, FirstSpiritCmsDataStorageConstants::FS_CMS_PAGE_DATA_SYNC_STORAGE_QUEUE, FirstSpiritCmsDataStorageConstants::FS_CMS_PAGE_DATA_SYNC_STORAGE_ERROR_QUEUE)); [...] return $queueOptionCollection; } }
Die Registrierung des für die Queues notwendigen Event Subscribers macht eine Anpassung des QueueDependencyProviders
im Verzeichnis Pyz/Zed/Queue
erforderlich:
Erweiterung des QueueDependencyProviders.
use FirstSpirit\Shared\FirstSpiritCmsDataStorage\FirstSpiritCmsDataStorageConstants; [...] protected function getProcessorMessagePlugins(Container $container) { return [ [...] FirstSpiritCmsDataStorageConstants::FS_CMS_BLOCK_DATA_SYNC_STORAGE_QUEUE => new SynchronizationStorageQueueMessageProcessorPlugin(), FirstSpiritCmsDataStorageConstants::FS_CMS_PAGE_DATA_SYNC_STORAGE_QUEUE => new SynchronizationStorageQueueMessageProcessorPlugin(), [...] ]; }
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.
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.
Zur Nutzung des ContentConnect-Moduls muss außerdem das Content as a Service-Modul konfiguriert werden. Die dafür notwendigen Schritte sind in der Content as a Service-Dokumentation beschrieben. Innerhalb des Referenzprojekts ist in der Projekt-Komponente des CaaS für die Mediennutzung die Generierung der Medien in den CaaS definiert. Diese Konfiguration ist explizit nicht im Produktivbetrieb einzusetzen. Für den Produktivbetrieb muss die Mediennutzung auf die Verwendung eines CDNs umgestellt werden. |
Öffnen Sie für die Konfiguration der Projekt-Komponente den ServerManager
und wählen Sie den Bereich →
.
Im Hauptpanel ist eine Liste aller bereits vorhandenen Projekt-Komponenten zu sehen.
Selektieren Sie den Eintrag ContentConnect For FirstSpirit Commerce OS Project Configuration
und öffnen Sie den zugehörigen Konfigurationsdialog über .
Der Dialog gliedert sich in die Tabs Allgemein
, Vorschau
, Veröffentlichung
und YouTube
:
Allgemein
Innerhalb des Reiters Allgemein
sind die Storefront Basis URL
und die Glue-API Basis URL
anzugeben.
Sie müssen dem FirstSpirit-Server bekannt sein, um eine Verbindung zu Spryker herstellen und Daten abfragen zu können.
Vorschau
Innerhalb des Reiters Vorschau
wird zunächst der Login-Pfad benötigt.
Das entsprechende Feld enthält vorausgefüllt den Default-Wert /login_check
, der sich bei Bedarf anpassen lässt.
Des Weiteren sind in diesem Reiter die Login-Daten eines technischen Benutzers einzutragen. Dieser muss dem Customer entsprechen, der während der Spryker-seitig auszuführenden Schritte definiert wurde. Er dient der Spryker-seitigen Abfrage der Storefront, die mithilfe des Omnichannel Managers im ContentCreator eingebunden wird.
Veröffentlichung
Der Reiter Veröffentlichung
enthält jeweils eine Liste aller im Projekt verfügbaren Gruppen und Voll-Deployment-Aufträge.
Er ermöglicht die Bereitstellung des selektierten Deployment-Auftrags im Aktionen
-Menü des ContentCreators für die im Reiter aktivierten Gruppen.
Das Aktionen
-Menü enthält für die Ausführung des Auftrags den Menüpunkt Veröffentlichung
.
Für Gruppen, denen die Ausführung des Auftrags nicht erlaubt ist, ist der Eintrag sichtbar, aber deaktiviert.
Innerhalb des mitgelieferten Referenzprojekts kann dem ChiefEditor auf diesem Weg beispielsweise die Ausführung des Voll-Deployments ermöglicht werden.
Darüber hinaus verwenden der Freigabe- und der Lösch-Arbeitsablauf den an dieser Stelle selektierten Auftrag, wenn zusätzlich zur Freigabe bzw. Löschung einer Seite die Publikation des gesamten Projekts angestoßen werden soll.
Für Server- und Projektadministratoren ist die Ausführung des Voll-Deployments standardmäßig erlaubt, unabhängig von der Konfiguration innerhalb des Reiters. |
YouTube
Das bereitgestellte Referenzprojekt enthält einen Shoppable Video-Absatz.
Dieser ermöglicht die Anzeige und Referenzierung von Produkten zu definierten Zeitpunkten in einem YouTube-Video.
Die Verwendung des Absatzes setzt einen Google API Key
voraus, der an dieser Stelle einzutragen ist.
Darüber hinaus lassen sich kommasepariert ein oder mehrere Channel-Ids
angeben.
Sobald das Feld eine Id enthält, zeigt die Video-Auswahl ein Dropdown an.
Dieses erlaubt die Referenzierung eines YouTube-Videos aus einem spezifischen Channel.
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 →
.
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 die Vorschau
und den ContentCreator
die ContentConnect For Spryker Commerce OS Web App
.
Im ContentCreator
-Tab ist darüber hinaus die FirstSpirit ThirdPartyPreview WebApp
und optional die BasicWorkflows_ContentCreator_Library
hinzugefügt (vgl. Abbildung Web-Komponenten in den Projekt-Eigenschaften).
Die Web-Komponente der BasicWorkflows ist ausschließlich bei der Nutzung der Arbeitsabläufe erforderlich.
Selektieren Sie in beiden Registerkarten einen Webserver über die Auswahlbox und starten Sie die Installation jeweils über den Button
. Nach der erfolgreichen Installation öffnet sich ein Dialog, in welchem die Aktivierung des Webservers zu bestätigen ist.Detaillierte Informationen zum Hinzufügen von Web-Komponenten finden Sie in der FirstSpirit Dokumentation für Administratoren.
Durch die Verwendung des Omnichannel Managers stellt der ContentCreator externe Inhalte aus Spryker dar, auf die der Omnichannel Manager eine Zugriffsmöglichkeit benötigt. In den ContentCreator-Eigenschaften ist daher die Vorschau-URL der Spryker-Storefront anzugeben. Da die Angabe stets projektspezifisch ist, existiert für sie innerhalb des Referenzprojekts keine Standardkonfiguration.
Öffnen Sie für die Eingabe den Bereich →
innerhalb des ServerManagers
und tragen Sie in dem Feld Externe Vorschau-URL
die URL der Storefront mit der folgenden Syntax an:
https://[STOREFRONT_HOST_DOMAIN]/en/?firstSpiritPreview=[PREVIEW_INIT_TOKEN]
Der für den Queryparameter firstSpiritPreview
anzugebende Token muss mit dem Authentifizierungstoken übereinstimmen, der während der Spryker-seitig durchzuführenden Konfiguration definiert wurde.
Er ist in der Datei config_default-[environment].php
im Verzeichnis config/Shared
gespeichert.
Die Definition der an den CaaS zu übertragenden Daten findet im noch anzulegenden Ausgabekanal statt. Die Verwendung bestimmter Sonderzeichen könnte zu invaliden JSON-Objekten führen. Aus diesem Grund muss eine Konvertierungsregel angelegt werden, um potentielle Fehler zu vermeiden.
Es empfiehlt sich, eine neue Konvertierungsregel anzulegen, anstatt eine bestehende zu bearbeiten. Erzeugen Sie hierfür eine Textdatei in Ihrem Dateisystem und fügen Sie dieser den folgenden Inhalt hinzu:
Konvertierungsregel.
0x22="\"" [convert] 0x3c="<" 0x3e=">" 0x22=""" 0x26="&" 0x27="'"
Öffnen Sie anschließend den ServerManager
und selektieren Sie den Punkt →
.
Im Hauptpanel ist eine Liste der bereits existierenden Konvertierungsregeln zu sehen.
Wählen Sie nach dem Klicken auf die zuvor erstellte Textdatei aus Ihrem Dateisystem aus und bestätigen Sie die Auswahl mit .
Die Liste im Hauptpanel wird daraufhin um die neue Regel ergänzt, die dem zu erstellenden Ausgabekanal zuzuordnen ist.
Weitere Informationen finden Sie in der FirstSpirit Dokumentation für Administratoren.
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 →
angelegt und besitzt folgende Konfiguration:
In der gleichnamigen Auswahlbox muss die zuvor erzeugte Konvertierungsregel ausgewählt werden. |
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.
Das Referenzprojekt ContentConnect Reference Project besitzt unterschiedliche Absätze, mit denen sich auf den verschiedenen Seiten Bilder einbinden lassen. Die Bilder sollen durch den Redakteur auf einen bestimmten Bildausschnitt zugeschnitten werden können. Diese Funktionalität wird über die Angabe einer Auflösung aktiviert.
Für das Referenzprojekt werden die Auflösungen CONTENT_IMAGE
, BANNER_IMAGE
and MAGAZINE_ARTICLE_BANNER
benötigt.
Sie sind bereits innerhalb des ServerManagers
im Bereich →
angelegt und an den entsprechenden Stellen angegeben.