Im Backend beigefügte Positionen haben auf der Rechnung nicht den Steuersatz lt. Steuerregel für das Land, sondern Standardsteuersatz

Shopware Vers. 5.4.0

WIr haben für die EU Länder unter Shopeinstellungen Steuern für die EU Länder Steuerregeln hinterlegt. Das funktioniert, wenn die Bestellung aus dem Shopfrontend kommt. Sobald man im Backend unter Kunden-Bestellungen-Positionen Positionen hinzufügt oder bestehende bearbeitet wird der Steuersatz auf den Standardsteuersatz geändert und die Steuerregel nicht beachtet.
Ist das eventuell in einer neueren Shopwareversion behoben? Wie kann man das beheben?

Kann mir jemand mit höherer Shopware 5 Version (welcher?) bestätigen, dass man im Backend Positionen in Bestellungen bearbeiten kann, und diese dann auf der Rechnung die MWSt. nach einer Steuerregel haben?

Ist ein Bug, auch in der aktuellen Version.
Auch beim Anlegen einer Bestellung mit dem Plugin Backend Bestellungen funktioniert es nicht korrekt.
Es gibt verschiedene Threads, die sich damit beschäftigen.
Abhilfe durch SW ist nicht in Sicht.

Danke für die Info! Das sind leider schlechte Nachrichten…

Ich habe einen Eintrag im issue tracker erstellt:

Dort habe ich auch eine, meiner Meinung nach, „schnelle“ Lösung im Kommentar beigefügt:
„Eine schnelle Lösung wäre ein Plugin, das bei den Positionen einen Button „MWSt. richtig stellen“ installiert und bei Klick die Einträge der MWSt. in der Positionsliste nach der MWSt. Liste korrigiert. Da ginge dann auch für die älteren Shopware 5 Versionen.“ Den Button klickt man dann bevor man die Rechnung erstellt.

Vielleicht lesen ja geübte Plugin-Entwickler mit und können sowas umsetzen…

Das ist kein Bug, sondern Standardverhalten.

Steuerregeln greifen nur im Frontend. Im Backend wird immer der Standard-Steuersatz des Artikels genutzt. Beim nachträglichen, manuellen hinzufügen von Positionen muss der Steuersatz also immer manuell angepasst werden. Soweit der gewünschte Steuersatz nicht vorhanden ist, muss dieser erst über die Grundeinstellungen angelegt werden.

Eine solche Funktion im Backend müsste hier - wie @pout schon richtig erkannt hat - individuell über Plugin gelöst werden.

Für Backend-Bestellungen gilt das Gleiche - Im Backend greifen keine Steuerregeln (wie Eingangs erwähnt schon im Standard nicht), daher hat das Plugin diese Funktion auch nicht. Bitte beachtet das es sich bei Backend Bestellungen um ein kostenloses Plugin mit dem Hinweis „Ohne Support“ handelt.

@TobiasKassner: Ich würde es schon als Bug bezeichnen. Denn man kann zwar den Steuersatz im Backend anpassen, aber das nutzt nichts, wenn die Rechnung dann den falschen Steuersatz ausweist und nicht den lt. Steuerregel für das Land. Jetzt müsste ich für jedes EU-Land einen eigenen Steuersatz (je nach Ware auch mehrere - je Produktgruppe und je EU Land) anlegen, wenn, was immer wieder vorkommt, eine Bestellung nachträglich bearbeitet werden muss, obwohl ich dass schon in den Steuerregeln abgebildet habe. Das sind redundante Daten, die gepflegt werden müssen und der Verkäufer muss den Steuersatz kennen. Sehr fehleranfällig. Und es ist ja eigentlich nicht nötig, da die länderspezifischen Steuersätze schon in den Regeln hinterlegt sind. Es wäre schon zu erwarten, dass sich das Backend hier gleich wie das Frontend verhält. Es wurde halt erst nach dem den Änderungen zum 1.7. wichtig.

Natürlich ist es ein Bug, wenn ich eine Bestellposition ändere und dann der zuvor korrekt in der Datenbank gespeicherte Steuersatz eines EU-Lands durch den Standardsatz überschrieben wird.

Es gibt in den Bestellpositionen zwei relevante Felder: taxID und taxRate. Man kann nur die taxID über das Dropdown-Feld anpassen. Die taxRate ergibt sich aus den Steuerregeln. Beim Speichern einer Bestellposition wird die taxRate einfach mit dem Standardsatz überschrieben.

Wenn das Standardverhalten sein soll, würde ich mal die „Standards“ hinterfragen.

ich finde die Aussage von TobiasKassner echt frech. Ist in Version 5.6.10 genauso aktuell.

Es kann doch nicht sein, dass ihr eure Kunden mit solchen Problemen alleine lasst.

Z.B. die folgende Passage greift, wenn man über das Backend nachträglich Versandkosten einträgt und die Bestellung speichert. Und das gilt dann auch für Bestellungen, die übers Frontend erzeugt wurden. Und wenn ich das als eigene Position für Versandkosten anlege greift er ja trotzdem nochmal alle Positionen neu ab mit 19%, auch wenn ich nur eine hinzugefügt habe.

engine/Shopware/Controllers/Backend/Order.php
Methode saveAction

        // Check if the invoice shipping has been changed
        $invoiceShippingChanged = (bool) ($invoiceShippingBefore != $order->getInvoiceShipping());
        $invoiceShippingNetChanged = (bool) ($invoiceShippingNetBefore != $order->getInvoiceShippingNet());
        if ($invoiceShippingChanged || $invoiceShippingNetChanged) {
            // Recalculate the new invoice amount
            $order->calculateInvoiceAmount();
        }

Wie soll man denn einem Kunden erklären, dass das ein anderes Speichern ist, als wenn z.B. ein Plugin die Versandkosten programmatisch setzt ?

Kann mir wenigstens jemand einen Tipp geben, wo im Standard der Rechnungsbetrag ermittelt wird, ohne die Methode engine/Shopware/Models/Order/Order.php → calculateInvoiceAmount aufzurufen ?

1 „Gefällt mir“