Zum Inhalt springen Zur Seitenleiste springen

Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.

Problem:
Der Kunde hat eine wichtige Änderung in seiner WooCommerce-Konfiguration vorgenommen, um die Steuerberechnung auf Basis der Lieferadresse des Kunden durchzuführen. Er möchte, dass die finalen Preise nach Umrechnung und Steuer auf volle Beträge gerundet werden, jedoch werden die Preise nicht korrekt gerundet und erscheinen in ungleichen Beträgen wie 12,04 EUR oder 14,97 EUR.
Solution:
Wir haben festgestellt, dass die Basiswährung Euro auf der Testseite des Kunden angewendet wird und diese wird nicht durch WooCommerce Multilingual (WCML) gerundet. WCML bietet nur Rundungsregeln für Zweitwährungen, die in WCML angelegt wurden. Um die Preise der Standardwährung zu runden, empfehlen wir die Verwendung eines WooCommerce-Filters. Hier sind einige nützliche Filter, die der Kunde verwenden kann:

Da WPML nur Rundungsregeln in den Zweitsprachen anbietet und die Standardwährung nicht mit WPML gerundet werden kann, sollte der Kunde den WooCommerce-Support für weitere Unterstützung konsultieren.

Falls diese Lösung veraltet ist oder nicht auf Ihren Fall zutrifft, empfehlen wir Ihnen, ein neues Support-Ticket zu eröffnen. Überprüfen Sie auch die bekannten Probleme und stellen Sie sicher, dass Sie die neuesten Versionen von Themes und Plugins installiert haben. Für weitere Unterstützung besuchen Sie bitte unser Support-Forum.

Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.

Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.

Dieses Thema enthält 30 Antworten, hat 0 Stimmen.

Zuletzt aktualisiert von Andreas W. Vor 1 Woche.

Assistiert von: Andreas W..

Autor Beiträge
August 1, 2025 um 4:23 pm #17289099

Marcel
Unterstützer

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+02:00)

Hallo Patrick,

vielen Dank für das Video. Bitte stellen Sie, wie bereits erwähnt, eine Duplicator-Kopie zur Verfügung, damit wir weitere Tests durchführen können. So können wir mit unseren WooCommerce-Multilingual-Entwicklern klären, ob es noch alternative Lösungsansätze gibt. Ich vermute jedoch, dass sich das ohne individuelles Custom Coding kaum umsetzen lässt.

Viele Grüße
Marcel

August 6, 2025 um 4:37 am #17298406

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ich hatte dies bereits auf einem alten Ticket untersucht und festgestellt, dass WCML die Steuer nicht korrekt ansetzen kann, wenn der Kunde nicht angemeldet ist, was hier daran liegt, dass man die Steuer in WooCommerce auf Basis der Kundenadresse berechnet.

Eine Kundenadresse liegt allerdings nicht vor, wenn ein Kunde nicht angemeldet ist. Hier liegt eindeutig ein Problem vor, welches nur auf den Währungen auftritt, die durch WCML hinzugefügt werden, welches nur dann entsteht, wenn ein Benutzer nicht angemeldet ist.

Wenn ich allerdings unter WooCommerce > Settings > Calculate tax based on" die Einstellung auf "Shop base address" setze, löst sich das Problem.

Ich bitte um eine kurze Erklärung dazu, weshalb diese Einstellung hier keine Lösung darstellt, bevor ich versuchen werde das Problem zu replizieren und intern zu eskalieren.

August 6, 2025 um 1:59 pm #17299842

patrickA-31

Hallo Andreas,

vielen Dank für Ihre Rückmeldung und Ihre Bereitschaft, das Problem weiter zu analysieren.

Wir haben den Fall parallel auch mit den Kollegen von WooCommerce besprochen. Hier ist deren Einschätzung sowie das empfohlene Vorgehen:

1. Einschätzung durch WooCommerce (s. auch https://wordpress.org/support/topic/incorrect-vat-calculation-for-swiss-order/#new-topic-0 ):

Die Einstellung "Calculate tax based on: Shop base address" beeinflusst primär die Anzeige der Steuer vor Eingabe der Adresse durch den Kunden. Sobald jedoch beim Checkout eine Kundenadresse (oder Geolokalisierung) verfügbar ist, sollte WooCommerce die Mehrwertsteuer dynamisch anhand dieser Adresse neu berechnen – auch wenn die Grundeinstellung auf die Shop-Adresse gesetzt ist.

Allerdings wurden zwei wichtige Einschränkungen genannt:

Anzeige vs. finale Berechnung:
Die gewählte Einstellung wirkt sich hauptsächlich auf die anfängliche Steueranzeige aus. Die finale Steuerberechnung basiert im Checkout idealerweise auf der tatsächlichen Kundenadresse.

Kompatibilität mit Plugins wie WPML Multicurrency:
Es besteht die Möglichkeit, dass WCML/WPML hier eingreift und das erwartete Verhalten überschreibt – etwa durch Caching, Rundungslogik oder Steuerdarstellung auf Basis der Shop-Adresse. Dadurch kann es zu einer fehlerhaften Berechnung kommen, insbesondere wenn Kunden nicht eingeloggt sind.

2. Empfohlenes Vorgehen zur Klärung:

WooCommerce empfiehlt folgende Tests:

Deaktivieren Sie WPML Multicurrency temporär.

Führen Sie eine Testbestellung mit einer nicht-deutschen Adresse durch, während nur WooCommerce aktiv ist.

Sollte in diesem Fall die MwSt. korrekt berechnet werden, liegt der Ursprung des Problems mit hoher Wahrscheinlichkeit bei WPML/WCML.

Falls sich das so bestätigt, stehen die Kollegen von WooCommerce auch gerne bereit, einen Konflikttest zu begleiten oder beim Kontakt mit WPML-Support zu unterstützen, sollte es sich um ein Kompatibilitätsproblem handeln.

Wir hoffen, diese Informationen helfen weiter. Bei Rückfragen oder zur Koordination weiterer Tests stehen wir natürlich gerne zur Verfügung.

Mit freundlichen Grüßen
Patrick

August 6, 2025 um 2:02 pm #17299845

patrickA-31

Hallo Andreas,

hier nochmals den Test aus Basis der Empfehlungen von WooCommerce:

ich bin für den Test auf der Live-Seite wie folgt vorgegangen – danach wurde die Mehrwertsteuer korrekt angezeigt:

Deaktivierung der folgenden sieben Plugins:

WooCommerce Multilingual & Multicurrency
WPML CMS Navigation
WPML Media Translation
WPML Multilingual CMS
WPML SEO
WPML Sticky Links
WPML String Translation

Anschließend habe ich unter WooCommerce > Einstellungen > Standard-Kundenstandort die Option von
„Geolocate (with page caching support)” auf „Geolocate” umgestellt.

Die Einstellung unter WooCommerce > Einstellungen > Steuer > Steuerberechnung basierend auf war und ist auf „Versandadresse des Kunden” gesetzt. Wie du bereits erwähnt hast, kann diese Einstellung in Verbindung mit WPML problematisch sein (z. B. hinsichtlich der Währungsrundung), aber in diesem Test wurde die Mehrwertsteuer korrekt angezeigt.

Danach habe ich im Chrome-Browser unter den Einstellungen die Cookies und andere Webseitendaten sowie Bilder und Dateien im Cache gelöscht.

Anschließend öffnete ich ein Inkognito-Fenster, um die Testbestellung durchzuführen.
Die Preise wurden nun korrekt bereits beim ersten Aufruf mit 19 % MwSt. für Deutschland (wo ich mich gerade befinde) angezeigt – und an der Kasse, nachdem ich eine österreichische Adresse eingegeben hatte, mit 20 % MwSt..

Jetzt müssten wir noch herausfinden, woran der Fehler genau liegt, und eine dauerhafte Lösung finden.

Vielen Dank und viele Grüße
Patrick

August 7, 2025 um 7:07 pm #17303903

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ich konnte das Problem nun auf einer neuen Test Site in einem minimalen Setup mit gleichartigen Einstellungen replizieren, allerdings ist mir weiterhin unklar, wann und wodurch dieses Problem genau auftritt. Es scheint als funktionierte hier alles wie erwartet, bis die Standardwährung verändert wurde (von USD zu EURO).

Test Produkt:
versteckter Link

Kannst Du das Problem auf diesem Produkt aktuell bestätigen?

Falls ja, dann beachte bitte das hier aktuell WPML und WCML nicht aktiviert sind. Die Standardwährung war USD, wurde auf EUR verändert und dann auf USD zurückgestellt.

Das originale Produkt kostet $50 inkl. Steuer, aber in WooCommerce erscheint der Preis ohne Steuer für nicht-angemeldete Nutzer (also auch ohne WPML).

Dies scheint demanch ein Problem in WooCommerce zu sein, dass auftritt, wenn die Geolocation aktiviert ist und danach die Standardwährung verändert wird.

Hier die Anmeldung zur Test Site als Referenz:
versteckter Link

Man müsste nun nochmals versuchen dies auf einer Test Site von Anfang an ohne WPML und WCML alleine mit WooCommerce zu replizieren.

1) Geolocation aktivieren
2) Steuern hinzufügen und entsprechende Einstellungen vornehmen
3) Produkt erstellen
4) Standardwährung wechseln (Problem sollte nun auftreten)

Auf meiner Test Site bleibt das Problem per VPN aus der Scheiz aktuell bestehen, selbst dann, wenn ich ein neues Produkt erstelle.

Wechsel ich auf Basis-Shopadresse zur Steueranwendung oder deaktiviere meine VPN (Schweiz) löst sich das Problem.

August 13, 2025 um 10:26 am #17316704

patrickA-31

Hallo Andreas,

ich habe deine Einstellungen im Rahmen meiner Möglichkeiten überprüft. Dabei ist mir aufgefallen, dass auf deiner Testseite unter

versteckter Link

für einige Länder, zum Beispiel Deutschland, Österreich und die Schweiz, keine oder nicht korrekte Mehrwertsteuersätze hinterlegt sind. Ich weiß nicht genau, wie WooCommerce reagiert, wenn in ein Land versendet wird, für das kein MWST-Satz definiert ist.

Ich habe die MWST-Sätze für Deutschland, Österreich und die Schweiz beispielhaft ergänzt. Vor allem ein Test zwischen Deutschland und Österreich erscheint sinnvoll, da in die Schweiz mit 0 % MWST versendet wird und wir dort keinen Unterschied zwischen Brutto und Netto sehen.

Bitte führe deinen Test noch einmal durch. Es könnte auch sinnvoll sein, den Fehler oder Bug direkt mit WooCommerce zu besprechen, da ich nur ein Laie bin und hier gefühlt nicht viel helfen kann.

Viele Grüße
Patrick

August 14, 2025 um 3:41 am #17319595

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Es ist eigentlich nicht notwendig weitere Steuern zum Testen hinzuzufügen. Wenn hier ein Bug vorliegt, dann sollte er sich eigentlich mit zwei Währungen replizieren lassen.

---

Ich habe heute eine neue Test Site mit WooCommerce, WPML und WCML in den aktuellsten Versionen aufgesetzt. Das Problem kann ich hier nun allerdings nicht bestätigen. Es funktioniert soweit alles wie erwartet.

Bitte schau es Dir einmal an lass mich wissen, ob Du aktuell aus der Schweiz per Geolocation einen unerwarteten Preis siehst:
versteckter Link

---

Achte allerdings darauf, dass wenn die Standardwáhrung verändert wird im Dashboard folgende Meldung erscheint:

"The default currency was changed. In order to show accurate prices in all currencies, you need to update the exchange rates under the Multi-currency configuration."

August 14, 2025 um 3:49 am #17319597

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ich muss dazu noch hinzufügen, dass wenn Du eine Steuer von MwSt. 0 % CH ansetzt und die Preise inkl. MwSt. angezeigt werden, es zu erwarten ist, dass die Preise nicht gerundet werden. Das ist allerdings auch dann der Fall, wenn Du nur mit WooCommerce testest.

Ich hatte das in unserem alten Ticket bereits erwähnt und dazu einen Workaround angeboten, weil man in dem Fall mit Hooks arbeiten muss.

August 17, 2025 um 2:27 pm #17325501

patrickA-31

Hallo Andreas,

vielen Dank für deine Rückmeldung.

Auf der neuen Testseite war zunächst keine Shop-Adresse hinterlegt. Ich habe nun eine deutsche Adresse eingetragen. Meiner Ansicht nach muss die Mehrwertsteuer unter „Tax“ für jedes Land hinterlegt werden, damit WooCommerce sauber funktioniert. Ich habe dies beispielhaft für Deutschland und Österreich eingerichtet, um 19 % und 20 % MwSt. vergleichen zu können. Die Schweiz mit 0 % lassen wir vorerst außen vor, da es sich um einen Sonderfall handelt.

Bei deinem Testprodukt mit 19 % MwSt. und einem Brutto-Preis von 100 € kostet das Produkt, wenn eine österreichische Adresse an der Kasse eingegeben wird, 100,84 €. Die Abweichung kommt durch die 1 % höhere MwSt. im Vergleich zu Deutschland zustande. Mit dem WPML-Rundungstool hätte ich erwartet, dass 101 € angezeigt werden – dies ist leider nach wie vor nicht der Fall.

Außerdem habe ich festgestellt, dass man in „WooCommerce Multilingual & Multicurrency“ Euro-Beträge nicht runden kann, da dies die Basiswährung ist. Genau das war allerdings meine ursprüngliche Anfrage.

Ich wollte dich nur auf diese Punkte hinweisen und freue mich über weitere Hinweise, wie wir hier eine konsistente Rundung für unterschiedliche Länder-MwSt. und Währungen umsetzen können.

Viele Grüße
Patrick

August 19, 2025 um 5:33 am #17329712

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Auf meiner Test-Site ist Euro die Basiswährung und diese wird nicht durch WCML gerundet.

Du musst dazu einen WooCommerce-Filter verwenden:
https://stackoverflow.com/questions/61836970/how-can-i-round-up-the-price-in-woocommerce

August 27, 2025 um 7:08 pm #17352815

patrickA-31

Hallo Andreas,

vielen Dank für deine Rückmeldung und den hilfreichen Hinweis.

Leider bin ich noch Anfänger und traue mir nicht zu, die entsprechenden Codes selbst in meine Webseite zu implementieren. Trotzdem möchte ich mich herzlich für deine Unterstützung und den geteilten Link bedanken.

Viele Grüße
Patrick

August 27, 2025 um 9:20 pm #17353000

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ich habe die Hook in deinem Code Snippet Plugin auf dem Staging implementiert.

Beispiel:
Der Preis von versteckter Link zeigt nun 40€ anstatt 39,90€.

August 29, 2025 um 6:40 pm #17358721

patrickA-31

Hallo Andreas,

vielen Dank, dass du mir den Code zur Verfügung gestellt hast. Die Funktion sieht sehr vielversprechend aus. Ich habe sie inzwischen auf der Live-Seite implementiert und werde in den nächsten Tagen testen, ob der gerundete Wert jetzt auch nach dem Bezahlen durchgängig auf der Rechnung und an allen relevanten Stellen korrekt angezeigt wird.

Nochmals herzlichen Dank für deine Unterstützung!

Viele Grüße
Patrick

August 29, 2025 um 7:22 pm #17358762

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Gern geschehen!

Lass mich wissen, sollte weitere Hilfe notwendig sein.

September 3, 2025 um 12:51 pm #17370417

patrickA-31

Hallo Andreas,

wir haben den Code implementiert. Dieser hat zur Folge, dass die Preise auf ganze Einheiten gerundet werden. Soweit ich beurteilen kann, werden dadurch die Rundungseinstellungen von WPML überschrieben.

Des Weiteren werden die Steuern, Versandgebühr und sogar die PayPal-Gebühren gerundet.

Ein Beispiel:

Items Subtotal: 42,00 €
Shipping: 0,00 €
VAT 19 % DE: 8,00 €
Order Total: 50,00 €
Paid: 50,00 € (1. September 2025 via PayPal)
PayPal Fee: -2,00 €
PayPal Payout: 49,00 €

Es wäre gut, wenn der Filter nur auf den Bruttobetrag angewendet würde, während Netto und PayPal-Gebühren vom Filter unberührt bleiben.

Kannst du den Code entsprechend anpassen?

In der Zwischenzeit haben wir den Code auf der Live-Site deaktiviert. Auf der Staging-Seite bleibt er wie von dir implementiert aktiv.

Vielen Dank und beste Grüße
Patrick