Quantità del carrello limite di prodotto in bundle
-
29-09-2020 - |
Domanda
Sto guardando a limitare i clienti all'acquisto di 1 prodotto Bundle alla volta.
C'è un modo per impostare "Massima Qtà ammessi nel carrello della spesa" per un prodotto Bundle.
Voglio farlo senza limitare i singoli prodotti, quindi i clienti possono acquistare come molti di loro separatamente.
Qualche idea se è possibile, se sì, come posso implementare questo?
Soluzione
La caratteristica del nucleo "Qtà massima" è legata agli oggetti magazzini, quindi non funziona con i bundle (non hanno il proprio stock).
Devi svilupparlo da solo.
Per i prodotti semplici, il check avviene 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;
}
.
È chiamato in Mage_CatalogInventory_Model_Observer::checkQuoteItemQty()
ed è qui che aggiungerei le mie restrizioni aggiuntive per i bundle.Con una riscrittura o con un osservatore aggiuntivo per lo stesso evento (sales_quote_item_qty_set_after
):
- .
- Verifica se l'elemento è un pacchetto
- In caso contrario, controlla se Qty Bundle è> 1 e in questo caso Aggiungi errore per citare proprio come nell'osservatore originale.