无法获取指定时间范围的Shopify订单数据求助
解决指定时间范围获取Shopify订单数据的问题
核心问题分析
你的代码缺少时间范围过滤参数,这是无法获取指定时段订单的关键原因。另外,URL中的API密钥认证与Header里的Bearer Token认证重复,建议二选一避免冲突。
修正后的代码实现
下面是添加时间范围参数、优化认证方式后的完整代码:
import requests import pandas as pd # 替换为你的实际店铺信息 API_KEY = "你的API密钥" PASSWORD = "你的密码/访问令牌" STORE_NAME = "你的店铺域名前缀" API_VERSION = "2022-10" # 指定时间范围,必须使用ISO 8601格式(示例:2023-01-01T00:00:00Z) start_time = "2023-01-01T00:00:00Z" end_time = "2023-01-31T23:59:59Z" # 构建带时间过滤参数的请求URL,这里采用URL嵌入密钥的认证方式 url = f"https://{API_KEY}:{PASSWORD}@{STORE_NAME}.myshopify.com/admin/api/{API_VERSION}/orders.json?status=any&created_at_min={start_time}&created_at_max={end_time}" headers = {} response = requests.get(url, headers=headers) # 打印响应内容,也可转换为DataFrame处理 print(response.text) # df = pd.json_normalize(response.json()['orders']) # print(df.head())
关键细节说明
- 时间参数规则:必须使用ISO 8601格式,支持两种过滤维度:
created_at_min/created_at_max:按订单创建时间过滤updated_at_min/updated_at_max:按订单最后更新时间过滤
- 认证方式二选一:
- URL嵌入API密钥+密码(如上代码)
- 仅使用Header中的Bearer Token,此时URL无需添加密钥信息,格式为
https://{STORE_NAME}.myshopify.com/admin/api/{API_VERSION}/orders.json?xxx
- 分页处理:若订单数量超过250(Shopify API默认单页上限),需通过
page参数或limit参数分页获取,或遍历响应中的分页链接拉取全量数据
内容的提问来源于stack exchange,提问作者Ashutosh Srivastava
相关产品推荐
相关产品推荐

