Beschränkung der Kunden auf maximal (einige) Käufe für ein bestimmtes Produkt in Magento


8

Gibt es gute Module, die damit umgehen können? Oder wäre dies ein benutzerdefiniertes Ereignis / Beobachter, das geschrieben werden muss?

Hier ist ein Bild auf einer Nicht-Magento-Site, das genau zeigt, wonach ich suche.

Geben Sie hier die Bildbeschreibung ein

Magento 2.2.3 EE

Dies muss mit dem Magento Commerce B2B-Modul funktionieren. Jeder in einer Gruppe / Firma wäre also begrenzt. Wenn 4 Personen in der Gruppe wären, aber eine Person den Höchstbetrag gekauft hätte, könnten die anderen 3 keine kaufen. Dies macht die Logik immer komplexer und schwieriger.

Antworten:


2

Sie müssen Ihr benutzerdefiniertes Modul schreiben und dieses Ereignis verwenden ( sales_quote_item_qty_set_after ).

In diesem Fall müssen Sie - den aktuell angemeldeten Benutzer überprüfen und alle Artikel abrufen, die der Kunde im aktuellen Monat gekauft hat. - Überprüfen Sie die Menge Ihres Produkts, und wenn die Menge die maximale Menge überschreitet, müssen Sie die Erwartung werfen

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

Sie können dem Element auch eine Nachricht hinzufügen

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

wo das $ quoteItem von diesem Code kommt

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

Ich hatte vorher eine ähnliche Logik und diese Arbeit für mich


Vielen Dank für die Antwort. Ich habe vergessen zu erwähnen, dass dies für das Magento Commerce B2B-Modul erforderlich ist. Jeder in einer Gruppe / Firma wäre also begrenzt. Wenn 4 Personen in der Gruppe wären, aber eine Person den Höchstbetrag gekauft hätte, könnten die anderen 3 keine kaufen. Dies macht die Logik immer komplexer und schwieriger.
— Ergänzung

Ich glaube, dass Sie es in diesem Fall verwalten können, aber Sie müssen die Kundenfirma überprüfen, dann erhalten Sie alle Artikel Menge für alle 4 Personen (wie in Ihrem Beispiel)
— WISAM HAKIM

Weitere Updates @WISAMHAKIM, ich bin sehr interessiert.
— getData

Hallo @getData, hast du die Logik im zweiten Kommentar ausprobiert?
— WISAM HAKIM

@WISAMHAKIM In welche Dateien sollte die obige Logik eingefügt werden?
— getData
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.