Magento: Mehrere Preisregeln mit dem selben Coupon Code

24. Juli 2013 freesh Konfiguration, Modul Entwicklung Schlagwörter: , , 0 Comments

Ich stand schon mehrmals vor dem Problem, dass sich mehrere gleichzeitig benutzte Preisregeln nicht so verhielten wie es vom Kunden gewünscht war. Zum Beispiel möchte man wenn eine Preisregel mit 4% und eine mit 10% greift eigentlich das es dann 14% Rabatt gibt. Leider werden die Rabatte nach einander auf den Betrag angerechnet was dazu führt das weniger als 14% Rabatt gewährt wird, weil z.B. erst 10% und von diesem Ergebnis dann noch mal 4% abgezogen werden. Dies ließ sich eigentlich nur dadurch beheben, dass ich eine 3. Preisregel definierte die die Bezahlmethode und den Couponcode mit ein schließt. Ein Stolperstein bei diese Sache ist leider, dass es jeden Code nur einmal geben darf. Dies habe ich wie folgt gelöst. Leider nicht die schönste Art, aber etwas besseres ist mir bisher noch nicht ein gefallen. Wenn jemand Vorschläge hat, immer her damit. 🙂

 Datenbank anpassen

Dazu müssen wir dann leider noch in der Datenbank rum pfuschen, da das Feld „code“ auch dort als unique markiert ist. Also in die Tabelle „salesrule_coupon“ gehen und dort in den Indizes den Eintrag für „UNQ_SALESRULE_COUPON_CODE“ löschen.

Nun können wir eine weitere Warenkorb-Regel anlegen, welche zum einen den bereits in der anderen Regel verwendeten 10% Code benutzt und gleichzeitig auf die Bezahlmethode mit 4% Rabatt reagiert. Und direkt einen Rabatt von 14% einstellen. Dazu setzen wir noch „Regelausführung nach dieser Regel stoppen“ auf ja. An dieser Stelle müssen wir dann auch noch dafür sorgen dass, die anderen Preisregeln eine höhere Priorität haben als diese Regel, damit diese erst geprüft werden wenn diese Regel hier keinen Erfolg hatte.

Could not resolve host: urls.api.twitter.com