我正在使用 Next.js、Prisma with MongoDB 和 Stripe 构建一个电子商务项目。
当我开始设计产品的架构时,我遇到了一些困惑。
我应该直接在数据库中创建产品吗? 通过这种方法,我意识到我将为每个结帐会话创建一个条纹新产品。然而,Stripe 会自动归档这些产品,所以我不确定这是否是一个好的解决方案。
或者,我应该通过 Stripe 仪表板/API 创建产品,然后根据 Webhook 事件更新我的数据库吗?
哪种方法更好,您为什么这么认为?
我认为这确实很主观/很大程度上取决于您的应用程序有什么要求。
您在帖子中提到的是 Stripe Checkout 的
price_data
和 product_data
构造函数,它们非常强大,因为它们允许您根据 Checkout 会话创建产品和价格。另一个解决方案是创建产品和价格,然后您可以通过其 ID 在结帐会话中使用/重复使用它们。
虽然这实际上取决于您的应用程序需要什么,但我个人更喜欢使用
price_data
和 product_data
,因为它通常可以简化项目:
product_data.metadata
。这两种方法都是有效的。哪个更好取决于您的具体用例、业务需求和其他因素。
如果您将产品存储在您的终端上,您可以使用
price_data
指定内联的临时产品和价格信息。这将每次创建一个新的产品和价格,但它们不会像您直接创建的产品和价格那样使仪表板变得混乱。