Die besondere Rabattregel

Hallo,

ich muss ‘unbedingt’ die Rabattregeln abändern.

Ab einer bestellten Menge von 2 Einheiten ist die Rabatt-Regel so erstellt, dass es für das Produkt einen absoluten Rabatt von 1,50 EUR gibt.

Die Besonderheit liegt allerdings darin, nur alle weiteren Einheiten den Rabatt bekommen sollen und nicht die erste Einheit - Beispiel:

1* X bestellt = Rabatt: 0 EUR
2* X bestellt = Rabatt: 1,50 EUR ( 1 * 1,5 )
3* X bestellt = Rabatt: 3 EUR ( 2 * 1,5 )
4* X bestellt = Rabatt: 4,50 EUR (3 * 1,5 )

Momententan berechnet OXID jedoch 0 / 1,5 / 3 / 4,5 / 6 EUR

Erschwerend kommt noch hinzu, dass mehrere Produkte in einer Regel stecken.
Die Bestellung von 1* X
1* Y
1* Z
wird genau so rabattiert, wie der Kauf von 3* X, also 3 EUR.

Hat jemand eine Idee, wie man das am besten realisiert?

Danke
Thoni

ich glaube, sowas nennt man Mengenrabatt bzw Stafelpreise, es gibt auch so eine Funktion in OXID

Das Problem dabei ist, dass der Staffelpreis nur für jeweils ein Produkt gilt, meine ich.

Es sollen aber diverse Produkte mit einer ‘Regel’ berücksichtigt werden.

So einfach ist es manchmal - man muss nur die Stelle finden, an der man ‘angreift’.

class changediscounts extends changediscounts_parent
{

    public function applyBasketDiscounts( oxPrice $oPrice, $aDiscounts, $dAmount = 1 )
    {
		$dAmount--;
		return parent::applyBasketDiscounts( $oPrice, $aDiscounts, $dAmount );
	}

}
oxdiscountlist => changediscounts