So bieten Sie Mengenrabatte in WooCommerce an

Veröffentlicht: 2020-01-27

In der Regel möchten Sie als Ladenbesitzer manchmal Rabatte anbieten, wenn Kunden mehr als eine Menge eines bestimmten Produkts kaufen. Dies kann entweder dazu dienen, den Verkauf anzukurbeln oder überschüssige Bestände aufzulösen. In diesem Beitrag erfährst du, wie du Mengenrabatte in WooCommerce mit Code-Snippets und Plugins anbieten kannst.

So bieten Sie Mengenrabatte in WooCommerce mit Code Snippets an

Lassen Sie uns untersuchen, wie Sie dazu ein Code-Snippet verwenden. Mit diesem Code-Snippet bieten wir Kunden einen Rabatt von 5 %, wenn sie mehr als 2 Mengen desselben Produkts kaufen.

Dazu müssen Sie den folgenden Code zur Datei functions.php Ihres Child-Themes hinzufügen:

 add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 );

function ts_add_default_price_as_custom( $cart_item_data, $product_id, $variation_id ){

    $product_id = $variation_id > 0 ? $variation_id : $product_id;

    ## ----- STELLEN SIE HIER DEN RABATT EIN ----- ##
    $rabattprozentsatz = 5; // Rabatt (5%)

    // Das WC_Product-Objekt
    $product = wc_get_product($product_id);

    $price = (float) $product->get_price();

    // Legen Sie den Standardbasispreis des Produkts als benutzerdefinierte Warenkorbartikeldaten fest
    $cart_item_data['base_price'] = $preis;

    // Legen Sie den ermäßigten Produktpreis als benutzerdefinierte Warenkorbartikeldaten fest
    $cart_item_data['new_price'] = $price * (100 - $discount_percentage) / 100;

    // Legen Sie den Prozentsatz als benutzerdefinierte Warenkorbartikeldaten fest
    $cart_item_data['percentage'] = $discount_percentage;

    $cart_item_data zurückgeben;
}

// Den Originalpreis des Produkts anzeigen
add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 );

Funktion ts_display_cart_items_default_price( $product_price, $cart_item, $cart_item_key ){
    if( isset($cart_item['base_price']) ) {
        $product = $cart_item['data'];
        $product_price = wc_price( wc_get_price_to_display( $product, array( 'price' => $cart_item['base_price'] ) ) );
    }
    geben Sie $product_price zurück;
}

// Den Produktnamen mit dem Rabattprozentsatz anzeigen
add_filter( 'woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3 );
Funktion ts_add_percentage_to_item_name( $product_name, $cart_item, $cart_item_key ){
    if( isset($cart_item['prozentsatz']) && isset($cart_item['base_price']) ) {
        if( $cart_item['data']->get_price() != $cart_item['base_price'] )
            $product_name .= ' <em>(' . $cart_item['percentage'] . '% Rabatt)</em>';
    }
    $Produktname zurückgeben;
}

add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 );
Funktion ts_custom_discounted_cart_item_price( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        Rückkehr;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        Rückkehr;

    ## ----- HIER DIE MENGE EINSTELLEN ----- ##
    $Zielmenge = 2; // Gezielte Menge

    // Einkaufswagenartikel durchlaufen
    foreach ( $cart->get_cart() als $cart_item ) {

        // Für eine Artikelmenge von 2 oder mehr
        if( $cart_item['quantity'] >= $targeted_qty && isset($cart_item['new_price']) ){

            // Ermäßigten Preis für Warenkorbartikel festlegen
            $cart_item['data']->set_price($cart_item['new_price']);
        }
    }
}

Der obige Code fügt einen Rabatt von 5 % hinzu, wenn die Menge des Produkts über 2 liegt. Sie können dies an Ihre Anforderungen anpassen, indem Sie die Variable $discount_percentage ändern, um den gewünschten Rabatt festzulegen, und die Variable $targeted_qty , um die Menge darüber festzulegen Sie möchten den Rabatt anwenden.

offer discounts based on quantity in WooCommerce - Updated Cart contents

Sie können jetzt einen reduzierten Preis sehen, wenn Sie 2 oder mehr Mengen desselben Produkts in Ihren Warenkorb legen.

Wir haben im obigen Code vier Haupthaken verwendet:

woocommerce_add_cart_item_data : Dieser Filter-Hook wird verwendet, um den Inhalt / die Metadaten des Warenkorbs zu ändern.
woocommerce_cart_item_price : Dieser Filter-Hook wird verwendet, um die Art und Weise zu ändern, wie Preise im Warenkorb angezeigt werden.
woocommerce_cart_item_name : Dieser Filter-Hook kann verwendet werden, um den Produktnamen im Warenkorb zu ändern. In unserem Beispiel verwenden wir es, um den Rabattprozentsatz an den Produktnamen anzuhängen.
woocommerce_before_calculate_totals : Dieser Aktionshaken wird verwendet, um den Produktpreis im Warenkorb zu überschreiben.

So bieten Sie Mengenrabatte nur für Artikel an, die NICHT im Angebot sind:

Wenn Sie dies nur auf die Produkte beschränken möchten, die nicht zum Verkauf stehen, müssen Sie einfach das obige Code-Snippet bearbeiten, um eine Bedingung innerhalb der Funktion hinzuzufügen, die dem Hook woocommerce_add_cart_item_data hinzugefügt wird:

 add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 );
function ts_add_default_price_as_custom( $cart_item_data, $product_id, $variation_id ){
    $product_id = $variation_id > 0 ? $variation_id : $product_id;

    ## ----- STELLEN SIE HIER DEN RABATT EIN ----- ##
    $rabattprozentsatz = 5; // Rabatt (5%)

    // Das WC_Product-Objekt
    $product = wc_get_product($product_id);

    // BEDINGUNG HIER HINZUFÜGEN, um NUR RABATT für NICHT im Angebot befindliche Produkte anzubieten
    if( ! $product->is_on_sale() ){
        $price = (float) $product->get_price();

        // Legen Sie den Standardbasispreis des Produkts als benutzerdefinierte Warenkorbartikeldaten fest
        $cart_item_data['base_price'] = $preis;

        // Legen Sie den ermäßigten Produktpreis als benutzerdefinierte Warenkorbartikeldaten fest
        $cart_item_data['new_price'] = $price * (100 - $discount_percentage) / 100;

        // Legen Sie den Prozentsatz als benutzerdefinierte Warenkorbartikeldaten fest
        $cart_item_data['percentage'] = $discount_percentage;
    }

    $cart_item_data zurückgeben;
}

// Den Originalpreis des Produkts anzeigen
add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 );
Funktion ts_display_cart_items_default_price( $product_price, $cart_item, $cart_item_key ){
    if( isset($cart_item['base_price']) ) {
        $product = $cart_item['data'];
        $product_price = wc_price( wc_get_price_to_display( $product, array( 'price' => $cart_item['base_price'] ) ) );
    }
    geben Sie $product_price zurück;
}

// Den Produktnamen mit dem Rabattprozentsatz anzeigen
add_filter( 'woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3 );
Funktion ts_add_percentage_to_item_name( $product_name, $cart_item, $cart_item_key ){
    if( isset($cart_item['prozentsatz']) && isset($cart_item['base_price']) ) {
        if( $cart_item['data']->get_price() != $cart_item['base_price'] )
            $product_name .= ' <em>(' . $cart_item['percentage'] . '% Rabatt)</em>';
    }
    $Produktname zurückgeben;
}

add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 );
Funktion ts_custom_discounted_cart_item_price( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        Rückkehr;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        Rückkehr;

    ## ----- HIER DIE MENGE EINSTELLEN ----- ##
    $Zielmenge = 2; // Gezielte Menge

    // Einkaufswagenartikel durchlaufen
    foreach ( $cart->get_cart() als $cart_item ) {

        // Für eine Artikelmenge von 2 oder mehr
        if( $cart_item['quantity'] >= $targeted_qty && isset($cart_item['new_price']) ){

            // Ermäßigten Preis für Warenkorbartikel festlegen
            $cart_item['data']->set_price($cart_item['new_price']);
        }
    }
} 

Auf diese Weise können Sie mithilfe von Code-Snippets Mengenrabatte für Nicht-Sale-, Sale- oder alle Produkte anbieten, dh für das gesamte Geschäft, indem Sie die entsprechende Bedingung in der Funktion angeben, die dem Filter-Hook woocommerce_add_cart_item_data hinzugefügt wird .

So bieten Sie Mengenrabatte in WooCommerce mit Plugins an

Wenn Sie Ihren Website-Dateien kein Code-Snippet hinzufügen möchten, können Sie dies auch mit Plugins tun:

  1. Rabattregeln für WooCommerce : Dies ist ein kostenloses Plugin, mit dem Sie prozentuale Rabatte nicht nur basierend auf der Produktmenge hinzufügen können, sondern auch, wenn Ihre Kunden eine bestimmte Preisgrenze überschreiten. Sie können auch prozentuale Rabatte auf eine bestimmte Anzahl von Artikeln (nicht unbedingt auf dasselbe Produkt) hinzufügen. Mit der PRO-Version dieses Plugins können Sie kategorieweite Rabatte, BOGO-Angebote (Buy One Get One Free), einen Festpreisrabatt anstelle eines prozentualen Rabatts und mehr hinzufügen.
  2. Bedingte Rabatte für WooCommerce: Dies ist ein weiteres Plugin, das fast alle wichtigen Funktionen in seiner kostenlosen Version bietet – Sie können Rabatte basierend auf der Menge, der Anzahl der Artikel im Warenkorb, für bestimmte Kategorien, für bestimmte Produkte, für variable Funktionen (blaues Hemd, Größe M etc.), für bestimmte Shop-Rollen oder sogar bestimmte Kunden. Die PRO-Version verfügt über einige zusätzliche Funktionen, von denen eine das kostenlose Hinzufügen eines Produkts zum Warenkorb beim Kauf eines bestimmten Produkts ist.
  3. Smart Coupons: Abgesehen von Geschenkkarten, Shop-Guthaben, URL-Coupons und erweiterten Einschränkungen können Sie einen Coupon auch auf der Grundlage der Anzahl bestimmter Produkte im Warenkorb (Beispiel – 10 Hemden) und auch der Gesamtproduktmenge mehrerer Produkte im Warenkorb einschränken Warenkorb (Beispiel – 5 Hemden + 2 Hosen + 3 Gürtel).

Auf diese Weise können Sie entweder Code-Snippets oder Plugins verwenden, um Ihren Kunden Rabatte basierend auf der Produktmenge anzubieten.