Markus Michalski FAQ

Varianten-Preisanpassung: Storefront und Preisberechnung

Preisberechnung der Varianten-Preisanpassung in Storefront und Warenkorb: Preisquelle des Hauptprodukts, Regelpreise, Brutto/Netto, Währung. Streich- und Grundpreis entfallen, Mengenstaffeln der Variante wirken nicht (ein Einzelpreis).

English Version

Zurück zur Übersicht

Storefront und Preisberechnung

Das Plugin ändert keine Preise in der Datenbank. Es rechnet den Variantenpreis zur Laufzeit, sobald ein Produkt in einem Verkaufskanal geladen wird, und noch einmal bei der Warenkorb-Berechnung.

Wo gerechnet wird

Ort Auslöser Wirkung
Produktanzeige im Verkaufskanal Event sales_channel.product.loaded Der berechnete Preis (calculatedPrice) der Variante wird ersetzt
Warenkorb und Kasse Cart-Prozessor mit Priorität 1000 Preisdefinition und Preis der Produkt-Position werden ersetzt

Im Admin (Admin-API) bleibt der Preis der Variante unverändert, weil dort kein Verkaufskanal-Event ausgelöst wird.

Schritte der Berechnung

  1. Das Plugin prüft, ob das Produkt eine Variante ist. Produkte ohne Hauptprodukt werden übersprungen.
  2. Es liest die drei Zusatzfelder der Variante und wendet bei Bedarf die Vererbung vom Hauptprodukt an.
  3. Es ermittelt den Preis des Hauptprodukts (siehe unten). Ist er 0 oder nicht vorhanden, bleibt der Preis der Variante unverändert.
  4. Es rechnet (Hauptpreis + Aufschlag) x (Prozentsatz / 100), setzt negative Ergebnisse auf 0 und rundet nach den Plugin-Einstellungen.
  5. Es berechnet Steuern und Summen mit dem Shopware-QuantityPriceCalculator und den Steuerregeln des Produkts.

Preis des Hauptprodukts

Der fixe Aufschlag wird unverändert zu diesem Preis addiert. Er wird nicht zwischen Währungen umgerechnet und gilt je nach Steuerstatus als Brutto- oder Nettobetrag, auch wenn das Feld "(EUR)" im Namen trägt.

Streichpreis, Grundpreis und Mengenstaffeln

Das Plugin ersetzt den gesamten berechneten Preis der Variante durch einen neu berechneten Preis ohne Streichpreis und ohne Grundpreis. Ein vorhandener Streichpreis oder Grundpreis der Variante entfällt deshalb bei angepassten Varianten, sowohl in der Produktanzeige als auch im Warenkorb. Prüfe das in der Storefront, wenn du mit solchen Preisangaben arbeitest.

Bei angepassten Varianten gilt immer ein einzelner Stückpreis, den das Plugin aus der niedrigsten Staffel des passenden Regelpreises (oder dem Standardpreis) des Hauptprodukts berechnet. Mengenstaffeln in den eigenen Preisen der Variante haben dort keine Wirkung, und eine höhere Menge im Warenkorb senkt den Stückpreis nicht. Die Staffelliste des Produkts (calculatedPrices) und der günstigste Preis einer Produktgruppe werden vom Plugin nicht verändert, die Anpassung greift aber nicht über sie.

Verhalten in Sonderfällen

Situation Verhalten
Hauptprodukt nicht auffindbar Preis bleibt unverändert, ein Fehler (Storefront) bzw. eine Warnung (Warenkorb) wird ins Log geschrieben
Variante ohne Steuer-ID In der Produktanzeige wird der Preis nicht angepasst
Aktiviert, aber keine gültigen Werte Preis bleibt unverändert
Ergebnis der Rechnung negativ Preis ist 0,00
Prozentsatz 0 Preis ist 0,00 (0 ist ein gültiger Wert)
Ungültige oder unendliche Zahlen Werte werden ignoriert bzw. die Rechnung ergibt 0