Staffelpreis bei Artikeln mit Varianten im Adminbereich

Hallo zusammen,

ich bin über folgendes Problem gestolpert:
Wenn ich einen Artikel mit Varianten anlege und diesem Staffelpreise zuweise, funktioniert die Preisberechnung unter Berücksichtigung der Staffelpreise im Frontend (Warenkorb) ordnungsgemäß.

Wenn ich mich jedoch im Adminbereich innerhalb einer Bestellung unter dem Reiter “Artikel” befinde, und die gekaufte Artikelanzahl nachträglich ändere, indem ich den Button “Aktualisieren” betätige, werden die Staffelpreise nicht berücksichtigt.
Die Staffelpreise werden allerdings nur nicht berücksichtigt, wenn es sich um einen Artikel mit Varianten (z.B. Farbe) handelt.
Bei einem Artikel ohne Varianten funktionieren die Staffelpreise auch im Adminbereich ordnungsgemäß.

Ich habe das Problem probiert zu debuggen und habe folgende Vermutung:
Im Frontend bzw. Warenkorb funktioniert die Staffelpreisberechnung, im Backend nicht. Im Frontend erzeugt die Variable $oArticle ein oxArticle-Objekt. Im Backend erzeugt die Variable $oArticle hingegen ein oxOrderArticle-Objekt.
Die Staffelpreise werden über die Methode getBasketPrice erzeugt. Diese Methode unterscheidet sich jedoch in den Objekten oxArticle und oxOrderArticle. Ich vermute daher, dass ein Bug in der Methode getBasketPrice der Klasse oxOrderArticle besteht.

Kann das Problem jemand bestätigen oder ist das Problem gar bekannt?

Viele Grüße und besten Dank!

Hilft Dir das weiter?

http://www.jabommi.de/oxid-module/no-backend-order-recalculation/

[QUOTE=andoreen;188031]Hilft Dir das weiter?

http://www.jabommi.de/oxid-module/no-backend-order-recalculation/[/QUOTE]
Danke für die Rückmeldung.
Das Modul hilft mir allerdings nicht weiter, da ich die nachträgliche Änderung von Bestellungen häufig benötige.
Es ist deswegen wichtig für mich, das die Neuberechnung einer Bestellung unter Berücksichtigung der Staffelpreise richtig funktioniert.

Noch eine kleine Ergänzung, die ich gestern bei der Eröffnung des Threads vergessen habe:
Das eingangs beschriebene Verhalten ist im Demoshop reproduzierbar.

Viele Grüße!

Das Modul schaltet die Neuberechnung im Backend komplett ab. Wir haben es selbst im Einsatz und können so Änderungen bei den Bestellungen vornehmen.

Ich gucke mir das Modul die Tage mal an und werde berichten. :slight_smile:

So, ich habe das Modul versucht zu testen.
Leider kann ich das Modul ohne Weiteres nicht einsetzen, da ich ein selbstgeschriebenes Modul im Einsatz habe, welches sich mit dem Modul Jabommi ins Gehege kommt.
Mein eigenes Modul wendet die Staffelpreise artikelübergreifend für eine bestimmte Kategorie an. Hierzu überlade ich die Methode _calcItemsPrice der Klasse oxbasket. Genau die gleiche Methode wird auch durch das Jabommi-Modul modifiziert, weshalb es zu Fehlern kommt.

Unabhängig davon habe ich jedoch nach wie vor den Eindruck, dass Oxid bei den Staffelpreisen im Backend nicht sauber arbeitet, wenn es sich um einen Artikel mit Varianten handelt. Ich versuche mein Problem noch mal anhand eines konkreten Beispiels zu verdeutlichen:

Ich lege ein Produkt A ohne Varianten mit einem Preis von 20 EUR an.
Das Produkt A hat die folgenden Staffelpreise definiert:
ab 2 Stück 15 EUR
ab 4 Stück 10 EUR

Ich lege ein weiteres Produkt B mit einer Variante (z.B. Farbe = rot) mit einem Preis von 20 EUR an.
Das Produkt B hat die folgenden Staffelpreise definiert:
ab 2 Stück 15 EUR
ab 4 Stück 10 EUR

Wenn ich nun jeweils 2 Stück von Produkt A und zwei Stück von Produkt B in den Warenkorb lege, werden die Staffelpreise für beide Produkt berücksichtigt.
2 x Produkt A zu 15 EUR = 30 EUR
2 x Produkt B zu 15 EUR = 30 EUR

So weit so gut.

Wenn ich die Bestellung nun durchführe und diese Bestellung im Backend aufrufe und auf den Reiter “Artikel” klicke, erhalte ich die folgende, korrekte Übersicht:

Anzahl Titel Typ Brutto Gesamt
2 Produkt A 15 30 EUR
2 Produkt B rot 15 30 EUR

Und jetzt kommt das Problem bzw. der Bug:
Wenn ich nun den Button “Aktualisieren” betätige, wird die Bestellung wie folgt angepasst:

Anzahl Titel Typ Brutto Gesamt
2 Produkt A 15 30 EUR
2 Produkt B rot 20 40 EUR

Das bedeutet, dass die Staffelpreise bei Artikeln mit Varianten im Backend nicht berücksichtigt werden.

Kann das Problem jemand bestätigen? Das Verhalten ist im Demoshop reproduzierbar.

Wenn ich nichts mehr höre, würde ich ansonsten die Tage ein Issue im Bug Tracker eröffnen.

Viele Grüße!

Und es hat nichts mit

if (!$this->isAdmin())

aus http://forum.oxid-esales.com/showthread.php?t=41079#post187536 zu tun?

Gutes Gedächtnis! :slight_smile:

Ich habe

if (!$this->isAdmin())

wieder aus dem Code genommen, weil ich die Berechnung der Staffelpreise durch den Aktualisieren-Button innerhalb einer Bestellung unter dem Reiter “Artikel” auch im Backend benötige. Das hatte ich damals nicht auf dem Schirm. Ich dachte, dass ich die Berechnung nur im Warenkorb benötige.

Ich habe allerdings den Verdacht, dass mein Staffelpreis-Modul aufgrund des oben beschriebenen Problems/Bugs nicht funktioniert. Das meines Erachtens fehlerhafte Verhalten lässt sich ja komplett ohne mein eigenes Modul im Demoshop reproduzieren.

Mir ist bei dem oben beschriebenen Problem noch folgendes aufgefallen:
Wenn ich für eine Variante einen extra Staffelpreis erstelle (zusätzlich zu dem Staffelpreis, der für den Vaterartikel bereits existiert), funktioniert auch die Neuberechnung einer Bestellung unter Berücksichtigung der Staffelpreise im Backend korrekt.
Ich habe daher den Eindruck, dass die Funktion “Varianten erben Staffelpreise vom Vater” unter “Stammdaten” --> “Grundeinstellungen” --> “System” nicht richtig zu funktionieren scheint.

Ich habe nun ein Issue im Bug Tracker eröffnet:
https://bugs.oxid-esales.com/view.php?id=6671

Viele Grüße! :slight_smile: