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 oder content) und wird ebenfalls im FormData der Seite hinterlegt. Die Kombination aus type und id macht eine Seite in FirstSpirit eindeutig identifizierbar und ermöglicht die Zuordnung zu einer Seite im Shop-System.
Seiten vom Typ product besitzen immer ein Äquivalent im Produkte-Report, Seiten vom Typ category ein Äquivalent im Kategorien-Report und Seiten vom Typ content 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 keine displayNames ü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.

Beispielhafte Funktion zum Aufrufen des FirstSpirit Connect for Commerce - Create Reference Page Executable per TPP-SNAP API des Omnichannel Manager
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.

Beispielhafter Aufruf der FirstSpirit Connect for Commerce - Bulk Create Product Pages Executable per BeanShell-Skript
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);
Aufruf der FirstSpirit Connect for Commerce - Bulk Create Category Pages Executable per Auftragskript
#!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.

Bildschirmaufnahme, welche den Tab 'Allgemein' der Connect for Commerce Projekt-Komponente zeigt
Abbildung 1. Projekt-Komponente - Konfigurationsdialog - Allgemein

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.

Beispielhafter Handler zum Aufrufen des FirstSpirit Connect for Commerce - Preview Message Receiver per TPP-SNAP API des Omnichannel Manager
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.