Wie du in WooCommerce versandkostenfrei ab einem bestimmten Betrag richtig einstellst

Kostenfreier Versand in WooCommerce

Lesedauer: 5 Minuten
Artikel zuletzt aktualisiert: 5. Dezember 2024

Einige Anfragen von Bloglesern und -leserinnen kommen regelmäßig zu der Problematik, wie ein kostenfreier Versand ab einem bestimmten Bestellbetrag in WooCommerce umgesetzt wird.

Diesen Punkt finde ich auch ziemlich tricky bzw. von WooCommerce nicht allzu elegant gelöst.

Versandkostenfrei ab einem bestimmten Bestellwert: Vorgehensweise

Hier nochmals eine Fallbeschreibung:

Du entscheidest dich für kostenlosen Versand deiner Produkte, doch erst ab einem bestimmten Betrag, sagen wir mal ab einem Bestellwert von 50 Euro.

Liegt der Bestellwert darunter, fällt eine Versandkostenpauschale von 3,50 Euro an. (Meine hier genannten Werte sind natürlich beliebig austauschbar.)

Die nächsten Schritte sehen das Erstellen einer Versandkostenzone (z. B. Deutschland) vor, in der einmal der Name der Zone und dann die Zonen-Regionen festgelegt werden.

Da normalerweise bei der Wahl von Deutschland innerhalb des ganzen Landes Waren versendet wird, kann man bei den Zonen-Regionen auch “Deutschland” wählen, oder aber Postleitzahlen-Gebiete eintragen. Wenn letzteres der Fall sein sollte, gib bitte pro Zeile eine Postleitzahl ein.

Neue Versandzone in WooCommerce anlegen

Bild 1: Anlegen der Versandzone Deutschland

Im nächsten Schritt werden die Versandarten definiert.

Ich lege zuerst die Versandkostenpauschale über den Button Versandart hinzufügen an.

Versandkostenpauschale in WooCommerce anlegen

Bild 2: Versandkostenpauschale der Versandzone hinzufügen

Über Versandkostenpauschale im Bereich Bezeichnung werde ich diese nun bearbeiten. Ich wähle einen einfachen Betrag aus: 3,50 Euro plus MWSt. (über das Feld Steuerstatus (Besteuerbar) festgelegt), denn Versandkosten sind umsatzsteuerpflichtig, wenn du Mehrwertsteuer auf die Produkte erhebst (weitere Informationen findest du hier).

Als Kleinunternehmer brauchst du allerdings keine Mehrwertsteuer auf die Versandkosten zu berechnen.

In dem Feld Preis lässt sich auch eine Formel eintragen. Wer allerdings seine Versandkosten auf der Basis von Warenmenge, Gesamtkosten des Warenkorbs oder Gebühren berechnet, wird wohl kaum ab einem bestimmten Bestellwert kostenfreie Lieferung anbieten.

Versandkostenpauschale festsetzen in WooCommerce

Bild 3: Preis der Versandkostenpauschale eintragen

Über den Button Versandart hinzufügen lege ich jetzt noch Kostenlose Lieferung an, der Mindestbestellwert liegt bei 50 Euro.

Kostenlose Lieferung in WooCommerce anlegen

Bild 4: Kostenlose Lieferung festlegen

Wer in seinem Shop häufig mit Gutscheincodes hantiert, sollte in dem Feld Kostenloser Versand erfordert … statt Einen Mindestbestellwert den Wert Einen Mindestbestellwert ODER bzw. UND einen Gutschein auswählen.

Nun sind beide Versandarten im Shop festgelegt.

Warenkorb Summe mit Versandkostenpauschale

Bild 5: Warenkorb mit Versandkostenpauschale bei Einkaufswert von unter 50 Euro

Wenn ich jetzt in meinen Shop gehe und einen Warenwert von unter 50 Euro in den Warenkorbe lege, wird mir folgendes angezeigt:

Es wird auf eine Bestellung mit dem Wert 39,00 Euro eine Versandkostenpauschale 3,50 Euro mit 0,67 Euro MWSt. berechnet. Also genau so, wie es sein soll (siehe Bild 5).

Nun erhöhe ich den Warenkorb, damit er über 50 Euro Bestellwert liegt und keine Versandkosten anfallen sollen.

Warenkorb Summe mit Versandkostenpauschale sowie kostenlosem Versand als Auswahloption

Bild 6: Trotz der Festlegung, dass ab 50 Euro Bestellwert versandkostenfrei geliefert wird, zeigt die Warenkorb-Summe neben Kostenlose Lieferung auch Versandkostenpauschale an.

Und nun passiert das, was nicht sein soll. Es wird einmal die Versandkostenpauschale (aktiv geschaltet) angezeigt und einmal die kostenlose Lieferung, d. h. der Kunde hat die Wahlmöglichkeit zwischen Versandkosten und kostenlosem Versand, was nicht sein soll, denn schließlich wird ihm ab einem bestimmten Bestellbetrag versandkostenfreie Lieferung versprochen.

Das ist aus meiner Sicht eine Schwachstelle bei WooCommerce: Wird versandkostenfrei neben Versandkostenpauschale in einer Versandzone festgelegt, wird beim Überschreiten des versandkostenpflichtigen Betrages immer auch die Versandkostenpauschale zusammen mit der kostenlosen Lieferung angezeigt.

Um diese Anzeige auszuschließen, benötigst du einen Code-Schnipsel, den du in die functions.php deines WordPress-Themes einfügen musst.

Hier ist der Code-Schnipsel:

// Alle anderen Lieferkosten ausblenden, wenn ein kostenloser Versand möglich ist

function my_hide_shipping_when_free_is_available( $rates ) {
 $free = array();
 foreach ( $rates as $rate_id => $rate ) {
 if ( 'free_shipping' === $rate->method_id ) {
 $free[ $rate_id ] = $rate;
 break;
 }
 }
 return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );

Wo findest du die functions.php?

Diese Datei kannst du unter Design -> Editor öffnen. In der rechten Spalte sind einige Theme-Dateien aufgeführt, die Datei müsste ganz schlicht functions.php oder functions plus Theme-Name heißen, wie an meinem Beispiel functions-enfold.php.

Den Code kopierst du einfach ans Ende der functions.php. Aber aufpassen, dass auch wirklich alles vollständig eingefügt wurde, sonst kommt es zu Fehlermeldungen. Die Änderungen solltest du abspeichern.

Functions.php

Bild 7: functions-enfold.php in meinem Beispiel (zum Vergrößern Bild anklicken)

Der Nachteil der direkten Einbindung ist der, dass bei jedem Theme-Update der Code wieder überschrieben und damit gelöscht wird.

Das Problem löst du entweder mit einem Child-Theme (dazu gibt es einige Anleitungen im Internet) oder mit dem Plugin My Custom Functions.

Ich selbst habe dieses Plugin für diesen Beitrag getestet und es hat funktioniert.

Wenn du das Plugin installiert und aktiviert hast, findest du unter Einstellungen den Punkt PHP Inserter vor. Darüber gelangst du zum Plugin und seiner Oberfläche.

Dort gibst du dann den oben aufgeführten Code-Schnipsel ein und schaltest das Plugin auf ON, erst jetzt wird es funktionieren.

PHP-Inserter

Bild 8: Code-Schnipsel im Plugin My Custom Functions

Testest du jetzt den Warenkorb mit einem Mindestbestellbetrag von 50 Euro oder darüber, steht im Feld Versand bei der Warenkorb-Summe nur Kostenlose Lieferung, so wie es sein soll.

Warenkorb mit korrekter Anzeige

Bild 9: Nach Integration des Code-Schnipsels wird nur noch Kostenlose Lieferung ab dem festgelegten Bestellwert angezeigt.

Fazit

Ich hoffe, ich konnte mit dieser Erläuterung einige Ungereimtheiten bei der Einrichtung von kostenlosem Versand ab einem bestimmten Bestellwert ausräumen.

Ich würde mich freuen, wenn WooCommerce in einer der nächsten Versionen eine einfachere Lösung parat hätte. Dass dies umgesetzt wird, ist allerdings zu bezweifeln.

Willst du noch mehr über WooCommerce erfahren?

(Bildquelle Artikelanfang: © ROMIXIMAGE/Canva.com)

Teile diesen Beitrag:


WordPress Cookie Hinweis von Real Cookie Banner