Felder dem Warenkorb hinzufügen

Welche Felder bzw. Produktinformationen im Warenkorb angezeigt werden, steuert die"Shopping Cart Summary"-View. Um die Anzeige zu verändern, muss also die View an unsere Wünsche angepasst werden.
In der Standard-Anzeige werden nur Artikelname, Preis, Anzahl und Gesamtsumme ausgegeben. Will man noch andere Felder, z.B. eine Produktbeschreibung oder Produktbilder, im Warenkorb anzeigen lassen, muss man diese Felder im "Shopping Cart"-View hinzufügen.

Dies erfolgt über zwei Schritte:

Schritt 1. Beziehung zum referenzierten Produkt hinzufügen.
Damit die Produktfelder überhaupt bei den Feldern angezeigt werden, muss als erstes eine Beziehung im View hinzugefügt werden.
Hierzu wählt man unter Relationship: "Commerce Line Item: Referenziertes Produkt" aus.

Schritt 2. Felder hinzufügen
Nun kann man alle Produkt-Felder auswählen und im Warenkorb anzeigen lassen, hierfür einfach das gewünschte Feld unter "Felder" hinzufügen.
Im Anschluss kann man noch die Anzeigeoptionen und Reihenfolge der Felder wie bei Views üblich verändern.

Diese Vorgehensweise ist auch bei der Erweiterung von anderen Views z.B. dem Shopping Cart Summary oder dem Shopping Cart Block identisch.

Einrichtung von Preisregeln

Die Berechnung von Preisen wird in Drupal Commerce über das Rules Modul realisiert.
Mit "Rules" lassen sich bestimmte Aktionen abhängig von vordefinierten oder selbst eingerichteten Bedingungen auslösen. Bei Drupal Commerce wird Rules zur Berechnung von Preisen verwendet z.B. Mengenrabatte oder Taxonomien und zeitgesteuerte Aktionsrabatte.

Diese beiden Beispiele werden jetzt einmal exemplarisch demonstriert.

Beispiel 1: Mengenrabatt

Der Kunde soll einen Mengenrabatt von 10% bekommen, wenn er mehr als 5 Produkte auf einmal bestellt.

  • Schritt 1.
  • Hierfür wählt man unter Shop – Konfiguration - Product Pricing Rules: Add a Pricing Rule.
  • Dann der Regel einen Namen geben: "Mengenrabatt".
  • Schritt 2. In dem sich nun öffnenden Interface gibt es den Bereich:
  • Bedingungen (Conditions): Hier stellen wir die Bedingung ein, wann der Preis neu berechnet werden soll:
  • Condition hinzufügen: "Total product quantity comparsion" auswählen
  • Auswahl der Daten: commerce-line-item:order
  • Operator auswählen: größer/gleich
  • Anzahl eintragen: 5
  • Schritt 3. Action hinzufügen (Add Action).
  • Unter Aktionen legen wir nun fest, welche Aktion nun ausgeführt werden soll: "Den Preis der Einheit mit einen bestimmten Summe multiplizieren"
  • Unter Wert 0.9 eintragen, der Preis wird also mit 0,9 multipliziert, was einen Rabatt von 10% ergibt.
  • Unter Price Component Type nun noch Rabatt auswählen und bestätigen.

Das Ergebnis sieht man im Bild.

Wie man vielleicht gesehen hat kann man mit Und- oder Oder-Verknüpfungen auch komplizierte Bedingungen generieren, denkbar wäre z.B. die Einrichtung von Staffelrabatten, wie ab 5 Stück: 10%, ab 10 Stück: 15% usw..

Beispiel 2. Einrichtung eines Sommerschlussverkaufes.

Ziel: Der Kunde soll in einem begrenzten Zeitraum und wenn das Produkt über eine Taxonomie als Aktionsware gekennzeichnet ist, einen Rabatt auf den Grundbetrag von 25% bekommen.

  • Schritt 1: Eine Taxonomie "Rabattaktionen" einrichten und Begriff "SSV" anlegen
  • Schritt 2: Taxonomiereferenzfeld der Entity Warengruppen hinzufügen
  • Schritt 3: Beispielprodukt mit der Taxonomie erstellen
  • Schritt 4. Eine Komponente für den Zeitraum der Aktion einrichten
  • Konfiguration – Arbeitsablauf – Rules – Komponenten – Neue Komponente hinzufügen
  • Bedingung setzen (AND): Name Sommerschluss
  • Condition hinzufügen: Datenvergleich (Date Comparsion): site:current-date
  • Operator: ist größer als (is greater then): Datum, wann die Aktion beginnen soll: 2011-09-07 0:00:00
  • Condition hinzufügen: Datenvergleich (Date Comparsion): site:current-date
  • Operator: ist kleiner als (is smaller then): Datum, wann die Aktion enden soll: 2011-09-14 0:00:00
  • Schritt 5. Weitere Komponente hinzufügen: Diese soll die Regel festlegen, die auf die Taxonomie zugreift und mit der man Produkte einer Aktion zuweisen kann.
  • Bedingung setzen (AND): Name: Aktionsware
  • Variable: Datentyp: Commerce Produkt; Beschriftung: Produkt
  • Condition hinzufügen: Entity hat Feld (Entity has field): produkt; Feld: field-tax-ref-salespromotion auswählen
  • weitere Condition: Datenwert ist leer (negieren): produkt:field-tax-ref-salespromotion
  • weitere Condition: Datenwert ist leer (negieren): produkt:field-tax-ref-salespromotion:tid
  • weitere Condition: Datenvergleich: produkt:field-tax-ref-salespromotion:name oder :tid
  • Operator ist gleich: "SSV" oder term ID
  • Schritt 6. Neue Preisregel erstellen
  • Shop – Konfiguration - Product Pricing Rules: Add a Pricing Rule (Name: SSV)
  • Aktion einrichten: Den Preis der Einheit mit einer bestimmten Summe multiplizieren; Wert 0.75: Prize Component type: Grundpreis (Diese Angabe bewirkt, dass die Regel direkt auf den Grundpreis angewendet und nicht als Rabatt angezeigt wird.)
  • Condition hinzufügen: die oben erstellte Komponente: Sommerschluss
  • Condition hinzufügen: Entity hat Feld: commerce-line-item; Feld: commerce-product
  • Condition hinzufügen: Komponente: Aktionsware, commerce-line-item:commerce-product

Alle Produkte mit dem Taxonomiebegriff "SSV" bekommen jetzt für eine Woche einen Rabatt von 25% auf den Grundpreis.

Damit endet die Einführungsreihe zu Drupal Commerce.

Für weitere Informationen zum Warenkorb und Preisregeln empfehle ich den Besuch des Guides auf drupalcommerce.org: Shopping Cart Guide
Product Pricing Rules/