Pergunta

Eu estou olhando para limitar os clientes para a compra de 1 pacote de produto de cada vez.

Há uma maneira de definir "Máxima Qtd Permitido no Carrinho de Compras" um pacote do produto.

Eu quero fazer isso sem limitar os produtos individuais, para que os clientes possam comprar, como muitos deles separadamente.

Qualquer idéia, se isso é possível, se assim como eu implementar isso?

Foi útil?

Solução

A principal característica de "Máxima qtd" está amarrado a itens de estoque, para não trabalhar com pacotes (eles não têm o seu próprio estoque).

Você tem que desenvolver o seu próprio.

Para produtos simples, a seleção acontece em 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;
}

Ele é chamado no Mage_CatalogInventory_Model_Observer::checkQuoteItemQty() e este é o lugar onde eu gostaria de adicionar a minha própria restrições adicionais para pacotes.Com uma reconfiguração ou com um adicional de observador para o mesmo evento (sales_quote_item_qty_set_after):

  • verifique se o item é bundle
  • se assim for, verifique se o pacote qtd é > 1 e, neste caso, erro adicionar a cotação, assim como no original observador.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top