0

我正在查看 Magento 2.3.1 及更高版本在列出产品的查询中公开的新 graphql 端点:

query products(
    pageSize:6,
    currentPage:1,
    filter:{
        category_id: { eq: "3" }
    }

  ) {
    filters {
      name
      request_var
      filter_items_count
      filter_items {
        label value_string
      }
    }
    items {
      id
      name
      small_image {
        url
      }
      # ...
    }
    # ...
  }

响应主体在items属性中生成产品,正如预期的那样,在filters属性中的数组中生成一堆自定义过滤器,如下所示:

"filters": [
        {
          "name": "Activity",
          "request_var": "activity",
          "filter_items_count": 12,
          "filter_items": [
            {
              "label": "Outdoor",
              "value_string": "5"
            },
            {
              "label": "Yoga",
              "value_string": "8"
            },
            {
              "label": "Recreation",
              "value_string": "9"
            },
            // rest of filter values
          ]
        },
        // rest of filters
]

鉴于这些过滤器是动态的并且是用户定义的,有没有办法通过 graphql 中的列表产品查询将它们发送回来?我希望在products查询下的某处有一个属性,它可能是上述过滤器对象的数组,但到目前为止,我在架构和官方文档中都没有找到任何东西。

有没有人有类似的经历?

4

1 回答 1

0

不,没有办法将过滤后的选项发回。在某些选项中,您可以返回其他过滤功能(类似于查看类别页面时)以返回过滤方式列表,但不会返回当前活动的过滤器。

     {
          products(filter: {sku: {like: "%"} }  pageSize: 500) {
            filters{
              request_var
              name
              filter_items{
                label
                value_string
              }
            }
            items {
              id
              sku
              name
              ...
            }
          }
     }
于 2019-08-30T16:00:34.883 回答