Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 7 Nächste Version anzeigen »

Package: shop-core Shop/Configurator

Der Konfigurator bietet die Möglichkeit eine Ansicht anhand einer Konfiguration darzustellen, die dazu dient, eine Entity über verschiedene UI-Elemente zu konfigurieren.

Beispiele:

  • shopSessionArticle dem die Menge, die Variante, das Editor-Dokument, etc. konfiguriert wird, bevor er in den Warenkorb gelegt wird.
  • Paketartikel
  • weitere

Ein Implementations- und Pflegebeispiel findet sich hier.

Funktionsweise

Die Idee hinter dem Konfigurator ist ein modularer Aufbau aus UI-Steuerelementen. Zum Beispiel die Checkoutbox mit dem Preis des Artikels und der Menge oder die Variantenauswahl. Beide Sachen sollten getrennt für sich im Konfigurator plalziert werden können sollen.

Um die Ansicht des Konfigurators zu definieren, steht dem Benutzer die Möglichkeit eine Konfiguration zu pflegen bereit. Dabei wird ein Konfigurator-Datensatz angelegt, welcher als Kind-Datensätze Konfiguratorbereiche verknüpft hat. In den Bereichen lassen sich dann über ein Auswahlfeld die einzelnen UI-Elemente zuordnen.

Der Konfigurator-Datensatz dient also dazu, diesen bei einem Artikel oder ähnlichem auszuwählen. Die Bereiche repräsentieren dann die Div-Elemente, die mit Varianten versehen werden können und quasi das Layout bilden. Bei den Bereichen lassen sich dann Inhalte auswählen, welche die einzelnen UI-Steuerelemente repräsentieren.

Wichtig: Den Namen des Konfigurators und der Bereiche sollten nicht als Identifikation verwendet werden. Das ist eine lose Strukturpflege, die ein Kunde vornehmen soll.

Beispiel (Artikelkonfigurator auf Basis des shopSessionArticle):

  • Konfigurator-Datensatz "Standard"
    • Bereich "Intro"
      • Varianten: xs-12
      • Inhalte: Artikelüberschrift, Artikelbeschreibung
    • Bereich "Stage"
      • Varianten: xs-12, md-6
      • Inhalte: Artikelgallerie
    • Bereich "Konfiguration"
      • Varianten: xs-12, md-6
      • Inhalte: Bestellprozess, Variantenauswahl

Erweiterbarkeit

Eigene Elemente registrieren

Ein eigenes Element sollte über \Brandbox\ShopCore\Shop\Configurator\Lib\Event\OnPopulateContents registriert werden. Dadurch steht es auch in der Konfiguration bei den Bereichen als Auswahl zur Verfügung.

Eigene Elemente darstellen

Das Zusammenbauen des Elements sollte über \Brandbox\ShopCore\Shop\Configurator\Lib\Event\OnPopulateElement gemacht werden. Hier muss aber zuerst geprüft werden, dass $event→identifier und $event→context für das Element valide sind.

Übersicht Events View

EventBeschreibung
Shop\Configurator\Lib\Event\OnPopulateContentsDamit kann ein eigenes Element registriert werden. Siehe auch "Eigenes Element registrieren".
Shop\Configurator\Lib\Event\OnPopulateContext

Damit kann Einfluss über den Context genommen werden. Der Kontext dient als Basis für folgende Events und definiert, in welchem Kontext der Konfigurator gerade aufgerufen wird.
Beispiel: Shop\Article\lib\Struct\ContextConfiguratorArticle

Shop\Configurator\Lib\Event\OnPopulateStructureDamit kann die Struktur angepasst werden. Die Struktur ist der Aufbau der Bereiche und deren Inhalten. Das ist die Ebene der Pflege der Konfiguration für den Konfigurator.
Shop\Configurator\Lib\Event\OnPopulateConfiguratorAufbau der UI-Elemente. Standardmäßig wird hier auch OnPopulateSection im Verlauf des Events ausgeführt.
Shop\Configurator\Lib\Event\OnPopulateSectionAufbau der UI-Elemente des einzelnen Bereichs. Standardmäßig wird hier auch OnPopulateElement im Verlauf des Events ausgeführt.
Shop\Configurator\Lib\Event\OnPopulateElementAufbau des spezifischen UI-Elements für den in der Struktur hinterlegten Inhalt für diesen konkreten Bereich. Siehe auch "Eigene Elemente darstellen".

Übersicht Events Daten

EventBeschreibung
Shop\Configurator\Lib\Event\OnPopulateInit

Wird nach dem Laden der Seite aufgerufen. Erlaubt das Ausführen von StackResponses direkt nach dem Aufrufen der Seite.
Beispiel: Anhängen des cartSessionArticleID-Urlparameter nach dem Laden und Erstellen der shopSessionArticles

Shop\Configurator\Lib\Event\OnPopulatePayload

Die Payload steht im JS zur Verfügung und wird von da requests wieder an PHP mitgeschickt.
Beispiel: cartSessionArticle

Shop\Configurator\Lib\Event\OnExecuteChange

Wird bei Änderungen im Konfigurator via Request aufgerufen. Hier wird die Payload aus dem JS (und OnPopluatePayload) mitgeschickt. Zusätzlich gibt es in der $payload den allgemeinen Key 'actions', mit dem die ausgeführten Aktionen lose mitgegeben werden.
Beispiel:  'payload' => ['actions' =>  ['cartSessionArticleQuantityChange'], 'cartSessionArticle' => ....]

  • Keine Stichwörter