我使用 next.js 和 Stripe webhooks 将结帐会话插入到 Supabase,这将创建客户的订单历史记录。我能够将有关整个订单的信息写入名为“orders”的表中,但我想知道将每个结帐会话中的单个项目添加到另一个名为“order_items”的表中的最佳方法是什么。这样我就可以映射主订单,然后是子项目。感谢提供的任何帮助。这是我获得与客户相关的订单的内容:
const upsertOrderRecord = async (session: Stripe.Checkout.Session, customerId: string) => {
const { data: customerData, error: noCustomerError } = await supabaseAdmin
.from<Customer>('customers')
.select('id')
.eq('stripe_customer_id', customerId)
.single();
if (noCustomerError) throw noCustomerError;
const { id: uuid } = customerData || {};
const sessionData: Session = {
id: session.id,
amount_total: session.amount_total ?? undefined,
user_id: uuid ?? undefined
};
const { error } = await supabaseAdmin.from<Session>('orders').insert([sessionData], { upsert: true });
if (error) throw error;
console.log(`Product inserted/updated: ${session.id}`);
};