Einstellungen — Übersicht
[admin]
Alle Tabs in Sidebar → Einstellungen im Überblick. Klick auf den jeweiligen Link für Details.
Erweiterte Einstellungen
Oben rechts auf der Einstellungen-Seite findest du den Button "⚙️ Erweiterte Einstellungen" (/settings/advanced) — eine 3-Spalten-Grid mit allen Konfigurationsbereichen im Überblick. Quick-Tabs auf /settings bieten denselben Inhalt für die häufig genutzten Bereiche.
Reihe 1: Branding · Rechnungsstellung · Rechtstexte Reihe 2: Widget · Custom Domain · Landing Page Reihe 3: Stripe · API & Integrationen · Abonnement & Plan Reihe 4: PrintFarm Einstellungen · Danger Zone · E-Mail Vorlagen
Kacheln für Features, die für den aktuellen Zugang nicht verfügbar sind, werden ausgeblendet — seit 2026-05-29 kein 🔒-Badge / Lock-Banner / Upgrade-CTA mehr (Feature-Promotion via Newsletter + App-Store, Phase 4). Direktaufruf einer nicht verfügbaren Feature-Page → 404. Custom Domain und PrintFarm sind in Vorbereitung und werden noch nicht als verfügbare Features angeboten (siehe die jeweiligen Abschnitte unten).
Mobile (< 768px): 1-Spalten-Stack. Tablet (< 1024px): 2-Spalten.
URL-Struktur — jeder Tab hat eigene URL
Seit dem Tab-Router-Refactor hat jeder Einstellungs-Tab eine eigene URL:
/settings→ leitet zu/settings/brandingweiter/settings/branding— Farben, Schriftart, Logo, Favicon, Firmenname, Support-Email/settings/billing— Rechtsform, Adresse, Steuer-ID, Rechnungs-Logo/settings/legal— Impressum, AGB, Datenschutz (Markdown + Live-Preview)/settings/emails— E-Mail-Vorlagen mit Template-Variablen/settings/stripe— Stripe-Connect-Status + Onboarding/Dashboard-Links/settings/landing-page— Drag-&-Drop Landing-Page-Builder/settings/widget— Embed-Code-Generator (nur wenn das Widget-Feature aktiv ist; sonst 404)/settings/domain— Custom-Domain-Setup — in Vorbereitung (gegatet überhas_custom_domain; wird erst als verfügbar angeboten, sobald White-Label abgenommen ist)/settings/subscription— aktueller Zugang + Upgrade-Optionen + Rechnungshistorie
Direkt-Bookmarks und Browser-History funktionieren wie erwartet — kein Tab-State-Bug.
Quick-Tabs vs. Erweiterte Einstellungen
Die Tab-Bar auf /settings zeigt: Branding · Abonnement · E-Mail Vorlagen · Landing Page · Rechnungsstellung · Rechtstexte · Stripe · Widget · Domain. Widget + Domain erscheinen nur, wenn das jeweilige Feature aktiv ist — sonst sind die Tabs ausgeblendet (kein 🔒 mehr). Domain ist in Vorbereitung.
Tabs
Branding
Logo, 9 Farben, Schrift, Login-Texte, Button-Stil. Wirkt auf Portal + Landing + Widget. → Branding
Rechnungsstellung
Rechtsform, Adresse, Steuer, Rechnungs-Logo, Stripe-Tax-Settings. → Rechnungsstellung
Pakete
Lizenzpakete erstellen, Preise, Laufzeit, Stripe-Sync, Einschränkungen. → Pakete
Stripe
Stripe-Connect-Onboarding (Express Account), pauschale Application-Fee (10 % in der Beta — siehe Zugang & Konditionen).
- Neuer Account → Onboarding-Flow
- Aktiver Account → Express-Dashboard-Login
- Status-Indikator: pending / active / restricted
Wichtig: Im Stripe-Dashboard zusätzlich aktivieren:
- Tax → Automatic Tax ON
- Steuerregistrierung Deutschland hinzufügen
- Firmenadresse vollständig
Rechtstexte
Markdown-Editor + Live-Preview für:
- Impressum (
/impressumöffentlich) - AGB (
/agböffentlich) - Datenschutz (
/datenschutzöffentlich)
Werden in Anbieter-DB gespeichert — Custom-Domain serviert sie unter eigener URL.
Landing Page
Drag-&-Drop-Builder mit Sektionen (Hero, Features, Pakete, Carousel, FAQ, Footer-CTA). → Landing Page Builder
Widget
Embed-Code-Generator + Live-Preview für Lizenz-Portal-Button (Shopify, WordPress, andere). → Widget
Domain
Custom-Domain einrichten (CNAME + TXT-Verifikation, Vercel-Auto-Provisioning). In Vorbereitung — wird erst als verfügbares Feature angeboten, sobald White-Label abgenommen ist. → Custom Domain
E-Mail-Vorlagen
Mail-Templates für Einladung, Freischaltung, Kündigung, Notifications. Dynamische Platzhalter wie {{customer_name}}, {{tenant_name}}.
FAQs
CRUD für Anbieter-spezifische FAQs (Sidebar-Eintrag im Portal "FAQ & Support" zeigt diese). Mit Kategorien gruppierbar. Vorlagen-Library zum schnellen Start.
Onboarding-Checklist (Setup-Popup)
Unten rechts auf jeder Admin-Seite erscheint ein dunkles Popup "🚀 Setup (X/6)" das durch die ersten 6 Onboarding-Schritte führt:
- Stripe verbinden →
/settings/stripe - Rechtstexte hinterlegen →
/settings/legal - Rechnungsstellung einrichten →
/settings/billing - Landing Page erstellen →
/settings/landing-page - Erstes Produkt erstellen →
/products/new - Erstes Paket erstellen →
/payments
Klick auf das Popup → aufgeklappte Liste mit Status-Icon (✅/○), →-Link zur jeweiligen Seite und einem ✓-Button um den Schritt manuell als erledigt zu markieren (z. B. wenn Stripe via Test-Mode bereits konfiguriert ist).
Auto-Check pro Schritt: Stripe (tenants.stripe_account_id), Legal (settings.legal_imprint + legal_privacy + legal_terms), Billing (settings.billing.legal_name), Landing Page (landing_page.enabled), Produkt-Count und Paket-Count via catalog_items / license_packages.
Manuell-Erledigt-State liegt in tenants.settings.onboarding_manually_completed[] — Schritte können jederzeit wieder „un-erledigt“ werden indem der Auto-Check fehlschlägt und der Schritt aus dem Array entfernt wird.
×-Button schließt das Popup permanent (LocalStorage-Key licensio_checklist_dismissed). Wenn alle 6 Schritte erledigt sind, wird das Popup ohnehin nicht mehr angezeigt.
Landing Page — Draft/Live System (wie Shopify)
Konzept: Der Builder editiert immer den Entwurf (landing_page.draft); Kunden sehen die Live-Version (landing_page.live). Erst wenn der Anbieter explizit auf 🚀 Live schalten klickt, wird der aktuelle Draft als neue Live-Version uebernommen.
Status-Indicator oben im Builder:
- 🟢 Live — Draft = Live, alles ist publisht.
- 🟠 Entwurf — ungespeicherte Aenderungen gegenueber Live; "Live schalten" ist aktiv.
Endpoints:
GET /api/landing-page— gibt Draft + Live-Snapshot + tenant.slug zurueckPOST /api/landing-page— speichert in Draft, Live bleibt unangetastetPOST /api/landing-page/publish— kopiert Draft → LivePOST /api/landing-page/default— laedt 3-Sektions-Standard-Vorlage (Hero + Pakete + CTA) mitbranding.company_nameals Substitution; setzt initial Live = Draft
Auto-Load der Vorlage: Falls beim ersten Oeffnen landing_page noch leer ist, ruft der Builder automatisch /api/landing-page/default auf — kein Banner, kein Confirm-Dialog. Der Anbieter sieht sofort eine fertige Vorlage zum Editieren.
Preview-URL nutzt tenant.slug dynamisch:
- Dev:
NEXT_PUBLIC_PORTAL_URL=http://localhost:3001ueberschreibt - Prod:
https://${tenant.slug}.licensio.io/?preview=${token}(Desktop) bzw.&mobile=true(Mobile) - Token-basierte Vorschau zeigt Draft — normale Besucher sehen Live
Backwards-Compat (vor Migration 053): tenants mit alter flacher landing_page-Struktur ({ enabled, sections, header, footer, preview_token }) funktionieren weiterhin — Portal liest mit Fallback, beim ersten Save migriert die API automatisch in die Draft/Live-Wrapped-Struktur.
Maintenance Mode (separater Toggle)
In Einstellungen → Allgemein (oder via Plattform-Admin):
maintenance_mode— Portal komplett blockiert (zeigt/maintenance-Page)admin_maintenance_mode— nur Admin-Bereich blockiert (Phase 2: getrennter Toggle, Migration 044)
Während Maintenance: Login + öffentliche Rechtstexte + /api/* ausgenommen, alles andere blockiert.
Häufige Fragen
Wo sind die Plattform-Einstellungen (für licensio-Team)?
internal.licensio.io (eigene App) für Plattform-Admins. Anbieter-Einstellungen sind alle in admin.licensio.io/settings.
Reihenfolge der Tabs änderbar?
Aktuell fest verdrahtet (SettingsTabs.tsx). Phase 2 wenn Bedarf.
Direkt-Link auf einen Tab?
URL-Parameter: /settings?tab=stripe öffnet sofort den Stripe-Tab. Wird auch von Stripe-Connect-OAuth-Return genutzt (?tab=stripe&connected=true).
Verwandt
- Erste Schritte — Onboarding-Reihenfolge
- Pakete · Branding · Rechnungsstellung