Ограничение клиентов максимумом (некоторым количеством) покупок для определенного продукта в Magento

8

Есть ли хорошие модули, которые могут справиться с этим? Или это будет пользовательское событие / наблюдатель, который нужно написать?

Вот изображение на немагенто-сайте, которое показывает, что именно я ищу.

введите описание изображения здесь

Magento 2.2.3 EE

Это необходимо для работы с модулем Magento Commerce b2b. Таким образом, все в группе / компании будут ограничены. Если в группе было 4 человека, но один человек купил максимальную сумму, то другим 3 не будет разрешено их покупать. Это делает его все более сложной и сложной логикой.

получить данные
источник

Ответы:

2

Вам нужно написать свой пользовательский модуль и использовать это событие ( sales_quote_item_qty_set_after ).

в этом случае вам необходимо - проверить текущего зарегистрированного пользователя и получить все товары, которые клиент приобрел в течение текущего месяца. - проверьте кол-во вашего товара, и если кол-во превысило максимальное кол-во, вам нужно бросить ожидание

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

Вы также можете добавить сообщение к элементу

$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
привет @getData, вы пробовали логику во втором комментарии?
WISAM HAKIM
@ WISAMHAKIM, в какие файлы должна быть помещена вышеуказанная логика?
getData