Parent- und Subartikel

Benötigte Lesezeit: 16 Minuten


Einleitung

Wenn im Shop Artikel verkauft werden, die es in verschiedenen Ausprägungen gibt (Farbe oder Grösse …) so bietet sich die Umsetzung mit Parent- und Subartikeln an, so dass nicht für jede Variante ein eigener Artikel angezeigt werden muss, was bei vielen Elementen schnell unübersichtlich wird. Parent- / Subartikel sind zudem einiges flexibler ist als Standard PepperShop Varianten. Jede Variante verfügt über je einen eigenen Lagerbestand, optional ein Bild, inkl. mehrsprachige Komponenten wie Namen und Beschreibung. Da die Verknüpfung der Subartikel zum Parentartikel beim Import über die Artikel-Nr. realisiert ist, können auch extern angebundene ERP-Systeme Varianten zum Shop anliefern.

Der sogenannte Parentartikel enthält detaillierte Artikelinformationen (Bild, Beschreibung, Preis, Link auf weitere Informationen, Basisname, ..). Dieser “virtuelle Artikel” kann selbst nicht gekauft werden. Dem Parent-Artikel werden nun die kaufbaren Varianten in Form von Sub-Artikeln zugewiesen. Diese benötigen mindestens einen Namen, der die Variante beschreibt, eine Artikel-Nr. und einen Preis. Natürlich kann man hier alles vergeben, was ein Artikel selbst im PepperShop auch hat (Gewicht, Lagerbestand, Bild, …). Ein Parent-/Subartikel besteht also immer aus einem Parentartikel und mehreren Subartikeln.

Die Administration von Parent-/Subartikel kann über die Web basierte Artikelbearbeitungsmaske, die Artikel Massenmutationen, dem Import- / Exporttool oder dem Enterprise Business Connector (Caller) getätigt werden.

Voraussetzungen

Folgende Bedingungen müssen erfüllt sein, damit man in seinem PepperShop mit Parent-/Subartikel korrekt arbeiten kann:

  • Artikelanzeige: Die zweistufige Artikeldarstellung muss unter Shop-Administration → Layout-Einstellungen → Layout Management → Artikel eingeschaltet sein (ist standardmässig so konfiguriert).
  • Im Menü Shop-Administration → Allgemeine Shopeinstellungen → Artikel bearbeiten muss die Einstellung Parent- und Subartikel eingeschaltet und gespeichert sein:

  • Die Subartikel müssen in einer (oder mehreren) unsichtbaren Kategorie(n) liegen, damit sie nicht einzeln zum Verkauf angeboten werden. Dies wird vom System grundsätzlich automatisch erledigt. wenn mit der Web basierten Shop-Administration gearbeitet wird.
  • Alle verwendeten Artikel müssen über eigene Artikel-Nr. verfügen (sowohl Parent- als auch Subartikel).

Ganz einfach…

Nachdem die Konfiguration des Shops wie im Kapitel 2 beschrieben angepasst oder verifiziert worden ist, kann man ganz einfach mal die Artikel-Bearbeitungsmaske aufrufen: Shop-Administration → Artikel → Neuen Artikel einfügen. Der Hauptartikel ist zugleich der Parent-Artikel. Wir definieren von oben also die Artikel-Nr. den (Basis)Namen und die Beschreibung. Beim Preis schreiben wir -1 hin. Beim Gewicht eine 0. Weiter unten wird nun eine Tabelle mit dem Titel ‘Variationen (Subartikel)’ angezeigt. Hier definieren wir mal unsere Ausprägungen (Name, Artikel-Nr. Preis und Gewicht). Beim Klick auf das Plus-Symbol auf der linken Seite können noch weitere Angaben getätigt werden.

Nun auf Weiter klicken, den Parent-Artikel einer Kategorie zuweisen und zuletzt noch ein Bild für den Hauptartikel wählen. Unser ersten Parent-/Subartikel ist schon fertig gestellt und kann gekauft werden.

Artikeleigenschaften

Unterschiede zwischen Parent- und Subartikeln:

Parent-Artikel Sub-Artikel
Verw. Beispiel Verw. Beispiel
Artikel-Nr ja pepper ja pepper_prof
Name ja PepperShop ja PepperShop Professional
Beschreibung ja Version 2.6 bietet.. nein -
Verw. Beispiel / Defaultwert Verw. Beispiel
Kurzbeschreibung ja Der neue PepperShop.. nein -
Preis nein -1 (wichtig, muss = -1 sein!) ja 449.00
Gewicht nein 0 (wichtig, muss = 0 sein!) ja 2
Bild ja pepper_gr.jpg nein -
Lagerbestand nein - ja 3
Parent-Nr nein - ja pepper
gruppierung_parent nein - ja Standard-Software

Zusammensetzung von Parent- und Subartikel

Die Verbindung (Zusammengehörigkeit) wird über eine Artikel-Nr. gesteuert. Der Parentartikel leitet die Artikelgruppe ein. Seine Artikel-Nr. muss bei jedem Subartikel als Parent-Nr. verknüpft werden, dies lässt sich in der Shop-Administration z.B. über die Artikel-Massenmutationen erledigen (erster Menüpunkt), oder es wird via Artikel-Bearbeitungsmaske vollautomatisch gemacht. Info: Dazu muss man Parent-/Subartikel via Allgemeine Shopeinstellungen zuvor aktiviert haben.

Alternativ können die Parent- / Subartikel Verknüpfungen auch via Artikelimport oder Caller definiert werden. Dazu exportiert man zuerst seine bestehenden Artikeldaten und wählt zu den exportierbaren Pflichtfeldern (Artikelname, Artikel-Nr, Kategorie-ID) noch zusätzlich die unten zur Auswahl angezeigten Parent-Nr und Parent Gruppe. Die Parent Gruppe ist optional und muss nicht zwingend mitangegeben werden.

Beispiel-Import-Datei (ohne Parent Gruppe, dazu kommen wir später noch):

Artikel-Nr. Name Preis Parent-Nr.
schuh_001 Sportschuh Stella 0
schuh_001-1 Sportschuh Stella Grösse 37 45 schuh_001
schuh_001-2 Sportschuh Stella Grösse 38 45 schuh_001
schuh_001-3 Sportschuh Stella Grösse 39 45 schuh_001
schuh_001-4 Sportschuh Stella Grösse 40 47 schuh_001

Der jeweilige Artikelname der Subartikel kann auch nur die Unterschiedung zum Hauptartikel enthalten (hier z.B. nur die Grössenangabe). Wie wir später sehen werden, gibt es für die Artikelnamendarstellung eine weitere Steuerungskonstante in der Datei {shopverzeichnis}/shop/config.inc.php. Per Default aber bitte den Basisartikelnamen des Parents bei allen Subartikeln mit angeben.

Schauen wir uns dieses einfache Beispiel mal im Shop an (weitere Ansichten, siehe Kapitel 5): In der zweistufigen Artikelanzeige, sieht der Kunde zuerst eine Übersicht aller Artikel einer Kategorie. Hier wird der günstigste Preis gesucht (günstigste Variante) und es wird davor ‘Ab’ geschrieben:

Die Artikel Detailanzeige kann die Varianten des Artikels entweder als Liste anzeigen (alle Details der Subartikel auf einen Blick ersichtlich, z.B. Lagerinfo) oder als Dropdownauswahl, welche beim Wählen einer Variante alle relevanten Daten ersetzt (Bild, Preis, Lagerinfo, …):

Subartikel gruppieren

Die Subartikel können entweder alle untereinander präsentiert werden (z.B. rot, grün, blau, gelb, ..) oder man kann diese in Gruppen gegliedert anzeigen. Dazu muss man zu jedem Subartikel definieren, wie seine Gruppe heisst, z.B. (rot + 50g, rot + 100g, grün + 50g, grün + 100g, blau + 50g, blau + 100g, gelb + 50g, gelb + 100g). Dazu wird ein Gruppierungsfeld verwendet. In der Artikel-Bearbeitungsmaske lautet dies ‘Subartikelgruppe’, im Import-/Export-Tool ‘Parent Gruppe’.

Bei Subartikel-Auswahlanzeige via Dropdowns, empfehlen wir hier die Einstellung Dropdown gruppiert.

Parent-/Subartikel mit Optionsartikeln (Optionen zu den Varianten)

Beschreibung

In diesem Unterkapitel wird die Zusammensetzung eines komplexeren Artikels beschrieben, welcher mehrere Ausprägungen besitzt (Varianten) und zudem die Wahl von optionalen Zusatzartikeln beim «in den Warenkorb legen» erlaubt. Infos zur Shop-Konfiguration für diese Anzeigeart, siehe Kapitel 3.4.35.4.

Beispielanzeige eines Artikels ‘Klebstoff’ (Mehrkomponentenkleber)

Abbildung 1: Beispielanzeige Artikel: Beschreibung, Varianten und Optionen.

Schematische Zusammensetzung

Ein zusammengesetzter Artikel besteht aus verschiedenen Komponenten:

Legende:

  • Parent Artikel: Enthält Bild(er), Name, Beschreibung. Er selbst ist nicht kaufbar, hat keinen Preis und kein Gewicht.
  • Subartikel (1..n): Ausprägungen / Varianten des Artikels. Diese werden gekauft, haben eine Artikel-Nr. einen Namen(szusatz), einen Preis, Lagerbestand und Gewicht.
  • Optionen (gruppiert): Verknüpfte Optionsartikel.

Administration

Neue Artikel erstellen

Neue Artikel sollten via «Klonen» erstellt werden. Dabei wird ein existierender Parent-/Sub-Artikel kopiert und als neuer Artikel angelegt, was meist viel schneller geht, als alle (ähnlichen) Varianten neu zu erfassen):

Schritt eins:

  1. Shop-Administration
  2. Artikel
  3. Artikel bearbeiten
  4. Neu vergeben
    • Parent Artikel-Nr.
    • Name
    • Beschreibung und Kurzbeschreibung
  5. Variationen / Subartikel (alle Werte, v.a. Artikel-Nr.)
  6. Klick auf Button ‘Als neu speichern’ (WICHTIG!)
  7. Kategorienzuweisung anpassen, falls nötig
  8. Bildzuweisung (nur erstes Bild, Parent-Artikel)

Schritt zwei (falls nötig):

  1. Optional weitere Bilder zum Parentartikel hinzufügen (Artikel bearbeiten → weiter → ‘Weitere Bilder’)
  2. Optional Bilder der Subartikel anpassen (Artikel bearbeiten → ‘+’-Button → ‘neues Bild’-Button)
  3. Verknüpfte Optionsartikel anpassen / ändern:
  4. Neue Optionsartikel zuerst erfassen
  5. Zuweisungen aktualisieren: Shop-Administration → Artikel-Massenmutationen → Optionsartikel

Bestehenden Artikel anpassen

Die Anpassung eines bestehenden Artikels erfolgt ebenfalls über die Artikelbearbeitungsmaske:

Shop-Administration → bestehender Artikel bearbeiten → Parent-Artikel

  • Hier lassen sich die Angaben zum Artikel (Name, Artikel-Nr., Beschreibungen) anpassen
  • Weiter unten in derselben Maske befinden sich die Daten der verknüpften und kaufbaren Subartikel.
  • Wenn man auf den ‘Weiter’-Button klickt kann die Kategorienzuordnung angepasst werden
  • Nochmals ‘Weiter’ bringt einem zur Parent-Artikel Bildzuweisung.
  • Die verknüpften Optionen (Optionsartikel) werden via Artikel-Bearbeitungsmaske losgelöst zugewiesen: Shop-Administration → Artikel-Massenmutationen → Optionsartikel → Parent-Artikel wählen

Optionsartikel Bearbeitung

Die Optionsartikel sind im wesentlichen verknüpfte Standard Artikel. Die Verknüpfung basiert auf einer Zuweisung pro Artikel. Die Gruppierung hingegen wird beim verknüpften Artikel selbst abgelegt, was bedeutet, dass ein Artikel immer nur in einer Optionsartikelgruppe sein kann. Eine Pistole ist immer ein Pistole…

Shop-Konfiguration

Basis der hier verwendeten Anzeige (Siehe Abbildung) ist die folgende Konfiguration des Shops:

Shop-Administration → Shop-Einstellungen → Allgemeine Einstellungen

Abbildung 2: Konfiguration: Subartikel als Dropdowns innerhalb des Parents anzeigen, Optionsartikel als Checkboxen.

Design-Steuerung

Die Anzeigesteuerung befindet sich in Shop-Administration → Shop-Einstellungen→ Allgemeine Einstellungen → Artikel bearbeiten. Siehe dort verschiedene Konfigurationen (u.a. Anzeigetyp/-position).

Wer die Anzeigeart von Subartikeln anpassen möchte, kann die in folgenden HTML-Templates tun:

Detaillierte Design-Anpassungen werden in der Template-Datei subartikel.tpl.html vorgenommen (in früheren PepperShop Versionen lautete der Name noch anders). Dieses ist in die Abschnitte zur Anzeige der Subartikel als Liste, als Dropdown und ganz unten als gruppierte Dropdown (Matrix) eingeteilt.

Der Parentartikel wird mit den Templates artikeldarstellung.tpl.html und artikel.tpl.html gerendert.

Darstellung eines-Beispieles mit einer aktiven Aktion:

Nun folgt noch ein Beispiel mit der Ansicht eines Parent-/Subartikels mit gruppierten Subartikeln:

Bei der Listendarstellung profitiert man vor allem von der tabellarischen Übersicht. Es werden zugleich alle Subartikel mit Details angezeigt.

Die Subartikel Auswahlanzeige per Dropdown(s) empfiehlt sich mit der dynamisch angepassten Anzeige. Nach der Auswahl eines Subartikels ändert sich das Bild und alle relevanten Daten (Preis, Verfügbarkeit, …) vollautomatisch. Info: Die Dropdown-Titel lassen sich via localetext.inc.php anpassen.

…und wie es aussieht, wenn man einen (Sub-)Artikel in den Warenkorb legt:

Administration

Verknüpfung von Artikeln in der Shop-Administration

Artikel in der Artikelbearbeitungsmaske zusammenstellen (Parent- und Subartikel in einer Maske zusammenbauen und später wieder bearbeiten): Shop-Administration -> Artikel -> Neuen Artikel einfügen

Beispiel mit zwei Gruppen

Oft kommt es vor, dass man nicht nur eine Gruppe von Varianten hat, sondern deren zwei - z.B. Farbe und Grösse. Damit diese zwei Ausprägungsarten des Artikels gruppiert dargestellt werden, verwendet man die Ausprägung mit weniger Varianten als sogenannte Subartikelgruppe und zweite Ausprägung als Subartikel. Hier sieht man eine Beispielmaske mit der Erfassung von folgender Struktur:

Artikel: PepperShop

Beispiel einer Konfiguration mit zwei Gruppen im PepperShop

  • Standardsoftware
  • Basic
  • Professional
  • Individualsoftware
  • Enterprise

Mit der Anzeigesteuerung ‘Dropdown gruppiert’ zeigt der Shop die beiden Auswahl Dropdowns sogar logisch aufgetrennt an, so dass der Kunde jeweils die Gruppenausprägung wählt, obwohl ein Subartikel erst durch die Auswahl in beiden Dropdowns referenziert wird.

Info: In dieser Subartikelmaske sieht man noch die Erfassung von E-Content (eigenes Modul).

Artikel manuell verknüpfen

Grundsätzlich geht man zweistufig vor:

  1. Zuerst wird der Parentartikel erstellt. Bei diesem Artikel muss man eine Artikel-Nr. vergeben. und das Feld ‘Parent-Nr.’ leer lassen. Der Parent Artikel ist grundsätzlich ein ganz normaler Artikel mit Name, Bild und Beschreibung und mit Preis -1, Lagerbestand 0 und ohne Varianten, Optionen, Zusatztexte.
  2. a) Nachdem der Parent Artikel erstellt worden ist, werden die Ausprägungen dieses Artikels erfasst. Dies sind die Subartikel. Ein Subartikel ist ein normaler PepperShop Artikel, welcher aber nur einen Namen hat, dafür aber keine Beschreibung und keine Kurzbeschreibung. Wichtig ist auch, dass diesem Artikel ein entsprechender Preis und gegebenenfalls ein Lagerbestand gegeben wird. Varianten, Optionen und Zusatztextfelder sind nicht erlaubt.
    b) Diesem Artikel wird nun der Parent Artikel zugewiesen. Dies geschieht bequem über das entsprechende Feld in der Artikel bearbeiten Maske (hier rot hervor gehoben)
    c) Nun wird dieser Artikel einer nicht sichtbaren Kategorie zugewiesen, dies ist sehr wichtig, da die Subartikel sonst dem Kunden zusätzlich noch einzeln präsentiert würden!

Nachdem alle Subartikel erfasst worden sind, ist das Parent- Subartikel Konstrukt beendet und im Shop kann der Kunde nun die entsprechende Ausprägung des Artikels einkaufen.

Artikel Massenmutationen

Die Artikel Massenmutationen sind über das Hauptmenü Artikel -> Artikel Massenmutationen erreichbar. Sobald im Shop Parent- und Subartikel aktiviert wurde (siehe Kapitel 2), wird das Standardbearbeitungsmenü der Artikel-Massenmutationen entsprechend angepasst:

Beim Klick auf den ‘Name / Parent / …’-Button und nach der Auswahl einer Kategorie, findet man nun die Möglichkeit für jeden Subartikel die Parent Artikel-Nr. zu verknüpfen. Dies kann man entweder schnell via Copy+Paste für mehrere Artikel machen oder bequem über das GUI.

Import von Parent- / Subartikeln via Import-Tool

Der Vorteil von Parent- und Subartikeln ist, dass man diese Art der Artikelverknüpfung auch ohne Probleme importieren kann, wie diese Angaben getätigt werden müssen, sieht man am folgenden Beispiel Screenshot einer Tabellenkalkulation mit den Importdaten (PepperShop Professional):

Diese Tabelle gibt es auch zum Download, so dass man seine Daten entsprechend vorbereiten kann:

Excel (xls): http://www.peppershop.com/peppershop_files/beispielimport_parent_sub.xls

Libre-Office1 Calc (ods): http://www.peppershop.com/peppershop_files/beispielimport_parent_sub.ods

CSV-Dokument (csv): http://www.peppershop.com/peppershop_files/beispielimport_parent_sub.csv

Diese Importdatei wird als CSV-Datei gespeichert und in der Shop-Administration bei Artikelimport / export importiert.

Import von Parent- / Subartikeln via Peppershop Enterprise Business Connector / Caller

In der Shop-Administration des Enterprise PepperShops befindet sich im Menü Import/Export der Punkt Caller-Navigator. Hier verwendet man den set_artikel-Import.

Genau wie im vorigen Kapitel beschrieben, liefert man hier eine CSV-Datei an (z.B. via Openoffice.org Calc oder Excel) worin spezifische Spalten die Zusammengehörigkeit und Präsentation von Parent- und Subartikel steuern. Details hierzu findet man in der Enterprise PepperShop API:

http://www.peppershop.com/anleitungen.php/enterprise

Informationen zur Steuerung des Parent- / Subartikel Systems

Das Parent- / Subartikel System des Shops wird gesteuert über einige Steuerungskonstanten und über Einstellungsfelder in der Shop-Datenbank. Folgende Kapitel gehen näher darauf ein.

Steuerungskonstanten in der PepperShop Konfigurationsdatei

Die Konfigurationsdatei findet man im Shopverzeichnis: shop/config.inc.php (diese Datei ist zusätzlich auch via Konfigurationseditor im Menü ‘Shop Konfiguration’ > ‘Konfiguration’ > ‘Steuerungskonstanten dieses Shops ansehen und bearbeiten’ > ‘Konfigurationseditor’ bearbeitbar). Folgende Steuerungskonstanten haben Einfluss auf die Parent- / Subartikel Verknüpfungen im PepperShop:

PARENT_ANSTATT_SUB_IN_SPECIAL_KATEGORIEN (default = true)
Wenn z.B. ein Sub-Artikel als Aktion laeuft, soll in der Aktionen Kategorie nicht nur der Sub-Artikel, sondern der Parent-Artikel angezeigt werden.. Diese Einstellung betrifft die Funktion get_all_special_artikel(), welche z.B. auch die Promotions-Artikel ausliest.

AUTO_SUB_ARTIKEL_KAT (default = true)
Falls diese Funktionlität eingeschaltet ist, werden Subartikel beim Import über den Business Connector (Caller) automatisch der unter SUB_ARTIKEL_KAT_NAME definierten (unsichtbaren) Kategorie zugewiesen.

SUB_ARTIKEL_KAT_NAME (default = Subartikel)
Name der Kategorie, welche die Subartikel beinhaltet. Diese Kategorie wird beim Kategorien-Import über den Business Connector automatisch eingerichtet, wenn die Parent-Sub-Funktionalität eingeschaltet ist.

CUT_PARENT_NAME (default = true)
Wenn gleich true, wird bei der Listen-Darstellung der Subartikel der Artikelname des Parentartikels aus dem Artikelnamen des Subartikels herausgeschnitten. Wenn z.B der Parentartikel ‘Hose’ heisst und der Subartikel ‘Hose blau’, wird der Subartikel als ‘blau’ in der Subartikel-Liste dargestellt (nicht im Warenkorb!)

SUBARTIKEL_TEXTEINGABEFELDER_VON_PARENT (default = true)
Wenn diese Steuerungskonstante auf false eingestellt ist, ist der “Anzeigetyp” “Liste” fuer “Subartikel” nicht verwendbar und Texteingabefelder werden nicht mehr uebergreifend beim Parent-Artikel sondern direkt beim entsprechenden Subartikel eingestellt. Wenn diese Einstellung wieder von false auf true geandert wird, muessen die Parent-Artikel einmalig in der Shop-Administration abgespeichert werden, damit die Einstellung uebernommen wird.

Steuerungseinstellungen in der Shop-Datenbank

In der Shop-DB-Tabelle shop_settings_new gibt es zwei relevante Einstellungen für Parent- / Sub:

parent_sub_artikel (default = N)
Diese Einstellung wird über das Webinterface gesteuert Shop-Administration → Allgemeine Shopeinstellungen → Parent- und Subartikel. Es gibt die Werte Y und N wobei Y für ja steht.

show_subartikel_infos_auf_1_stufe (default = Y)
Wenn = Y, wird bei aktivierter zweistufiger Artikeldarstellung schon auf der ersten Artikelstufe Informationen von Subartikeln eines Parentartikels angezeigt. Die Informationen umfassen den Subartikel Lagerbestand (Summe aller Subartikel-Lagerbestaende) sowie den Mindestartikelpreis (günstigster Preis des Subartikels), Mindestaktionspreis / Aktionsflag und Promoflag -> ACHTUNG: Dies hat negative Auswirkungen auf die Performance der Artikellistendarstellung! Die Abfragewerte lassen sich in der Datei shop/USER_SQL_BEFEHLE.php mit der Variable $sql_getMultiArtikellight_1_1_1 steuern.

Subartikel Editor Konfiguration

Die Subartikel Darstellung in der Artikelbearbeitungsmaske kann mit etwas PHP-Kenntnissen den eigenen Bedürfnissen angepasst werden. Dazu ändert man die Konfiguration in der folgenden Datei:

{shop_verzeichnis}/shop/Admin/subartikel_editor.php

<?php

class subartikel_editor extends basic_object_helper {

// -----------------------------------------------------------------------
// Membervariablen (Verfuegbare Typen: text,float,integer,enum,datetime,position,bild)
// (Info: Defaultwerte werden von der DB eingelesen, sollen diese anders sein, $subartikel_leer in Methode $this->get_empty_rows() ueberschreiben)
// *** Subartikel Datendarstellung:
protected $parent_sub_subartikel_felder_auf_zeile = array('Name'               => array('typ'=>'text'    ,'label'=>'Name'             ,'width'=>'185px','size'=>20,'maxlength'=>255),
                                                          'Artikel_Nr'         => array('typ'=>'text'    ,'label'=>'Artikel Nr.'      ,'width'=>'114px','size'=>12,'maxlength'=>255),
                                                          'Preis'              => array('typ'=>'float'   ,'label'=>'Preis'            ,'width'=>'60px' ,'size'=>6 ,'maxlength'=>10),
                                                          'Gewicht'            => array('typ'=>'float'   ,'label'=>'Gewicht'          ,'width'=>'50px' ,'size'=>5 ,'maxlength'=>10),
                                                          'Lagerbestand'       => array('typ'=>'float'   ,'label'=>'Lager-<br>bestand','width'=>'50px' ,'size'=>5 ,'maxlength'=>10),
                                                          'positions_nr'       => array('typ'=>'position','label'=>'Position'         ,'width'=>'50px')
                                                        //'zusatzfeld_1'       => array('typ'=>'text'    ,'label'=>'Zusatzfeld 1'     ,'width'=>'185px','size'=>20,'maxlength'=>255)
                                                         );
protected $parent_sub_subartikel_felder_in_div    = array('Mindestlagermenge'  => array('typ'=>'float'   ,'label'=>'Mindestlagermenge','width'=>'400px','size'=>8 ,'maxlength'=>10),
                                                          'Lieferbar_in'       => array('typ'=>'text'    ,'label'=>'Lieferbar in'     ,'width'=>'400px','size'=>20,'maxlength'=>255),
                                                          'Lagerverhalten'     => array('typ'=>'enum'    ,'label'=>'Lagerverhalten'   ,'width'=>'400px','values'=>array('immer_bestellbar'=>'uneingeschr&auml;nkt verf&uuml;gbar','nachbestellbar'=>'nachbestellbar','nicht_nachbestellen'=>'wird nicht nachbestellt')),
                                                          'gruppierung_parent' => array('typ'=>'text'    ,'label'=>'Subartikelgruppe' ,'width'=>'400px','size'=>20,'maxlength'=>255),
                                                          'Bild_klein'         => array('typ'=>'bild'    ,'label'=>'Artikelbild'      ,'width'=>'615px','size'=>11,'maxlength'=>255),
                                                          'Aktionspreis'       => array('typ'=>'float'   ,'label'=>'Aktionspreis'     ,'width'=>'400px','size'=>8 ,'maxlength'=>10),
                                                          'Aktion_von'         => array('typ'=>'datetime','label'=>'Aktion von'       ,'width'=>'400px','format_in'=>'us' ,'format_show'=>'eu' ,'date_with_time'=>false,'zeit_default_wert'=>'00:00:00'),
                                                          'Aktion_bis'         => array('typ'=>'datetime','label'=>'Aktion bis'       ,'width'=>'400px','format_in'=>'us' ,'format_show'=>'eu'
,'date_with_time'=>false,'zeit_default_wert'=>'23:59:59')
                                                         );
// *** Konfigurationsvariablen:
protected $subartikel_read_order_by               = 'positions_nr,Artikel_Nr,Name'; // ORDER BY Argument fuer den Subartikel Auslesemechanismus - wird im Konstruktor initialisiert
protected $positionierungsfeld                    = 'positions_nr'; // Datenbankfeldname fuer Positionierung der Subartikel
protected $delete_subartikel_ohne_min_daten       = true;    // Sollen uebermittelte Subartikel geloescht werden, wenn Artikel-Nr., Name leer sind (nach trim()-Operation)? Default = true
protected $margin_top                             = '16px';  // Editor: Abstand der Editor Komponente zu oben
protected $margin_right_pro_feld                  = '10px';  // Editor: Rechter Abstand zum naechsten Feld in der ersten Zeile
protected $plus_button_width                      = '25px';  // Editor: Breite des [+]-Buttons zur Anzeige des DIVs mit weiteren Feldern
protected $label_width                            = '150px'; // Editor: Breite der DIV-Spalte mit den Labels eines Artikels
protected $fieldset_width                         = '765px'; // Editor: Breite der fieldset-Tags um den nicht immer sichtbaren Teil
protected $weitere_details_display_default        = 'none';  // Editor: 'none' oder 'table' (sollen alls weiteren Informationen von Subartikeln ausgeklappt dargestellt werden -> table)
protected $labels_rendern                         = true;    // Editor: Soll eine Zeile mit Labels gerendert werden?
protected $form_method                            = 'post';  // Editor: Methode des Formulars fuer Subartikel ('post','get')
protected $form_do_rendering                      = false;   // Editor: Soll das umschliessende Formular gerendert werden?
protected $use_tabindexcounter                    = false;   // Editor: Soll die tabindexcounter Funktion verwendet werden (falls vorhanden)
protected $aktionen_zeiterfassung                 = false;   // Editor: Soll fuer die Felder Aktion_von und Aktion_bis die Zeit mit erfasst werden (true) oder nur das Datum (false)
protected $render_db_lang_mode_felder             = true;    // Editor: Sollen uebersetzbare Felder bei Spalten basierter Mehrsprachigkeit in allen aktiven Sprachen gerendert werden?

}

Beispielanwendung von gruppierten Parent- / Subartikel für Textilien

Wenn man Textilien verkauft, hat man von einem Artikel grundsätzlich mehrere Ausprägungen in Farbe und Grösse. Diese sind untereinander stark verknüpft, da der Auswahlprozess des Kunden im Shop immer nur nacheinander die Grösse und Farbe (oder anders herum) wählen kann. Der Shop muss sicherstellen, dass er dabei auf eine vorhandene Kombination stösst. Dies ist im PepperShop möglich, wenn man den Shop wie folgt konfiguriert (Shop-Einstellungen → Allgemeine Einstellungen → Artikel bearbeiten: Dropdown gruppiert + Anzeigeposition innerhalb…):

Nach dem Speichern dieser Einstellung (gilt global), muss man noch die Übersetzungstexte für die Titel der Subartikel Auswahldropdowns angeben. Die Datei existiert pro Sprache: {shop_verzeichnis}/shop/language/de/localetext.inc.php, anpassen müsste man sie z.B. wie folgt:

<?php
$locale_strings['subartikel_gruppe_titel_global'] = 'Grösse';
$locale_strings['subartikel_name_titel_global'] = 'Farbe';

Wenn nun die Subartikel erfasst werden, muss man dort entsprechende Angaben tätigen, hier ein mehrsprachiges Beispiel einer Erfassungsmaske (Ausschnitt Subartikel):

Es wird sehr empfohlen, den Subartikeln eigene Bilder zu vergeben, wo man die Farbe gleich sieht. Der Shop lädt dann beim Wechsel der Farbe sofort auch das Bild nach.

Beim Import der Daten wird die Farbe als Name des Artikels und die Grösse im Feld Gruppierung-Parent angeliefert. Bitte beachten, dass in der Shopversion 4.0 hier jeweils noch als Prefix der Artikelname des Parentartikels angegeben sein muss.

Beispielanzeige kundenseitig:

History

Das Konzept der Parent- und Subartikel ersetzt die bis zur Shopversion 2.0 verwendeten Leit- und Folgeartikel (Artikelgruppen), welche eher unflexibel waren. (Info: Es gibt in Shop-Einstellungen → Shop-Konfiguration → Operationen einen Konverter zu Parent-/Subartikel)

Seit dem PepperShop ab der Version 2.5 können Artikel als Parent- und Subartikel organisiert im Shop umgesetzt werden. Dies war zuerst nur im Enterprise Shop möglich und später via Import- Exporttool. Danach kamen Bearbeitungsmöglichkeiten in den Artikel-Massenmutationen hinzu.

Seit der PepperShop Version 2.6 wurde das Konzept der Parent- und Subartikel vollends in das Release integriert. Die Artikelbearbeitungsmaske wurde stark erweitert und auch Funktionalität an der API integriert. Die Ein- / Ausschaltung funktioniert jetzt über das Webinterface und nicht mehr über eine Steuerungskonstante und kundenseitig wurde die Darstellung optimiert.

In den Shop Versionen 3.0 und 3.1 wurden viele Parent-/Subartikel relevante Elemente kundenseitig umgesetzt (Suche verbessert, Modulunterstützung erweitert, Design optimiert) und es gab eine neue Dropdown-Darstellung, welche die Auswahlanzeige wieder etwas näher an die einfache Bedienung der Standard PepperShop Varianten brachte. Dasselbe wurde übrigens für die Optionsartikel (manuelles Cross-Selling) gemacht.

Mit der Shopversion 4.0 wurde die Integration von Parent-/Subartikeln nochmals verbessert und auch weitere Details, z.B. in der Anzeige, umgesetzt und verbessert. Auch die Mobile PepperShop Version2 kann mit Parent-/Subartiklen umgehen. Weiter wurde eine neue Darstellungsform für gruppierte Dropdowns eingeführt, so dass man Subartikel mit zwei Gruppen (z.B. Grösse und Farbe) logisch zur Auswahl präsentieren kann.

Ab Shopversion 6.0 wurde die Kompatibilität zwischen Texteingabefeldern und Parent-/Subartikel verbessert. Neu werden bei Subartikeln standardmässig die Texteingabefelder angezeigt, die beim Parentartikel definiert sind. Doch mit der Konfiguration SUBARTIKEL_TEXTEINGABEFELDER_VON_PARENT ist es auch möglich dieses Verhalten zu verändern was unter Steuerungskonstanten in der PepperShop Konfigurationsdatei genauer beschrieben ist.

Infos

Infos: Veränderbare HTML-Templates werden nur von den PepperShop Versionen Professional und Enterprise.


  1. Openoffice.org Calc ist zu Libre-Office Calc kompatibel.
  2. Modul: Mobile PepperShop
🌶️
🔥
🌶️