WellNuo/backend/scripts/setup-stripe-products.js
Sergei 5e0b38748b Update Stripe integration, API services, and purchase screens
- Update purchase screens (auth and beneficiary)
- Update Stripe configuration and setup scripts
- Update api.ts services
- Update espProvisioning and sherpaTTS services
- Update verify-otp flow
- Package updates
2026-01-12 21:44:57 -08:00

95 lines
2.7 KiB
JavaScript

/**
* Setup Stripe Products and Prices
* Run once: node scripts/setup-stripe-products.js
*/
require('dotenv').config();
const Stripe = require('stripe');
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
async function setupStripeProducts() {
console.log('Setting up Stripe products and prices...\n');
try {
// 1. Create Starter Kit product
console.log('Creating Starter Kit product...');
const starterKit = await stripe.products.create({
name: 'WellNuo Starter Kit',
description: '2x Motion Sensors + 1x Door Sensor + 1x Hub - Everything you need to start monitoring',
metadata: {
type: 'hardware',
sku: 'KIT-STARTER-001'
}
});
console.log(`✓ Product created: ${starterKit.id}`);
// Create price for Starter Kit ($399 one-time)
const starterKitPrice = await stripe.prices.create({
product: starterKit.id,
unit_amount: 39900, // $399.00
currency: 'usd',
metadata: {
display_name: 'Starter Kit'
}
});
console.log(`✓ Price created: ${starterKitPrice.id} ($399.00)\n`);
// 2. Create Premium Subscription product
console.log('Creating Premium Subscription product...');
const premium = await stripe.products.create({
name: 'WellNuo Premium',
description: 'AI Julia assistant, 90-day activity history, invite up to 5 family members',
metadata: {
type: 'subscription',
tier: 'premium'
}
});
console.log(`✓ Product created: ${premium.id}`);
// Create price for Premium ($9.99/month)
const premiumPrice = await stripe.prices.create({
product: premium.id,
unit_amount: 999, // $9.99
currency: 'usd',
recurring: {
interval: 'month'
},
metadata: {
display_name: 'Premium Monthly'
}
});
console.log(`✓ Price created: ${premiumPrice.id} ($9.99/month)\n`);
// Summary
console.log('='.repeat(50));
console.log('STRIPE SETUP COMPLETE');
console.log('='.repeat(50));
console.log('\nAdd these to your .env file:\n');
console.log(`STRIPE_PRICE_STARTER_KIT=${starterKitPrice.id}`);
console.log(`STRIPE_PRICE_PREMIUM=${premiumPrice.id}`);
console.log(`STRIPE_PRODUCT_STARTER_KIT=${starterKit.id}`);
console.log(`STRIPE_PRODUCT_PREMIUM=${premium.id}`);
console.log('\n');
return {
starterKit: {
productId: starterKit.id,
priceId: starterKitPrice.id
},
premium: {
productId: premium.id,
priceId: premiumPrice.id
}
};
} catch (error) {
console.error('Error setting up Stripe:', error.message);
throw error;
}
}
setupStripeProducts()
.then(() => process.exit(0))
.catch(() => process.exit(1));