Netto-Preise in TWIG länderspezifisch berechnen

Ich habe gerade ein (hoffentlich) ganz triviales Problem.
Auf der Produkt-Detailseite möchte ich zusätzlich zum Brutto-Preis den Netto-Preis einblenden.
Dazu nehme ich einfach den Brutto-Preis und ziehe die Mehrwertsteuer ab - funktioniert.
Jetzt möchte ich die Mehrwertsteuer länderspezifisch berechnen, aber ich komme einfach nicht an die Steuersätze der jeweiligen Länder heran. Dass diese vorhanden sind, zeigt mir die Bestell-Übersicht im Checkout, wo korrekt der jeweilige Steuersatz herangezogen wird, der im Backend unter Einstellungen => Steuern hinterlegt ist.
Ich benötige eigentlich „nur“ den Namen der richtigen Variable. Aber genau diesen bekomme ich nicht heraus. Habe das ganze Dump durchsucht. Nichts. Es gibt „product.tax.taxRate“, aber diese Variable gibt mir seltsamerweise immer nur „19“ heraus (auch, wenn ich als Lieferland z. B. Belgien wähle).
Ich brauche aber den korrekten Steuersatz, wenn z. B. ein Kunde aus Belgien (=> 21) bestellt.
Hat irgendjemand einen Tipp?

Die werden nur für das ausgewählte Lieferland geladen. Kannst du per Subscriber zusätzlich laden lassen.

1 „Gefällt mir“

Ich glaube, es ist in meinem Fall noch viel einfacher. Ich benötige auf einer Seite nicht verschiedene Steuersätze unterschiedlicher Länder, sondern immer nur den des vom User ausgewählten Landes.
Aber mein Problem ist, dass ich nicht weiß, wie ich auf diesen Steuersatz zugreifen kann. Dazu fehlt mir schlicht und einfach der Variablen-Name.
BTW: gibt es eventuell eine Shopware-Datenbank mit allen verwendeten Variablen? Am besten noch thematisch sortiert? Es kann doch nicht sein, dass man sich immer wieder durch diese extrem unübersichtliche und verschachtelte Dump-Liste wühlen muss, wenn man mal den Namen einer bestimmten Variable sucht.

Du kannst dir auf GitHub alle Entity-Definition ansehen, dann weißt du wo welcher Wert gespeichert ist und wie dieser als Variable benannt ist.

Wenn du das ein paar Mal machst, dann hast du das aber raus.

Der Steuersatz sollte im context stehen

{{ dump(context) }}

Kann man machen, muss man aber nicht :laughing:

Aber wie? Im Dump steht eben nicht der passende Steuersatz. Bzw. nur im Checkout, nicht aber auf der Artikel-Detailseite.

Du musst die Werte dann per Subscriber laden lassen. Dann sind diese auch im Frontend auf jeder Seite verfügbar.

Gibt es dazu irgendein Tutorial, wie man sowas macht? Ich habe auf die Schnelle im Netz nur das hier gefunden:

Aber das würde bedeuten, dass es nicht ohne PHP geht. Gibt es eine Methode, wie man das Ganze per TWIG lösen kann?

In einer App könntest du es ohne PHP über App Scripts lösen: App Scripts | Shopware Documentation

Aber wie auch immer - Programmieraufwand ist immer erforderlich, um die Daten zu holen.

Ärgerlich daran ist, dass es sich hierbei um elementare Daten handelt, die jederzeit abrufbar sein sollten. Ich verstehe die Logik dahinter nicht, solche Daten dem Entwickler vorzuenthalten. Insbesondere vor dem Hintergrund, dass ja bereits eine Vielzahl von Daten vorhanden sind, mit denen sich gut arbeiten lässt. Hat da einfach jemand was „vergessen“?

Was heißt elementare Daten?

Elementare Daten für die Anzeige des Preises sind vorhanden. Brutto-Kundengruppen sehen den Brutto-Preise, Netto-Kundengruppen den Netto-Preis.

Die Ausgabe beider Preise mag für dich elementar oder Standard sein - für Shopware, Otto, Amazon und Co. halt eben nicht. Wer diese Funktion benötigt, muss/kann die Daten dann entsprechend selber nachladen und ausgeben. Oder halt ein entsprechendes Plugin verwenden.

Siehe FAQ - Häufig gestellte Fragen - Shopware 6 - #5 von EikeBrandtWarneke

Viele Grüße

1 „Gefällt mir“