in der Klasse oxOrder sehe ich laut Doku keine Möglichkeit den Rabatt auszulesen und/oder zu ändern. Im Admin-Bereich kann ich den Rabatt bei einer Bestellung aber nachträglich ändern (Bestellungen -> Stamm -> Rabatt).
Kann mir mal jemand auf die Sprünge helfen, wie ich den Gesamt-Rabatt einer Bestellung auslesen und ändern kann? Danke!
Das ganze sollte in der ThankYouController.php passieren.
Im oxOrder Objekt selbst ist es das oxdiscount Feld.
Die Berechnung der Rabatte und der restlichen Preise erfolgt aber im oxBasket, welches erst nach Abschluss der Bestellung eben zu einem oxOrder umfunktioniert wird.
D.h. wenn du Preise neu berechnen musst, geht das ggf nur im oxBasket
Eine Klasse fürs Überschreiben von Feldern? Ich wüsste auch nicht, dass es sowas gäbe.
Das Feld ist eine ganz normale object property “oxorder__oxdiscount” im oxOrder mit einem oxField Objekt drin, dessen value dann dem Discount-Wert entspricht.
mach mal:
Schau mal in die init() Methode, da wird direkt zu Anfang der Warenkorb aus der Session entfernt. Um auf den ehemaligen Warenkorb zuzugreifen, aus dem jetzt die Bestellung entstanden ist, musst du $this->getBasket() machen, zumindest in 4.10. Den Code von V6 habe ich gerade nicht vor mir. Aber was auch immer dort verändert wird, hat keinen Einfluss mehr auf die Bestellung, da diese zu diesen Zeitpunkt schon generiert wurde.
Gibt keinen Fehler, funktioniert aber leider trotzdem nicht. Muss da eventuell noch irgendwas neu kalkuliert werden oder so? Auf jeden Fall schon mal Danke für den Denkanstoß. Da hab ich was, wo ich weiter wurschteln kann.