Mindermengenzuschlag in Magento

Wer einen Magento-Onlineshop erstellen lässt, bekommt die Möglichkeit, einen Mindermengenzuschlag einzustellen, leider nicht mitgeliefert. Das heißt: Einen Aufschlag auf den Warenkorbpreis, wenn dieser einen bestimmten Wert unterschreitet.

Wohl aber lassen sich Rabatte auf Warenkörbe für individuelle Bedingungen einstellen. Da der Mindermengenzuschlag einem negativen Rabatt entspricht, kann man diesen durch die Eingabe eines negativen Betrages im Rahmen einer Preisregel realisieren. Hierzu muss man die Eingabe negativer Beträge für Rabatte jedoch an mehreren Stellen erlauben (Magento-Programmierung auf der Basis von Version 1.7.0.2):

Änderung 1: Datei \app\code\local\Mage\Adminhtml\Block\Promo\Quote\Edit\Tab\Actions.php:
$fieldset->addField('discount_amount', 'text', array(
'name' => 'discount_amount',
'required' => true,
'class' => 'validate-number',
'label' => Mage::helper('salesrule')->__('Discount Amount'),
));

Änderung 2: Datei \app\code\local\Mage\Rule\Model\Abstract.php:
Auskommentieren:
if ($this->hasDiscountAmount()) {
if ((int)$this->getDiscountAmount() < 0) {
Mage::throwException(Mage::helper('rule')->__('Invalid discount amount.'));
}}

Änderung 3: Datei \app\code\local\Mage\SalesRule\Model\Validator.php:
">0" entfernen:
if ($cartRules[$rule->getId()]) {

Änderung 4: Datei \app\code\local\Mage\SalesRule\Model\Quote\Discount.php:
Umbenennen:
$title = Mage::helper('sales')->__('Zu-/Abschlag');

Fertig!

... zurück zum Blog