为什么按日期和限制从 Shopify 商店获取订单总是返回最新日期的订单? 例如:如果我查询从 2012 年 8 月 1 日起获得 5 个订单 使用此查询:
/admin/orders.json?status=open&created_at_min=2012-08-01 12:00&limit=5
因为我在2012年8月20日有5个订单,在2012年8月31日有5个订单 但这将返回最新日期(2012 年 8 月 31 日)的 5 个订单。
它没有记录,但您可以通过在查询中添加:
order=processed_at+asc
来实现。
Shopify API 按从最近到最旧的顺序返回订单。
当您提交查询时,Shopify 将首先创建包含您的 10 个订单的数组;前 5 个是从 8 月 31 日开始,后 5 个是从 8 月 20 日开始。
然后,通过将其限制为五个订单,Shopify 会为您提供前五个。
据我所知,无法在 Shopify API 中指定您自己的排序顺序。您需要使用 created_at_min= 2012-08-01
获取
所有订单,然后使用您正在编写的任何语言,获取数组中的最后 5 个项目。
Shopify API 专门在 EST/EDT 时间工作。因此,首先将您的时区时间转换为 EDT,这样您就可以根据 EDT 时区标记准确的时间。
让我们理解这个例子: 目前,我位于 JST(东京/亚洲)时区,现在我想要根据日本时间从订单 API 获取 2021 年 10 月 20 日的记录。所以我需要制作这样的请求参数:
API:
orders.json?status=any&limit=250
有效参数截至日期2021年10月20日(日本标准时间)
如果要求是更新日期
&updated_at_min=2021-10-19T11:00:00-04:00&updated_at_max=2021-10-20T11:00:00-04:00
创建日期
&created_at_min=2021-10-19T11:00:00-04:00&created_at_max=2021-10-20T11:00:00-04:00
在这里,我们实际上已将 JST (+09:00) 格式的日期转换为 EST(-04:00),以确保我从 API 获取的数据应该仅适用于 2021-10-20日期(从 2021-10-20 00:00:00 到 2021-10-21 00:00:00 [JST])。
同样,您可以根据您的时区创建日期 (EDT) 格式。
根据我的测试,将 ISO 日期时间格式转换为 UTC-4 效果很好。
https://{{domain}}.myshopify.com/admin/api/2023-04/orders.json?status=any&updated_at_min=2023-04-14T08:27:57-04:00&updated_at_max=2023-04-14T08:27:57-04:00
@Hitesh Kalwani 的答案是正确的。
两个日期之间
/admin/orders.json?created_at_min=2012-08-01 12:00&limit=2012-08-01 12:00