浏览文章
文章信息
Magento2.3.x 解决可售库存为零|Why Magento 2.3 salable quantity showing zero in product grid?
18262
为什么Magento 2.3可销售数量在产品网格中显示为零?
Magento 2.3.x推出了MSI(多源库存),可帮助商家实现多仓库库存管理,无需任何第三方模块。您可以在Magento官方开发文档中找到MSI的详细信息。
要处理多源库存,Magento正在使用一个预定义的源(默认源)和一个库存(默认库存),需要添加库存以便正确计算可销售的数量。使用名为inventory_stock_1的数据库视图管理默认的可销售数量Magento,该视图将在安装Magento时创建。
如果从本地或不同的服务器导入数据库,则视图将不在您的SQL转储中,因此Magento将无法计算可销售的数量。
因此,在重新索引或缓存刷新后,整个产品将从商店前端消失。
要解决此问题,您需要通过执行以下SQL在新数据库中手动创建视图。
CREATE ALGORITHM=UNDEFINED DEFINER=`dbusername`@`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 (`dbname`.`cataloginventory_stock_status` `legacy_stock_status` join `dbname`.`catalog_product_entity` `product` on((`legacy_stock_status`.`product_id` = `product`.`entity_id`)));
将{database_user}替换为具有足够权限的实际数据库用户。
在数据库中执行查询后,您可能需要刷新Magento Cache以更新产品网格中的可销售数量,如下所示。