Rabatt soll andere Rabatte überschreiben

Aktuell habe ich in einem Shop (Oxid 6.x) verscheidene Rabatte:
2% bei Anmeldung Newsletter
3% für angemeldete Benutzer und
5% für Aktionsartikel.
Zusammen kann der Kunde also 8% Rabatt bekommen (was auch tadellos funktioniert). Das wird auch auf die Staffelpreise korrekt angerechnet.
Jetzt soll für eine Aktion ein Artikel generell 10% Rabatt bekommen (egal wie der Status vom Benutzer bez. Newsletter Anmeldung ist).
Ich stehe allerdings völlig auf dem Schlauch, wie ich das machen soll. Kann ich irgendwo einen maximal möglichen Rabatt einstellen (wäre ja generell nicht blöd). Kann ich sagen "Dieser Artikel/Rabatt überschreibt alle anderen Rabatte?

Jemand eine Idee?

So, jetzt habe ich gedacht ich bin clever, kopiere den Artikel, schalte “alle negativen Nachlässe ignorienen” ein, setze einen UVP und habe einen schönen Workaround, aber nöööö, hier werden dann auch die Staffelpreise entfernt!

Andere Idee? Irgendjemand?

Mir fällt da auch nur ein ganz weiter Umweg ein: eine neue Kategorie “Sale”, die einen 10% Rabatt bekommt, während alle anderen Rabatte auf die Kategorien außer Sale eingeschränkt werden.
Aber dann müsste jeder sale Artikel aus seiner ursprünglichen Kategorie raus, glaube ich, damit die Rabatte sich nicht addieren. Das müsste man testen und ggf noch eine zusätzliche versteckte Kategorie für regulär rabattierbare Artikel erstellen.

Kleines Modul erstellen und über oxDiscountList::getArticleDiscounts -> _getList -> _getFilterSelect den Discount im Falle einer bestimmten Artikel-ID auf einen Wert begrenzen.

Nachtrag: Oder über oxprice::calculateDiscount()

1 Like

Das ist eine Idee, werde ich mal nachverfolgen. Ich bin ja gerade sowieso dabei, das Modul “Artikel dazu berechnen” zu schreiben, da kann das ja eigentlich mit dazu :slight_smile:

Edit: Ach so, meine Zwischenlösung für diese Aktion war übrigens erst einmal alle anderen Rabatte auszuschalten und den 10% Sonderrabatt auf die entsprechenden Artikel zu legen.

Ja, das aber alles andere als komfortabel. Ich hatte das auf obige Weise mal umgesetzt. Man kann mit einer Checkbox bestimmen, dass nur ein Rabatt alleine gilt. Ist nicht schwer.

Das ist nicht nur nicht komfortabel, das ist grauenhaft :-/

Ich schaue mir das die Tage mal an (Deine Tipps sind ja schon mal gut) und werde was programmieren.
Hätte ja auch sein können, das es so schon geht und ich habe nur nicht gefunden wie.

Dann hättest Du von vt schon den Hinweis erhalten. Hier muss man leider etwas nachhelfen.