Kundenansicht P5: Katalogfelder, consentAbo mit Hinweis und Unterlagen-Quelle im Funktionen-Register

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-16 15:55:19 +00:00
1 parent 8e0d2b2736
commit 4bf1b67e67
4 files changed
+268 -1

No files matched your search

+66
View File
@@ -435,6 +435,13 @@ function unterkunftConsent() {
const features = {
news: {
key: 'news',
// Katalog der Kundenansicht neu (P5, V5): Beschreibung (hoechstens zwei Saetze, du-Form, kein Preis), Bild, Ablauf
// (direkt | fragebogen | anfrage), Dauer der Einrichtung und ob die Funktion nur Betriebe bekommen
beschreibung: 'Zeig Neuigkeiten und Aktionen direkt auf deiner Website. Du schreibst sie im Portal, sie erscheinen sofort.',
bild: '/neu/bilder/news.webp',
ablauf: 'direkt',
einrichtung: 'meist in 1–2 Wochen',
nurBetrieb: false,
product: 'newsSetup',
label: { name: 'News-Pinnwand', kurz: 'News', keine: 'keine News-Pinnwand' },
priceLabel: '30 €',
@@ -500,6 +507,13 @@ const features = {
},
termine: {
key: 'termine',
// Katalog der Kundenansicht neu (P5, V5): Beschreibung (hoechstens zwei Saetze, du-Form, kein Preis), Bild, Ablauf
// (direkt | fragebogen | anfrage), Dauer der Einrichtung und ob die Funktion nur Betriebe bekommen
beschreibung: 'Deine Kunden buchen Termine online, rund um die Uhr. Zeiten, Team und Buchungen verwaltest du im Portal.',
bild: '/neu/bilder/termine.webp',
ablauf: 'fragebogen',
einrichtung: 'meist in 1–2 Wochen',
nurBetrieb: false,
product: 'termineSetup',
label: { name: 'Terminplaner', kurz: 'Termine', keine: 'keinen Terminplaner' },
priceLabel: TERMINE_PREIS,
@@ -553,6 +567,13 @@ const features = {
},
shop: {
key: 'shop',
// Katalog der Kundenansicht neu (P5, V5): Beschreibung (hoechstens zwei Saetze, du-Form, kein Preis), Bild, Ablauf
// (direkt | fragebogen | anfrage), Dauer der Einrichtung und ob die Funktion nur Betriebe bekommen
beschreibung: 'Verkaufe Artikel direkt über deine Website. Die Zahlung läuft über dein eigenes Stripe-Konto.',
bild: '/neu/bilder/shop.webp',
ablauf: 'anfrage',
einrichtung: 'meist in 2–3 Wochen',
nurBetrieb: true,
product: 'shopSetup',
label: { name: 'Webshop', kurz: 'Shop', keine: 'keinen Webshop' },
priceLabel: SHOP_PREIS,
@@ -605,6 +626,13 @@ const features = {
},
unterkunft: {
key: 'unterkunft',
// Katalog der Kundenansicht neu (P5, V5): Beschreibung (hoechstens zwei Saetze, du-Form, kein Preis), Bild, Ablauf
// (direkt | fragebogen | anfrage), Dauer der Einrichtung und ob die Funktion nur Betriebe bekommen
beschreibung: 'Gäste fragen deine Unterkunft online an, du gibst frei und behältst Belegung und Preise im Blick. Den Kalender baut WEBklar in deine Website ein.',
bild: '/neu/bilder/unterkunft.webp',
ablauf: 'anfrage',
einrichtung: 'meist in 1–2 Wochen',
nurBetrieb: false,
product: 'unterkunftSetup',
label: { name: 'Buchungskalender', kurz: 'Buchungskalender', keine: 'keinen Buchungskalender' },
priceLabel: UNTERKUNFT_PREIS,
@@ -656,6 +684,13 @@ const features = {
// Oeffnungszeiten live (Spec 2026-10-04): 30 EUR einmalig, im Wartungs-Abo ohne Aufpreis (aboInklusive, consentFrei)
zeiten: {
key: 'zeiten',
// Katalog der Kundenansicht neu (P5, V5): Beschreibung (hoechstens zwei Saetze, du-Form, kein Preis), Bild, Ablauf
// (direkt | fragebogen | anfrage), Dauer der Einrichtung und ob die Funktion nur Betriebe bekommen
beschreibung: 'Deine Öffnungszeiten stehen live auf deiner Website und sind immer aktuell. Du änderst sie im Portal, auch für Feiertage und Urlaub.',
bild: '/neu/bilder/zeiten.webp',
ablauf: 'direkt',
einrichtung: 'meist in wenigen Tagen',
nurBetrieb: false,
product: 'zeitenSetup',
label: { name: 'Öffnungszeiten live', kurz: 'Zeiten', keine: 'keine Öffnungszeiten live' },
priceLabel: '30 €',
@@ -809,6 +844,37 @@ export const config = {
ustHinweis,
// Register der kaufbaren Funktionen (siehe oben)
features,
// Abo-Modell der Funktionen (Kundenansicht neu, P5): Fassung der Einschalt-Erklaerung, Reihenfolge des Katalogs, Entwurfstexte
// (Task 15 / P7 Task 0 stellt fassung und texte.beginn auf Fassung 6; config.js importiert keine Dienste) und der Katalogeintrag der
// Analyse (sie steht nicht im Register der kaufbaren Funktionen). Die Items baut featureRegistry.consentAbo bei jedem Aufruf.
aboFunktionen: {
fassung: '2026-10-16',
reihenfolge: ['news', 'termine', 'shop', 'unterkunft', 'zeiten', 'analyse'],
texte: {
// Haken "Beginn" (nur Privatkunden innerhalb der Widerrufsfrist); Entwurf, wortgleich zu WORTLAUT_V6.beginn.einrichtung (P8)
beginn:
'Bitte beginnt sofort mit der Einrichtung. Mir ist klar: Mit der vollständigen Einrichtung erlischt mein Widerrufsrecht, und wenn ich vorher widerrufe, zahle ich den bis dahin erbrachten Teil.',
// Hinweis auf der Einschalt-Seite (ohne Haken): die Pflichten der alten Haken verantwortung, stripe und gesundheit;
// Entwurf, wortgleich zu WORTLAUT_V6.hinweis (P8)
hinweis: {
shop: 'Du verkaufst in eigenem Namen und bist für deine Produkte, Preise und Rechtstexte verantwortlich. Die Zahlungen deiner Käufer laufen über dein eigenes Stripe-Konto.',
unterkunft:
'Du vermietest in eigenem Namen und bist für Preise, Stornobedingungen, Rechnungen und Meldepflichten verantwortlich. Online-Zahlungen deiner Gäste laufen über dein eigenes Stripe-Konto.',
termine: 'Der Terminplaner ist nicht für den Gesundheitsbereich gedacht. Das fragen wir im Fragebogen ab.',
},
// Haken der Analyse (Kinder unter 16 Jahren, DSGVO Art. 8)
zielgruppe: 'Meine Website richtet sich nicht gezielt an Kinder unter 16 Jahren.',
analyseKnopf: 'Analyse einschalten',
},
analyse: {
name: 'Website-Analyse',
beschreibung: 'Sieh, wie viele Besucher auf deine Website kommen und welche Seiten sie ansehen. Die Auswertung findest du direkt im Portal.',
bild: '/neu/bilder/analyse.webp',
ablauf: 'direkt',
einrichtung: 'meist in wenigen Tagen',
nurBetrieb: false,
},
},
// Funktionen-Tab (News-Pinnwand): Alias auf den News-Eintrag des Registers, Zeiteinschaetzung auf der
// Buchungsseite und Wortlaut der Zustimmung (die Getter folgen config.features.news zur Laufzeit)
funktionen: {