Как получить ВСЕ заказы Shopify через API (ограничено 250)

#php #r #shopify #httr #shopify-app

#php #r #Shopify #httr #Shopify-приложение

Вопрос:

Привет, я пытаюсь получить все заказы из магазина Shopify через shopify API, я использую R-скрипт, и пока я могу получить только 250 записей, что является пределом на страницу, если я не использую ключевое слово limit в php, по умолчанию оно равно 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=amp;limit=250amp;status=any", 
  authenticate(user = apikey, password = pass)
)
  

Если я хочу сделать то же самое с помощью PHP, я использую вызов https и получаю те же 250 результатов

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

Есть ли способ, которым я могу получить ВСЕ заказы за один вызов?

Или, если нет, есть ли способ получить разные страницы, например, страницу 1,2,3,4,5 и т. Д., А позже я могу объединить эти фреймы данных в 1.

Комментарии:

1. как указано в документах api, максимальное значение равно 250

Ответ №1:

Используйте подкачку. Четко описано в документации.

Ответ №2:

Как уже говорили другие, вы должны использовать разбивку на страницы. Недавно я создал пакет R под названием shopr, который делает это довольно простым.

 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 заказов, а затем объединять их вместе для вас.