Sitzplatzbasierte Preisgestaltung mit Add-Ons und Zahlungslinks
Erfahren Sie, wie Sie Add-Ons für sitzplatzbasierte Preisgestaltung erstellen und Zahlungslinks mit benutzerdefinierten Add-On-Mengen mit Dodo Payments generieren.
In diesem Tutorial lernen Sie, wie Sie sitzplatzbasierte Preisgestaltung mit Dodo Payments-Add-Ons implementieren. Wir erstellen ein Abonnementprodukt mit Add-Ons für zusätzliche Sitze und zeigen Ihnen, wie Sie Zahlungslinks mit benutzerdefinierten Add-On-Mengen generieren.
Dieses Tutorial bietet Beispielimplementierungscode für eine Node.js/Express-Anwendung. Sie können diesen Code für Ihr spezifisches Framework (Next.js, React, Vue usw.) anpassen und die Benutzeroberfläche gemäß den Anforderungen Ihrer Anwendung anpassen.
Am Ende dieses Tutorials wissen Sie, wie Sie:
Abonnementprodukte mit sitzplatzbasierter Preisgestaltung erstellen
Add-Ons für zusätzliche Sitze einrichten
Zahlungslinks mit benutzerdefinierten Add-On-Mengen generieren
Checkout-Sitzungen mit dynamischen Sitzplatzanzahlen verwalten
Jetzt müssen wir ein Add-On erstellen, das zusätzliche Sitze darstellt. Dieses Add-On wird an unser Basisabonnement angehängt und ermöglicht es den Kunden, zusätzliche Sitze zu kaufen.
Was wir erstellen: Ein Add-On, das 2 $/Monat pro Sitz kostet und zu jedem Basisabonnement hinzugefügt werden kann.
1
Navigieren Sie zu Add-Ons
Gehen Sie in Ihrem Dodo Payments-Dashboard zum Abschnitt Produkte
Klicken Sie auf die Registerkarte Add-Ons
Klicken Sie auf Add-On erstellen
Dies öffnet das Formular zur Erstellung von Add-Ons.
2
Geben Sie die Add-On-Details ein
Füllen Sie diese Werte für unser Sitz-Add-On aus:Add-On-Name: Additional Team SeatBeschreibung: Add extra team members to your workspace with full access to all featuresPreis: Geben Sie ein → 2.00Währung: Muss mit der Währung Ihres Basisabonnements übereinstimmenSteuerkategorie: Wählen Sie die geeignete Kategorie für Ihr Produkt aus.
3
Speichern Sie Ihr Add-On
Überprüfen Sie alle Ihre Einstellungen:
Name: Zusätzlicher Team-Sitz
Preis: 2,00 $/Monat
Klicken Sie auf Add-On erstellen
Add-On erstellt! Ihr Sitz-Add-On ist jetzt verfügbar, um an Abonnements angehängt zu werden.
Schritt 2: Erstellen Sie Ihr Basisabonnementprodukt
Wir beginnen mit der Erstellung eines Basisabonnementprodukts, das 5 Teammitglieder umfasst. Dies wird die Grundlage unseres Modells für sitzplatzbasierte Preisgestaltung sein.
1
Navigieren Sie zu Produkten
Melden Sie sich in Ihrem Dodo Payments-Dashboard an
Klicken Sie auf Produkte in der linken Seitenleiste
Klicken Sie auf die Schaltfläche Produkt erstellen
Wählen Sie Abonnement als Produkttyp aus
Sie sollten ein Formular sehen, in dem wir unser Basisabonnement konfigurieren.
2
Füllen Sie die Abonnementdetails aus
Jetzt geben wir die spezifischen Details für unseren Basisplan ein:Produktname: MotionBeschreibung: Where your team's documentation lives.Wiederkehrender Preis: Geben Sie ein → 49.00Abrechnungszyklus: Wählen Sie → MonthlyWährung: Wählen Sie Ihre bevorzugte Währung (z. B. USD)
Schritt 4: Generieren Sie Zahlungslinks mit benutzerdefinierten Add-On-Mengen
Jetzt erstellen wir eine Express.js-Anwendung, die Zahlungslinks mit benutzerdefinierten Add-On-Mengen generiert. Hier kommt die wahre Kraft der sitzplatzbasierten Preisgestaltung ins Spiel - Sie können dynamisch Checkout-Sitzungen mit beliebig vielen zusätzlichen Sitzen erstellen.
1
Richten Sie Ihr Projekt ein
Erstellen Sie ein neues Node.js-Projekt und installieren Sie die erforderlichen Abhängigkeiten:
Geben Sie Ihren API-Schlüssel niemals in die Versionskontrolle ein. Fügen Sie .env zu Ihrer .gitignore Datei hinzu.
3
Implementieren Sie die Erstellung der Checkout-Sitzung
Erstellen Sie eine src/server.ts Datei mit folgendem Code:
Kopieren
// 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
Fügen Sie eine einfache Weboberfläche hinzu
Erstellen Sie eine public/index.html Datei für einfaches Testen:
Weboberfläche erstellt! Sie haben jetzt eine einfache Benutzeroberfläche, um verschiedene Sitzplatzmengen zu testen.
5
Statische Dateien bereitstellen
Fügen Sie dies zu Ihrer src/server.ts hinzu, um die HTML-Datei bereitzustellen:
Kopieren
// 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');});
Statische Dateien konfiguriert! Besuchen Sie http://localhost:3000, um Ihre Demoberfläche zu sehen.
Lassen Sie uns unsere Implementierung der sitzplatzbasierten Preisgestaltung testen, um sicherzustellen, dass alles korrekt funktioniert.
1
Starten Sie Ihren Server
Stellen Sie sicher, dass Sie Ihre .env Datei mit dem richtigen API-Schlüssel haben
Aktualisieren Sie die Produkt- und Add-On-IDs in Ihrem Code mit den tatsächlichen Werten aus Ihrem Dodo Payments-Dashboard
Starten Sie Ihren Server:
Kopieren
npm run dev
Ihr Server sollte erfolgreich gestartet werden und “Server läuft auf http://localhost:3000” anzeigen.
2
Testen Sie die Weboberfläche
Öffnen Sie Ihren Browser und gehen Sie zu http://localhost:3000
Sie sollten die Demoberfläche für die sitzplatzbasierte Preisgestaltung sehen
Probieren Sie verschiedene Sitzplatzmengen aus (0, 3, 10 usw.)
Klicken Sie auf “Checkout-Link generieren” für jede Menge
Überprüfen Sie, ob die Checkout-URLs korrekt generiert werden
3
Testen Sie eine Checkout-Sitzung
Generieren Sie einen Checkout-Link mit 3 zusätzlichen Sitzen
Klicken Sie auf die Checkout-URL, um den Dodo Payments-Checkout zu öffnen
Überprüfen Sie, ob der Checkout anzeigt:
Basisplan: 49 $/Monat
Zusätzliche Sitze: 3 × 2 Dollar = 6 $/Monat
Schließen Sie den Testkauf ab
Der Checkout sollte die korrekte Preisaufstellung anzeigen und Ihnen ermöglichen, den Kauf abzuschließen.
4
Hören Sie auf Webhooks und aktualisieren Sie Ihre DB
Um Ihre Datenbank mit Änderungen an Abonnements und Sitzen synchron zu halten, müssen Sie auf Webhook-Ereignisse von Dodo Payments hören. Webhooks benachrichtigen Ihr Backend, wenn ein Kunde den Checkout abschließt, sein Abonnement aktualisiert oder die Sitzplatzanzahl ändert.Befolgen Sie die offizielle Dodo Payments-Webhooks-Anleitung für Schritt-für-Schritt-Anweisungen zum Einrichten von Webhook-Endpunkten und zum Verarbeiten von Ereignissen:
Herzlichen Glückwunsch! Sie haben die sitzplatzbasierte Preisgestaltung implementiert
Sie haben erfolgreich ein System für sitzplatzbasierte Preisgestaltung mit Dodo Payments erstellt! Hier ist, was Sie erreicht haben:
Basisabonnement
Ein Abonnementprodukt mit 5 enthaltenen Sitzen zu 49 $/Monat erstellt
Sitz-Add-Ons
Add-Ons für zusätzliche Sitze zu 2 $/Monat pro Sitz konfiguriert
Checkout
Eine API erstellt, die Checkout-Sitzungen mit benutzerdefinierten Sitzplatzmengen generiert
Weboberfläche
Eine einfache Weboberfläche zum Testen verschiedener Sitzplatzmengen erstellt
Dieses Beispiel zeigt nur eine minimale Implementierung der sitzplatzbasierten Preisgestaltung. Für den produktiven Einsatz sollten Sie robuste Fehlerbehandlung, Authentifizierung, Datenvalidierung, Sicherheitsmaßnahmen hinzufügen und die Logik an die Anforderungen Ihrer Anwendung anpassen.