You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento2用GraphQL按自定义属性筛选产品报Field is not defined错误

问题原因

你参考的是Magento 2.4版本的官方文档,但你当前使用的2.3.4版本原生GraphQL并不支持直接将自定义属性的code作为筛选字段传入ProductAttributeFilterInput,该特性是2.4版本新增的功能,所以会触发字段未定义的报错。

解决方案

方案一:使用2.3版本原生支持的custom_attributes筛选(无需二次开发,直接可用)

直接修改查询语句如下:

{
  products(
    filter: {
      custom_attributes: {
        attribute_code: "color"
        value: { eq: "4677" }
      }
    }
  ) {
    total_count
    items {
      name
      sku
      price
    }
  }
}

使用前需要先确认color属性的后台设置:进入属性->店面属性选项卡,将用于产品列表和用于搜索两个选项均设置为是,否则筛选不会生效。

方案二:扩展GraphQL类型支持直接用color字段筛选(适合长期使用场景)

如果需要和2.4版本一致的调用方式,可以通过自定义模块扩展GraphQL schema实现:

  • 在自定义模块的etc/schema.graphqls文件中扩展输入类型:
input ProductAttributeFilterInput {
  color: FilterEqualType @doc(description: "Filter by product color attribute")
}
  • 开发对应的拦截插件,将传入的color筛选条件转换为产品集合的属性过滤逻辑
  • 执行bin/magento setup:upgrade和bin/magento cache:clean后,即可使用你原来的查询语句发起请求

内容的提问来源于stack exchange,提问作者Marwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 17:24:06