ACP2E-4840: GraphQL产品查询为自定义库存库存上的库存产品返回null数量
ACP2E-4840修补程序修复了以下问题:对于库存中并在自定义库存库存中可供销售的产品,产品GraphQL查询中的quantity字段返回空。 安装Quality Patches Tool (QPT) 1.1.82时,此修补程序可用。 修补程序ID为ACP2E-4840。 请注意,此问题计划在Adobe Commerce 2.4.10中修复。
受影响的产品和版本
为Adobe Commerce版本创建了修补程序:
- Adobe Commerce(所有部署方法) 2.4.8-p4
与Adobe Commerce版本兼容:
- Adobe Commerce(所有部署方法) 2.4.8 - 2.4.8-p5
magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。问题
对于有库存并且可在自定义库存库存中销售的产品,产品GraphQL查询中的“数量”字段会返回null。
先决条件:
已启用MSI。
重现步骤:
-
创建新源。
-
在管理员侧边栏上,转到Stores > Inventory > Stock。
-
单击Add New Stock。
-
展开 Sales Channels 并选择股票可用的Websites。
-
展开Sources,单击Assign Sources,选择要分配的源,然后单击Done。
-
在管理员侧边栏中,转到Catalog > Products并以编辑模式打开现有产品。
-
在 Sources 部分中,分配自定义源,将 Source Item Status 设置为In Stock,为 Qty 输入非零值,然后保存产品。
-
在Catalog > Products中确认产品为分配给自定义库存的网站显示非零Salable Quantity。
-
针对分配给使用自定义库存的网站的商店视图,为该SKU运行以下
productsGraphQL查询:code language-none query { products(filter: { sku: { in: ["product_dynamic_1"] } }) { items { sku name stock_status quantity max_sale_qty } } } -
观察响应:
code language-none { "data": { "products": { "items": [ { "sku": "product_dynamic_1", "name": "Simple Product 1", "stock_status": "IN_STOCK", "quantity": null, "max_sale_qty": 10000 } ] } } }
预期的结果:
GraphQL响应会为当前商店/网站上有库存且可销售的产品返回非null数量值。
实际结果:
对于存储使用自定义MSI库存且可在管理员中销售的产品,GraphQL响应返回quantity = null,而stock_status = IN_STOCK。
应用修补程序
要应用单独的修补程序,请根据您的部署方法使用以下链接:
- Adobe Commerce或Magento Open Source内部部署: Quality Patches Tool指南中的Quality Patches Tool >使用情况
- 云基础架构上的Adobe Commerce: Commerce on Cloud Infrastructure指南中的升级和修补程序>应用修补程序
相关阅读
要了解有关Quality Patches Tool的更多信息,请参阅: