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

如何通过Python调用Shopify API动态拉取昨日/当日订单数据

实现方案

1. 修正API请求参数

你当前使用的created_at参数不符合Shopify Admin API的筛选规则,需替换为时间范围参数created_at_min、created_at_max来按日拉取订单,同时注意原代码里大小写不统一的问题(定义小写url却调用大写URL会报错)。

2. 按日拉取订单代码示例

from datetime import datetime, timedelta
import requests

# 配置参数(替换为你自己的实际配置)
API = "你的API密钥"
Password = "你的API密码"
StoreName = "你的店铺地址"
last = 0 # 保留原有since_id分页逻辑

# --------------------------
# 场景1:拉取昨日订单
# --------------------------
target_date = datetime.today() - timedelta(days=1)
# 场景2:拉取当日订单,就把上一行替换为 target_date = datetime.today()
# --------------------------

created_at_min = target_date.strftime('%Y-%m-%dT00:00:00')
created_at_max = target_date.strftime('%Y-%m-%dT23:59:59')

# 拼接请求URL
url = f"https://{API}:{Password}@{StoreName}/admin/api/2021-10/orders.json?created_at_min={created_at_min}&created_at_max={created_at_max}&limit=250&status=any&since_id={last}"
response = requests.get(url)
order_data = response.json()['orders']

注意:需确保脚本使用的时区和Shopify店铺的时区保持一致,避免出现日期偏移拉错数据的问题。如果单日订单量超过250条,循环更新last为返回结果的最大订单ID,继续拉取直到返回空列表即可。

3. 追加数据到主订单列表

  • 写入Excel文件(用pandas实现去重追加):
import pandas as pd

# 新拉取的订单转DataFrame
new_df = pd.DataFrame(order_data)
# 读取原有主订单表
old_df = pd.read_excel("主订单列表.xlsx")
# 按订单ID去重后保存
final_df = pd.concat([old_df, new_df]).drop_duplicates(subset="id", keep="last")
final_df.to_excel("主订单列表.xlsx", index=False)
  • 写入SQL表:
    先在SQL表中给订单ID字段设置唯一键,再调用pandas的to_sql方法,配置if_exists="append"即可自动跳过重复数据。

4. 任务调度配置

  • Windows系统:直接使用系统自带的「任务计划程序」,设置每日固定时间(比如拉昨日订单就设为每日凌晨1点)执行脚本即可。
  • Linux系统:使用crontab配置定时任务即可。

内容的提问来源于stack exchange,提问作者Andrew Boettcher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:45:03