การดูผลิตภัณฑ์ทั้งหมดที่ลูกค้าซื้อบน Stripe

ฉันจะดู Products ทั้งหมดที่ Customer ซื้อโดยใช้ Stripe API ได้อย่างไร มีเหตุการณ์เฉพาะที่ส่งออกเมื่อมีการซื้อเกิดขึ้นหรือไม่ ฉันเห็นว่ามีรายการ Orders เช่นกัน แต่ไม่แน่ใจว่า Products สามารถซื้อได้เป็นส่วนหนึ่งของ Orders เท่านั้น

ตัวอย่างแบบสอบถามในการรับคำสั่งซื้อทั้งหมดจากลูกค้า:

from stripe import Order

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

โดยพื้นฐานแล้วฉันต้องการรับรายการที่ไม่สมัครสมาชิกทั้งหมดที่ผู้ใช้ซื้อ - การสืบค้น API สำหรับคำสั่งซื้อด้วยวิธีนี้จะให้รายการที่ไม่สมัครสมาชิกทั้งหมดให้ฉันเนื่องจาก Product จะต้องเชื่อมโยงกับ Order แต่ละรายการหรือ มีวิธีอื่น / ที่ดีกว่าในการทำเช่นนี้หรือไม่?


person orange1    schedule 12.10.2017    source แหล่งที่มา


คำตอบ (1)


คุณสามารถดึงข้อมูลคำสั่งซื้อทั้งหมดของลูกค้าได้โดยใช้เมธอด แสดงรายการคำสั่งซื้อทั้งหมด และพารามิเตอร์ customer

จากนั้น คุณจะใช้แอตทริบิวต์ items ของคำสั่งซื้อเพื่อค้นหา SKU ที่รวมอยู่ในคำสั่งซื้อได้

สุดท้ายนี้ คุณสามารถใช้แอตทริบิวต์ product ของ SKU เพื่อดึงข้อมูลผลิตภัณฑ์ที่เกี่ยวข้องกับ SKU ได้

ใน Python คุณสามารถทำสิ่งนี้:

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 สำหรับรายการทุกประเภท "sku". ในทางปฏิบัติ คุณอาจต้องการแคชผลลัพธ์และเรียกข้อมูล SKU แต่ละรายการเพียงครั้งเดียวเท่านั้น

person Ywain    schedule 12.10.2017
comment
ขอบคุณ! จำเป็นต้องแนบ Product ทุกอินสแตนซ์กับ Order หรือไม่ กล่าวคือ เป็นไปได้หรือไม่ที่ธุรกิจจะเรียกเก็บเงินจากลูกค้าสำหรับ Product (หรือสิ่งที่เป็นนามธรรมอื่นๆ สำหรับการซื้อแบบไม่สมัครสมาชิก) โดยไม่ต้องวาง Order - person orange1; 12.10.2017