""" Script de setup Stripe : crée les produits et prix dans Stripe Dashboard. Lance avec : python scripts/stripe_setup.py """ import stripe import sys SK = "sk_test_51SkSHkCKXUJE51jnbEtXZ0nKiTHTa8ohDwLH8fZiDVEx6Ze0g5dg4fGJJgX1VgNHvF93GE3HTramT3oQrCaqOxid00OXTcZlsW" stripe.api_key = SK PLANS = [ {"id": "starter", "name": "Wordly Starter", "monthly_eur": 900, "yearly_eur": 8640}, {"id": "pro", "name": "Wordly Pro", "monthly_eur": 1900, "yearly_eur": 18240}, {"id": "business","name": "Wordly Business","monthly_eur": 4900, "yearly_eur": 47040}, ] results = {} for plan in PLANS: print(f"\n>> Creation produit {plan['name']}...") # Search existing product first existing = stripe.Product.search(query=f"name:'{plan['name']}'", limit=1) if existing.data: product = existing.data[0] print(f" Produit existant: {product.id}") else: product = stripe.Product.create( name=plan["name"], metadata={"plan_id": plan["id"]} ) print(f" Produit créé: {product.id}") # Monthly price monthly_prices = stripe.Price.list(product=product.id, active=True, limit=10) monthly_price = None yearly_price = None for p in monthly_prices.data: if p.recurring and p.recurring.interval == "month" and p.unit_amount == plan["monthly_eur"]: monthly_price = p if p.recurring and p.recurring.interval == "year" and p.unit_amount == plan["yearly_eur"]: yearly_price = p if not monthly_price: monthly_price = stripe.Price.create( product=product.id, unit_amount=plan["monthly_eur"], currency="eur", recurring={"interval": "month"}, metadata={"plan_id": plan["id"], "billing": "monthly"} ) print(f" Prix mensuel créé: {monthly_price.id}") else: print(f" Prix mensuel existant: {monthly_price.id}") if not yearly_price: yearly_price = stripe.Price.create( product=product.id, unit_amount=plan["yearly_eur"], currency="eur", recurring={"interval": "year"}, metadata={"plan_id": plan["id"], "billing": "yearly"} ) print(f" Prix annuel créé: {yearly_price.id}") else: print(f" Prix annuel existant: {yearly_price.id}") results[plan["id"]] = { "monthly": monthly_price.id, "yearly": yearly_price.id, } print("\n" + "="*60) print("Variables à ajouter dans .env.production et .env :") print("="*60) for plan_id, ids in results.items(): print(f"STRIPE_PRICE_{plan_id.upper()}_MONTHLY={ids['monthly']}") print(f"STRIPE_PRICE_{plan_id.upper()}_YEARLY={ids['yearly']}") print("="*60)