sevDesk Integration
Buchhaltungs-Anbindung an sevDesk
sevDesk Integration
Uebersicht
Die sevDesk-Integration verbindet Ihr Kurs-Booking-System mit der sevDesk-Buchhaltung.
Pfad: WordPress-Admin → Kurs-Booking → Einstellungen → sevDesk
Tab-Struktur
Die sevDesk-Einstellungen sind in 4 Unter-Tabs organisiert:
| Tab | Inhalt | Dokumentation |
|---|---|---|
| Verbindung | API-Token, Verbindungstest, Test-Modus | Diese Seite |
| Rechnungen | Nummernkreis, Kopf-/Fusstext, Templates | Diese Seite |
| Kontakte | Feld-Mapping fuer Kontaktdaten | Kontakt-Mapping |
| Dienstleistungen | Produkt-Sync, Varianten-Mapping | Diese Seite |
Zusaetzlich: Metabox im Kurs-Editor
Neben den Einstellungen gibt es eine Metabox direkt im Kurs-Editor:
| Ort | Funktion |
|---|---|
| Kurse → [Kurs bearbeiten] | Metabox "sevDesk Dienstleistungs-Zuordnung" |
Dort koennen Sie pro Kurs manuell festlegen, welche Variante welcher sevDesk-Dienstleistung zugeordnet wird. Details siehe Abschnitt "Manuelles Mapping im Kurs-Editor" weiter unten.
Tab: Verbindung
API-Token einrichten
- API-Token erstellen in sevDesk unter Einstellungen → API
- Token einfuegen in das Feld "API-Token"
- Verbindung testen mit dem Test-Button
Test-Modus
| Option | Beschreibung |
|---|---|
| Aktiviert | Rechnungen werden erstellt aber NICHT an sevDesk gesendet (nur lokal gespeichert) |
| Deaktiviert | Rechnungen werden normal in sevDesk erstellt und finalisiert |
Hinweis: Ab Sprint 36 werden alle Rechnungen automatisch finalisiert. Der Test-Modus verhindert den Versand an sevDesk komplett - nicht nur die Finalisierung.
Tab: Rechnungen
Automatische Synchronisation
| Funktion | Beschreibung |
|---|---|
| Kontakte | Teilnehmer werden als sevDesk-Kontakte angelegt |
| Rechnungen | Buchungen werden als Rechnungen uebertragen |
| Positionen | Kursdetails als Rechnungspositionen |
Tab: Kontakte (Feld-Mapping)
Ausfuehrliche Dokumentation: Kontakt-Feld-Mapping
Default-Land (Sprint 45)
Legen Sie fest, welches Land standardmaessig verwendet wird, wenn kein Land-Feld im Buchungsformular vorhanden ist.
Pfad: Kurs-Booking → Einstellungen → sevDesk → Kontakte → Standard-Land
| Option | sevDesk-ID | Beschreibung |
|---|---|---|
| Deutschland | 1 | Standard |
| Oesterreich | 2 | - |
| Schweiz | 3 | - |
| Belgien | 10 | - |
| Frankreich | 17 | - |
| Italien | 19 | - |
| Niederlande | 36 | - |
| Polen | 45 | - |
| Tschechien | 49 | - |
| Luxemburg | 56 | - |
| Liechtenstein | 183 | - |
Hinweis: Das Default-Land wird verwendet, wenn im Buchungsformular kein "Land"-Feld aktiviert ist.
Land-Feld im Buchungsformular (Sprint 45)
Falls Sie Kunden aus verschiedenen Laendern haben, koennen Sie das Land-Feld im Feld-Editor aktivieren:
- WordPress-Admin → Kurs-Booking → Einstellungen → Buchungsfelder
- Suchen Sie das Feld "Land" (inaktiv, Basis-Feld)
- Klicken Sie auf Bearbeiten und aktivieren Sie das Feld
- Speichern
| Eigenschaft | Wert |
|---|---|
| Feld-Typ | Select (Dropdown) |
| Optionen | Deutschland, Oesterreich, Schweiz |
| Kategorie | Adresse |
| Standard | Inaktiv (Basis-Feld) |
Tipp: Wenn das Land-Feld inaktiv bleibt, wird automatisch das Default-Land aus den sevDesk-Einstellungen verwendet.
Kurzuebersicht
Ordnen Sie Buchungsfelder den sevDesk-Kontaktfeldern zu:
| Buchungsfeld | → | sevDesk-Feld |
|---|---|---|
| Telefon | → | phone |
| Mobil | → | mobile |
| Strasse | → | street |
| PLZ | → | zip |
| Ort | → | city |
Features: - Auto-Erkennung basierend auf Feldnamen - 16 sevDesk-Felder verfuegbar - Statistik-Anzeige (gemappt/Vorschlaege/ohne)
Tab: Dienstleistungen
Synchronisieren Sie Kurs-Varianten mit sevDesk-Dienstleistungen.
Details siehe Abschnitt "Dienstleistungen-Synchronisation" weiter unten.
Kontakt-Feld-Mapping (Legacy)
Ordnen Sie Ihre benutzerdefinierten Buchungsfelder den sevDesk-Kontaktfeldern zu.
Einstellung: Kurs-Booking > Einstellungen > Buchungsfelder > [Feld bearbeiten] > sevDesk Kontakt-Feld
Verfuegbare sevDesk-Felder
| sevDesk-Feld | Beschreibung |
|---|---|
| Anrede (m/w) | Herr/Frau (sevDesk: m/f) |
| Titel | Akademischer Titel (Dr., Prof.) |
| Vorname | Vorname des Kontakts |
| Nachname | Nachname des Kontakts |
| Namenszusatz | z.B. "von", "van" |
| Organisation/Firma | Firmenname |
| Position | Beruf/Position in der Firma |
| Beschreibung | Freitext-Notizen zum Kontakt |
| USt-IdNr. | Umsatzsteuer-ID fuer B2B |
| Telefon | Telefonnummer |
| Mobil | Mobilnummer |
| Fax | Faxnummer |
| Strasse | Strasse und Hausnummer |
| PLZ | Postleitzahl |
| Ort | Stadt |
| Land | Land |
Anwendungsbeispiel
- Sie haben ein benutzerdefiniertes Feld "Firma" im Buchungsformular
- Oeffnen Sie die Feldeinstellungen
- Waehlen Sie bei "sevDesk Kontakt-Feld" → Organisation/Firma
- Bei jeder Buchung wird die Firma automatisch im sevDesk-Kontakt gespeichert
Hinweise
- Automatische Namenserkennung: Wenn kein explizites Vorname/Nachname-Mapping vorhanden ist, wird das Namensfeld automatisch aufgeteilt
- Legacy-Felder: Bekannte Feldnamen (anrede, adresse, plz, ort) werden weiterhin automatisch erkannt
- Mehrfach-Mapping: Ein sevDesk-Feld kann nur einem Buchungsfeld zugeordnet werden
Einstellungen
| Option | Beschreibung |
|---|---|
| Auto-Sync | Automatische Uebertragung bei neuer Buchung |
| Rechnungsstatus | Entwurf oder Finalisiert |
| Zahlungsziel | Tage bis Faelligkeit - Global oder pro Kurs (Standard: 14) |
| Waehrung | EUR, CHF, GBP oder USD |
| Kundenreferenz | Template mit Platzhaltern (z.B. {buchungs_nummer}) |
| Rechnungsposition Text | Template fuer die Beschreibung der Rechnungsposition |
Rechnungsposition Text (Beschreibung)
Definiert, wie die Position auf der sevDesk-Rechnung beschrieben wird.
Einstellung: Kurs-Booking > Einstellungen > sevDesk > Rechnungsposition Text
Verfuegbare Platzhalter
| Platzhalter | Beschreibung | Beispiel |
|---|---|---|
{kurs_name} |
Name des Kurses | Hundetraining Basis |
{buchungs_nummer} |
Buchungsnummer | WW-2025-0001 |
{datum} |
Kursdatum | 15.03.2025 |
{tickets} |
Anzahl Tickets | 2 |
{variante} |
Ticketname/Variante | Erwachsene |
{produktart} |
Produktart mit Kuerzel | A) Praesenz-Kurs |
{produktart_name} |
Nur Produktart-Name | Praesenz-Kurs |
Beispiel-Templates
| Template | Ergebnis |
|---|---|
{kurs_name} ({buchungs_nummer}) |
Hundetraining (WW-2025-0001) |
{buchungs_nummer} - {kurs_name} |
WW-2025-0001 - Hundetraining |
{kurs_name} am {datum} |
Hundetraining am 15.03.2025 |
{kurs_name} - {variante} |
Hundetraining - Erwachsene |
Varianten-Verhalten
Wenn {variante} NICHT im Template verwendet wird:
- Der Variantenname wird automatisch angehaengt
- Aber nur, wenn er sich vom Kursnamen unterscheidet
Beispiel ohne {variante}:
- Template: {kurs_name} ({buchungs_nummer})
- Kurs: "Hundetraining", Variante: "Erwachsene"
- Ergebnis: Hundetraining (WW-2025-0001) - Erwachsene
- Kurs: "Individualtraining I", Variante: "Individualtraining I"
- Ergebnis:
Individualtraining I (WW-2025-0001)(kein Anhang, da identisch)
Empfehlung
Fuer die meisten Faelle empfohlen:
{kurs_name} ({buchungs_nummer})
Ergibt z.B.: Hundetraining Basis (WW-2025-0001) - Erwachsene
Rechnungs-Kopftext
Der Kopftext erscheint oben auf der sevDesk-Rechnung.
Einstellung: Kurs-Booking > Einstellungen > sevDesk > Rechnungs-Kopftext
Standard-Template
Vielen Dank fuer Ihre Buchung!
Buchungsnummer: {buchungs_nummer}
Veranstaltung: {kurs_name}
Datum: {datum}
Verfuegbare Platzhalter
| Platzhalter | Beschreibung |
|---|---|
{buchungs_nummer} |
Nur die Buchungsnummer (z.B. BK-2025-0001) |
{kurs_name} |
Name des Kurses |
{datum} |
Kursdatum (TT.MM.JJJJ) |
{kunde_name} |
Name des Kunden |
{kunde_email} |
E-Mail des Kunden |
Beispiel-Ergebnis
Vielen Dank fuer Ihre Buchung!
Buchungsnummer: BK-2025-0013
Veranstaltung: Individualtraining I
Datum: 20.01.2025
Rechnungs-Fusstext
Der Fusstext erscheint unten auf der sevDesk-Rechnung.
Einstellung: Kurs-Booking > Einstellungen > sevDesk > Rechnungs-Fusstext
Standard-Template
Bitte ueberweisen Sie den Betrag innerhalb von 14 Tagen auf folgendes Konto:
Bank: {bank_name}
IBAN: {bank_iban}
BIC: {bank_bic}
Kontoinhaber: {bank_inhaber}
Verfuegbare Platzhalter
| Platzhalter | Beschreibung |
|---|---|
{bank_name} |
Name der Bank |
{bank_iban} |
IBAN |
{bank_bic} |
BIC |
{bank_inhaber} |
Kontoinhaber |
{firma_name} |
Firmenname |
Kleinunternehmer-Hinweis
Bei aktivierter Kleinunternehmer-Regelung wird automatisch vorangestellt:
"Gemaess § 19 UStG wird keine Umsatzsteuer berechnet."
Rechnungsstatus - Automatisch finalisiert
⚠️ WICHTIG: Einstellung seit Sprint 36 DEAKTIVIERT!
Alle Rechnungen werden AUTOMATISCH finalisiert (Status 200 - Offen).
Die Einstellung "Rechnungs-Status" ist in den sevDesk-Einstellungen nicht mehr waehlbar.
Grund: Die sevDesk API erlaubt nur Status 100 (Entwurf) bei der Erstellung. Um Nummernkonflikte zu vermeiden, werden Rechnungen sofort nach Erstellung via API-Endpoint finalisiert und erhalten ihre Rechnungsnummer.
Warum ist das wichtig?
Problem ohne automatische Finalisierung Konsequenz Rechnung bleibt als Entwurf (keine Nummer) Kunde erstellt manuell Rechnung in sevDesk Wenn Entwurf spaeter finalisiert wird Bekommt andere Nummer als erwartet! Ergebnis Verwirrung, falsche Buchhaltung Die automatische Finalisierung verhindert diese Probleme komplett!
Verhalten (ab Sprint 36)
| Situation | Was passiert |
|---|---|
| Neue Buchung | Rechnung wird erstellt → sofort finalisiert → Nummer reserviert |
| Anzahlungsrechnung | Wird erstellt → sofort finalisiert → Nummer reserviert |
| Restrechnung | Wird erstellt → sofort finalisiert → Nummer reserviert |
| Mahnungsrechnung | Wird erstellt → sofort finalisiert → Nummer reserviert |
Vorteile der automatischen Finalisierung
| Vorteil | Beschreibung |
|---|---|
| Keine vergessenen Entwuerfe | Jede Rechnung ist sofort aktiv |
| Keine Nummernkonflikte | Nummer ist sofort reserviert |
| Einfacherer Workflow | Keine manuelle Freigabe noetig |
| Saubere Buchhaltung | Alle Rechnungen haben von Anfang an eine Nummer |
Hinweis: Korrekturen sind nur noch ueber Stornorechnung moeglich. Pruefen Sie daher die Buchungsdaten VOR der Bestaetigung!
Rechnungsnummern konfigurieren
Wichtig: Die Rechnungsnummern werden direkt in sevDesk verwaltet - nicht im Plugin!
Einrichtung in sevDesk
- Melden Sie sich bei sevDesk an
- Gehen Sie zu Einstellungen > Nummernkreise > Rechnungen
- Konfigurieren Sie:
- Praefix: z.B.
RE- - Format: z.B.
{PRAEFIX}{JAHR}-{NUMMER} - Startnummer: z.B.
1
Empfohlenes Format
Fuer automatischen Jahreswechsel ohne manuelles Zuruecksetzen:
RE-2025-0001
RE-2025-0002
...
RE-2026-0001 (automatisch neues Jahr)
Jahreswechsel
| Option | Beschreibung |
|---|---|
| Mit Jahreszahl im Format | Kein manuelles Zuruecksetzen noetig (empfohlen) |
| Ohne Jahreszahl | Am 01.01. manuell in sevDesk auf 1 zuruecksetzen |
Tipp: Das Format mit Jahreszahl ist zuverlaessiger und wird von den meisten Steuerberatern empfohlen.
Teilrechnungen / Anzahlungen
Bei Buchungen mit Anzahlung werden zwei Rechnungen erstellt:
- Anzahlungsrechnung - Sofort bei Buchung
- Restrechnung - Bei Kursabschluss oder manuell
Wichtig: sevDesk Teilrechnung-Erkennung
sevDesk erkennt Rechnungen automatisch als Teilrechnung, wenn im Betreff eines der folgenden Begriffe vorkommt:
| Begriff im Betreff | sevDesk Buchungsart |
|---|---|
| Anzahlung | Teilzahlung ✅ |
| Teilzahlung | Teilzahlung ✅ |
Hinweis: Das Plugin verwendet "Anzahlung" im Rechnungs-Betreff. sevDesk erkennt dies automatisch und bucht die Zahlung als Teilzahlung. Der Buchungstag der Transaktion liegt vor dem Lieferdatum.
E-Rechnung (ZUGFeRD)
Ab 2025 Pflicht fuer B2B in Deutschland. Aktivieren Sie E-Rechnungen im ZUGFeRD-Format:
- Gehen Sie zu Kurse > Einstellungen > sevDesk
- Aktivieren Sie "E-Rechnungen im ZUGFeRD-Format erstellen"
Die PDF-Rechnung sieht normal aus, enthaelt aber eingebettetes XML fuer automatische Verarbeitung.
Voraussetzungen in sevDesk: - Vollstaendige Firmenadresse - IBAN und Bank hinterlegt - Steuernummer oder USt-IdNr.
Ausfuehrliche Dokumentation: E-Rechnung (ZUGFeRD/XRechnung)
Dienstleistungen-Synchronisation
Synchronisieren Sie Ihre Kurs-Varianten mit sevDesk-Dienstleistungen fuer eine bessere Buchhaltung und Auswertungen.
⚠️ WICHTIG: "Dienstleistungen verwenden" muss aktiviert sein!
Problem: Dienstleistungen werden nicht in sevDesk angelegt?
Loesung: Die Option "Dienstleistungen in Rechnungen verwenden" muss aktiviert sein!
Pfad: WordPress-Admin → Kurs-Booking → Einstellungen → sevDesk → Dienstleistungen-Synchronisation → ☑️ Dienstleistungen in Rechnungen verwenden
Ohne diese Option werden KEINE Dienstleistungen in sevDesk erstellt, auch wenn Auto-Sync aktiviert ist!
Warum Dienstleistungen verwenden?
| Vorteil | Beschreibung |
|---|---|
| Einheitliche Dienstleistungsliste | Alle Kurs-Varianten als Dienstleistungen in sevDesk |
| Auswertungen | Bessere Umsatzanalyse pro Kurs/Dienstleistung in sevDesk |
| Konsistenz | Gleiche Dienstleistungs-Referenz in allen Rechnungen |
| Buchhaltung | Saubere Zuordnung fuer den Steuerberater |
Einrichtung
- Kurs-Booking > Einstellungen > sevDesk oeffnen
- Zum Abschnitt "Dienstleistungen-Synchronisation" scrollen
- "Dienstleistungen verwenden" aktivieren ← PFLICHT!
- "Auto-Sync" aktivieren (empfohlen)
- Kategorie auf "Dienstleistung" setzen (empfohlen)
- Speichern
Einstellungen
| Option | Beschreibung |
|---|---|
| Dienstleistungen verwenden | PFLICHT! Verknuepfte sevDesk-Dienstleistungen in Rechnungspositionen referenzieren |
| Auto-Sync | Varianten automatisch synchronisieren beim Kurs-Speichern |
| Kategorie | sevDesk-Kategorie fuer neue Dienstleistungen (Dropdown mit Refresh-Button) |
Kategorie-Dropdown (Sprint 14)
Das Kategorie-Dropdown laedt die verfuegbaren Kategorien direkt aus Ihrem sevDesk-Konto:
- Automatisch geladen: Kategorien werden bei Seitenaufruf aus sevDesk geholt
- Refresh-Button: Klicken Sie auf ↻ um neue Kategorien zu laden
- Cache: Kategorien werden 1 Stunde gecached fuer schnellere Ladezeiten
- Optional: "— Keine Kategorie —" wenn Sie keine Kategorisierung benoetigen
Tipp: Erstellen Sie Kategorien direkt in sevDesk unter Einstellungen → Kategorien → Dienstleistungen. Diese erscheinen dann automatisch im Dropdown.
Mapping anzeigen
Klicken Sie auf "Mapping anzeigen" um den aktuellen Status aller Kursvarianten zu sehen:
[Mapping anzeigen]
✅ 5 verknuepft | ❌ 46 nicht verknuepft
┌────────────────────┬──────────────┬─────────┬─────────────────────┬──────────┐
│ Kurs │ Variante │ Preis │ sevDesk Dienstl. │ Status │
├────────────────────┼──────────────┼─────────┼─────────────────────┼──────────┤
│ Reitferien │ Erwachsene │ 890 € │ KB-RO-12345 │ ✅ │
│ Wochenendkurs │ Standard │ 180 € │ — │ ❌ │
└────────────────────┴──────────────┴─────────┴─────────────────────┴──────────┘
Status-Bedeutung
| Status | Bedeutung |
|---|---|
| ✅ Manuell | Manuell zugeordnet im Kurs-Editor (hoechste Prioritaet) |
| ✅ Auto-Sync | Automatisch verknuepft ueber Bulk-Sync |
| ⚠️ Pruefen | Mapping vorhanden, aber Dienstleistung in sevDesk nicht gefunden |
| ❌ Nicht zugeordnet | Keine Verknuepfung - wird bei naechster Buchung automatisch erstellt |
Hinweis: Nicht verknuepfte Varianten (❌) werden bei der naechsten Buchung automatisch als Dienstleistung in sevDesk angelegt.
Manuelles Mapping im Kurs-Editor (Sprint 13)
Seit Version 1.5.0 koennen Sie jede Kurs-Variante manuell einer bestehenden sevDesk-Dienstleistung zuordnen.
Pfad: WordPress-Admin → Kurse → [Kurs bearbeiten] → Metabox "sevDesk Dienstleistungs-Zuordnung"
Muss ich etwas tun?
Kurze Antwort: Nein! Das manuelle Mapping ist ein optionales Feature fuer fortgeschrittene Nutzer.
| Ihre Situation | Was Sie tun muessen |
|---|---|
| Neu bei sevDesk | ✅ Nichts - Auto-Sync erledigt alles automatisch |
| Keine bestehenden Dienstleistungen | ✅ Nichts - werden automatisch erstellt |
| Namen sollen 1:1 uebernommen werden | ✅ Nichts - Auto-Sync macht genau das |
| Bestehende sevDesk-Struktur vorhanden | ⚠️ Manuelles Mapping empfohlen |
| Unterschiedliche Namen gewuenscht | ⚠️ Manuelles Mapping noetig |
Beispiel 1: Neue Nutzerin (Standard-Fall)
Situation: Melanie startet neu mit sevDesk und hat noch keine Dienstleistungen angelegt.
Melanie erstellt in WordPress:
└── Kurs: "Reitferien Osterferien"
├── Variante: "Erwachsene" (890 €)
└── Variante: "Kinder" (690 €)
Was passiert bei der ersten Buchung?
└── sevDesk erstellt AUTOMATISCH:
├── Dienstleistung: "Reitferien Osterferien - Erwachsene" (890 €)
└── Dienstleistung: "Reitferien Osterferien - Kinder" (690 €)
→ Melanie muss NICHTS tun! ✅
Beispiel 2: Bestehende sevDesk-Struktur
Situation: Melanie nutzt sevDesk seit Jahren und hat bereits Dienstleistungen angelegt.
In sevDesk existieren bereits:
├── "Einzelunterricht 60min" (verwendet seit 2020)
├── "Einzelunterricht 90min"
├── "Gruppenunterricht 2-4 Personen"
└── "Reitferien pro Woche"
Melanie erstellt neuen Kurs in WordPress:
└── "Schnupperstunde fuer Anfaenger" (schoener Marketing-Name)
└── Variante: "60 Minuten" (89 €)
OHNE manuelles Mapping:
└── sevDesk erstellt NEUE Dienstleistung:
└── "Schnupperstunde fuer Anfaenger - 60 Minuten" ❌
→ Problem: Duplikat! Melanie hat jetzt 2 aehnliche Dienstleistungen
MIT manuellem Mapping:
└── Melanie waehlt im Kurs-Editor:
└── Dropdown: "Einzelunterricht 60min" auswaehlen ✅
→ Ergebnis: Rechnung nutzt die bestehende Dienstleistung
→ Keine Duplikate, saubere Buchhaltung
Beispiel 3: Marketing-Namen vs. Buchhaltungs-Namen
Situation: Auf der Website sollen ansprechende Namen stehen, in sevDesk neutrale.
Website (fuer Kunden): sevDesk (fuer Steuerberater):
───────────────────────────────── ─────────────────────────────
"Traumhafte Reitferien "Reitferien 1 Woche"
im Fruehlingserwachen"
"Entspanntes Wochenende "Wochenend-Workshop"
mit Pferden"
"Schnupperstunde fuer "Einzelunterricht 60min"
neugierige Anfaenger"
→ Manuelles Mapping verbindet beides!
Marketing-Name auf Website ↔ Buchhaltungs-Name in sevDesk
So funktioniert das manuelle Mapping
- Kurs bearbeiten in WordPress
- Nach unten scrollen zur Metabox "sevDesk Dienstleistungs-Zuordnung"
- Pro Variante ein Dropdown mit allen sevDesk-Dienstleistungen
- Entweder:
- "-- Automatisch --" lassen → Auto-Sync wird verwendet
- Bestehende Dienstleistung auswaehlen → wird bei Rechnungen verwendet
- Kurs speichern
┌─────────────────────────────────────────────────────────────────┐
│ sevDesk Dienstleistungs-Zuordnung │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Variante Preis sevDesk-Dienstleistung Status │
│ ─────────────────────────────────────────────────────────────── │
│ Erwachsene 890 € [-- Automatisch -- ▼] Auto-Sync │
│ Kinder 690 € [Reitferien 1 Woche ▼] Manuell ✅ │
│ │
│ Prioritaet: 1. Manuell → 2. Auto-Sync → 3. Auto-Erstellung │
└─────────────────────────────────────────────────────────────────┘
Wann welche Option?
| Situation | Empfehlung |
|---|---|
| Gerade erst mit sevDesk angefangen | Auto-Sync - einfach und unkompliziert |
| Bestehende Dienstleistungen in sevDesk | Manuell zuordnen - keine Duplikate |
| Steuerberater moechte einheitliche Namen | Manuell zuordnen |
| Marketing-Namen auf Website gewuenscht | Manuell zuordnen |
| Alles soll automatisch laufen | Auto-Sync aktivieren und vergessen |
Vorteile des manuellen Mappings
| Vorteil | Beschreibung |
|---|---|
| Keine Duplikate | Nicht "Reitstunde" und "Reitstunde - Standard" nebeneinander |
| Bessere Auswertungen | Aehnliche Leistungen unter einer Dienstleistung zusammenfassen |
| Steuerberater-freundlich | Konsistente Bezeichnungen unabhaengig von Marketing-Aenderungen |
| Flexibilitaet | Namen auf der Website aendern ohne sevDesk zu beeinflussen |
Prioritaet bei der Rechnungserstellung
Bei der Erstellung einer sevDesk-Rechnung wird in dieser Reihenfolge gesucht:
1. Manuelles Mapping → Hat der Kurs eine manuelle Zuordnung im Editor?
↓ (falls nein)
2. Auto-Sync Mapping → Wurde die Variante per Bulk-Sync verknuepft?
↓ (falls nein)
3. Auto-Erstellung → Neue Dienstleistung automatisch anlegen
Manuelles Mapping hat immer Vorrang! Das bedeutet: Wenn Sie eine Variante manuell zuordnen, wird diese Zuordnung verwendet - auch wenn ein Auto-Sync-Mapping existiert.
Funktionsweise
Kurs: "Reitferien Osterferien"
├── Variante: "Erwachsene" (890,00 €)
│ └── sevDesk-Dienstleistung: "Reitferien Osterferien - Erwachsene"
│ ├── Artikelnr: KB-RO-12345
│ └── Preis: 890,00 €
│
└── Variante: "Kinder" (690,00 €)
└── sevDesk-Dienstleistung: "Reitferien Osterferien - Kinder"
├── Artikelnr: KB-ROK-12346
└── Preis: 690,00 €
Rechnungspositionen
Ohne Dienstleistungs-Verknuepfung (Standard):
Position: Reitferien Osterferien (BK-2025-0001) - Erwachsene
Preis: 890,00 €
Mit Dienstleistungs-Verknuepfung:
Position: Reitferien Osterferien (BK-2025-0001) - Erwachsene
Dienstleistung: Reitferien Osterferien - Erwachsene (KB-RO-12345)
Preis: 890,00 €
Der Unterschied: In sevDesk wird die Position mit der Dienstleistung verknuepft, was Auswertungen und die Buchhaltung verbessert.
Technische Details
| Aspekt | Wert |
|---|---|
| API-Endpoint | /Part (GET, POST, PUT) |
| Typ | Dienstleistung (stockEnabled: '0') |
| Status | 100 = Aktiv, 50 = Inaktiv |
| Mapping | In WordPress-Option gespeichert |
| Cache | 1 Stunde (automatische Aktualisierung) |
| Modul-Klasse | Kurs_Booking_SevDesk_Parts |
sevDesk Part-Status
| Status-Code | Bedeutung | Sichtbar im Inventar? |
|---|---|---|
| 100 | Aktiv | ✅ Ja |
| 50 | Inaktiv/Deaktiviert | ❌ Nein (nur mit Filter) |
Wichtig: Die Standard-Inventaransicht in sevDesk zeigt nur aktive Parts (Status 100). Inaktive Parts (Status 50) werden ausgeblendet und sind nur ueber die API mit explizitem Status-Filter abrufbar.
Hinweise
- Kein Loeschen: sevDesk-Dienstleistungen koennen ueber die API nicht geloescht werden
- Preise: Bei Preis-Aenderungen in WordPress werden verknuepfte Dienstleistungen aktualisiert
- Neue Varianten: Bei Auto-Sync werden neue Varianten automatisch als Dienstleistungen angelegt
- Bestehende Buchungen: Die Dienstleistungs-Verknuepfung gilt nur fuer neue Rechnungen
- stockEnabled: Muss als String
'0'(nicht Boolean) an die API gesendet werden
Kostenlose Kurse (Preis = 0)
Bei kostenlosen Kursen wird keine sevDesk-Rechnung erstellt - eine Rechnung ueber 0,00 € macht keinen Sinn.
Buchungsablauf bei kostenlosen Kursen
Buchung: Kurs "Schnupperstunde" (kostenlos, 10 Plaetze)
│
├── 1. Formular absenden (Ticket: 1x @ 0,00 €)
│ → Platz wird reserviert (Status: pending)
│
├── 2. Double-Opt-In E-Mail
│ → Schuetzt vor Fake-Buchungen
│ → §312i BGB: Eingangsbestaetigung Pflicht
│
├── 3. Kunde klickt Bestaetigungslink
│ → Buchung bestaetigt, Platz fest gebucht
│
├── 4. Buchungsbestaetigungs-E-Mail
│ → Mit Kursdetails, ohne Zahlungsinfos
│
└── 5. sevDesk Rechnung
→ WIRD UEBERSPRUNGEN (total_price = 0)
Warum Double-Opt-In auch bei kostenlosen Kursen?
| Problem ohne Double-Opt-In | Auswirkung |
|---|---|
| Jemand bucht mit fremder E-Mail | Platz blockiert, echter Kunde bekommt ihn nicht |
| Spam-Bot fuellt Formular aus | Alle Plaetze in Sekunden weg |
| Tippfehler in E-Mail | Kunde bekommt keine Bestaetigung, Platz trotzdem weg |
Rechtlich: Double-Opt-In ist fuer Buchungen nicht vorgeschrieben (nur fuer Newsletter). Die Eingangsbestaetigung gemaess §312i BGB ist jedoch Pflicht - diese wird durch die Double-Opt-In E-Mail erfuellt.
Was wird bei kostenlosen Kursen erstellt?
| Element | Wird erstellt? |
|---|---|
| Buchung in WordPress | ✅ Ja |
| Kontakt in sevDesk | ✅ Ja (fuer spaetere Buchungen) |
| Rechnung in sevDesk | ❌ Nein |
| Buchungsbestaetigung (E-Mail) | ✅ Ja |
| PDF-Bestaetigung | ✅ Ja |
Button-Text bei kostenlosen Kursen
In der Kurs-Card-Anzeige wird bei kostenlosen Kursen automatisch der passende Button-Text angezeigt:
| Preis | Button-Text |
|---|---|
| > 0 € | "Kostenpflichtig buchen" |
| = 0 € | "Jetzt buchen" |
| Ausverkauft | "Details ansehen" |
Manuelle Rechnungserstellung
Wenn Sie versuchen, fuer eine kostenlose Buchung manuell eine Rechnung zu erstellen, erscheint die Meldung:
"Kostenlose Buchung - keine Rechnung erforderlich."
Fehlende Rechnungen nachtraeglich erstellen
Wenn Buchungen existieren, fuer die noch keine sevDesk-Rechnung erstellt wurde (z.B. weil sevDesk erst spaeter konfiguriert wurde), koennen diese nachtraeglich erstellt werden.
Einzelne Buchung
- WordPress-Admin → Buchungen → [Buchung oeffnen]
- Im Bereich "sevDesk" auf "Rechnung erstellen" klicken
- Die Rechnung wird in sevDesk angelegt
Mehrere Buchungen (Bulk-Action)
- WordPress-Admin → Buchungen
- Mehrere Buchungen per Checkbox auswaehlen
- Im Dropdown "sevDesk Rechnungen erstellen" waehlen
- "Anwenden" klicken
Verarbeitung: - Buchungen MIT vorhandener Rechnung → werden uebersprungen - Buchungen OHNE Status "Bestaetigt" → werden uebersprungen - Buchungen ohne E-Mail → Fehler wird gespeichert
Nach Abschluss: - Anzahl erstellter Rechnungen - Anzahl uebersprungener Buchungen - Anzahl Fehler (falls vorhanden)
Tipp: Pruefen Sie vor der Bulk-Aktion, dass alle Buchungen den Status "Bestaetigt" haben und eine E-Mail-Adresse enthalten.
Troubleshooting
Dienstleistungen nicht im sevDesk Inventar sichtbar
Problem: Die erstellten Dienstleistungen erscheinen nicht unter https://my.sevdesk.de/admin/inventory/
Moegliche Ursachen:
| Ursache | Loesung |
|---|---|
| Part hat Status 50 (Inaktiv) | sevDesk zeigt nur aktive Parts (Status 100) |
| "Dienstleistungen verwenden" nicht aktiviert | Option in Einstellungen → sevDesk aktivieren |
| Part wurde mit falschen Parametern erstellt | Plugin aktualisieren (Fix in Version 2.8+) |
Loesung bei inaktiven Parts:
Die Dienstleistung wurde moeglicherweise mit Status 50 (Inaktiv) erstellt. Um sie sichtbar zu machen:
- In sevDesk: Inventar → Filter → "Inaktive anzeigen" aktivieren
- Oder via API: Status auf 100 setzen
PUT /api/v1/Part/{part_id}
{"status": "100"}
Mapping vorhanden aber Dienstleistung nicht gefunden
Problem: WordPress zeigt "⚠️ Pruefen" - Mapping existiert, aber sevDesk-Part nicht gefunden.
Moegliche Ursachen:
- Part wurde in sevDesk manuell geloescht
- Part wurde archiviert (Status 50)
- API-Verbindungsproblem
Loesung: Kurs erneut speichern bei aktiviertem Auto-Sync. Eine neue Dienstleistung wird automatisch erstellt.
Umlaute werden falsch uebertragen (ae, oe, ue statt ä, ö, ü)
Problem: Namen wie "Müller" erscheinen in sevDesk als "Mu00fcller" oder "Mueller".
Ursache: Aeltere Plugin-Versionen (vor 1.4.1) hatten einen Bug bei der JSON-Kodierung von Umlauten.
Loesung:
- Plugin aktualisieren auf Version 1.4.1 oder hoeher
- Neue Buchungen werden automatisch korrekt uebertragen
- Bestehende Kontakte in sevDesk manuell korrigieren oder:
- Kontakt in sevDesk loeschen
- Neue Buchung mit korrekten Daten erstellen
Technischer Hintergrund:
Das Problem entstand durch wp_json_encode() ohne JSON_UNESCAPED_UNICODE Flag in Kombination mit WordPress' wp_unslash() Funktion:
"Müller" → JSON: "M\u00fcller" → wp_unslash: "Mu00fcller" ❌
Ab Version 1.4.1:
"Müller" → JSON mit UTF-8: "Müller" → bleibt: "Müller" ✅
Zahlungskommunikation uebernehmen
sevDesk kann optional die gesamte Zahlungskommunikation (Zahlungserinnerungen und Mahnwesen) uebernehmen.
Einstellung aendern
- Gehen Sie zu Kurse → Einstellungen → Erinnerungen
- Unter Zahlungskommunikation waehlen Sie "sevDesk"
- Speichern
Was uebernimmt sevDesk?
| Funktion | Mit sevDesk-Uebernahme | Ohne sevDesk-Uebernahme |
|---|---|---|
| Kurserinnerung | WordPress | WordPress |
| Zahlungserinnerung | sevDesk | WordPress |
| 1. Mahnung | sevDesk | WordPress |
| 2. Mahnung | sevDesk | WordPress |
| 3. Mahnung | sevDesk | WordPress |
sevDesk Mahnwesen konfigurieren
- Oeffnen Sie sevDesk Mahnwesen-Einstellungen
- Konfigurieren Sie:
- Mahnstufen (z.B. nach 7, 14, 21 Tagen)
- Mahngebuehren (z.B. 0 €, 5 €, 10 €)
- Verzugszinsen (p.a.)
- E-Mail-Vorlagen fuer Mahnungen
Vorteile
| Vorteil | Beschreibung |
|---|---|
| Zentrale Buchhaltung | Rechnungen + Mahnungen in einem System |
| Automatisch | sevDesk ueberwacht Zahlungsfristen |
| Professionell | sevDesk-Mahnvorlagen |
| Steuerberater | Alles in sevDesk sichtbar |
Hinweis: Diese Option erscheint nur wenn das sevDesk-Modul aktiviert ist.
Haeufige Fragen (FAQ)
Was passiert wenn ich nicht synchronisiere und jemand bucht?
Kurze Antwort: Alles funktioniert automatisch! Kontakte und Dienstleistungen werden bei Bedarf automatisch erstellt.
Detaillierte Erklaerung
| Element | Was passiert bei einer Buchung? |
|---|---|
| Kontakt | Wird automatisch erstellt via get_or_create_contact_for_booking() |
| Dienstleistung | Wird automatisch erstellt wenn "Dienstleistungen verwenden" aktiviert ist |
| Rechnung | Wird normal erstellt mit allen korrekten Positionen |
Ablauf bei einer Buchung ohne vorherige Synchronisation
Buchung kommt rein: "Reitferien Ostern - Erwachsene" (890 €)
│
├── 1. Kontakt suchen in sevDesk
│ → Suche nach E-Mail-Adresse
│ → Nicht gefunden?
│ → ✅ AUTOMATISCH ERSTELLT mit allen Buchungsdaten
│
├── 2. Dienstleistung suchen in sevDesk
│ → Suche nach Mapping (kurs_id + variante)
│ → Nicht gefunden?
│ → ✅ AUTOMATISCH ERSTELLT (wenn Option aktiviert)
│
└── 3. Rechnung erstellen
→ Mit Kontakt-Referenz
→ Mit Dienstleistungs-Referenz (falls aktiviert)
→ ✅ Fertig!
Was passiert bei einer spaeteren Synchronisation?
Keine Duplikate! Das System erkennt automatisch:
| Situation | Ergebnis |
|---|---|
| Kontakt existiert bereits | Wird uebersprungen (oder aktualisiert falls Daten geaendert) |
| Dienstleistung existiert bereits | Wird uebersprungen (oder Preis aktualisiert) |
Empfehlung
| Ihre Situation | Empfehlung |
|---|---|
| Neues System | Bulk-Sync einmal durchfuehren fuer saubere Ausgangslage |
| Auto-Sync aktiviert | Nichts tun - alles passiert automatisch |
| Nur bei Bedarf | Kein Sync noetig - bei erster Buchung wird alles erstellt |
Zusammenfassung: Sie muessen sich keine Sorgen machen! Ob Sie synchronisieren oder nicht - bei einer Buchung werden alle benoetigten Daten automatisch in sevDesk angelegt. Die Bulk-Synchronisation dient hauptsaechlich dazu, einen sauberen Ueberblick zu haben BEVOR Buchungen eingehen.
Wichtig: Die sevDesk-Integration erfordert einen sevDesk-Account mit API-Zugang.