Pakete
[pakete] [admin] [billing]
Lizenzpakete sind das Herzstück. Sie definieren Preis, Laufzeit, Funktionsumfang und Produktauswahl pro Kunde.
Für wen
Admins (Anbieter), die ihren Kunden Lizenzen zu unterschiedlichen Konditionen verkaufen wollen.
Paket-Typen
Basis-Paket (package_type='base')
Hauptlizenz. Genau ein Basis-Paket pro Kunde. Bestimmt Grundpreis + Laufzeit.
Add-on-Paket (package_type='addon')
Zusatz-Modul, das mehrere Basis-Pakete erweitern kann. Z.B. "Premium-Support" oder "Erweiterte Druckprofile". Kunde kann mehrere Add-ons gleichzeitig haben.
Schritt für Schritt — Paket anlegen
1. Übersicht öffnen
Einstellungen → Pakete.
2. + Paket
- Name (Pflicht)
- Beschreibung (optional, in Pricing-Sektion sichtbar)
- Paket-Typ: Basis oder Add-on
- Status: aktiv / inaktiv
3. Preise
- Monatliche Gebühr (
monthly_fee, Netto) - Setup-Fee (
setup_fee, einmalig zur Vertragsstart) - Wiederkehrend (
is_recurring, true/false) — wenn false, einmalig - Mindestlaufzeit in Monaten (
min_contract_months, default 1) - Kündigungsfrist in Monaten (
cancellation_notice_months, default 1)
4. Abrechnungsintervalle (für Self-Service-Pakete)
Tab "Intervalle": neben monatlich kannst du Vorauszahlungs-Intervalle von 2 bis 120 Monaten definieren (z.B. quartalsweise, halbjährlich, jährlich, 2 oder 3 Jahre). Pro Intervall optional ein Rabatt — als Prozentsatz oder Pauschalbetrag.
5. Self-Service
self_service— Kunden können sich selbst registrieren über/join-Pageauto_activate— bei Self-Service-Registration sofort aktivieren (statt manueller Freischaltung)show_in_join_preview— Paket auf Landing-Page-Preview-Cards zeigen
6. Einschränkungen
Tab "Einschränkungen" → siehe Paket-Einschränkungen.
7. Speichern
Speichern triggert Stripe-Sync: licensio legt automatisch Stripe-Product + Price-Objekte an (im Connected-Account des Anbieter). Stripe-IDs werden in license_packages.stripe_* gespeichert.
Vertragslaufzeiten
Beispiel-Konfiguration — ein Paket, das der Anbieter „Basic" nennt (ein selbst gewählter Paketname für deine eigenen Kunden, kein licensio-Tarif), mit 12 Monaten Mindestlaufzeit und 1 Monat Kündigungsfrist:
- Kunde startet 1.1. → frühestens kündbar zum 31.12. mit Kündigung bis spätestens 30.11.
Im Kunden-Detail siehst du:
- Vertragsstart (
contract_start_at) - Mindestlaufzeit in Monaten
- Frühestens kündbar zum
- Kündigungs-Status (offen / gekündigt zum X)
Stripe-Integration
Pro Paket-Speichern wird in Stripe angelegt:
- Product (
stripe_product_id) — repräsentiert das Paket - Price (
stripe_price_id) — wiederkehrender Subscription-Preis - Setup Price (
stripe_setup_price_id, optional) — einmalige Setup-Fee alsadd_invoice_itemsbei Subscription-Start
Stripe Tax automatisch berechnet:
- DE → DE: 19 % MwSt
- DE → EU mit USt-ID: Reverse Charge 0 %
- DE → EU ohne USt-ID: lokaler Satz
- DE → Nicht-EU: 0 %
Häufige Fragen
Kann ich Preise nachträglich ändern? Stripe erzeugt für Preisänderungen einen neuen Price im Product. Bestehende Kunden bleiben am alten Price (Bestandsschutz), neue Kunden bekommen den neuen. Wenn du Bestandskunden migrieren willst → Stripe-Subscription-Update.
Wie kommt der Kunde zum Paket? Drei Wege:
- Einladung durch Admin (Mail mit Registrierungs-Token)
- Self-Service über
/join(Landing-Page-Sektion oder Direkt-Link) - Manuelle Zuordnung im Kunden-Detail (z.B. Paket-Wechsel)
Was wenn Stripe-Sync fehlschlägt?
Paket wird in licensio gespeichert, aber stripe_product_id bleibt leer. Im UI siehst du einen Warn-Indikator. Erneutes Speichern triggert Re-Sync.
Add-ons im Checkout?
Bei Kunden-Detail kannst du Add-ons zuweisen (customer_packages-Tabelle). Die werden als zusätzliche Subscription-Items im Stripe abgerechnet.
Verwandt
- Paket-Einschränkungen — Whitelist/Blacklist + Limits
- Rechnungsstellung — Stripe-Connect-Setup
- Kunden — Paket-Zuweisung per Kunde