WooCommerce: Mindestbestellwert für Onlineshop festlegen
WooCommerce bietet standardmäßig keine Eingabe eines Mindestbestellwerts. Dieser lässt sich jedoch mit wenig Aufwand nachrüsten.

Als Mindestbestellwert wird ein Betrag innerhalb eines Onlineshops bezeichnet, der mindestens erreicht werden muss, damit die Bestellung abgeschlossen werden kann. Sehr häufig wird auf einen Mindestbestellwert zurückgegriffen, wenn eine Lieferung erst ab einem bestimmten Betrag wirtschaftlich ist, z. B. bei Essens- und Getränkelieferungen. WooCommerce unterstützt diese Option nicht in der Standardinstallation – sie kann jedoch unkompliziert nachgerüstet werden.
WooCommerce-Mindestbestellwert festlegen
Den Mindestbestellwert definieren wir in einer Variable $minimum
, der wir einen numerischen Wert (Summe ohne Währungszeichen) zuweisen. Im Beispiel haben wir den Mindestbestellwert auf 50 Euro festgelegt.
$minimum = 50;
Versandkosten im Mindestbestellwert ignorieren
Ob die Versandkosten Bestandteil des Mindestbestellwerts sein sollen, wird mit folgendem Code bestimmt. Ist die Variable $include_shipping
auf false
gesetzt, gilt der Mindestbestellwert exklusive Versandkosten, ist er auf true
gesetzte, sind Versandkosten inbegriffen.
$include_shipping = false;
if($include_shipping == true) {
$cart_total = WC()->cart->total;
} else {
$cart_total = WC()->cart->total - WC()->cart->shipping_total;
}
WooCommerce um Mindestbestellwert erweitern
Um unseren WooCommerce-Shop nun um die Mindestbestellwert-Funktion zu erweitern, übernehmen wir die Angaben der festgelegten Summe und die Entscheidung über die Inkludierung von Versandkosten in eine Funktion. Anschließend integrieren die Funktion mit Hilfe der Hooks woocommerce_before_cart
und woocommerce_checkout_process
in den Warenkorb und die Kasse unseres Onlineshops.
Hierzu muss der folgende Code in die functions.php
eures Themes oder in ein seitenspezifisches Plugin integriert werden.
function kb_minimum_order_amount() {
$minimum = 50;
$include_shipping = false;
if($include_shipping == true) {
$cart_total = WC()->cart->total;
} else {
$cart_total = WC()->cart->total - WC()->cart->shipping_total;
}
if ( $cart_total < $minimum ) {
if( is_cart() ) {
wc_print_notice(
sprintf( __('Your current order total is %s — you must have an order with a minimum of %s to place your order','kb-theme'),
wc_price( $cart_total ),
wc_price( $minimum )
), 'error'
);
} else {
wc_add_notice(
sprintf( __('Your current order total is %s — you must have an order with a minimum of %s to place your order','kb-theme'),
wc_price( $cart_total ),
wc_price( $minimum )
), 'error'
);
}
}
}
add_action('woocommerce_checkout_process', 'kb_minimum_order_amount');
add_action('woocommerce_before_cart' , 'kb_minimum_order_amount');
Innerhalb der Funktion fragen wir nun ab, ob der Gesamtbetrag kleiner ist, als der festgelegte Mindestbestellwert. Tritt dieser Fall ein, wird dem Benutzer eine Fehlermeldung mit dem aktuellen Betrag und dem zu erfüllenden Mindestbestellwert angezeigt und der Bestellprozess kann nicht beendet werden.

Ist der Mindestbestellwert erreicht, verschwindet der Hinweis und die Bestellung kann abgeschlossen werden.
Wenn ihr den Mindestbestellwert, die Hinweistexte und die Entscheidung ob die Versandkosten mit inbegriffen sein sollen im Backend einstellen möchtet, integriert eine »Theme Option Page« um die Werte an den Code zu übergeben.
Danke für das Snippet. Leider kann der Kunde trotz Mindestbestellwert den Kaufprozess abschließen. Entweder über den PayPal Express Button oder einfach den normalen Kassenprozess durchlaufen. Gibt es eine Möglichkeit dies zu verhindern?
Viele Grüße
Alex
Fortsetzung zu oben: (-,79cent)
wenn der Kunde die Meldung ignoriert, kann er trotz nicht erreichens den Bestellvorgang abschliessen!
liebe Grüße thekla
Habe gerade euer Snippet in der functions.php des themes integriert.
Habe testweise ein 15€ Produkt in den Warenkorb gelegt. Meldung: „your current order total is 15,79 € — you must have an order with a minimum of 25,00 € to place your order“
dasselbe ein 8,50 Produkt dazugelegt: „Your current order total is 24,29 € — you must have an order with a minimum of 25,00 € to place your order“
muss das snippet leider wieder entfernen…
Wo kommen die ,-79cent her???
lg thekla