Stripe error :"You must specify either `product` or `product_data` when creating a price"

Viewed 19

Stripe checkout is throwing the error despite having product, product_data declared in the stripe backend(nodejs).

I don't understand what I'm doing wrong, pls help!

Code.



import express from "express";
import Stripe from "stripe";
import dotenv from "dotenv";
dotenv.config();

const stripeRouter = express.Router();

const stripe = new Stripe(process.env.STRIPE_KEY);

stripeRouter.post("/payment", async (req, res) => {
  const { cartItems, total } = req.body;

  console.log(...cartItems, total);

  try {
    const session = await stripe.checkout.sessions.create({
      submit_type: "pay",
      mode: "payment",
      payment_method_types: ["card"],
      billing_address_collection: "auto",
      shipping_options: [
        { shipping_rate: "shr_1Lkm2USAcQw5wr3Edpx6IHaC" },
        { shipping_rate: "shr_1Lkm3hSAcQw5wr3E2hMHSqQI" },
      ],

      line_items: cartItems.map((item, i) => {
        return {
          price_data: {
            currency: "inr",
            product_data: {
              name: item.name,
            },
            unit_amount: item.price * 100,
          },
          adjustable_quantity: {
            enabled: true,
            minimum: 1,
          },
          quantity: item.cartQuantity,
        };
      }),

      mode: "payment",
      success_url: `http://localhost:4000?success=true`,
      cancel_url: `http://localhost:6000?canceled=true`,
    });
    res.status(200).json(session);
  } catch (error) {
    res.status(500).json({ message: error });
  }
});

export default stripeRouter;



1 Answers
Related