Gutschein-Akzeptanzliste (Base-Template)
Das Base-Template (CockpitOS generisches Theme) unterstützt eine optionale Unterseite /gutscheine, die alle Shops des Centers auflistet, die Center-Gutscheine akzeptieren. Die öffentliche Seite nutzt dieselbe PageLayout-Hülle wie andere Basis-Seiten (SiteHeader, animierter Hintergrund, „Zurück“); der Footer (Datenschutz, Impressum, …) kommt wie üblich aus dem Center-Layout. Centers mit Full-Site-Template (z. B. ILG) behalten deren Header/Footer; die Gutschein-Seite zeigt dort nur den Inhalt im Template-main.
Übersicht
| Feature | Details |
|---|---|
| URL | /{center-slug}/gutscheine |
| Template | Base-Template (kein spezifisches Template) |
| Dashboard-Tab | Inhalte → Seite: Gutscheine |
| Shop-Flag | Nimmt Center-Gutscheine an (im Shop-Editor) |
1. Shop-Flag setzen: „Nimmt Center-Gutscheine an"
Für jeden Shop, der Center-Gutscheine akzeptiert, muss das entsprechende Flag aktiviert werden:
- Im Dashboard navigieren zu Inhalte → Shops
- Den gewünschten Shop öffnen (Bearbeiten)
- Im Abschnitt Einstellungen / Flags den Toggle „Nimmt Center-Gutscheine an" aktivieren
- Speichern
Shops mit diesem Flag erscheinen automatisch auf der /gutscheine-Unterseite.
Das Flag heißt intern acceptsCoupons. Es gilt nur für eigenständige Shops (kein Filial-Eintrag). Bei Filialen (ShopLocation) wird das Flag nicht unterstützt.
2. Gutschein-Seite aktivieren (Dashboard)
Die Seite ist standardmäßig deaktiviert und gibt ein 404 zurück. Aktivierung über den Dashboard-Tab:
- Im Dashboard zu Website-Konfiguration navigieren
- Tab „Seite: Gutscheine" öffnen (nur für Base-Template sichtbar)
- Toggle „Seite aktiv" einschalten
- Optional: Seitentitel und Einleitungstext anpassen
- Speichern
Sobald die Seite aktiv ist:
/gutscheineist erreichbar und zeigt alle Shops mit aktivem Flag- Im Hamburger-Menü der Website erscheint ein „Gutscheine"-Link
- Im Footer erscheint ebenfalls ein Link zur Gutschein-Seite
3. Konfigurierbare Inhalte
| Feld | Pfad in templateContent | Standardwert |
|---|---|---|
| Seite aktiv | base.giftCards.enabled | false |
| Seitentitel | base.giftCards.title | „Gutschein-Akzeptanzliste" |
| Einleitungstext | base.giftCards.introText | (leer) |
4. Verhalten der Seite
- Shops vorhanden: Kompaktes Kartenraster (Logo, Name, optional eine Zeile Kategorie/Etage bzw. Kette bei Filialen); Klick öffnet die Shop-Detailseite.
- Keine Shops gepflegt: Hinweis-Box mit Platzhaltertext.
- Seite deaktiviert: HTTP 404
5. API
Die Shops-API (/api/shops) unterstützt den Parameter acceptsGiftCard=true:
GET /api/shops?centerId=<id>&acceptsGiftCard=true
Gibt nur Shops zurück, bei denen acceptsCoupons === true ist.
6. Entwicklerhinweis (React Server Components)
Die Route apps/center-website/app/[slug]/gutscheine/page.tsx ist eine Server Component und rendert für das Basis-Theme die Client-Komponente PageLayout. Lucide-Icon-Komponenten (Funktionsreferenzen) dürfen dabei nicht als Prop icon={…} über die RSC-Grenze gegeben werden — das kann in Production zu Render-Fehlern führen. Stattdessen PageLayout mit iconKey="gift" (oder anderes in PAGE_TITLE_ICONS eingetragenes Kürzel) nutzen; die Icon-Auflösung erfolgt nur im Client.
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/center-website/gutschein-akzeptanzliste