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

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.

Schulungen von kulturbanause

Intensive Trainings mit hohem Praxisbezug.

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

thumb

Robert arbeitet als Frontend-Developer und Web-Designer bei kulturbanause®. Zu seinen Aufgaben gehören die Gestaltung und die technische Umsetzung von Websites mit Photoshop, Illustrator, WordPress, PHP, HTML, CSS (Sass) und JavaScript (jQuery). Besonders gerne übernimmt er die Erstellung individueller und anspruchsvoller WordPress-Themes mit umfangreichen ineinandergreifenden Funktionen.

Feedback & Ergänzungen – 1 Kommentar

  1. 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 →

Unsere Agentur in Berlin realisiert vom durchgestylten One-Pager bis zur funktionalen Konzern-Website Projekte mit sehr unterschiedlichem Umfang. Wir haben u.a. mit folgenden Kunden erfolgreich zusammengearbeitet: