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

Shopify折扣GraphQL API:合并查询与标题搜索需求

Shopify折扣GraphQL查询优化问题解答

问题描述

现有两个分别用于获取自动折扣和代码折扣的Shopify GraphQL查询,想明确两个问题:

  1. 能否在单个查询中同时获取这两类折扣?
  2. 是否支持类似产品/集合查询中products(first: 10, query: "title:*searched_text*")的方式,通过标题过滤折扣数据?

原有查询代码:

# 代码折扣查询
query_1 = '''
    {
      codeDiscountNodes (first:10,query:"status:active"){
          edges {
          node {
            id
            codeDiscount {
              __typename
              ... on DiscountCodeBxgy {
              status
              title
            }
            ... on DiscountCodeBasic {
              status
              title
            }
            }
          }
        }
      }
    }
    '''
    
# 自动折扣查询
query_2 = '''
    {
    automaticDiscountNodes (first: 10) {
      edges {
        node {
          id
          automaticDiscount {
            __typename
            ... on DiscountAutomaticBxgy {
              status
              title
            }
            ... on DiscountAutomaticBasic {
              status
              title
            }
          }
        }
      }
     }
    }
    '''

解答

1. 可在单个查询中同时获取两类折扣

Shopify GraphQL API允许在单个请求中调用多个顶级字段,直接将两个查询的顶级节点合并即可。合并后的查询示例如下:

combined_query = '''
    {
      # 代码折扣部分
      codeDiscountNodes(first: 10, query:"status:active") {
        edges {
          node {
            id
            codeDiscount {
              __typename
              ... on DiscountCodeBxgy {
                status
                title
              }
              ... on DiscountCodeBasic {
                status
                title
              }
            }
          }
        }
      }
      # 自动折扣部分
      automaticDiscountNodes(first: 10) {
        edges {
          node {
            id
            automaticDiscount {
              __typename
              ... on DiscountAutomaticBxgy {
                status
                title
              }
              ... on DiscountAutomaticBasic {
                status
                title
              }
            }
          }
        }
      }
    }
    '''

执行该查询后,返回结果会包含codeDiscountNodes和automaticDiscountNodes两个字段,分别对应两类折扣的数据。

2. 标题过滤的支持情况

  • 代码折扣(codeDiscountNodes):支持通过query参数按标题过滤,语法和产品查询一致,支持通配符*。例如要搜索标题包含"summer"的激活状态代码折扣,写法如下:

    codeDiscountNodes(first: 10, query:"status:active AND title:*summer*") {
      # 字段结构保持不变
    }
    

    还可以组合其他过滤条件,比如折扣类型、创建时间等。

  • 自动折扣(automaticDiscountNodes):目前Shopify GraphQL API的automaticDiscountNodes字段不支持query参数过滤,无法在查询阶段直接按标题筛选。需要先获取所有自动折扣数据,再在客户端代码中对title字段做匹配过滤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:12:31