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