Restreindre les clients au maximum (un certain nombre) d'achats pour un certain produit dans Magento

8

Existe-t-il de bons modules qui peuvent gérer cela? Ou serait-ce un événement / observateur personnalisé qui doit être écrit?

Voici une image sur un site non magento qui montre spécifiquement ce que je recherche.

entrez la description de l'image ici

Magento 2.2.3 EE

Cela doit fonctionner avec le module b2b de Magento commerce. Ainsi, tout le monde dans un groupe / entreprise serait limité. S'il y avait 4 personnes dans le groupe mais qu'une personne a acheté le montant maximum, les 3 autres ne seraient pas autorisées à en acheter. Cela rend la logique de plus en plus complexe et difficile.

getData
la source

Réponses:

2

Vous devez écrire votre module personnalisé et vous devez utiliser cet événement ( sales_quote_item_qty_set_after ).

dans ce cas, vous devez - vérifier l'utilisateur connecté actuel et obtenir tous les articles que le client a achetés au cours du mois en cours. - vérifiez la QUANTITÉ de votre produit, et si la quantité est incrustée la quantité maximale, vous devez jeter expection

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

vous pouvez également ajouter un message à l'élément lui-même

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

où le $ quoteItem provenant de ce code

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

J'avais avant une logique similaire et ce travail pour moi

WISAM HAKIM
la source
Merci pour la réponse, j'ai oublié de mentionner que cela doit fonctionner avec le module Magento commerce b2b. Ainsi, tout le monde dans un groupe / entreprise serait limité. S'il y avait 4 personnes dans le groupe mais qu'une personne a acheté le montant maximum, les 3 autres ne seraient pas autorisées à en acheter. Cela rend la logique de plus en plus complexe et difficile.
Supplément le
Je crois que vous pouvez le gérer dans cet événement, mais vous devez vérifier la société cliente, puis vous obtenez la quantité de tous les articles pour les 4 personnes (comme dans votre exemple)
WISAM HAKIM
D'autres mises à jour @WISAMHAKIM, je suis très intéressé.
getData
bonjour @getData, avez-vous essayé la logique dans le deuxième commentaire?
WISAM HAKIM
@WISAMHAKIM Quels devraient être les fichiers dans lesquels la logique ci-dessus est placée?
getData