有没有办法在 Magento 2.3 graphql 端点中使用动态过滤器查询产品?

Posted

技术标签:

【中文标题】有没有办法在 Magento 2.3 graphql 端点中使用动态过滤器查询产品?【英文标题】:Is there any way to query products using dynamic filters in Magento 2.3 graphql endpoint? 【发布时间】:2020-01-02 23:33:41 【问题描述】:

我正在查看 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 查询下的某处有一个属性,它可能是上述过滤器对象的数组,但到目前为止,我在架构和官方文档中都没有找到任何东西。

有没有人有类似的经历?

【问题讨论】:

【参考方案1】:

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

     
          products(filter: sku: like: "%"   pageSize: 500) 
            filters
              request_var
              name
              filter_items
                label
                value_string
              
            
            items 
              id
              sku
              name
              ...
            
          
     

【讨论】:

那么如何通过......比如说“颜色”属性来过滤产品?

以上是关于有没有办法在 Magento 2.3 graphql 端点中使用动态过滤器查询产品?的主要内容,如果未能解决你的问题,请参考以下文章

Magento 2.3 在本地主机中无法正常工作

magento 2.3 安装后黑屏

在 Windows 10 上安装 Magento 2.3 后的空白管理页面

有没有办法在magento的paypal支付方式页面上更新css?

直接将 Magento 2.1.5 升级到 2.3

如何在 Magento 2.3 中加入两个自定义表