2017-10-12 8 views
0

CustomerがStripe APIを使用して購入したProductsをすべて表示するにはどうすればよいですか?購入が発生したときに送信される特定のイベントはありますか? Ordersアイテムもありますが、ProductsOrdersの一部としてのみ購入できます。お客様によるすべての注文を取得するためのお客様がストライプで購入したすべての商品を表示

サンプルクエリ:

from stripe import Order 

Order.list(customer=customer_1['data'][0].id) 

は基本的に私は、ユーザーが購入したすべての非サブスクリプションベースのアイテムを取得したい - 注文のためのAPIを照会します。この方法は、私を与えますProductは必ずそれぞれOrderに関連付けられている必要がありますか、これを行う方法が異なりますか?

答えて

0

お客様はlist all ordersメソッドとcustomerパラメータを使用して、すべての注文を取得できます。

注文のitems属性を調べると、注文に含まれるSKUを見つけることができます。

最後に、SKUのproduct属性を使用して、SKUに関連付けられた製品を取得することができます。

はPythonでは、あなたはこのような何かを行うことができます:それはタイプ"sku"のすべての項目についてSKU retrieve requestを送信して

customer_id = "cus_..." 
products = [] # list of products ordered at least once by the customer 

orders = stripe.Order.list(customer=customer_id) 
for order in orders.auto_paging_iter(): 
    for item in order.items.auto_paging_iter(): 
     if item.type == "sku": 
      sku = stripe.SKU.retrieve(item.parent) 
      if sku.product not in products: 
       products.append(product) 

上記のコードは非常に効率的ではありません。実際には、結果をキャッシュし、各SKUを一度だけ取得することをお勧めします。

+0

ありがとうございます!しかし、購入される「製品」のすべてのインスタンスは必然的に「注文」に添付されますか?すなわち、「注文」を置かずに企業が顧客に「製品」(または非購読ベースの購入のための何か他の抽象化)を請求することは可能であるか? – orange1

関連する問題