Bundle Produkte

Über die Bundle Produkte Erweiterung können Sie mehrere Produkte in einem Bundle-Set zusammenfassen. 

Short Facts

  • Bundle-Produkte sind datentechnisch gesehene eigene Produkte (eigener PCode), mit all ihren Möglichkeiten, Feldern und Preisen.
  • In einem Bundle-Produkt (Vater-Produkt) wird hinterlegt, aus welchen Unter-Produkten (Kind-Produkte) es besteht.
  • Bundle-Produkte können beliebige tief verschachtelt werden (Bundles of bundles...).
  • (Bundle-) Produkte können mehrfach ge'bundlet werden.
    D.h. evtl. keine reinen hierarchisch resultierenden Graphenstrukturen.
  • Bundle-Verknüpfungen (die jeweilige Vater-Kind-Beziehung) können um beliebige Zusatzdaten konfiguriert werden.
  • Bundles basieren nicht auf (hierarchischen) Produkt-Kategorisierungen.
  • Vorbereitete Shop Produkt-Templates und Formate.
  • Verfügbare Funktionen, wie bspw. rückwärtige Tipps: "enthalten im Bundle...", Bundle-Pfad-Navigationen uvm.

 

Installation

Die Installation lässt sich einfach über das Backend des eCMS unter  Administration > Plugins durchführen.

Neu nach Installation

eCommerce Suite Backend

Durch das Plugin werden die Produkt-Daten des Shops um Zusatzfelder für in einem Vater-Produkt enthaltene Kinder-Produkte und den zugehörigen Modus der Auflösung ergänzt. Hierüber kann für jedes Produkt individuell eingestellt werden, ob bei einer Bestellung das Vater oder die zugehörigen Kinder-Produkte übernommen werden sollen. Auf der Seite Bundle-Produkte Konfiguration können Sie allgemeine Einstellungen hierfür festlegen.

Shop-Frontend

Auf der Produktdetailseite werden einige neue Formate ergänzt, die Ihnen u.a. anzeigen, welche Produkte in einem Bundle-Produkt enthalten sind bzw. in welchem Bundle-Produkt ein Produkt enthalten ist und wieviel der Kunde beim Kauf des Bundles im Vergleich zum Einzelkauf spart.

Use-Cases

Fertig gepackte Sets

Falls Sie ein Produkt-Set bereits fertig zusammengestellt haben und die einzelnen (Kinder-)Produkte nicht einzeln als Posten im Auftrag und auf dem Lieferschein sehen möchten, wählen Sie fügen Sie im Feld "enthaltene Produkte" einfach die jeweiligen Kinder-Produkte in der richtigen Stückzahl zum Vater-Produkt hinzu und wählen Sie als Modus "nicht auflösen".

Set-Preis für Einzelprodukte

Falls Sie einzelne Produkte als Set verkaufen möchten, wählen Sie die jeweiligen (Kinder-)Produkte in der Stückzahl für das Set aus und wählen Sie den Modus "bei Bestellung auflösen". Bei Abschluß der Bestellung wird das entsprechende Vaterprodukt gegen seine Kinder-Produkte ersetzt. Der Preis des Vater-Produkts wird dabei anteilig auf die Kinder-Produkte verteilt.

 

Developer

Bundle Breadcrumb

Bei über mehrere Ebene verschachtelte Produkt Bundle können Sie im Shop-Frontend eine Breadcrumb Navigation integrieren, um dem User bei der Navigation durch die Produkt Bundles zu unterstützen. 

Für die Abfrage des Breadcrumb Pfades stellt das Plugin die Methode "product_bundle_getBreadcrumbPath" bereit:

  1. // Aufruf aus einem Format 
  2. $this->eCMS->plugin_ecs->ecs_plugin_product_bundles->product_bundle_getBreadcrumbPath(...);

Für die Ausgabe des Bundle Breadcrumbs ist im Plugin das Format "ecs_product_bundle_breadcrumb" enthalten. 

Um den korrekten Bundle-Pfad finden zu können, muss beim Aufruf eines Bundle-Kind-Produkts die Information über den gesamten Bundle-Vater-Pfad mitgegeben werden.

Hintergrund Info: Dadurch, dass Bundles beliebig ineinander verschachtelt und vor allem wiederverwendet werden können, ist die genaue "Position" eines Produkts in einer Bundlestruktur nur durch den gesamten Bundle-Pfad (Kante des Graphen) beschrieben.
Bei hierarchischen (Produkt-) Kategorien ist dies nicht notwendig und somit alles wesentlich einfacher, da eine Kategorie auch nur einmal wirklich vorkommen kann.

 

Beispiel:
("Ausgerollte" Darstellung. "Baugruppe 1" ist natürlich nur einmal in der Produkt-Datenbank angelegt und mit ihren Komponenten definiert!)

  • Maschine A ("pcode" = "MA")
    • Baugruppe 1 ("pcode" = "BG1")
      • Komponente A1 ("pcode" = "KA1")
      • Komponente A2 ("pcode" = "KA2")
    • Baugruppe 2 ("pcode" = "BG2")
      • Komponente A2 ("pcode" = "KA2")
      • Komponente A3 ("pcode" = "KA3")
  • Maschine B ("pcode" = "MB")
    • Baugruppe 3 ("pcode" = "BG3")
      • Baugruppe 1 ("pcode" = "BG1")
        • Komponente A1 ("pcode" = "KA1")
        • Komponente A2 ("pcode" = "KA2")
      • Komponente A6 ("pcode" = "KA6")

Um den Breadcrumb-Pfad zur Komponente A2 unterhalb der Baugruppe 1 korrekt abfragen zu können, muss die Inhalt-URL um die gersamt Vater-Pfad-Information "Maschine A > Baugruppe 1" erweitert werden. Dazu setzen wir die GET-Variable bundlepath mit dem Wert "MA|BG1" in die Inhalt-URL.

Der bundlepath-Parameter wird zusammengesetzt aus den einzelnen PCodes mit jeweils durch Pipe-Zeichen getrennt.

  1. // Abfrage der Inhalt-URL für Komponente A2 in Baugruppe 1 in einem Format 
  2. $r = $this->eCMS->ecms_cdb->record->record_getURL(
  3.     array(
  4.         'xc__label' => 'KA2',
  5.         'contenttype' => 'ecs_product',
  6.         'parameter'=>array('bundlepath'=>'MA|BG1'),
  7.     )
  8. );

Diese Abfrage liefert Ihnen die Bundle Pfad "Maschine A > Baugruppe 1 > Komponente A2" zurück. 

Ändern Sie den Parameter bundlepath in "MA|BG1" erhalten Sie den Bundle Pfad "Maschine A > Baugruppe 2 > Komponente A2" zurück. 

Möchten Sie den Bundle Pfad zur Baugruppe 1 abfragen, setzten Sie den Parameter bundlepath auf "MA"

Für die Maschine 1 brauchen Sie den Parameter bundlepath nicht, da die Maschine 1 keinen Bundle-Vater hat.