Shopify API:如何查询使用指定折扣码的订单?
如何通过Shopify API查询使用指定折扣码的订单
我之前也碰到过这个问题——Shopify确实没有专门的「按折扣码查订单」独立接口,但咱们可以借助现有API的筛选能力来实现,下面分REST和GraphQL两种常用方式给你具体指导:
方法1:使用REST API查询
直接调用Shopify的Orders API,通过discount_code参数筛选出使用目标折扣码的订单。示例请求如下:
GET /admin/api/2024-07/orders.json?discount_code=TESTCODE123&status=any
discount_code=TESTCODE123:指定要匹配的目标折扣码status=any:确保获取所有状态的订单(默认仅返回「open」状态,若需要已完成、已取消的订单必须添加该参数)
注意事项:
- 记得替换为你当前使用的Shopify API稳定版本号(比如2024-07是近期的稳定版)
- 若订单数量超过50条,Shopify会返回分页结果,你需要通过响应头的
Link字段处理分页逻辑 - 你的API密钥需要拥有
read_orders权限才能发起此请求
方法2:使用GraphQL API查询(更灵活)
GraphQL能让你精准获取所需字段,同时完成折扣码筛选。示例查询代码如下:
query { orders(first: 50, query: "discount_code:TESTCODE123 status:any") { edges { node { id name createdAt totalPriceSet { shopMoney { amount currencyCode } } discountCodes { code amountSet { shopMoney { amount } } } } } pageInfo { hasNextPage endCursor } } }
query: "discount_code:TESTCODE123 status:any":和REST参数逻辑一致,用于筛选符合条件的订单first:50:单次返回50条结果,需通过pageInfo中的endCursor处理后续分页- 你可以按需调整返回字段,比如只保留订单ID和创建时间,减少不必要的数据传输
额外提醒
- 如果你的折扣码曾修改过(比如重命名),要确保使用的是当前生效的折扣码code,而非初始名称
- 若一个订单同时使用多个折扣码,上述筛选仍会正确匹配到包含目标折扣码的订单,不影响你的查询需求
内容的提问来源于stack exchange,提问作者Teshan N.
相关产品推荐
相关产品推荐

