Tarification basée sur les sièges avec des options supplémentaires et des liens de paiement
Apprenez à créer des options supplémentaires pour la tarification basée sur les sièges et à générer des liens de paiement avec des quantités d’options personnalisées en utilisant Dodo Payments
Dans ce tutoriel, vous apprendrez à mettre en œuvre la tarification basée sur les sièges en utilisant les options supplémentaires de Dodo Payments. Nous allons créer un produit d’abonnement avec des options supplémentaires pour des sièges additionnels et vous montrer comment générer des liens de paiement avec des quantités d’options personnalisées.
Ce tutoriel fournit un code d’implémentation d’exemple pour une application Node.js/Express. Vous pouvez modifier ce code pour votre framework spécifique (Next.js, React, Vue, etc.) et personnaliser l’interface utilisateur selon les besoins de votre application.
À la fin de ce tutoriel, vous saurez comment :
Créer des produits d’abonnement avec une tarification basée sur les sièges
Configurer des options supplémentaires pour des sièges additionnels
Générer des liens de paiement avec des quantités d’options personnalisées
Gérer des sessions de paiement avec des comptes de sièges dynamiques
Étape 1 : Créez votre option supplémentaire pour siège
Nous devons maintenant créer une option supplémentaire qui représente des sièges additionnels. Cette option sera attachée à notre abonnement de base et permettra aux clients d’acheter des sièges supplémentaires.
Ce que nous construisons : Une option supplémentaire qui coûte 2 $/mois par siège et peut être ajoutée à tout abonnement de base.
1
Naviguer vers les options supplémentaires
Dans votre tableau de bord Dodo Payments, restez dans la section Produits
Cliquez sur l’onglet Options supplémentaires
Cliquez sur Créer une option supplémentaire
Cela ouvrira le formulaire de création d’options supplémentaires.
2
Entrer les détails de l'option supplémentaire
Remplissez ces valeurs pour notre option supplémentaire pour siège :Nom de l’option supplémentaire : Additional Team SeatDescription : Add extra team members to your workspace with full access to all featuresPrix : Entrez → 2.00Devise : Doit correspondre à la devise de votre abonnement de baseCatégorie fiscale : Sélectionnez la catégorie appropriée pour votre produit.
3
Enregistrez votre option supplémentaire
Vérifiez tous vos paramètres :
Nom : Siège d’équipe supplémentaire
Prix : 2,00 $/mois
Cliquez sur Créer une option supplémentaire
Option supplémentaire créée ! Votre option supplémentaire pour siège est maintenant disponible pour être attachée aux abonnements.
Étape 2 : Créez votre produit d’abonnement de base
Nous allons commencer par créer un produit d’abonnement de base qui inclut 5 membres d’équipe. Cela sera la base de notre modèle de tarification basé sur les sièges.
1
Naviguer vers les produits
Connectez-vous à votre tableau de bord Dodo Payments
Cliquez sur Produits dans la barre latérale gauche
Cliquez sur le bouton Créer un produit
Sélectionnez Abonnement comme type de produit
Vous devriez voir un formulaire où nous allons configurer notre abonnement de base.
2
Remplir les détails de l'abonnement
Maintenant, nous allons entrer les détails spécifiques pour notre plan de base :Nom du produit : MotionDescription : Where your team's documentation lives.Prix récurrent : Entrez → 49.00Cycle de facturation : Sélectionnez → MonthlyDevise : Sélectionnez votre devise préférée (par exemple, USD)
Étape 3 : Connecter l’option supplémentaire à l’abonnement
Nous devons maintenant associer notre option supplémentaire pour siège avec l’abonnement de base afin que les clients puissent acheter des sièges supplémentaires lors du paiement.
1
Attacher l'option supplémentaire pour siège
Faites défiler vers le bas jusqu’à la section Options supplémentaires
Cliquez sur Ajouter des options supplémentaires
Dans le menu déroulant, sélectionnez votre option supplémentaire pour siège
Confirmez qu’elle apparaît dans la configuration de votre abonnement
2
Enregistrez les modifications de l'abonnement
Vérifiez votre configuration complète de l’abonnement :
Plan de base : 49 $/mois pour 5 sièges
Option supplémentaire : 2 $/mois par siège additionnel
Essai gratuit : 14 jours
Cliquez sur Enregistrer les modifications
Tarification basée sur les sièges configurée ! Les clients peuvent maintenant acheter votre plan de base et ajouter des sièges supplémentaires selon leurs besoins.
Étape 4 : Générer des liens de paiement avec des quantités d’options personnalisées
Créons maintenant une application Express.js qui génère des liens de paiement avec des quantités d’options personnalisées. C’est là que la véritable puissance de la tarification basée sur les sièges entre en jeu - vous pouvez créer dynamiquement des sessions de paiement avec n’importe quel nombre de sièges supplémentaires.
1
Configurez votre projet
Créez un nouveau projet Node.js et installez les dépendances requises :
Ne jamais commettre votre clé API dans le contrôle de version. Ajoutez .env à votre fichier .gitignore.
3
Implémentez la création de session de paiement
Créez un fichier src/server.ts avec le code suivant :
Copier
// Add this new endpoint for dynamic seat quantitiesimport 'dotenv/config';import DodoPayments from 'dodopayments';import express, { Request, Response } from 'express';const app = express();// Initialize the Dodo Payments clientconst client = new DodoPayments({ bearerToken: process.env.DODO_PAYMENTS_API_KEY, environment: 'test_mode'});async function createCheckoutSession(seatCount: number) { try { const session = await client.checkoutSessions.create({ // Products to sell - use IDs from your Dodo Payments dashboard product_cart: [ { product_id: 'pdt_7Rl9OWT2Mz4wwUTKz74iZ', // Replace with your actual product ID quantity: 1, addons: [ { addon_id: 'adn_eKQbNakKrivDpaxmI8wKI', // Replace with your actual addon ID quantity: seatCount } ] } ], // Pre-fill customer information to reduce friction customer: { email: '[email protected]', name: 'Steve Irwin', }, // Where to redirect after successful payment return_url: 'https://example.com/checkout/success', }); // Redirect your customer to this URL to complete payment console.log('Checkout URL:', session.checkout_url); console.log('Session ID:', session.session_id); return session; } catch (error) { console.error('Failed to create checkout session:', error); throw error; }}// Example usage in an Express.js routeapp.post('/create-checkout/:seatCount', async (req: Request, res: Response) => { try { const seatCount = parseInt(req.params.seatCount); const session = await createCheckoutSession(seatCount); res.json({ checkout_url: session.checkout_url }); } catch (error) { res.status(500).json({ error: 'Failed to create checkout session' }); }});// Add this line after your other middlewareapp.use(express.static('public'));// Add this route to serve the demo pageapp.get('/', (req, res) => { res.sendFile(__dirname + '/../public/index.html');});app.listen(3000, () => { console.log('Server is running on port 3000');});
4
Ajoutez une interface web simple
Créez un fichier public/index.html pour des tests faciles :
Interface web créée ! Vous avez maintenant une interface simple pour tester différentes quantités de sièges.
5
Servez des fichiers statiques
Ajoutez ceci à votre src/server.ts pour servir le fichier HTML :
Copier
// Add this line after your other middlewareapp.use(express.static('public'));// Add this route to serve the demo pageapp.get('/', (req, res) => { res.sendFile(__dirname + '/../public/index.html');});
Fichiers statiques configurés ! Visitez http://localhost:3000 pour voir votre interface de démonstration.
Testons notre implémentation de tarification basée sur les sièges pour nous assurer que tout fonctionne correctement.
1
Démarrez votre serveur
Assurez-vous d’avoir votre fichier .env avec la clé API correcte
Mettez à jour les identifiants de produit et d’option dans votre code avec les valeurs réelles de votre tableau de bord Dodo Payments
Démarrez votre serveur :
Copier
npm run dev
Votre serveur devrait démarrer avec succès et afficher “Serveur en cours d’exécution sur http://localhost:3000”
2
Testez l'interface web
Ouvrez votre navigateur et allez à http://localhost:3000
Vous devriez voir l’interface de démonstration de la tarification basée sur les sièges
Essayez différentes quantités de sièges (0, 3, 10, etc.)
Cliquez sur “Générer le lien de paiement” pour chaque quantité
Vérifiez que les URL de paiement sont générées correctement
3
Testez une session de paiement
Générez un lien de paiement avec 3 sièges supplémentaires
Cliquez sur l’URL de paiement pour ouvrir le paiement Dodo Payments
Vérifiez que le paiement affiche :
Plan de base : 49 $/mois
Sièges supplémentaires : 3 × 2 dollars = 6 $/mois
Complétez l’achat de test
Le paiement devrait afficher la répartition des prix correcte et vous permettre de compléter l’achat.
4
Écoutez les webhooks et mettez à jour votre base de données
Pour garder votre base de données synchronisée avec les changements d’abonnement et de sièges, vous devez écouter les événements de webhook de Dodo Payments. Les webhooks notifient votre backend lorsqu’un client termine le paiement, met à jour son abonnement ou change le nombre de sièges.Suivez le guide officiel des webhooks de Dodo Payments pour des instructions étape par étape sur la configuration des points de terminaison de webhook et le traitement des événements :
Félicitations ! Vous avez mis en œuvre la tarification basée sur les sièges
Vous avez réussi à créer un système de tarification basé sur les sièges avec Dodo Payments ! Voici ce que vous avez accompli :
Abonnement de base
Créé un produit d’abonnement avec 5 sièges inclus à 49 $/mois
Options supplémentaires pour sièges
Configuré des options supplémentaires pour des sièges additionnels à 2 $/mois par siège
Paiement
Construit une API qui génère des sessions de paiement avec des quantités de sièges personnalisées
Interface web
Créé une interface web simple pour tester différentes quantités de sièges
Cet exemple démontre seulement une implémentation minimale de la tarification basée sur les sièges. Pour une utilisation en production, vous devriez ajouter une gestion des erreurs robuste, une authentification, une validation des données, des mesures de sécurité et adapter la logique pour répondre aux exigences de votre application.