diff --git a/astro.config.mjs b/astro.config.mjs
index bac8f1c..e898c54 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -8,7 +8,10 @@ const SITE_URL = 'https://www.vans-diy-bastelbedarf.de';
export default defineConfig({
site: SITE_URL,
- integrations: [sitemap()],
+ // /demo-abo/ ist eine interne Vorschau-Seite (simuliertes aktives Abo, für VanVan und mich zum
+ // Anschauen) — soll nie in der Sitemap/Suchmaschinen auftauchen (siehe zusätzlich noindex-Meta
+ // in der Seite selbst).
+ integrations: [sitemap({ filter: (page) => !page.includes('/demo-abo/') })],
vite: {
server: {
// Erlaubt Zugriff über den temporären cloudflared-Quick-Tunnel (nur für lokale
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index f2c32df..6cf32da 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -13,6 +13,9 @@ interface Props {
path?: string;
/** Seite existiert nur auf Deutsch (Rechtstexte) — siehe LanguageSwitcher. */
legalOnly?: boolean;
+ /** Interne Vorschau-/Demoseiten (z.B. /demo-abo/) sollen nie von Suchmaschinen indexiert
+ * werden — setzt zusätzlich zum Sitemap-Ausschluss noch ein robots-Meta. */
+ noindex?: boolean;
}
const {
title,
@@ -20,6 +23,7 @@ const {
lang = defaultLocale,
path = "/",
legalOnly = false,
+ noindex = false,
} = Astro.props;
const t = useTranslations(lang);
@@ -39,6 +43,7 @@ const p = (href: string) => `${localePrefix(lang)}${href}`;
{title} · Van's DIY & Bastelbedarf
+ {noindex && }
diff --git a/src/pages/demo-abo/index.astro b/src/pages/demo-abo/index.astro
new file mode 100644
index 0000000..8eaa688
--- /dev/null
+++ b/src/pages/demo-abo/index.astro
@@ -0,0 +1,69 @@
+---
+import Layout from "../../layouts/Layout.astro";
+import type { Locale } from "../../i18n/config";
+
+const lang: Locale = "de";
+
+// Rein internes Vorschau-Konto (nicht verlinkt, nicht in der Sitemap, noindex) — zeigt, wie das
+// Kundenkonto MIT aktivem Abo aussieht: Großes Abo, 14 durchgehend bezahlte Monate, ein noch
+// verfügbarer kleiner Teddy, ein bereits eingelöster großer Teddy, ein paar realistische
+// Benachrichtigungen und laufender Treuebonus-Fortschritt (nur mit aktivem Abo überhaupt aktiv,
+// siehe scripts/account.ts). Wird per JS ins localStorage DIESES Browsers geschrieben, sobald
+// die Seite aufgerufen wird — ändert nichts an echten Kundendaten, jede Person, die den Link
+// öffnet (auch VanVan), sieht die Vorschau in ihrem eigenen Browser.
+const demoAccount = {
+ loggedIn: true,
+ name: "Vorschau Kundin",
+ username: "Vorschau",
+ email: "vorschau@vans-diy-bastelbedarf.de",
+ photo: "",
+ bewerteteBestellungen: [],
+ treueBestellungen: 6,
+ treuebonusAktiv: false,
+ treuebonusArtikelSlug: null,
+ abo: {
+ stufe: "gross",
+ startDatum: "2025-06-03",
+ bezahltBisDatum: "2026-09-03",
+ bezahlteMonate: 14,
+ gekuendigt: false,
+ gekuendigtAm: null,
+ kleinTeddyFreigeschaltetGesamt: 2,
+ grossTeddyFreigeschaltetGesamt: 1,
+ kleinTeddyEingeloest: 1,
+ grossTeddyEingeloest: 1,
+ historie: [],
+ },
+ benachrichtigungen: [
+ { key: "abo_teddy_klein_frei", datum: "2026-07-03", gelesen: false },
+ { key: "abo_zahlung_erfolgreich", datum: "2026-07-03", gelesen: true },
+ { key: "abo_zahlung_erfolgreich", datum: "2026-06-03", gelesen: true },
+ { key: "abo_teddy_gross_eingeloest", datum: "2026-06-01", gelesen: true },
+ { key: "abo_gewechselt", stufe: "gross", datum: "2026-01-15", gelesen: true },
+ { key: "abo_abgeschlossen", datum: "2025-06-03", gelesen: true },
+ ],
+};
+---
+
+
+
+
+ Interne Vorschau für VanVan — zeigt das Kundenkonto so, wie es mit einem aktiven "Großes Abo"
+ aussieht (Prämien, Benachrichtigungen, Treuebonus). Wird nur in DEINEM Browser simuliert,
+ ändert nichts an echten Kundendaten. Du wirst gleich automatisch weitergeleitet …
+