Um Preisnachlässe zu gewähren anhand von bestimmten Konditionen gibt es die neue Rabatt-Logik.
Derzeit gibt es keine Möglichkeit Konditionen für Rabatte in einer Oberfläche zu definieren aber man kann über spezifische Geschäftslogik innerhalb eines eigenen Plugins Rabatte verwalten.
Aufbau des Plugins
Bild | Beschreibung |
---|---|
Die Engine bietet verschiedene Methoden um Rabattierte Entities zu verwalten | |
Das ORM Rabatt Entity in PHP | |
Ein Rabatt in der Datenbank |
Darstellung im Shop
Die angewendeten Rabatte werden im Warenkorb und in der Bestell-Ansicht in der Reihenfolge gelistet wie sie angewendet wurden:
Berechnung
Wird ein Preis berechnet in einer der calculatePriceMap() Methoden eines Entities so werden für dieses Entity alle Rabatte geholt und anhand der Entity-Sortierung ausgewertet. Rabatte werden auf den Gesamtwert verrechnet und nicht auf den Einzelwert.
Es gibt zwei Arten von Rabattberechnung
- Absolut
- Prozentual
Beispiel
Angenommen ein Artikel hat einen gepflegten Preis von 12 Euro und es sind zwei Rabatte hinterlegt:
Rabatt 1: Berechnung ist Absolut, Wert ist 2
Rabatt 2: Berechnung ist Prozentual, Wert ist 50
Zu erst wird ein Rabatt von 2 Euro gegeben = 10 Euro.
Anschließend wird davon prozentual 50 % abgezogen = 5 Euro.
Der rabattierte Preis ist also 5 Euro.
Entwicklung und Testing
Um die Berechnung der Rabatte projektunabhängig testen zu können gibt es ein QA Produkt Plugin welches auf alle Warenkorbartikel und Ressourcen 50 % Rabatt gibt.
Siehe https://git.konmedia.com/brandbox-packages-v5.5/bundle/qa/onChangeBasketDiscount