2017-04-23 23 views
2

私は1つの非公開のショップ化アプリケーションを作成しました。これは、製品IDでほぼすべての情報を得ることができます。しかし、私はAPIを持つショップ内のすべての製品の製品IDを取得するオプションが必要です。私はShopify Python APIからすべての製品IDを取得する方法

shopify.Product.find() 

下記のオプションを試してみましたが、それは最初の50個の製品を示しています。しかし私の店には2.4k以上の製品があります。

答えて

7

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製品をお持ちの場合、これには時間がかかることにご注意ください!

ドキュメント:あなたのソリューションのための https://help.shopify.com/api/reference/product

+0

おかげで多くのことを。私は質問を投稿した後にそれを解決することができますが。しかし、私はあなたのソリューションが好きでした。 :) –

+1

ラファエットありがとう、おそらくこれは他の誰かを助けるでしょう:) – Julien

関連する問題