Zur Suche springen Zur Navigation springen Zum Hauptinhalt springen Zum Footer springen

WooCommerce – Probleme mit Preis-Abweichungen durch Rundungsfehler beheben

Rundungsfehler in WooCommerce treten vor allem dann auf, wenn Berechnungen mit Prozentwerten – wie beispielsweise der Angabe von Mehrwertsteuer – oder das Verwenden von prozentualen Gutscheinen zum Einsatz kommen. Mit den richtigen Einstellungen und einer kleinen Anpassung am Code lassen sich diese lästigen Rundungsfehler jedoch verhindern. Das verbessert nicht nur die Usabilty des Online-Shops, sondern vermeidet auch unangenehme Fragen beim Finanzamt.

Preis-Abweichungen im Cent-Bereich durch Rundungsfehler

Die Rundungsfehler machen sich im Shop an mehreren Stellen bemerkbar, sobald man die Preise im Shop inklusive Mehrwertsteuer, also als Brutto-Preise anzeigt. Beispielsweise in der Bestellübersicht, wenn man vom gleichen Produkt eine höhere Anzahl bestellt. Im Beispiel haben wir ein Produkt, welches 3 Euro (inkl. MwSt.) kostet. Legen wir davon 5 Stück in den Warenkorb ist die Zwischensumme jedoch nicht bei 15 Euro sondern bei 14,99 Euro.

Rundungsfehler im WooCommerce Warenkorb
Beispiel eines Rundungsfehlers im WooCommerce Warenkorb

Das gleiche Verhalten finden wir auch in der Berechnung der Gesamtsumme der Bestellung wieder. Auch wenn ein prozentualer Gutschein, z.B. 10%, auf den gesamten Einkauf angewendet wird, kommt es zu vergleichbaren Problemen.

Wie entstehen die Rundungsfehler in WooCommerce?

WooCommerce rechnet mit den Netto-Preisen, also alle Preise ohne Mehrwertsteuer und addiert die Mehrwertsteuer anschließend auf die Zwischensumme.

Im Beispiel würde das bedeuten, dass unser Produkt, welches mit 3 Euro ausgegeben wird, einem Netto-Preis von 2,52 Euro entsprechen würde. Rechnen wir nun 5 x 2,52 Euro kommen wir auf eine Zwischensumme von 12,60 Euro. Die Mehrwertsteuer (19%) von 12,60 Euro beträgt 2,394 Euro. Rechnen wir diese beiden Zahlen zusammen erhalten wir einen Brutto-Preis von 14,994 Euro. Auf zwei Dezimalstellen gerundet ist unsere Zwischensumme inklusive Mehrwertsteuer also 14,99 Euro.

Rundungsfehler in WooCommerce beheben

Um diese Rundungsfehler zu umgehen, müssen wir mehrere Schritte berücksichtigen.

1. Netto-Preise im Backend angeben

Im Backend unter WooCommerce → Einstellungen → Mehrwertsteuer → Steuer Optionen geben wir an, dass wir unsere Preise exklusive Mehrwertsteuern angeben.

Einstellung der Preisangabe in WooCommerce
Preise in WooCommerce als Netto-Preise angeben

Zusätzlich sagen wir im gleichen Einstellungsbereich, dass wir die Preise im Shop inklusive Mehrwertsteuer ausgeben. Somit werden im Frontend alle Preise weiterhin als Brutto-Preise dargestellt.

Darstellung der Steuern in WooCommerce bestimmen
Preise inkl. Steuern im Frontend ausgeben

2. Dezimalstellen der Preise anpassen

Das Rundungsproblem bekommen wir nun in den Griff, indem wir im Backend unter WooCommerce → Einstellungen → Allgemein → Währungsoptionen die Anzahl der Dezimalstellen auf vier umstellen. Somit hat WooCommerce bei der Berechnung der einzelnen Summen mehr Rundungsspielraum und die Rundungsfehler verschwinden.

WooCommerce Währungsoptionen
Backend-Einstellungen für Währungsoptionen in WooCommerce

Nachdem wir die Anzahl der Dezimalstellen auf vier erhöht haben, müssen wir alle Preise inklusive vier Dezimalstellen angeben. Nur so ist gewährleistet, dass die Berechnung die korrekten Summen ausspuckt.

Preisangabe im WooCommerce Backend mit vier Dezimalstellen
Preisangabe im WooCommerce Backend mit vier Dezimalstellen

Auch die Angabe der Steuersätze im Backend unter WooCommerce → Einstellungen → Mehrwertsteuer → Standard Steuersätze (und weitere Tabs) sollten mit vier Dezimalstellen angegeben werden.

Steuersatz-Einstellungen in WooCommerce
Steuersätze in WooCommerce mit vier Dezimalstellen angeben

Das Ergebnis im Frontend der Seite sieht nun so aus, dass alles korrekt gerundet wird, nun aber vier anstelle von zwei Dezimalstellen ausgegeben werden.

WooCommerce Warenkorb mit vier Dezimalstellen
Beispiel der Preisausgabe mit vier Dezimalstellen im WooCommerce Warenkorb

3. Ausgabe der Preise im Frontend korrigieren

Um im Frontend nun alle Preise wieder korrekt mit nur zwei Dezimalstellen anzuzeigen, müssen wir folgenden Code in unsere functions.php oder in ein seitenspezifisches Plugin schreiben. Über die Argumente setzen wir die Dezimalstellen auf zwei zurück.

function kb_decimals_price_args($args) {
  $args['decimals'] = 2;
  return $args;
}
add_filter('wc_price_args', 'kb_decimals_price_args', 10, 1);

WooCommerce hat nun die Möglichkeit mit vier Dezimalstellen zu rechnen und die Ausgabe im Frontend bleibt trotzdem bei zwei Dezimalstellen und die Rundungsfehler sind verschwunden.

WooCommerce Warenkorb mit zwei Dezimalstellen
Beispiel der Preisausgabe mit korrigierten Dezimalstellen im WooCommerce Warenkorb

Gut zu wissen: Die Preisangabe in den strukturierten Daten werden nach der Anpassung mit vier Dezimalstellen angegeben. Solltet ihr diese Daten mit zwei Dezimalstellen benötigen, müsst ihr die strukturierten Daten zusätzlich anpassen.

Geschrieben von Robert Menzel

Benutzerbild

Robert arbeitet als Frontend-Developer und Web-Designer bei kulturbanause. Zu seinen Aufgaben gehören die visuelle Gestaltung und die technische Umsetzung von Websites, eCommerce-Shops oder dessen Kombination. Besonders gerne übernimmt er die Entwicklung individueller und anspruchsvoller Websites mit umfangreichen ineinandergreifenden Funktionen, getreu dem Motto: »Der beste Lack bringt nichts, wenn die Maschine darunter nicht läuft.«

Feedback & Ergänzungen – 6 Kommentare

  1. Christoph
    schrieb am 25.11.2023 um 07:25 Uhr:

    Vielen dank. Ich habe den Anwendungsfall dass ich den Produktpreis mit 4 Kommastellen eingeben muss.
    Aber es sollen nur 2 Kommastellen dargestellt machen.
    Wenn ich das nach Deiner Anleitung mache sind trotzdem die Rundungsfehler vorhanden.

    Ist es möglich einfach die letzten 2 von 4 Kommastellen auszublenden?

    Antworten
  2. Marco Kiepke
    schrieb am 18.10.2022 um 13:21 Uhr:

    Hallo Nicolas,

    Gut zu wissen: Die Preisangabe in den strukturierten Daten werden nach der Anpassung mit vier Dezimalstellen angegeben. Solltet ihr diese Daten mit zwei Dezimalstellen benötigen, müsst ihr die strukturierten Daten zusätzlich anpassen.

    Ich bräuchte hier unbedingt einen Tipp, wie ich das vollbringe! Merchant Center sperrt mir alle Produkte, weil sich die Preise unterscheiden. Ich wäre wirklich sehr dankbar!

    Viele Grüße

    Antworten
    • Marco
      schrieb am 18.10.2022 um 13:21 Uhr:

      Natürlich Hallo Robert! Bitte entschuldige! :)

      Antworten
  3. Matthias
    schrieb am 18.03.2022 um 16:25 Uhr:

    Hi, danke für den Tipp. Ich habe in einem B2B-Shop das Problem, dass die Preise netto angezeigt werden sollen – habe alles wie oben beschrieben umgesetzt, wenn ich nun die functions.php anpasse, taucht der Rundungsfehler allerdings wieder auf (aus 2x 1,30 € wird somit immer 2,61 €). Habt ihr da noch eine Idee? – kann euch ansonsten auch gerne mal den Link senden. Viele Grüße.

    Antworten
  4. Nicolas
    schrieb am 16.03.2022 um 10:26 Uhr:

    Hallo Robert, danke für das gut verständliche Tutorial. Ich habe alle Schritte umgesetzt und den Code per Code Snippets-Plugin eingefügt. Es sind jedoch weiterhin 4 Nachkommastellen im Shop sichtbar. Hast du eine Idee, woran es liegen könnte?
    Nutzen Mr. Tailor als Theme, WordPress neuste Version.
    Grüße, Nicolas

    Antworten
  5. Peach
    schrieb am 20.05.2021 um 22:55 Uhr:

    Diese Rundungsfehler in WooCommerce haben mir schon viele schlaflose Stunden beschehrt. Dank deinen wertvollen Tipps konnte ich das Problem nun ohne grossen Aufwand beheben. Ich danke dir herzlich für die hilfreiche Anleitung.

    Antworten

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WooCommerce-Projekte mit kulturbanause

Wir arbeiten intensiv mit WordPress und realisieren auf Basis von WooCommerce maßgeschneiderte Online-Shops. Individuell gestaltet, funktional optimiert und rechtssicher.

WooCommerce-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →