Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Damit die Artikel im Warenkorb und der Merkliste über mehrere Besuche des Shops von unterschiedlichen Geräten gespeichert werden, muss der Kunde ein Kundenkonto erstellt haben und im Shop angemeldet sein.

Platzierung über das CMS

Damit der Warenkorb und die Merkliste im Shop dargestellt werden, müssen die entsprechenden CMS-Ansichten platziert werden. Siehe auch die Dokumentation der CMS-Ansichten und Seiten.

...

Für die Merkliste sollte die Ansicht "Bestellprozess: Merkliste" aus dem Shop-Theme auf der Seite mit dem shortlink "wishlist" platziert werden.

Styling

Über Administation → Themes → Themes → Auswahl Theme sind folgende Einstellungen interessant für die Darstellung des Warenkorbs und der Merkliste.

Hinweis: Nach Änderungen der Variablen muss dieses Theme zuerst über "Theme erzeugen" neu erzeugt werden.

Reiter

Variable(n)

Beschreibung

framework-container

$shop-framework-container-variant-basket-gutter

Definiert die allgemeinen Abstände der Warenkorb-Container.

framework-container

$shop-framework-container-variant-

   

  basket-[image, content, actions, notifications]-

       

    width-[xs, sm, md, lg]

Mit diesen Variablen können die Breiten der vier Layout-Bereiche eines Eintrags in der Auflistung der Warenkorbartikel definiert werden. Diese sollten allerdings, gerade bei Verwendung prozentualer Werte, miteinander schlüssig sein.
Über diese Variablen ist es möglich, die Layout-Bereiche auf breiteren Geräte nebeneinander und auf schmäleren Geräten untereinander darzustellen.

framework-container

$shop-framework-container-variant-basket-actions-breakpoint

Bestimmt die Breite, ab dem der Bereich für die Aktionen der Toolbar nebeneinander und den Hintergrund $shop-framework-container-variant-basket-actions-background dargestellt wird.

framework-container

$shop-framework-container-variant-basket-actions-background

Hintergrundfarbe, welche den Aktionen nach Umbruch durch $shop-framework-container-variant-basket-actions-breakpoint gegeben wird.

shop-listing

$shop-listing-variant-squeeze-max-width

Definiert die maximale Breite der Auflistungen. Diese Variante wird den Preisen gegeben.

shop-basket-divider

$shop-basket-divider-gutter

Abstand zu anderen Elementen.

shop-basket-divider

$shop-basket-divider-inset

Abstand links und rechts. Falls eine Einrückung der Trennlinie gewünscht ist.

shop-basket-divider

$shop-basket-divider-[width, color, style]

Definiert den Rahmen, welcher als Trenner dargestellt wird.

$shop-basket-image

$shop-basket-image-ratio

Verhältnis von Höhe und Breite des Bildes in Prozent.

Benachrichtigungen

Folgende Benachrichtigungen kann unterstützt der Warenkorb durch Component/Notification.

Kundenbenachrichtigung

Mit \Brandbox\ShopCore\View\Basket\Manager::addBasketUserNotification kann ein Benachrichtigung-Datensatz mit dem $target-Muster BasketUserNotification:id und Endpunkt public angelegt werden. Diese Benachrichtigungen werden dann unterhalb der Warenkorbinhalte dargestellt.

Sessionbenachrichtigungen

Mit \Brandbox\ShopCore\View\Basket\Manager::addBasketSessionNotification kann ein Benachrichtigung-Datensatz mit dem $target-Muster BasketSessionNotification:id und Endpunkt public angelegt werden. Diese Benachrichtigungen werden dann unterhalb der Warenkorbinhalte dargestellt.

Eine CartEntity definieren

Es ist in bestimmten Fällen sinnvoll, eine eigene CartEntity zu definieren. Hauptsächlich ist das wichtig, wenn man nicht direkt mit einem shopSessionArticle arbeitet und dennoch einen Eintrag im Warenkorb / Merkliste / etc. darstellen, und dessen Eventstrucktur verwendent möchte.

...

Meistens ist er auch sinnvoll, eine eigene Kontextklasse zu definieren. Diese sollte dann von \Brandbox\ShopCore\Shop\Checkout\lib\Struct\CartContextAbstract ableiten und Checkout\Manager::getCartEntities mitgegeben werden. Das ist notwendig, wenn nur Entitäten dieses Typs zurückgeliefert werden sollen. Auch notwendig ist es, auf diesen Kontext in OnPopulateCartEntities  zu reagieren.

Events

Die Benennung innerhalb der Events orientiert sich an folgender Terminologie.

Begriff

Beschreibung

Cart(-Entity)

Ist eine Entität, die sich im Bestellprozess befindet.
Das kann ein shopSessionArticle sein, der entweder im Warenkorb oder auf der Merkliste liegt.
Oder aber auch eine Entität, die nichts mit der ShopSession zu tun hat. Zum Beispiel ein Paketeintrag welcher nur auf shopSessionArticle verweist.

CartSessionArticle

Ist eine konkrete Art einer Cart-Entity. CartSessionArticle ist eine Cart-Entity, welche shopSessionArticle im Bestellprozess, Warenkorb und Merkliste verwaltet.
Siehe auch CartSessionArticle.

Basket(-Entity) /
CartContextBasket

Ist eine CartEntity welche im Warenkorb dargestellt werden soll

Wishlist(-Entity) /
CartContextWishlist

Ist eine CartEntity welche auf der Merkliste dargestellt werden soll

Warenkorb

Diese Events arbeiten mit dem \Brandbox\ShopCore\View\Basket\libLib\Struct\BasketContextAbstract und den \Brandbox\ShopCore\Shop\Checkout\lib\Struct\CartEntityInterface-Entities.

Der Kontext \Brandbox\ShopCore\View\Basket\libLib\Struct\BasketContextBasket beschreibt den Warenkorb auf der Warenkorbseite und \Brandbox\ShopCore\View\Basket\libLib\Struct\BasketContextConfirmation beschreibt den Warenkorb in der Bestätigungsansicht im Bestellprozess.

OnPopulateBasket

Haupt-Event

Event

Beschreibung


\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasket

Haupt-Event des Warenkorbs. In der Standardimplementation werden über die folgenden Unter-Events der Aufbau der Warenkorbansicht definiert.

OnPopulateBasket

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketToolbarAdditional

Toolbar über der Auflistung der Warenkorbartikel

OnPopulateBasket

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItems

Auflistung der Warenkorbartikel. Für Details siehe separate Beschreibung.

OnPopulateBasket

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketSummary

Für zusammenfassende Inhalte im Warenkorb oder komplexere Aktionen, welche sich auf den gesamten Warenkorb beziehen statt auf konkrete Artikel. In der Standardimplementation wird hier die Preiszusammenfassung und durch shop-voucher die Gutscheinaktionen hinzugefügt.

OnPopulateBasket

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketToolbar

Toolbar für die Hauptaktionen der Warenkorbansicht. In der Standardimplementation werden hier "Weiter einkaufen" und "Bestellung abschließen" hinzugefügt.

OnPopulateBasket

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketMessages

Hier können Hinweise für den Warenkorb dargestellt werden. Aktuell gibt es noch keine Standardimplementation, aber hier könnte zum Beispiel ein Hinweis stehen, dass sich der Warenkorb seit dem letzten Besuch geändert hat.

OnPopulateBasket

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketEmpty

Wird dargestellt, wen keine $entities vorhanden sind. Für Details siehe separate Beschreibung.

OnPopulateBasketItems

Haupt-Event

Event

Beschreibung


\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItems

Auflistung der Warenkorbartikel. In der Standardimplementation wird hier für jeden Eintrag OnPopulateBasketItem aufgerufen und nach jedem Eintrag ein shop-basket-divider Element platziert.

OnPopulateBasketItems

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItemImage

Bild des Artikels. In der Standardimplementation wird hier ein shop-basket-image Element gebaut und hinzugefügt.

OnPopulateBasketItems

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItemContent

Informationen über den Artikel. In der Standardimplementation greift hier CartSessionArticle ein und reichert Inhalt aus dem shopSessionArticle an.

OnPopulateBasketItems

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItemActions

Bereich für Aktionen an konkreten Warenkorbartikeln. In der Standardimplementation wird hier OnPopulateBasketItemActionsToolbar ausgeführt. Für Details siehe separate Beschreibung.

OnPopulateBasketItems

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItemMessages

Hier können Hinweise zu konkreten Warenkorbartikel hinzugefügt werden. In der Standardimplementation werden zum Beispiel Hinweise für eine nicht ausreichende Menge hinzugefügt.

OnPopulateBasketItemActions

Haupt-Event

Event

Beschreibung


\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItemActions

Bereich für Aktionen an konkreten Warenkorbartikeln.
In der Standardimplementation wird hier eine Toolbar hinzugefügt.

OnPopulateBasketItemActions

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketItemActionsToolbar

Toolbar für Aktionen am Artikel. In der Standardimplementation werden hier Aktionen wie "Auf die Merkliste" oder "Entfernen" hinzugefügt.

OnPopulateBaskeEmpty

Haupt-Event

Event

Beschreibung


\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketEmpty

Wird dargestellt, wen keine $entities vorhanden sind. Für Details siehe separate Beschreibung.
In der Standardimplementation wird hier ein Hinweistext und eine Toolbar hinzugefügt.

OnPopulateBasketEmpty

\Brandbox\ShopCore\View\Basket\

lib

Lib\

event

Event\OnPopulateBasketEmptyToolbar

Toolbar für die Hauptaktionen der Warenkorbansicht im leeren Zustand. In der Standardimplementation werden hier "Weiter einkaufen" hinzugefügt.

Merkliste

Analog zu Warenkorb, mit der Ausnahme der Benennung.

Warenkorbvorschau

OnPopulateBasketPreview

Haupt-Event

Event

Beschreibung


\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreview

Haupt-Event der Warenkorbvorschau. In der Standardimplementation werden über die folgenden Unter-Events ausgeführt.

OnPopulateBasketPreview

\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewTotal

Gesamtsumme als Vorschau im statischen Element.

OnPopulateBasketPreview

\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewElements

Inhalt des aufklappenden Bereichs der Warenkorbvorschau.

OnPopulateBasketPreviewElements

Haupt-Event

Event

Beschreibung


\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewElements

Bereich für Elemente innerhalb des aufklappenden Bereichs in der Warenkorbvorschau.

OnPopulateBasketPreviewElements

\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewItems

Darstellung und Verarbeitung der einzelnen Cart-Entities.

OnPopulateBasketPreviewElements

\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewSummary

Bereich für eine Zusammenfassung der Inhalte. In der Standardimplementation wird hier, abhängig der mitgegebenen Preiskonfiguration, die Gesamtsumme dargestellt.

OnPopulateBasketPreviewElements

\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewToolbar

Toolbar für Aktionen der Warenkorbvorschau. In der Standardimplementation werden hier Links zum Warenkorb und zum Bestellprozess dargestellt.

OnPopulateBasketPreviewItems

Haupt-Event

Event

Beschreibung


\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewItems

Darstellung und Verarbeitung der einzelnen Cart-Entities.

OnPopulateBasketPreviewItems

\Brandbox\ShopCore\View\BasketPreview\Lib\Event\OnPopulateBasketPreviewItem

Wird pro Cart-Entity aufgerufen. In der Standardimplementation greift hier CartSessionArticle ein und reichert Inhalt aus dem shopSessionArticle an.

Wichtige Einstiegspunkte

Einstiegspunkt

Beschreibung

\Brandbox\ShopCore\Shop\Checkout\Manager::getCartEntities

Liefert alle CartEntities zurück, welche über \Brandbox\ShopCore\Shop\Checkout\lib\event\OnPopulateCartEntities hinzugefügt werden.
Die Filterung der Einträge geschieht dann über die Mitgabe der richtigen \Brandbox\ShopCore\Shop\Checkout\lib\Struct\CartContextAbstract Kontextklasse. Zum Beispiel fügt der Shop eine Entität nur hinzu, wenn zum Beispiel der Kontext \Brandbox\ShopCore\Shop\Checkout\lib\Struct\CartContextSessionBasket mitgegeben wurde.

\Brandbox\ShopCore\View\Basket\

lib

Lib\Subscriber\ViewBasketSubscriber::getSubscribedEvents

Auflistung der Hauptevents der Standardimplementation des Warenkorbs

\Brandbox\ShopCore\View\Wishlist\

lib

Lib\Subscriber\ViewWishlistSubscriber::getSubscribedEvents

Auflistung der Hauptevents der Standardimplementation der Merkliste

\Brandbox\ShopCore\View\CartSessionArticle\Lib\Subscriber*

Auflistung des Integrationsevents des CartSessionArticles in die einzelnen Views. Hier werden tatsächliche Werte eines shopSessionArticles verarbeitet und ausgegeben.
Siehe auch CartSessionArticle.