如何使用条带访问产品的自定义字段,并使用这些字段为每个字段添加库存限制?

How to access custom fields to a product with stripe and with those fields, add a stock limit to each field?

提问人:Amon Fanticelli 提问时间:8/12/2023 最后编辑:Brian Tompsett - 汤莱恩Amon Fanticelli 更新时间:8/12/2023 访问量:123

问:

我正在使用 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,
    })),
  });
Stripe-Payments next.js JavaScript 异常

评论


答:

0赞 koopajah 8/12/2023 #1

Checkout 的功能旨在让您可以配置 Checkout 以收集所需的其他自定义信息。例如,您可能希望在某人为您的在线聊天机器人付费时收集他们的 Discord 句柄。custom_fields

这意味着,这从来都不是您以这种方式“专业化”您在 Checkout 上销售的产品/价格的一种方式。我不认为你所采取的方法真的有效,即使它看起来符合你的需求。

相反,您需要做的是拥有单独的 Product 和 Price 对象,这些对象可以对您销售的产品的不同版本进行建模,例如,小型、中型或大型的某个 T 恤将是不同的产品。如今,Stripe 并没有真正提供一种对产品之间具有层次结构的“产品目录”进行建模的方法。

同样,Stripe 目前没有任何适合您需求的“库存”功能。这里唯一的解决方案是真正让您跟踪您的整体库存。您还可以跟踪正在进行的交易,其中他们可能将商品放在“购物车”中但尚未付款。

没有比今天在 Stripe 上自己构建大部分内容更好的选择了。

评论

0赞 Amon Fanticelli 8/12/2023
我明白你说的,我没有在我的问题中提到这一点,但我认为 Stripe 会有某种工具可以帮助解决这个问题,因为商店中的产品是由 Stripe 创建的,我认为唯一的解决方案应该是通过我自己的一个 API 创建一个不同的产品,并按照我认为合适的方式进行服装化, 并将这些产品发送到 Stripe
0赞 koopajah 8/12/2023
据我所知,他们没有像你今天所追求的那样的东西。您确实需要构建大部分逻辑,或者为此提供单独的产品,并具有正确的描述和图像等。