Anzeige inkl. MwSt. / exkl. MwSt. Wie geht das dynamisch? Welche Variable bei Ländercode Abfrage?

Topic summary

Problem: Der MwSt.-Hinweis unter dem Produktpreis passt sich nicht dynamisch daran an, ob der angezeigte Preis tatsächlich inkl. oder exkl. MwSt. ist (EU vs. Drittländer). Preise selbst werden korrekt berechnet; der Text bleibt jedoch z. B. in CH/UK/NO auf „inkl. MwSt.“.

Versuche: Custom Liquid mit Geolokalisierung (request.country/region) und Länderliste; Hinweis auf Kleinbuchstaben bei request.country und Beispielcode. Im Theme-Editor/Backend wirkt es korrekt, live (VPN und realer CH-User) jedoch nicht.

Erkenntnis/Support: Impact-Theme (und teils andere Themes) zeigen einen statischen „Show taxes notice“-Text, der sich an landesüblichen Gepflogenheiten orientiert, nicht an den tatsächlichen Steuereinstellungen/Checkout-Logik. Checkout zeigt korrekt, Produktseite/Warenkorb nicht.

Workarounds:

  • Per Markets eigene Produkt-Templates je Markt und dort „Show taxes notice“ für Drittländer deaktivieren (pflegeintensiv).
  • Vollständig manuell per Custom Liquid/Theme-Anpassungen (so gelöst vom Threadstarter; auch für den Warenkorb nötig).

Stand: Keine native, rechtssichere EU-Lösung im Theme; Support-Ticket bestätigt Limitierung. Weitere Teilnehmer bestätigen das Problem; Lösung bleibt individuelle Template-/Code-Anpassung. Status offen für eine out-of-the-box-Lösung.

Summarized with AI on December 13. AI used: gpt-5.

Hey @feuerstein

Oh das hört sich komplex an und eigentlich sollte der MwSt. Text korrekt angezeigt werden, sprich, inkl. MwSt. oder exkl. MwSt. je nach Standort des User, wenn eure Steuereinstellungen korrekt eingestellt wurden. Siehe ein paar weitere Threads zum Thema hier.

Bei so einer Anpassung im Theme Code ist es viel zu komplex um euch hier partout eine Antwort geben zu können denn es kommt auf viele Moving Parts drauf an wie eure Backend Einstellungen, eure Apps, euer Theme und Theme Code und, und, und. Da muss eigentlich eine Experte einen Deep-Dive in euer Shop machen um eine mehr angepasste Coding Lösung zu finden. Weiter unten gebe ich aber ein paar Tip sp zum Code das du hier gepostet hast, denn eine Variable könnte verbessert und getestet werden.

Siehe auch dazu bitte unsere Doku hier:

Wenn du es selber auf deiner PDP programmieren möchtest dann bitte immer in einer Themekopie/Testumgebung zuerst testen und zusammen mit einem Experten/Programmierer. Du kannst ein Backup deines Themes erstellen, bevor man den Code bearbeitet, oder den Code wiederherstellen, falls dies nötig sein sollte. Du könntest auch einen unserer Experten engagieren indem du denen eine E-Mail rüberschießt. Unsere Experten antworten meist sehr schnell.

Änderungen zu deinem Theme Code können auch 1) die Page Loading Speeds negativ beeinflussen und 2) dein Theme aus den Theme Updates ausschließen. Das folgende ist Theme-abhängig, ohne Gewähr und dient lediglich dazu dich in die richtige Richtung zu weisen!

Um die Anzeige des Mehrwertsteuerhinweises auf der Produktseite dynamisch an das Herkunftsland des Besuchers anzupassen, sicherstellen, dass die Ländercode-Erkennung richtig funzt, wie z. B.:

  • request.country: Diese Variable gibt den ISO 3166-1 Alpha-2 Ländercode des Besuchers zurück, basierend auf seiner IP-Adresse und ist somit zuverlässiger als request.region. weil diese Variable auf bestimmte Subregionen verweist.
  • Stelle sicher, dass die Liste der Länder korrekt formatiert ist und die Ländercodes in Kleinbuchstaben vorliegen, da request.country standardmäßig in Kleinbuchstaben zurückgegeben wird.
  • Hier ein angepasste Codebeispiel:

  {% assign third_countries = "gb,no,ch,us,ca,au" | split: "," %}
  {% if third_countries contains request.country %}
    {% if request.locale.iso_code == 'de' %}
      * exkl. MwSt. zzgl. Versandkosten
    {% elsif request.locale.iso_code == 'en' %}
      * excl. VAT plus shipping costs
    {% elsif request.locale.iso_code == 'es' %}
      * excl. IVA más costos de envío
    {% elsif request.locale.iso_code == 'fr' %}
      * excl. TVA plus frais de livraison
    {% elsif request.locale.iso_code == 'nl' %}
      * excl. BTW plus verzendkosten
    {% endif %}
  {% else %}
    {% if request.locale.iso_code == 'de' %}
      * inkl. MwSt. zzgl. Versandkosten
    {% elsif request.locale.iso_code == 'en' %}
      * incl. VAT plus shipping costs
    {% elsif request.locale.iso_code == 'es' %}
      * incl. IVA más costos de envío
    {% elsif request.locale.iso_code == 'fr' %}
      * incl. TVA plus frais de livraison
    {% elsif request.locale.iso_code == 'nl' %}
      * incl. BTW plus verzendkosten
    {% endif %}
  {% endif %}

Erklärungen des Code:

  • assign third_countries = "gb,no,ch,us,ca,au" | split: ",": Hier wird die Liste der Drittländer in ein Array umgewandelt, um eine genaue Überprüfung zu ermöglichen.

  • if third_countries contains request.country: Überprüfung, ob das Herkunftsland des Besuchers in der Liste der Drittländer enthalten ist.

  • Sprachspezifische Ausgaben: Je nach request.locale.iso_code wird der entsprechende Text in der richtigen Sprache angezeigt.

Warum nicht Metafelder verwenden?

Wenn du den Hinweis direkt neben dem Preis anzeigen möchtest, dann das Produkt-Template anpassen. Du hast aber bereits erwähnt, den Standard-Code nicht bearbeiten zu möchten, also dann vielleicht Metafelder verwenden, um benutzerdefinierte Informationen an bestimmten Stellen im Theme anzuzeigen. Erstelle ein Metafeld für Produkte, das den Mehrwertsteuerhinweis enthält, und füge es im Theme dort ein, wo der Preis angezeigt wird.

Hoffe das hilft dir weiter - lass wissen falls nicht! :wink:


Warum nicht etwas Gamification in das Shop einbauen, um deinen Kunden etwas Fun im Shop anzubieten? Gerne kann ich bei Interesse Tipps dazu geben!

Hast du weitere Fragen zum Shop? Gebe einfach ein Suchbegriff oben in der Suchleiste der Community Landingpage ein, denn das Thema haben wir sehr wahrscheinlich schon besprochen. Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community.