Bedingter progressiver prozentualer Rabatt basierend auf der Anzahl der Einkaufswagenartikel in Woocommerce

Lesezeit: 3 Minuten

Bedingter progressiver prozentualer Rabatt basierend auf der Anzahl der Einkaufswagenartikel
Kasper

Ich möchte einen bedingten progressiven Rabatt basierend auf der Anzahl der Artikel im Warenkorb haben. Nachdem Sie 2 Produkte in den Warenkorb gelegt haben, erhalten Sie einen Rabatt. Mehr Produkte, die Sie hinzufügen, und mehr Rabatt, den Sie erhalten.

Zum Beispiel:

  • 1 Produkt – voller Preis (kein Rabatt)
  • 2 Produkte – Vollpreis mit 5 % Rabatt auf den Gesamtpreis
  • 3 Produkte – Vollpreis mit 10 % Rabatt auf den Gesamtpreis
  • 4 Produkte – Vollpreis mit 15 % Rabatt auf den Gesamtpreis
  • Und so weiter …

Ich habe im Internet gesucht, ohne Erfolg. Bei der Suche nach Rabatten falle ich einfach auf die WooCommerce-Gutscheinfunktion oder ich erhalte einen alten falschen Code…

Irgendeine Idee? Wie kann ich es tun?

Ist es möglich?

Danke.

Bedingter progressiver prozentualer Rabatt basierend auf der Anzahl der Einkaufswagenartikel
LoicTheAztec

Aktualisierung – Oktober 2018 (Code verbessert)

Ja, es ist möglich, einen Trick anzuwenden, um dies zu erreichen. Normalerweise verwenden wir für Rabatte auf Warenkörbe WooCommerce-Coupons. Hier werden Coupons nicht angeeignet. Ich werde hier eine negative bedingte Gebühr verwenden, das wird ein Rabatt.

Die Berechnung:
— Die Anzahl der Artikel basiert auf der Menge pro Artikel und der Gesamtzahl der Artikel im Warenkorb
— Der Prozentsatz beträgt 0,05 (5 %) und wächst mit jedem weiteren Element (wie Sie gefragt haben).
— Wir verwenden die rabattierte Zwischensumme (um zu vermeiden, dass mehrere zusammenbrechende Rabatte durch Coupons hinzugefügt werden)

Der Code:

add_action( 'woocommerce_cart_calculate_fees', 'cart_progressive_discount', 50, 1 );
function cart_progressive_discount( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // For 1 item (quantity 1) we EXIT;
    if( $cart->get_cart_contents_count() == 1 )
        return;

    ## ------ Settings below ------- ##

    $percent = 5; // Percent rate: Progressive discount by steps of 5%
    $max_percentage = 50; // 50% (so for 10 items as 5 x 10 = 50)
    $discount_text = __( 'Quantity discount', 'woocommerce' ); // Discount Text

    ## ----- ----- ----- ----- ----- ##

    $cart_items_count = $cart->get_cart_contents_count();
    $cart_lines_total = $cart->get_subtotal() - $cart->get_discount_total();

    // Dynamic percentage calculation
    $percentage = $percent * ($cart_items_count - 1);

    // Progressive discount from 5% to 45% (Between 2 and 10 items)
    if( $percentage < $max_percentage ) {
        $discount_text .=  ' (' . $percentage . '%)';
        $discount = $cart_lines_total * $percentage / 100;
        $cart->add_fee( $discount_text, -$discount );
    }
    // Fixed discount at 50% (11 items and more)
    else {
        $discount_text .=  ' (' . $max_percentage . '%)';
        $discount = $cart_lines_total * $max_percentage / 100;
        $cart->add_fee( $discount_text, -$discount );
    }
}

Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs eingefügt. Getestet und funktioniert.

Bei Verwendung der FEE-API für Rabatte (eine negative Gebühr) werden immer Steuern erhoben.


Verweise:

  • Danke, es funktioniert einwandfrei! 🙂 Du hast meinen Tag gerettet.

    – Kaspar

    5. September 2016 um 20:42 Uhr

  • das funktioniert, aber woocommerce rät von negativen Gebühren ab. Eine Zeit lang hatten sie sie blockiert, aber zu viele Leute haben sich beschwert und zurückgekehrt: github.com/woocommerce/woocommerce/issues/13224

    – Fahrbahn

    30. August 2017 um 12:16 Uhr

  • @Lane Ich weiß trotzdem, danke… Im Moment funktioniert das gut und wird auch weiterhin funktionieren, da das WC-Entwicklerteam eine neue Methode/Klasse/Funktionalität für Rabatte (keine Coupons) hinzufügen wird.

    – LoicTheAztec

    30. August 2017 um 13:00 Uhr

948140cookie-checkBedingter progressiver prozentualer Rabatt basierend auf der Anzahl der Einkaufswagenartikel in Woocommerce

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy