Liquid, JavaScript, Themes
Hallo zusammen,
wir verkaufen in unserem Onlineshop neuwertige & gebrauchte Produkte an Endkunden.
Dies hat zur Folge, dass auf einige Produkte der reguläre Steuersatz von 19% und auf den Großteil der Produkte ein Steuersatz von 0% (Differenzbesteuerung) angewendet wird.
Auf der Produktdetailseite möchten wir dem Kunden den Endpreis inkl. MwSt anzeigen. Bei unseren aktuellen Shopify Einstellung hat dies zur Folge, dass der Preis angezeigt wird und darunter der Hinweis "inkl. MwSt" angezeigt wird. So weit, so gut.
Da der Hinweis "inkl. MwSt" ohne weitere Infos jedoch ein wenig irreführend sein kann, da auf viele Produkte ja 0% MwSt angewendet werden, möchten wir gern, dass je nach Steuerklasse folgende Hinweise angezeigt werden: "inkl. 19% MwSt" oder "inkl. 0% MwSt"
Die Steuersätze sind bereits bei den Produkten hinterlegt und die Produkte sind auch mit zwei unterschiedlichen Tags versehen, mithilfe welcher eine Abgrenzung stattfinden könnte, wir finden jedoch keinen Weg diese Variable in der Anzeige im Frontend hinzuzufügen.
Habt ihr hierzu einen Tipp für uns? Der Support kann uns leider nicht weiterhelfen.
Vielen Dank vorab und liebe Grüße!
Gelöst! Zur Lösung
Erfolg.
@4Raum klar das ist auch möglich.
Hierbei würde man nur den Fall nehmen, dass das Produkt ein TAG oder Metafeld Wert enthält, welches Mal für den Abgleich verwendet.
Vereinfacht, würde das folgendermaßen aussehen:
{% assign no_taxes = "inkl. 0% Mwst. - Differenzbesteuerung gemäß § 25a UStG." %}
{% if product.tags contains '0-Steuer' %}
{{ product.price | monney }} {{ no_taxes }}<--
{% else %}
[Hier würder der reguläre Code stehen]
{% endif %}
Wie das konkret aussieht, hängt vom Theme ab.
@4Raum verkauft Ihr nur innerhalb von Deutschland oder auch in der EU?
Hey @4Raum
Danke für den Sachverhalt und um die Mehrwertsteuer (MwSt) je nach Produkt auf der Shopify-Produktseite anzuzeigen, könnte man einen benutzerdefinierten Code in den Shopify-Vorlagen hinzufügen. Shopify verwendet Liquid, mit der man serverseitige Logik direkt in den HTML-Templates ausführen kann.
Beispiellösung
Wenn du es selber auf deiner Produktseite 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 negative 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!
Zuerst sicherstellen, dass du für jedes Produkt Tags mit der entsprechenden MwSt erstellt hast, z.B. "MwSt-19" für Produkte mit 19% MwSt und "MwSt-0" für Produkte ohne MwSt. Dann im product liquid den Code ändern wie mit einem Code wie den folgenden:
{% assign tax_included = false %}
{% for tag in product.tags %}
{% if tag contains 'MwSt' %}
{% assign tax_included = true %}
{% assign tax_tag = tag %}
{% endif %}
{% endfor %}
{% if tax_included %}
<p>Preis: {{ product.price | money_with_currency }} <span class="tax-rate">({{ tax_tag }})</span></p>
{% else %}
<p>Preis: {{ product.price | money_with_currency }} (inkl. MwSt)</p>
{% endif %}
In diesem Code wird über die Tags des Produkts iteriert und geprüft, ob eines der Tags "MwSt" enthält. Wenn ja, wird eine Variable mit diesem Tag gefüllt und unter dem Preis angezeigt. Wenn kein solches Tag gefunden wird, wird einfach "inkl. MwSt" unter dem Preis angezeigt.
Aber vielleicht hast du, @Finer, auch eine Idee dazu?
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
@4Raum @Gabe meine erste Frage zielt darauf hin zu verstehen, ob wir außer die 19% MwSt. auch ausländische Steuersätze berücksichtigen müssen. Da in AT und CH andere Steuern ggf. zutreffen (nur bei OSS) würde die Lösung komplexer ausfallen.
Wenn Ihr nur in DE verkauft, könntet Ihr anhand der Tags die unterschiedlichen Texte anzeigen.
Im Grunde würde man zwei verschiedene Strings erstellen über die "assign" Funktion:
{% assign no_taxes = "inkl. 0% Mwst." %}
{% assign with_taxes ="inkl 19% Mwst."%}
{% if product.tags contains '0-Steuer' %}
{{ product.price | monney }} {{ no_takes }}
{% else %}
{{ product.price | monney }} {{ with_takes }}
{% endif %}
Das ist jetzt sehr vereinfacht und müsste im Theme-Code entsprechend angepasst werden. Aber vom Grundaufbau her, wäre das eine Option.
Ja, ist sehr relevant, insbesondere wenn wir mit dem OSS (One-Stop-Shop) arbeiten (pflegt man in die Steuereinstellungen) und in verschiedenen EU-Ländern verkaufen denn dann melden wir ja die Mehrwertsteuer basierend auf den Steuersätzen des Landes des Kunden.
Man könnte das Code so bearbeiten, dass es den Standort des Besuchers erkennt (mit einem IP oder Geolocation Fetch) und die entsprechenden Steuersätze anzeigt.
Hier ein Code das basierend auf Tags den Mehrwertsteuersatz anzeigt:
{% assign no_taxes = "inkl. 0% MwSt." %}
{% assign with_taxes_de ="inkl. 19% MwSt."%}
{% assign with_taxes_at = "inkl. 20% MwSt."%}
{% assign with_taxes_ch = "inkl. 7.7% MwSt."%}
{% if product.tags contains '0-Steuer' %}
{{ product.price | money }} {{ no_taxes }}
{% elsif product.tags contains 'DE-Steuer' %}
{{ product.price | money }} {{ with_taxes_de }}
{% elsif product.tags contains 'AT-Steuer' %}
{{ product.price | money }} {{ with_taxes_at }}
{% elsif product.tags contains 'CH-Steuer' %}
{{ product.price | money }} {{ with_taxes_ch }}
{% else %}
{{ product.price | money }}
{% endif %}
Dieser Code nimmt an, dass man entsprechende Tags wie '0-Steuer', 'DE-Steuer', 'AT-Steuer', 'CH-Steuer' zu den Produkten hinzugefügt hat, abhängig von der Steuer, die auf das Produkt anzuwenden ist. Man müsste das Code noch mit einem Location Fetch des Kunden ergänzen und die entsprechenden Tags zu den Produkten hinzufügen, basierend auf dem Ship-from Land.
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Hallo zusammen!
Vielen Dank für eure Rückfragen und Lösungsvorschläge!
Wir verkaufen vorrangig in Deutschland, Verkäufe außerhalb Deutschlands aber in der EU kommen jedoch in seltenen Fällen auch mal vor. Ich gebe euch also absolut Recht, dass wir auch diese Falle korrekt abbilden müssten.
Bestünde alternativ auch die Möglichkeit, per Code festzulegen, dass immer "inkl. MwSt" angezeigt wird, mit Ausnahme der 0% MwSt Artikel, und bei denen dann z.B. steht "0% MwSt - Differenzbesteuerung gemäß § 25a UStG". Ggf. könnten wir uns so die vielen individuellen Tags für die Darstellung der unterschiedlichen Steuersätze in der EU sparen, dem Kunden aber trotzdem die Info mit auf den Weg geben, die uns so wichtig wäre.
Vielen Dank und liebe Grüße!
Erfolg.
@4Raum klar das ist auch möglich.
Hierbei würde man nur den Fall nehmen, dass das Produkt ein TAG oder Metafeld Wert enthält, welches Mal für den Abgleich verwendet.
Vereinfacht, würde das folgendermaßen aussehen:
{% assign no_taxes = "inkl. 0% Mwst. - Differenzbesteuerung gemäß § 25a UStG." %}
{% if product.tags contains '0-Steuer' %}
{{ product.price | monney }} {{ no_taxes }}<--
{% else %}
[Hier würder der reguläre Code stehen]
{% endif %}
Wie das konkret aussieht, hängt vom Theme ab.
Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024Teil 1 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 9, 2024Anpassungen des benutzerdefinierten Codes an Shopify-Themes (CSS) leicht gemachtIn diesem...
By Gabe Aug 28, 2024