Melihat semua Produk yang telah dibeli Pelanggan di Stripe

Bagaimana saya bisa melihat semua Products yang telah dibeli oleh Customer menggunakan Stripe API? Apakah ada peristiwa tertentu yang dikirimkan saat pembelian terjadi? Saya melihat ada item Orders juga, tapi saya tidak yakin apakah Products hanya dapat dibeli sebagai bagian dari Orders.

Contoh kueri untuk mendapatkan semua Pesanan oleh Pelanggan:

from stripe import Order

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

Pada dasarnya saya ingin mendapatkan semua item berbasis non-langganan yang telah dibeli pengguna -- akan menanyakan API untuk Pesanan dengan cara ini memberi saya semua item berbasis non-langganan, karena Product masing-masing harus diikat ke Order, atau apakah ada cara yang berbeda/lebih baik untuk melakukan ini?


person orange1    schedule 12.10.2017    source sumber


Jawaban (1)


Anda dapat mengambil semua pesanan untuk pelanggan dengan metode daftar semua pesanan dan parameter customer.

Anda kemudian dapat memeriksa atribut items pesanan untuk menemukan SKU yang disertakan dalam pesanan.

Terakhir, Anda dapat menggunakan atribut product SKU untuk mengambil produk yang terkait dengan SKU.

Dengan Python, Anda bisa melakukan sesuatu seperti ini:

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)

Kode di atas tidak terlalu efisien karena akan mengirimkan permintaan pengambilan SKU untuk setiap jenis item "sku". Dalam praktiknya, Anda mungkin ingin menyimpan hasil dalam cache dan hanya mengambil setiap SKU satu kali.

person Ywain    schedule 12.10.2017
comment
Terima kasih! Apakah setiap instance dari Product yang dibeli harus dilampirkan ke Order? yaitu apakah mungkin bagi bisnis untuk menagih klien untuk Product (atau abstraksi lain untuk pembelian berbasis non-langganan) tanpa menempatkan Order? - person orange1; 12.10.2017