提问人:Amon Fanticelli 提问时间:8/12/2023 最后编辑:Brian Tompsett - 汤莱恩Amon Fanticelli 更新时间:8/12/2023 访问量:123
如何使用条带访问产品的自定义字段,并使用这些字段为每个字段添加库存限制?
How to access custom fields to a product with stripe and with those fields, add a stock limit to each field?
问:
我正在使用 nextjs 进行电子商务,并且我正在使用 stripe 进行结账。最近,我发现 stripe 有自定义字段,例如您可以添加:衣服尺码的小号、中号和大号选项。
但问题来了:通过这种实现,尺寸选项会显示在结帐会话中,这使得行为对用户来说非常奇怪和违反直觉,因为他是在结帐会话中而不是在产品页面中选择尺寸选项。这是第一个问题,第二个问题是:我如何对每个选项进行库存限制,例如,如果我有 30 件中等尺寸的 T 恤和 100 件小尺寸的 T 恤,我需要在我的应用程序上控制这些信息。是否可以使用 stripe 执行此操作,或者我是否受到该工具的限制?
这就是我现在关于代码的 stripe 结账会话的样子:
const checkoutSession = await stripe.checkout.sessions.create({
success_url: successUrl,
cancel_url: cancelUrl,
invoice_creation: {
enabled: true,
},
payment_method_types: ["card", "boleto"],
shipping_address_collection: {
allowed_countries: ["BR"],
},
phone_number_collection: {
enabled: true,
},
custom_fields: [
{
key: "size",
label: {
custom: "Size",
type: "custom",
},
dropdown: {
// Include up to 200 options as required
options: [
{
label: "Small",
value: "small",
},
],
},
type: "dropdown",
},
],
mode: "payment",
line_items: products.map(({ prod, quantity }) => ({
price: prod.defaultPriceId,
quantity: quantity,
})),
});
答:
Checkout 的功能旨在让您可以配置 Checkout 以收集所需的其他自定义信息。例如,您可能希望在某人为您的在线聊天机器人付费时收集他们的 Discord 句柄。custom_fields
这意味着,这从来都不是您以这种方式“专业化”您在 Checkout 上销售的产品/价格的一种方式。我不认为你所采取的方法真的有效,即使它看起来符合你的需求。
相反,您需要做的是拥有单独的 Product 和 Price 对象,这些对象可以对您销售的产品的不同版本进行建模,例如,小型、中型或大型的某个 T 恤将是不同的产品。如今,Stripe 并没有真正提供一种对产品之间具有层次结构的“产品目录”进行建模的方法。
同样,Stripe 目前没有任何适合您需求的“库存”功能。这里唯一的解决方案是真正让您跟踪您的整体库存。您还可以跟踪正在进行的交易,其中他们可能将商品放在“购物车”中但尚未付款。
没有比今天在 Stripe 上自己构建大部分内容更好的选择了。
评论