Membatasi pelanggan hingga maksimum (beberapa nomor) pembelian untuk produk tertentu di Magento

8

Apakah ada modul bagus di luar sana yang bisa menangani ini? Atau apakah ini acara adat / pengamat yang perlu ditulis?

Berikut adalah gambar di situs non magento yang menunjukkan secara spesifik apa yang saya cari.

masukkan deskripsi gambar di sini

Magento 2.2.3 EE

Ini perlu bekerja dengan modul Magento commerce b2b. Jadi semua orang dalam grup / perusahaan akan terbatas. Jika ada 4 orang dalam grup tetapi satu orang membeli jumlah maksimum maka 3 orang lainnya tidak akan diizinkan untuk membeli. Ini membuatnya semakin kompleks dan sulit logika.

getData
sumber

Jawaban:

2

Anda perlu menulis modul khusus Anda dan Anda harus menggunakan acara ini ( sales_quote_item_qty_set_after ).

dalam hal ini Anda perlu - memeriksa pengguna yang tercatat saat ini dan mendapatkan semua item yang dibeli pelanggan selama bulan berjalan. - periksa QTY produk Anda, dan jika qty dilebihi dari qty maksimum, Anda perlu membuang expection

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

Anda juga dapat menambahkan pesan ke item nyaf

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

dari mana $ quoteItem berasal dari kode ini

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

Saya punya sebelumlogika serupa dan ini bekerja untuk saya

WISAM HAKIM
sumber
Terima kasih atas tanggapannya, saya lupa menyebutkan ini perlu bekerja dengan modul b2b perdagangan Magento. Jadi semua orang dalam grup / perusahaan akan terbatas. Jika ada 4 orang dalam grup tetapi satu orang membeli jumlah maksimum maka 3 orang lainnya tidak akan diizinkan untuk membeli. Ini membuatnya semakin kompleks dan sulit logika.
Tambahan
Saya percaya bahwa Anda dapat mengelolanya dalam acara ini, tetapi Anda perlu memeriksa perusahaan pelanggan kemudian Anda mendapatkan semua item qty untuk semua 4 orang (seperti dalam contoh Anda)
WISAM HAKIM
Setiap pembaruan @WISAMHAKIM, saya sangat tertarik.
getData
hello @getData, apakah Anda mencoba logika di komentar kedua?
WISAM HAKIM
@ WISAMHAKIM apa yang harus menjadi file tempat logika di atas ditempatkan?
getData