Hallo,
wir haben besondere Staffelpreise, die sich nicht nach Menge sondern nach gesamter Quadratmeteranzahl aller Artikel richten. Den Berechnungs-Algorithmus dafür gibt es schon.
Es muss nur noch der Preis im Warenkorb überschrieben werden, falls sich durch hinzugefügte Artikel die Staffel ändert.
Ich habe dazu auf das Event
sBasket::sUpdateArticle::after
reagiert und den Wert in die Datenbank geschrieben. Wenn ich am Ende der Funktion ein die() mache, steht der Wert auch in der DB. Wenn ich ihn weglasse, steht wieder ein anderer Preis drin.
Irgendwas überschreibt also meine geänderten Preise wieder … aber was? Ich glaub, das liegt am Laden/Reload des Warenkorbs. Aber wieso überschreibt der nochmal Werte in der Datenbank bein laden?
Auf das Laden, also sBasket::sGetBasket::before kann ich leider nicht reagiere, da ich mir in meiner Methode den ganzen Warenkorb inkl. aller Artikeldaten laden muss. Mit sGetBasket. Das wäre also eine Endlosschleife…