Restringir a los clientes a un máximo de (cierto número) de compras para un determinado producto en Magento

8

¿Hay algún buen módulo por ahí que pueda manejar esto? ¿O sería un evento / observador personalizado que necesita ser escrito?

Aquí hay una imagen en un sitio que no es de Magento que muestra específicamente lo que estoy buscando.

ingrese la descripción de la imagen aquí

Magento 2.2.3 EE

Esto debe funcionar con el módulo Magento commerce b2b. Por lo tanto, todos en un grupo / empresa serían limitados. Si había 4 personas en el grupo pero una persona compraba la cantidad máxima, a las otras 3 no se les permitiría comprar ninguna. Esto hace que la lógica sea cada vez más compleja y difícil.

obtener datos
fuente

Respuestas:

2

Necesita escribir su módulo personalizado y debe usar este evento ( sales_quote_item_qty_set_after ).

en este caso, debe verificar el usuario registrado actual y obtener todos los artículos que el cliente compró durante el mes actual. - verifique la CANTIDAD de su producto, y si la cantidad excede la cantidad máxima, debe lanzar la expulsión

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

también puede agregar un mensaje al elemento itslef

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

donde el $ quoteItem viene de este código

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

Tuve antes una lógica similar y este trabajo para mí

WISAM HAKIM
fuente
Gracias por la respuesta, olvidé mencionar que esto debe funcionar con el módulo b2b de Magento commerce. Por lo tanto, todos en un grupo / empresa serían limitados. Si había 4 personas en el grupo pero una persona compraba la cantidad máxima, a las otras 3 no se les permitiría comprar ninguna. Esto hace que la lógica sea cada vez más compleja y difícil.
Suplemento
Creo que puede administrarlo en este evento, pero debe verificar la compañía del cliente y luego obtener la cantidad de artículos para las 4 personas (como en su ejemplo)
WISAM HAKIM
Más actualizaciones @WISAMHAKIM, estoy muy interesado.
getData
hola @getData, ¿intentaste la lógica en el segundo comentario?
WISAM HAKIM
@WISAMHAKIM ¿cuáles deberían ser los archivos en los que se coloca la lógica anterior?
getData