我如何才能使用 Python 从 Shopify API 中提取“昨天”的订单?需要是动态的,而不是静态的

How can I pull only 'yesterday's' orders from Shopify API using Python. Needs to be dynamic, not static

我已成功拉取所有订单。但是,我的目标是让我的任务调度程序 运行 我的 python 脚本提取昨天或今天的唯一订单,并将订单附加到 SQL [=19] 中的正在进行的主订单列表=] 或 excel 文件。我认为它必须是 URL 中的一个参数,但无法弄清楚。有人能帮忙吗?下面是我的 python 脚本 URL:

date = datetime.today().strftime('%Y-%m-%d')
url = "https://{API}:{Password}@{StoreName}/admin/api/2021-10/orders.json?created_at=" + date + f"&limit=250&status=any&since_id={last}"
response = requests.request("GET", URL)

根据shopify documentation here关于命令你可以给2个参数:

created_at_max(显示在该日期或之前创建的订单。) & created_at_min(显示在该日期或之后创建的订单。)

因此,如果您在设置中尝试这些,应该没问题。来自文档的示例:

curl -X GET "https://your-development-store.myshopify.com/admin/api/2021-10/orders.json?updated_at_min=2005-07-31T15%3A57%3A11-04%3A00"

我可以提出一种替代方法,这种方法可能比您的日期驱动方法更不容易出错。首先,使用您的脚本尽可能获取所有订单,以确保您是最新的。处理它们,对订单做任何事情。现在,您可以轻松确保您拥有最新处理的订单的 ID。保存此值以供使用!

其次,每天一次,在您选择的时间,您 运行 一个预定的工作,它会获取自您之前引导或保存的最后一个 ID 以来的所有订单。自您上次调用此例程(每天一次)以来,这将准确地向您发送所有未处理的订单。解析这些订单,保存最后处理的 ID,然后永远继续。请注意,这对 RestAPI 来说是特殊的。使用 GraphQL,您可以使用其他方法来生成列表。

您可以看到这如何减轻使用 DateTime 对象的所有时间垃圾,这显然比我们在简单计算中通常做的任何其他事情都更容易受到 WTF 时刻的影响。