2
我已經創建了一個私人Shopify應用程序。它可以通過產品ID獲取幾乎所有的信息。但是我需要一個選項來獲取API商店中所有產品的產品ID。我試過下面的選項如何從Shopify Python API獲取所有產品ID
shopify.Product.find()
但它只顯示前50個產品。但我的商店有超過2.4k的產品。
我已經創建了一個私人Shopify應用程序。它可以通過產品ID獲取幾乎所有的信息。但是我需要一個選項來獲取API商店中所有產品的產品ID。我試過下面的選項如何從Shopify Python API獲取所有產品ID
shopify.Product.find()
但它只顯示前50個產品。但我的商店有超過2.4k的產品。
Shopify返回資源列表的分頁響應。每頁的默認資源數量爲50
,默認頁面爲1
。您的要求就是這樣等同於以下:
shopify.Product.find(limit=50, page=1)
Shopify使您可以增加每頁250極限下面是我用它來獲取所有給定資源的一個輔助功能:
def get_all_resources(resource, **kwargs):
resource_count = resource.count(**kwargs)
resources = []
if resource_count > 0:
for page in range(1, ((resource_count-1) // 250) + 2):
kwargs.update({"limit" : 250, "page" : page})
resources.extend(resource.find(**kwargs))
return resources
你像這樣使用它:
products = get_all_resources(shopify.Product)
你甚至可以傳入參數。你的問題問專供產品ID-如果你限制查詢只返回的ID,這將是非常非常快(因爲它沒有任何的產品變的拉):
product_ids = get_all_resources(shopify.Product, fields="id")
請注意,如果您有2.4k產品,則可能需要一些時間!
非常感謝您的解決方案。雖然我可以在發佈問題後解決它。但我喜歡你的解決方案。 :) –
謝謝Rafayet,也許這會幫助別人:) – Julien