Im Standard schaut der im Magento mögliche Mindestbestellwert auf den “Gesamtbetrag” bzw. die Zwischensumme inkl. Gutscheinrabatt. Ist also definiert, dass erst ab 25 Euro bestellt werden kann und ein Gutscheincode lässt die Summe auf 24 Euro fallen, kann nicht mehr eingekauft werden, da die Mindestbestellsumme unterschritten wurde.
Dies ist kann ärgerlich sein.
Es gibt aber einen Weg, um Magento mitzuteilen, dass die Zwischensumme OHNE Rabatt für den Mindestbestellwert relevant sein soll.
Hierzu öffnet man die Address.php im Ordner app/code/core/Mage/Sales/Model/Quote (man kann sie nun auch wieder ins local Verzeichnis kopieren, damit Sie nicht überschrieben wird) und sucht nach
$amount = Mage::getStoreConfig('sales/minimum_order/amount', $storeId); if ($this->getBaseSubtotalWithDiscount() < $amount) {
return false;
Dies ersetzt man dann durch
$amount = Mage::getStoreConfig('sales/minimum_order/amount', $storeId); $zeroamount = 0; if ($this->getBaseSubtotalWithDiscount() == $zeroamount) { return true; } elseif ($this->getBaseSubtotalWithDiscount() < $amount) { return false;
Anschließend wird nicht mehr die Zwischensumme inkl. Rabatt sondern exkl. Rabatt für die Mindestbestellsumme genommen.
Genutzt in Magento Version 1.5.1.0 Kommentare? Ergänzungen? Hinweise? Gerne!
Hallo,
ich denke es ist besser wenn du, statt die Datei nach code/local/Mage zu kopieren einen Rewrite machst. So implementierst du nur die gewünschte Methode neu und kopierst nicht die ganze “Class”.
Das macht die Wartung, gerade bei einem Upgrade, doch deutlich einfacher 🙂
Liebe Grüße
Tobi
Gutscheincode mit Umgehung des Mindestbestellwertes.
Danke für den Beitrag – auf diese Weise kann ich die Grundlegende Einstellung für den ganzen Shop ändern.
Ich möchte aber, dass nur für eine spezielle Gutschein-Liste der Mindestbestellwert quasi deaktiviert wird.
Hintergrund: In einer Kooperation verteilen wir Gutscheine an Kunden, die einen Bündelartikel kostenlos bei uns bestellen können. Die Kosten übernimmt der Vertragspartner. Der Kunde gibt also den Gutschein ein und die Kosten für Ware und Versand gehen auf 0.-€. Kunde erhält nun die Meldung “Sie haben den Mindestbestellwert noch nicht erreicht”.
Ich möchte aber den Mindestbestellwert nicht generell umgehen, sondern nur für diese spezielle Warenkorb-Preisregel-Gutscheinliste.
Dies ist eine gute Frage. Mit der o.g. Anpassung wird dies wohl nicht so einfach funktionieren. Man müsste ja Warenkorbregeln bestimmen können bei denen dies erlaubt ist und bei denen dies nicht erlaubt ist. Hierzu bieten sich grds. Attribute an. Hier fallen mir ad hoc die Regel ID ein, die man verwenden könnte was aber sehr unflexibel wäre, da man für jede neue Regel, die man auch noch berücksichtigen muss, den Code anpassen müsste. Alternativ könnte man vielleicht auch das Attribut “Piorität” verwenden. Wenn man z.B. sagt, dass nur Warenkorb Preisregeln am Mindestbestellwert vorbeikommen, die die Priorität 1234 haben und alle anderen nicht.
So oder so müsste man hierzu eine neue Logik entwickeln, um das darzustellen. Bei Bedarf gerne melden – einer unserer Entwickler findet hier sicherlich eine passende Lösung.