Restringindo os clientes ao máximo de (algum número) compras para um determinado produto no Magento

8

Existe algum bom módulo por aí que possa lidar com isso? Ou seria um evento / observador personalizado que precisa ser gravado?

Aqui está uma imagem em um site não magento que mostra especificamente o que estou procurando.

insira a descrição da imagem aqui

Magento 2.2.3 EE

Isso precisa funcionar com o módulo Magento commerce b2b. Portanto, todos em um grupo / empresa seriam limitados. Se houvesse 4 pessoas no grupo, mas uma pessoa comprasse o valor máximo, os outros 3 não teriam permissão para comprar nenhum. Isso torna a lógica cada vez mais complexa e difícil.

adquirir dados
fonte

Respostas:

2

Você precisa escrever seu módulo personalizado e precisa usar este evento ( sales_quote_item_qty_set_after ).

nesse caso, é necessário - verificar o usuário logado atual e obter todos os itens adquiridos pelo cliente durante o mês atual. - verifique o QTY do seu produto e, se o qty for excedido, o qty máximo, você precisará lançar a expection

throw new \Magento\Framework\Exception\CouldNotSaveException( __('The most you may purchase is %1.',$_qty));

você também pode adicionar uma mensagem ao item itslef

$quoteItem->getQuote()->addErrorInfo(
        'stock',
        'cataloginventory',
        \Magento\CatalogInventory\Helper\Data::ERROR_QTY,
        __('Please correct the quantity for some products.')
        );

onde o $ quoteItem proveniente desse código

$quoteItem = $observer->getEvent()->getItem();

Eu tinha antes uma similarlogic e este trabalho para mim

WISAM HAKIM
fonte
Obrigado pela resposta, esqueci de mencionar que isso precisa funcionar com o módulo Magento commerce b2b. Portanto, todos em um grupo / empresa seriam limitados. Se houvesse 4 pessoas no grupo, mas uma pessoa comprasse o valor máximo, os outros 3 não teriam permissão para comprar nenhum. Isso torna a lógica cada vez mais complexa e difícil.
Suplemento
Eu acredito que você pode controlá-lo neste evento, mas você precisa fazer verificar a empresa cliente, então você tem todos os itens qty para todos os 4 pessoas (como no seu exemplo)
Wisam HAKIM
Mais atualizações @WISAMHAKIM, estou muito interessado.
getData
ola @getData, você tentou a lógica no segundo comentário?
WISAM HAKIM
@WISAMHAKIM quais devem ser os arquivos nos quais a lógica acima é colocada?
getData