1. Erstellung einer Seite in FirstSpirit
Diese Anleitung beschreibt, wie im Kontext von FirstSpirit Connect for Commerce Shop-driven Pages und FirstSpirit-driven Pages in FirstSpirit erzeugt werden können. Sie richtet sich an Personen, welche an der Implementierung des Projekts beteiligt sind.
1.1. Shop-driven Pages
Damit das Connect for Commerce-Modul eine Shop-driven Page erstellen und diese mit ihrem Äquivalent im Shop-System verknüpfen kann, werden nachfolgend aufgelistete Werte benötigt:
- id
-
id
entspricht dem Identifier, welcher im Rahmen des Mappings von Identifiern festgelegt wurde, und wird im FormData der zu erstellenden Seite hinterlegt. Informationen zum Mapping der Identifier können im Unterkapitel Mapping der Identifier nachgelesen werden. - type
-
type
entspricht dem Seitentyp (product
,category
odercontent
) und wird ebenfalls im FormData der Seite hinterlegt. Die Kombination austype
undid
macht eine Seite in FirstSpirit eindeutig identifizierbar und ermöglicht die Zuordnung zu einer Seite im Shop-System.
Seiten vom Typproduct
besitzen immer ein Äquivalent im Produkte-Report, Seiten vom Typcategory
ein Äquivalent im Kategorien-Report und Seiten vom Typcontent
ein Äquivalent im Inhaltsseiten-Report. - fsPageTemplate
-
fsPageTemplate
gibt an auf welcher FirstSpirit-Seitenvorlage die zu erstellende Seite basiert. - displayNames
-
Über das optionale
displayNames
Objekt werden die gewünschten Anzeigenamen in den im FirstSpirit-Projekt verfügbaren Sprachen definiert.
Dabei ist wichtig, dass die Attributnamen der Abkürzung der in FirstSpirit konfigurierten Sprache entsprechen. Falls keinedisplayNames
übergeben werden oder diese nicht für alle Projektsprachen vorhanden sind, wird der Anzeigename für die fehlenden Sprachen, nach dem Schema<pageType>_<id>
gesetzt. Weitere Informationen zur Verwendung von Sprachen in FirstSpirit in der Dokumentation von FirstSpirit nachgelesen werden.
Die Erstellung von Shop-driven Pages ist grundsätzlich davon abhängig ob und wie die Frontend API verwendet wird. Die verschiedenen Fälle werden im Folgenden beschrieben.
1.1.1. Seitenerstellung per Frontend API
Bei Verwendung der setPage-Funktion müssen Shop-driven Pages nicht manuell erstellt werden, sondern werden durch Verwendung der Schaltfläche Add Content innerhalb des Inhaltsbereichs der Shop-Seite erstellt, falls noch nicht vorhanden. Die Schaltfläche Add Content wird bei Verwendung der setPage
-Funktion automatisch in leeren Inhaltsbereichen dargestellt.
Des Weiteren können Shop-driven Pages mithilfe der Funktion createPage
programmatisch erzeugt werden. Im Abschnitt Use Cases > Create Page
der Frontend API-Dokumentation sind Code-Beispiele zur Erstellung von Shop-driven Pages dargestellt.
1.1.2. Seitenerstellung per Executable
Für die Erzeugung von Shop-driven Pages ohne die Verwendung der Frontend API steht die FirstSpirit Connect for Commerce - Create Reference Page Executable zur Verfügung. Diese kann in der Storefront mittels Omnichannel Manager über die execute
Methode der TPP-SNAP API aufgerufen werden.
Der Executable werden beim Aufruf die oben genannten Argumente in Form eines Objekts übergeben.
const createReferencePage = () => {
const payload = {
id: 'pageId',
fsPageTemplate: 'product',
type: 'product',
displayNames: {
DE: 'Displayname DE',
EN: 'Displayname EN'
}
};
TPP_SNAP.execute('class:FirstSpirit Connect for Commerce - Create Reference Page', payload);
};
Die Executable kann darüber hinaus auch in anderen Kontexten, etwa in BeanShell-Skripten, analog verwendet werden.
1.1.3. Massenerstellung von Seiten per Executable
Neben der Erzeugung einzelner Shop-driven Pages über die FirstSpirit Connect for Commerce - Create Reference Page Executable, besteht auch die Möglichkeit, mit einem Aufruf Seiten für alle Produkte / Unterkategorien einer Kategorie zu erstellen. Dafür stehen die FirstSpirit Connect for Commerce - Bulk Create Product Pages Executable und FirstSpirit Connect for Commerce - Bulk Create Category Pages Executable zur Verfügung, die primär für den Einsatz in BeanShell-Skripten oder Auftragsaktionen vorgesehen sind.
Den Executables können beim Aufruf folgende Parameter übergeben werden:
- context
-
context
entspricht dem FirstSpirit-Context und ist beim Aufruf der Executable innerhalb eines BeanShell-Skripts mit anzugeben. Beim Aufruf innerhalb eines Auftragsskripts wird der Context automatisch zur Verfügung gestellt und muss nicht als Parameter übergeben werden. - bulk_product_page_creation_template / bulk_category_page_creation_template
-
Dieser zwingend anzugebende Parameter dient zur Auswahl der zu verwendenden FirstSpirit-Seitenvorlage.
- bulk_product_page_creation_subcategory / bulk_category_page_creation_subcategory
-
Über die Angabe einer Unterkategorie kann die Erzeugung der Seiten auf Produkte / Unterkategorien einer bestimmten Kategorie eingeschränkt werden.
- bulk_product_page_creation_subfolder / bulk_category_page_creation_subfolder
-
Gibt das Unterverzeichnis unterhalb des Verzeichnisses für Produkt- bzw. Kategorieseiten an, innerhalb dessen die erzeugten Seiten angelegt werden sollen. Der Name muss der Vorgabe für Referenznamen in FirstSpirit entsprechen und darf somit keine Sonder- oder Leerzeichen mit Ausnahme des Unterstriches enthalten. Dem Referenznamen des erzeugten Unterverzeichnisses wird zur Gewährung der Eindeutigkeit der Präfix
c_
(bei Kategorien) bzw.p_
(bei Produkten) vorgestellt. Der Anzeigename entspricht dem vorgegebenen Namen des Unterverzeichnisses. Ohne Angabe dieses Parameters werden alle Seiten auf oberster Ebene innerhalb des Verzeichnisses für Produkt- bzw. Kategorieseiten angelegt. - bulk_product_page_creation_release / bulk_category_page_creation_release
-
Über diesen Parameter wird die automatische Freigabe der erzeugten Seiten konfiguriert.
import de.espirit.firstspirit.access.*;
import de.espirit.firstspirit.access.script.Executable;
parameters = new HashMap();
parameters.put("context", context);
parameters.put("bulk_product_page_creation_subcategory", "smart-tvs");
parameters.put("bulk_product_page_creation_template", "page_marginalia");
parameters.put("bulk_product_page_creation_subfolder", "smart_tvs");
parameters.put("bulk_product_page_creation_release", "true");
moduleAgent = context.requireSpecialist(ModuleAgent.TYPE);
executable = moduleAgent.getTypeForName("FirstSpirit Connect for Commerce - Bulk Create Product Pages", Executable.class).newInstance();
executable.execute(parameters, null, null);
#!executable-class
FirstSpirit Connect for Commerce - Bulk Create Category Pages
1.2. FirstSpirit-driven Pages
Für Systeme, bei denen das Shop-System die Seitenstruktur vorgibt, ist es notwendig, dass bei der Erstellung einer FirstSpirit-driven Page zusätzlich ein Äquivalent der Seite im Shop-System erzeugt wird. In diesem Fall kann das Connect for Commerce-Modul die entsprechende Seite mithilfe der Bridge erzeugen. Voraussetzung dafür ist, dass der entsprechende Endpunkt in der Bridge implementiert ist und die Checkbox Erzeugung von Inhaltsseiten über Bridge deaktivieren
nicht aktiviert ist.
1.2.1. Seitenerstellung per Frontend API
Bei Verwendung der Frontend API wird nach der Erstellung einer Seite über die Plus-Schaltfläche im ContentCreator mit dem Connect for Commerce-Modul kommuniziert, um zu prüfen, ob ein Äquivalent der Seite im Shop-System erzeugt werden muss.
1.2.2. Seitenerstellung per Executable
Für die Erzeugung von FirstSpirit-driven Pages ohne die Verwendung der Frontend API, steht die FirstSpirit Connect for Commerce - Preview Message Receiver zur Verfügung. In diesem Fall muss mithilfe der TPP-SNAP API des Omnichannel Manager der entsprechende Handler für onRequestPreviewElement
implementiert werden.
let lastRequestedPreviewId;
TPP_SNAP.onRequestPreviewElement(async (previewId) => {
if (this.lastRequestedPreviewId === previewId) return; /* do nothing if previewId did not change */
this.lastRequestedPreviewId = previewId;
const status = await TPP_SNAP.getElementStatus(previewId);
if (status.storeType === 'SITESTORE' && status.id) {
const topic = 'requestedPreviewElement';
const pageRefId = `${status.id}`;
const language = status.language;
const payload = { pageRefId, language };
TPP_SNAP.execute(
'class:FirstSpirit Connect for Commerce - Preview Message Receiver',
{
topic,
...payload,
},
false
);
TPP_SNAP.setPreviewElement(previewId);
}
});
}
2. Rechtliche Hinweise
FirstSpirit Connect for Commerce ist ein Produkt der Crownpeak Technology GmbH, Dortmund, Germany.
Für die Verwendung des Moduls gilt nur die mit der Crownpeak Technology GmbH vereinbarte Lizenz.
3. Hilfe
Der Technical Support der Crownpeak Technology GmbH bietet qualifizierte technische Unterstützung zu allen Themen, die FirstSpirit™ als Produkt betreffen. Weitere Hilfe zu vielen relevanten Themen erhalten und finden Sie in auch in unserer Community.