Salable Quantity menunjukkan nol pada kotak produk magento 2?


14

Sebenarnya dalam kasus saya Kuantitas yang Dijual menunjukkan nol di dalam kisi produk Magento 2.3 .

Karena masalah ini, produk tidak ditampilkan di frontend. Jika ada yang tahu, tolong beri tahu saya.

Untuk pengindeksan ulang ini juga dilakukan tetapi Jumlah yang Masih Dijual menunjukkan nol (0).

Tambahkan dan perbarui Quantity yang terprogram tetapi Quantity yang Dapat Ditagih menunjukkan nol .


mencoba untuk mengijinkan stok habis pesanan dan memeriksa apakah produk akan ditampilkan. Ini bukan perbaikan tetapi setidaknya untuk memeriksa apakah masalah yang tepat adalah jumlah yang dapat dijual.
fmsthird

sudahkah anda memperbaikinya?
fmsthird

ya sebenarnya ada masalah izin di server kami
Hitesh Balpande

Hai, Sudahkah Anda mengetahui masalahnya?
Octopus

1
@ Octopus, ya reindex bekerja selalu tetapi ada izin di server maka itu diselesaikan
Hitesh Balpande

Jawaban:


21

Di DataBase, Ada dua jenis,

1) Tabel

2) Tampilan

Masalah ini mungkin disebabkan ketika Tampilan Impor / Ekspor DataBase tidak dibuat di Magento 2.3. Jadi buat tampilan dan tabel inventaris_stock_1 di DataBase.

Lihat Gambar Terlampir:

masukkan deskripsi gambar di sini


1
Terima kasih banyak. Setelah menghabiskan 2 jam saya mendapat solusi dari jawaban Anda. Terima kasih lagi.
Kamlesh Solanki

2
+1 Untuk Jawaban Hebat
Sanjay Gohil

@Savan sudah dibuat di akhir saya. tetapi masih menghadapi masalah yang sama
insoftservice

@insoftservice Saya menghadapi masalah yang sama, apakah Anda mendapat ide?
Hardik Visa

@HardikVisa, apakah Anda memiliki pandangan ini? Jika ya coba jalankan secara manual pada bagian saya itu diberikan masalah izin yang bisa diselesaikan dengan memberikan izin penuh.
layanan dalam

10

Saya melewatkan baris permintaan ini, karena kesalahan Previllages dan add to cart saya tidak berfungsi di server langsung, di server lokal baris ini tidak dilewati dan menambah ke troli berfungsi dengan baik.

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `inventory_stock_1`  AS  select distinct `legacy_stock_status`.`product_id` AS `product_id`,`legacy_stock_status`.`website_id` AS `website_id`,`legacy_stock_status`.`stock_id` AS `stock_id`,`legacy_stock_status`.`qty` AS `quantity`,`legacy_stock_status`.`stock_status` AS `is_salable`,`product`.`sku` AS `sku` from (`cataloginventory_stock_status` `legacy_stock_status` join `catalog_product_entity` `product` on((`legacy_stock_status`.`product_id` = `product`.`entity_id`))) ;

Karena View tidak dibuat di server langsung masukkan deskripsi gambar di sini


3

Saya harus menghapus DEFINER=root @localhost dari @Thakur jawab jadi inilah yang saya gunakan:

CREATE ALGORITHM=UNDEFINED SQL SECURITY INVOKER VIEW `inventory_stock_1`  AS
select distinct `legacy_stock_status`.`product_id` AS `product_id`,
`legacy_stock_status`.`website_id` AS `website_id`,
`legacy_stock_status`.`stock_id` AS `stock_id`,
`legacy_stock_status`.`qty` AS `quantity`,
`legacy_stock_status`.`stock_status` AS `is_salable`,
`product`.`sku` AS `sku`
from (`cataloginventory_stock_status` `legacy_stock_status`
join `catalog_product_entity` `product`
on((`legacy_stock_status`.`product_id` = `product`.`entity_id`))) ;

Gagal menghapusnya menyebabkan kesalahan hak istimewa.



0

Saya menghadapi masalah yang sama, setelah membuat tampilan dengan menjalankan query di bawah ini, masalah saya telah teratasi.

CREATE ALGORITHM=UNDEFINED DEFINER=`{database_user_name}`@`localhost` SQL SECURITY INVOKER VIEW `inventory_stock_1`  AS  
    SELECT distinct `legacy_stock_status`.`product_id` AS `product_id`,
        `legacy_stock_status`.`website_id` AS `website_id`,
        `legacy_stock_status`.`stock_id` AS `stock_id`,
        `legacy_stock_status`.`qty` AS `quantity`,
        `legacy_stock_status`.`stock_status` AS `is_salable`,
        `product`.`sku` AS `sku` 
   FROM
   (
         `cataloginventory_stock_status` `legacy_stock_status` 
              join `catalog_product_entity` `product` 
                  on ((`legacy_stock_status`.`product_id` = `product`.`entity_id`))
   ) ;

0

Metode lain untuk memperbaikinya adalah dengan menghapus tambalan dari patch_listdan menjalankan setup:upgradekembali untuk memanggil kembali perintah.

Kode yang bertanggung jawab untuk membuat SQL SECURITY INVOKERdapat ditemukan di Magento \ InventoryCatalog \ Setup \ Patch \ Schema \ CreateLegacyStockStatusView.

Anda dapat menghapus tambalan data dari daftar tambalan dengan mencari berjalan

select * from patch_list where patch_name = 'Magento\InventoryCatalog\Setup\Patch\Schema\CreateLegacyStockStatusView

Hapus catatan.

Memutarkan lagi setup:upgrade setup:di:compile setup:static-content:deploy

Simpan ulang produk dengan ZERO Salable Quantity baik satu per satu atau aksi massal melalui admin.


0

Saya akan membagikan pengalaman saya terkait dengan masalah ini, saya harap ini dapat membantu seseorang yang berada dalam situasi yang sama.

Kami sedang mengerjakan contoh bertahap, semua sudah siap untuk produksi. Jadi kami menduplikasi semua yang ada di prod env dan meluncurkan beberapa truncate SQL untuk menghapus setiap pesanan tiruan, ulasan, dll. Anda mendapatkan idenya.

Setelah beberapa tes akhir, kami menyadari bahwa "stock qty" produk kami jauh berbeda dari produk "qable yang dijual" . Tampilan SQL sepertinya berfungsi dengan baik, jadi kami menyelidiki lebih dalam. Ternyata kami melewatkan tabel SQL dalam instruksi terpotong kami:

TRUNCATE TABLE `inventory_reservation`;

Gadis nakal ini mengandung setiap "produk yang tidak dikirim tetapi dipesan " dari pesanan sebelumnya.

Tentu saja jangan lupa untuk memasang kembali barang-barang:

bin/magento indexer:reindex;

-3

Saya baru saja berubah menjadi STORE -> CATELOG -> INVENTORY -> PILIHAN SAHAM PRODUK -> BACKORDERS -> Izinkan Jumlah Di Bawah 0

dan masalah terpecahkan

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.