如何通过 API 获取所有 shopify 订单(限制为 250 个)

How to get ALL shopify orders via API (limited to 250)

您好,我正在尝试通过 shopify API 从 shopify 商店获取所有订单,我使用的是 R 脚本,到目前为止我只能获取 250 条记录,这是每页的限制,如果我没有在 php 中使用 limit 关键字,它默认为 50。

这是我目前的情况

library(dplyr)
library(httr)
library(rlist)
library(jsonlite)

apikey <- "xxxxxxxxxx1d2fd1fb8710"
pass <- "xxxxxxxxxxxx3e4d38d476fdb188ac7"

orders <- GET(
  url = "https://xxxxx-xxxxx.myshopify.com/admin/orders.json?query=&limit=250&status=any", 
  authenticate(user = apikey, password = pass)
)

如果我想通过 PHP 执行相同的操作,我会使用 https 调用并获得相同的 250 个结果

https://1x877xxxxbd3ed99ae30d1eb4d71cxxx:dcfee3235061bd149ebxxxxxxxxxxxxx@store.myshopify.com/admin/orders.json?query=&limit=250&status=any

有没有一种方法可以在一个电话中获取所有订单?

或者如果没有,有没有办法获取不同的页面,例如页面 1、2、3、4、5 等,稍后我可以将这些数据帧合并为 1。

使用分页。文档中有清楚的描述。

正如其他人所说,您必须使用分页。我最近创建了一个名为 shopr 的 R 包,这使得这相当容易。

library(shopr)

orders <- shopr_get_orders(
  shopURL = "https://xxxxx-xxxxx.myshopify.com",
  APIKey = apikey,
  APIPassword = pass,
  APIVersion = "2019-04",
  max_pages = Inf,         # this is the default
  limit_per_page = 250L,   # this is the default
  since_id = 0L            # this is the default
)

shopr 将连续调用 API,获取 250 个订单的块,然后为您将它们组合在一起。