Frage

Ich überlege, Kunden auf den Kauf jeweils eines Produktpakets zu beschränken.

Gibt es eine Möglichkeit, die „maximal zulässige Menge im Warenkorb“ für ein Bundle-Produkt festzulegen?

Ich möchte dies tun, ohne die einzelnen Produkte einzuschränken, sodass Kunden möglichst viele davon einzeln kaufen können.

Irgendwelche Ideen, ob dies möglich ist, wenn ja, wie setze ich das um?

War es hilfreich?

Lösung

Die Kernfunktion „Maximale Menge“ ist an Lagerartikel gebunden und funktioniert daher nicht mit Paketen (sie haben keinen eigenen Lagerbestand).

Man muss es selbst entwickeln.

Bei einfachen Produkten erfolgt der Check-in Mage_CatalogInventory_Model_Stock_Item::checkQuoteItemQty():

if ($this->getMaxSaleQty() && $qty > $this->getMaxSaleQty()) {
    $result->setHasError(true)
        ->setMessage(
            Mage::helper('cataloginventory')->__('The maximum quantity allowed for purchase is %s.', $this->getMaxSaleQty() * 1)
        )
        ->setErrorCode('qty_max')
        ->setQuoteMessage(Mage::helper('cataloginventory')->__('Some of the products cannot be ordered in requested quantity.'))
        ->setQuoteMessageIndex('qty');
    return $result;
}

Es ist aufgerufen Mage_CatalogInventory_Model_Observer::checkQuoteItemQty() und hier würde ich meine eigenen zusätzlichen Einschränkungen für Bundles hinzufügen.Entweder mit einer Neufassung oder mit einem zusätzlichen Beobachter für dasselbe Ereignis (sales_quote_item_qty_set_after):

  • Überprüfen Sie, ob es sich bei dem Artikel um ein Bundle handelt
  • Wenn ja, prüfen Sie, ob die Bundle-Menge > 1 ist, und fügen Sie in diesem Fall einen Fehler zum Anführungszeichen hinzu, genau wie im ursprünglichen Beobachter.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top