From b391abfd5c8465fe7d55bee355facec56efa68e2 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Mon, 9 Feb 2026 02:42:15 -0600 Subject: [PATCH] feat(dokploy): add product IDs for monthly and annual subscriptions in Stripe integration - Introduced PRODUCT_MONTHLY_ID and PRODUCT_ANNUAL_ID constants to manage subscription product IDs. - Updated the Stripe API call to fetch only the specified subscription products, enhancing performance and clarity in product management. --- apps/dokploy/server/api/routers/stripe.ts | 8 +++++++- apps/dokploy/server/utils/stripe.ts | 7 +++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/dokploy/server/api/routers/stripe.ts b/apps/dokploy/server/api/routers/stripe.ts index be1e94d4a..412c9e3e8 100644 --- a/apps/dokploy/server/api/routers/stripe.ts +++ b/apps/dokploy/server/api/routers/stripe.ts @@ -7,7 +7,12 @@ import { import { TRPCError } from "@trpc/server"; import Stripe from "stripe"; import { z } from "zod"; -import { getStripeItems, WEBSITE_URL } from "@/server/utils/stripe"; +import { + getStripeItems, + PRODUCT_ANNUAL_ID, + PRODUCT_MONTHLY_ID, + WEBSITE_URL, +} from "@/server/utils/stripe"; import { adminProcedure, createTRPCRouter } from "../trpc"; export const stripeRouter = createTRPCRouter({ @@ -22,6 +27,7 @@ export const stripeRouter = createTRPCRouter({ const products = await stripe.products.list({ expand: ["data.default_price"], active: true, + ids: [PRODUCT_MONTHLY_ID, PRODUCT_ANNUAL_ID], }); if (!stripeCustomerId) { diff --git a/apps/dokploy/server/utils/stripe.ts b/apps/dokploy/server/utils/stripe.ts index 9e3e751a4..8d1aebb29 100644 --- a/apps/dokploy/server/utils/stripe.ts +++ b/apps/dokploy/server/utils/stripe.ts @@ -3,9 +3,12 @@ export const WEBSITE_URL = ? "http://localhost:3000" : process.env.SITE_URL; -const BASE_PRICE_MONTHLY_ID = process.env.BASE_PRICE_MONTHLY_ID!; // $4.00 +export const BASE_PRICE_MONTHLY_ID = process.env.BASE_PRICE_MONTHLY_ID!; // $4.00 -const BASE_ANNUAL_MONTHLY_ID = process.env.BASE_ANNUAL_MONTHLY_ID!; // $7.99 +export const BASE_ANNUAL_MONTHLY_ID = process.env.BASE_ANNUAL_MONTHLY_ID!; // $7.99 + +export const PRODUCT_MONTHLY_ID = process.env.PRODUCT_MONTHLY_ID!; +export const PRODUCT_ANNUAL_ID = process.env.PRODUCT_ANNUAL_ID!; export const getStripeItems = (serverQuantity: number, isAnnual: boolean) => { const items = [];