限制客户在Magento中购买某种产品的最大数量(一定数量)


8

有没有好的模块可以解决这个问题?还是这是需要编写的自定义事件/观察者?

这是一个非magento网站上的图像,专门显示了我在寻找什么。

在此处输入图片说明

Magento 2.2.3 EE

这需要与Magento Commerce b2b模块一起使用。因此,组/公司中的每个人都会受到限制。如果该组中有4个人,但一个人购买了最高金额,则其他3个人将被禁止购买任何商品。这使其逻辑变得越来越复杂和困难。

Answers:


2

您需要编写自定义模块,并且必须使用此事件(sales_quote_item_qty_set_after)。

在这种情况下,您需要-检查当前登录的用户,并获取客户在当月购买的所有物品。-检查产品的数量,如果数量超出最大数量,则需要抛出期望值

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

您还可以将消息添加到项目itlef

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

其中$ quoteItem来自此代码

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

我之前有过类似的逻辑,这项工作对我来说


感谢您的答复,我忘了提及需要与Magento Commerce b2b模块一起使用的情况。因此,组/公司中的每个人都会受到限制。如果该组中有4个人,但一个人购买了最高金额,则其他3个人将被禁止购买任何商品。这使其逻辑变得越来越复杂和困难。
补充

我相信您可以在此事件中进行管理,但您需要检查客户公司,然后获取所有4个人的所有数量(如您的示例)
WISAM HAKIM

@WISAMHAKIM有更多更新,我非常感兴趣。
getData '18

您好@getData,您是否尝试了第二条注释中的逻辑?
WISAM HAKIM '18

@WISAMHAKIM上面的逻辑应该放在什么文件中?
getData
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.