Grüezi!
Ich habe ein Problem mit Oxid CE 4.4.0:
Ich kann bei einer Bestellung im Adminbereich unter “Bestellungen verwalten->Bestellungen->Stamm” manuell einen anderen Rabatt eintragen. Wenn ich danach im Tab “Artikel” auf “aktualisieren” klicke, wird wieder der urpsprüngliche Rabattbetrag eingetragen. Das gilt auch für die Versandkosten.
Hat dieses Verhalten einen bestimmten Grund?
Kann ich bei 4.2.0 und 4.4.2 so auch bestätigen. Der manuelle Rabatt wird bei Aktualisieren gelöscht (Funktion recalculateOrder?). Das Feld oxdiscount in oxorder wird zurückgesetzt. Der manuelle Rabatt sollte dann vielleicht in einem separaten Feld gespeichert werden.
Ich sehe im Moment auch nicht, wann das Feld oxdiscount in oxorder eigentlich sonst genutzt wird. Die Rabatte werden direkt vom Artikelpreis abgezogen und nicht in oxdiscount gespeichert!?
Wenn ich es richtig verstehe, berechnet recalculateOrder() den Rabatt neu, aber nur mit den im Adminbereich normal eingestellten Rabatten. Dieser Wert wird dann in oxorder.oxdiscount gespeichert.
Wenn ich manuell den Rabatt ändere, wird der Wert von oxorder.oxdiscount entsprechend geändert. Bei “aktualisieren” wird wieder recalculateOrder() angestoßen, und der Rabatt wird neu berechnet. Da der manuelle Rabatt nirgendwo in die Berechnung einfließt, kommt wieder der reguläre Rabatt heraus und überschreibt die manuelle Änderung.
> Die Rabatte werden direkt vom Artikelpreis abgezogen und nicht in oxdiscount gespeichert!?
Soweit ich das sehe, wird der Rabatt durchaus in oxorder.oxdiscount gespeichert und dann beim Anzeigen vom Artikelpreis abgezogen.
Ich frage mich, welchen Wert die Möglichkeit der manuellen Änderung hat, wenn diese Änderung nicht persistent bleibt. Gibt es da noch einen erwünschten Seiteneffekt, den ich nicht kenne?