Magentoで特定の製品の購入を(一部)の最大数に制限する


8

これを処理できる優れたモジュールはありますか?または、これは記述する必要があるカスタムイベント/オブザーバーでしょうか?

以下は、私が探しているものを具体的に示した非magentoサイトの画像です。

ここに画像の説明を入力してください

Magento 2.2.3 EE

これはMagento commerce b2bモジュールで動作する必要があります。したがって、グループ/会社の全員が制限されます。グループに4人いましたが、1人が最大額を購入した場合、他の3人は何も購入できません。これにより、ロジックはますます複雑で困難になります。

回答:


2

カスタムモジュールを作成する必要があり、このイベント(sales_quote_item_qty_set_after)を使用する必要があります。

このイベントでは、次のことを行う必要があります-現在ログインしているユーザーを確認し、顧客が今月中に購入したすべてのアイテムを取得します。-製品の数量を確認します。数量が最大数量を超えている場合は、予想を投げる必要があります

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

アイテムitslefにメッセージを追加することもできます

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

このコードからの$ quoteItem

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

私はsimilarlogicの前にこの仕事をしていた


回答をありがとう、私はこれがMagento commerce b2bモジュールで機能する必要があることを忘れていました。したがって、グループ/会社の全員が制限されます。グループに4人いましたが、1人が最大額を購入した場合、他の3人は何も購入できません。これにより、ロジックはますます複雑で困難になります。
補足

私はあなたがこのイベントでそれを管理できると信じています、しかしあなたは顧客会社をチェックする必要があるそしてあなたはあなたの4人すべてのためにすべてのアイテム数量を得ます(あなたの例のように)
WISAM HAKIM

これ以上の更新@WISAMHAKIM、私は非常に興味があります。
getData 2018

@getData様、2番目のコメントのロジックを試してみましたか?
WISAM HAKIM

@WISAMHAKIM上記のロジックが配置されるファイルは何ですか?
getData 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.