繁体   English   中英

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

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

我已经成功拉取了所有订单。 但是,我的目标是让我的任务调度程序运行我的 python 脚本以提取昨天或今天唯一的订单,并将订单附加到 SQL 表或 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 文档,您可以提供 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 时刻的影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM