Manuelle Bestellung im Backend, Berechnung des Gesamtbetrages

Ich hätte eine Frage zur Berechnung des Gesamtbetrages in der Datenbank bei Bestellungen:

 

In der Tabelle “order_s” wird in der Spalte “invoice_amount” der Gesamtbetrag der Bestellung gespeichert.

In der Tabelle “s_order_details” werden in der Spalte “price” die Werte addiert und ergeben den Gesamtbetrag “invoice_amount” der Bestellung

z. B.

"order_s"

ordernumber 20002

invoice_amount: 35

 

"s_order_details"

ordernumber 20002

articleordernumber: Art1, price: 10

articleordernumber: Art2, price: 20

articleordernumber: XXX, price: 5

(Gesamtbetrag aller Artikel = 35)

 

Ich muss jetzt folgende Änderung machen:

Artikelnummer XXX, Preis = 5 (variiert von Order zu Order, ist nie gleich) soll nicht in die Berechnung des Gesamtbetrags einfliessen, aber trotzdem auf der Rechnung speziell markiert erscheinen: Artikel XXX muss aber mit dem Wert von 5 in Bestellung/Datenbank mit 5 stehen bleiben:

 

Wenn Artikelnummer XXX, dann Gesamtbetrag = alle Artikel ausser Artikel XXX, also in dem Beispiel: 30 (10 +  20)

 

Artikelnummer XXX ist nicht im Shop aktiv, sondern wird immer manuell im Backend (Bestelldetail -> Positionen) einer Bestellung hinzugefügt.

 

Das ganze scheint in der engine/Shopware/Models/Order/Order.php berechnet zu werden:

$invoiceAmount += $detail->getPrice() * $detail->getQuantity();

 

Wie muss ich dazu vorgehen?

 

Das hier müsste noch angepasst werden:

Wenn die Artikelnummer XXX, dann soll der Preis von Artikel XXX abgezogen werden.

 

            if ($this->articleNumber = ‚XXX‘){$XXX = $this->price;}
            $this->invoiceAmount = $invoiceAmount - $XXX + $this->invoiceShipping;