Limitare i clienti al massimo degli (alcuni numeri) acquisti per un determinato prodotto in Magento


8

Esistono dei buoni moduli là fuori in grado di gestirlo? O sarebbe un evento / osservatore personalizzato che deve essere scritto?

Ecco un'immagine su un sito non magento che mostra specificamente ciò che sto cercando.

inserisci qui la descrizione dell'immagine

Magento 2.2.3 EE

Questo deve funzionare con il modulo b2b di Magento commerce. Quindi tutti in un gruppo / azienda sarebbero limitati. Se nel gruppo c'erano 4 persone ma una persona ha acquistato l'importo massimo, le altre 3 non sarebbero autorizzate ad acquistarne. Ciò rende la logica sempre più complessa e difficile.

Risposte:


2

Devi scrivere il tuo modulo personalizzato e devi utilizzare questo evento ( sales_quote_item_qty_set_after ).

in questo caso è necessario: controllare l'utente attualmente registrato e ottenere tutti gli articoli acquistati dal cliente durante il mese corrente. - controlla la QUANTITÀ del tuo prodotto e se alla quantità è inclusa la quantità massima, devi lanciare l'aspettativa

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

puoi anche aggiungere un messaggio all'elemento relativo

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

dove $ quoteItem proviene da questo codice

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

Avevo prima un similelogico e questo lavoro per me


Grazie per la risposta, ho dimenticato di menzionare che è necessario lavorare con il modulo b2b di Magento commerce. Quindi tutti in un gruppo / azienda sarebbero limitati. Se nel gruppo c'erano 4 persone ma una persona ha acquistato l'importo massimo, le altre 3 non sarebbero autorizzate ad acquistarne. Ciò rende la logica sempre più complessa e difficile.
Supplemento

Credo che puoi gestirlo in questo evento, ma devi controllare la società del cliente, quindi otterrai tutti gli articoli qty per tutte e 4 le persone (come nel tuo esempio)
WISAM HAKIM

Altri aggiornamenti @WISAMHAKIM, sono molto interessato.
getData

ciao @getData, hai provato la logica nel secondo commento?
WISAM HAKIM,

@WISAMHAKIM quali dovrebbero essere i file in cui è collocata la logica sopra?
getData
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.