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
NOTE
该修补程序可能适用于具有新Quality Patches Tool发行版本的其他版本。 要检查修补程序是否与您的Adobe Commerce版本兼容,请将magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。

问题

对于有库存并且可在自定义库存库存中销售的产品,产品GraphQL查询中的“数量”字段会返回null。

先决条件

已启用MSI。

重现步骤

  1. 创建新源。

  2. 在管理员侧边栏上,转到​Stores > Inventory > Stock

  3. 单击​Add New Stock

  4. 展开​ Sales Channels ​并选择股票可用的​Websites

  5. 展开​Sources,单击​Assign Sources,选择要分配的源,然后单击​Done

  6. 在管理员侧边栏中,转到​Catalog > Products​并以编辑模式打开现有产品。

  7. 在​ Sources ​部分中,分配自定义源,将​ Source Item Status ​设置为​In Stock,为​ Qty ​输入非零值,然后保存产品。

  8. 在​Catalog > Products​中确认产品为分配给自定义库存的网站显示非零​Salable Quantity

  9. 针对分配给使用自定义库存的网站的商店视图,为该SKU运行以下products GraphQL查询:

    code language-none
    query {
      products(filter: { sku: { in: ["product_dynamic_1"] } }) {
        items {
          sku
          name
          stock_status
          quantity
          max_sale_qty
        }
      }
    }
    
  10. 观察响应:

    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

应用修补程序

要应用单独的修补程序,请根据您的部署方法使用以下链接:

相关阅读

要了解有关Quality Patches Tool的更多信息,请参阅:

recommendation-more-help
commerce-operations-help-tools