Skip to main content
Synchronisieren Sie Ihre Dodo Payments-Daten für Analytics, Reporting und Integrationen mit Ihrer eigenen Datenbank. Die Sync-Engine repliziert Zahlungen, Kunden, Abonnements und Lizenzen automatisch nach MongoDB, PostgreSQL, MySQL oder ClickHouse.
Paket: dodo-sync auf npm | Quelle: GitHub

Was können Sie synchronisieren?

Wählen Sie eine beliebige Kombination dieser Entitäten:

Payments

Alle Zahlungstransaktionen, einschließlich einmaliger Zahlungen, Rückerstattungen und Statusaktualisierungen.

Customers

Kundenprofile, Kontaktinformationen und Metadaten.

Subscriptions

Abonnementdaten, Abrechnungszyklen und Statusänderungen.

Licenses

Lizenzschlüssel, Aktivierungen und Statusaktualisierungen.
Geben Sie über den Parameter scopes an, welche Entitäten synchronisiert werden sollen. Jeder Lauf ruft jeden Datensatz in den ausgewählten Bereichen ab und schreibt ihn anhand seiner ID, sodass vorhandene Zeilen direkt aktualisiert und nicht dupliziert werden. In MongoDB werden Lizenzschlüssel nach der Abonnement-ID gespeichert. Daher behält ein Abonnement mit mehreren Lizenzschlüsseln nur einen davon.

Datenbankunterstützung

Dodo Sync unterstützt MongoDB, PostgreSQL, MySQL und ClickHouse. Die Unterstützung für Snowflake und andere Datenbanken, ETL-Pipelines und die Echtzeitsynchronisierung befindet sich in Entwicklung. Um eine neue Datenbankintegration beizusteuern, reichen Sie einen Pull Request im GitHub-Repository ein.

Erste Schritte

Verwenden Sie Dodo Sync für eine schnelle Einrichtung über die CLI oder programmatisch in Ihrem Code, um es in Ihre Anwendung zu integrieren. Beide Methoden bieten dieselbe Funktionalität.

Verwendung der CLI

Installieren Sie die CLI global, um sie von überall ausführen zu können:

Ausführen der CLI

Die CLI unterstützt zwei Modi: interaktiv für eine angeleitete Einrichtung und manuell für eine direkte Konfiguration. Interaktiver Modus: Führen Sie den Befehl ohne Argumente aus, um den Einrichtungsassistenten zu starten.
Manueller Modus: Übergeben Sie die Argumente direkt, um den Assistenten zu überspringen.
Beispiele:

CLI-Argumente

number
erforderlich
Synchronisierungsintervall in Sekunden. Die CLI wird in diesem Intervall kontinuierlich ausgeführt. Für eine einmalige Synchronisierung verwenden Sie .run() in Ihrem Code.
string
erforderlich
Datenbanktyp: "mongodb", "postgres", "mysql" oder "clickhouse".
string
erforderlich
Verbindungs-URI für Ihre Datenbank:
  • MongoDB: mongodb://localhost:27017 oder mongodb+srv://user:pass@cluster.mongodb.net/
  • PostgreSQL: postgresql://user:password@localhost:5432/mydb
  • MySQL: mysql://user:password@localhost:3306/mydb
  • ClickHouse: http://localhost:8123
string
erforderlich
Kommagetrennte Liste der zu synchronisierenden Entitäten: licences, payments, customers, subscriptions. Beispiel: "payments,customers".
string
erforderlich
Ihr Dodo Payments API-Schlüssel aus Developer → API Keys. Verwenden Sie einen Schlüssel aus demselben Modus wie --env.
string
erforderlich
Umgebung: "live_mode" oder "test_mode".
number
Ratenbegrenzung in Anfragen pro Sekunde. Steuert, wie schnell die Sync-Engine API-Anfragen stellt. Der Standardwert ist 10; Werte von 100 oder höher deaktivieren die Drosselung.

Verwendung in Ihrem Code

Integrieren Sie die Synchronisierungsfunktion direkt in Ihre Anwendung. Installieren Sie sie als Abhängigkeit:

Automatische Synchronisierung (intervallbasiert)

Führen Sie die Synchronisierung in regelmäßigen Abständen kontinuierlich aus:
Die Option interval ist erforderlich, wenn .start() verwendet wird. Die Synchronisierung läuft im angegebenen Intervall kontinuierlich, bis der Prozess beendet wird.

Manuelle Synchronisierung

Lösen Sie Synchronisierungsvorgänge bei Bedarf aus, beispielsweise über einen Cron-Job oder einen API-Endpunkt:
Die Option interval ist für die manuelle Synchronisierung nicht erforderlich. Rufen Sie .run() auf, wann immer Sie synchronisieren müssen.

PostgreSQL-Beispiel

MySQL-Beispiel

ClickHouse-Beispiel

Konstruktoroptionen

string
erforderlich
Datenbanktyp: "mongodb", "postgres", "mysql" oder "clickhouse".
string
erforderlich
Verbindungszeichenfolge für Ihre Datenbank:
  • MongoDB: mongodb://localhost:27017 oder mongodb+srv://...
  • PostgreSQL: postgresql://user:password@localhost:5432/mydb
  • MySQL: mysql://user:password@localhost:3306/mydb
  • ClickHouse: http://localhost:8123
string[]
erforderlich
Array der zu synchronisierenden Entitäten: "licences", "payments", "customers", "subscriptions". Fügen Sie eine beliebige Kombination hinzu.
object
erforderlich
Dodo Payments API-Konfiguration. Eine vollständige Übersicht der Optionen finden Sie unter TypeScript SDK types.Erforderliche Eigenschaften:
  • bearerToken: Ihr Dodo Payments API-Schlüssel
  • environment: "test_mode" oder "live_mode"
number
Zeit in Sekunden zwischen automatischen Synchronisierungen. Erforderlich für .start(), optional für .run().
number
Ratenbegrenzung in Anfragen pro Sekunde. Der Standardwert ist 10; Werte von 100 oder höher deaktivieren die Drosselung.

Wichtige Informationen

MongoDB: Auf Ihrem Server wird automatisch eine Datenbank namens dodopayments_sync erstellt. Dieser Datenbankname ist festgelegt und kann nicht geändert werden.PostgreSQL: Tabellen (Subscriptions, Payments, Licenses, Customers) werden in der in Ihrer Verbindungs-URI angegebenen Datenbank erstellt. Die Daten werden als JSONB gespeichert.MySQL: Tabellen (Subscriptions, Payments, Licenses, Customers) werden in der in Ihrer Verbindungs-URI angegebenen Datenbank erstellt. Die Daten werden als JSON gespeichert.ClickHouse: Tabellen (Subscriptions, Payments, Licenses, Customers) werden mit der ReplacingMergeTree-Engine erstellt. Verwenden Sie beim Abfragen das Schlüsselwort FINAL, um deduplizierte Ergebnisse sicherzustellen.

Zusätzliche Ressourcen

GitHub Repository

Quellcode anzeigen, Probleme melden oder Verbesserungen beisteuern

npm Package

Paketdetails und Installationsanweisungen anzeigen
Zuletzt geändert am 26. September 2026