diff --git a/docs/superpowers/plans/2026-09-27-vertraege-plan-2-sichtbar.md b/docs/superpowers/plans/2026-09-27-vertraege-plan-2-sichtbar.md index e39f31c..d2f45e3 100644 --- a/docs/superpowers/plans/2026-09-27-vertraege-plan-2-sichtbar.md +++ b/docs/superpowers/plans/2026-09-27-vertraege-plan-2-sichtbar.md @@ -1330,7 +1330,8 @@ Alle Prüfungen laufen gegen den Fixture-Server aus Task 14, Step 1. Die Ansicht ```bash docker exec -w /app webklar-kundenbereich-server node scripts/stripe-products.mjs --pruefen - docker exec -w /app webklar-kundenbereich-server node scripts/stripe-products.mjs + docker exec -w /app webklar-kundenbereich-server node scripts/stripe-products.mjs --anlegen + docker exec -w /app webklar-kundenbereich-server node scripts/stripe-products.mjs --pruefen ``` Erwartet: Die Preise für Hosting (1500) und Zusatzspeicher (100) sind vorhanden. Die Beschreibung des Wartungs-Produkts entspricht Fassung 4, die Überschrift des Kundenportals lautet „WEBklar – Abo verwalten“. @@ -1344,7 +1345,7 @@ Alle Prüfungen laufen gegen den Fixture-Server aus Task 14, Step 1. Die Ansicht - [ ] **Step 9: Ticketsystem.** Der Nutzer pusht selbst auf `test`, und nur auf diesen Branch: ```bash - git -C /home/webklar/apps/ticket.webklar.com/dev-abo-stunden push origin feature/abo-stundenkonto:test + git -C /home/webklar/apps/ticket.webklar.com/dev-abo-stunden push origin feature/abo-stunden-wartung:test ``` - [ ] **Step 10: Live prüfen:** - `https://project.webklar.com/abo-bedingungen.html` zeigt „Version 4“. @@ -1357,4 +1358,24 @@ Alle Prüfungen laufen gegen den Fixture-Server aus Task 14, Step 1. Die Ansicht - In UptimeRobot sind alle Abo-Websites als Monitor angelegt. - Der belegte Speicher in konsoleH ist abgelesen (Paket M, Warnschwelle 40 GB). - Die Info-Mail an Bestandskunden mit Fassung 3 (beliebig viele Postfächer) ist entworfen, vom Nutzer freigegeben und verschickt. +- [ ] **Step 11a: Zusätzliche Schritte aus Rechtsrunde und Gesamtprüfung (30.09.2026)** + - **Zu Step 1:** Mit `takeover.conditionsVersion` auch den Schlüssel in `TAKEOVER_CONDITIONS_SHA256` (`test/legalTexts.test.js`) umstellen. Den Stand in `datenschutz.html` und `abo-bedingungen.html` auf das Freigabedatum setzen. `termsVersion` muss auf `-v4` enden. Danach die PDFs neu erzeugen. + - **Vor Step 6:** Stripe-Testmodus mit einer eigenen Instanz mit Testschlüssel, nicht im Produktions-Container. Zu prüfen: + - Wechsel mit 3-D-Secure-Testkarte: Metadaten und `termStartAt` bleiben bis zur Zahlung unverändert (F28). + - Die gehostete Rechnungsseite bei einem ausstehenden Wechsel. + - Rabatte in der Wechsel-Vorschau. + - Speicher im flexiblen Abrechnungsmodus: erst Minus, dann Plus über die bezahlte Menge; die Vorschau mit der kommenden Rechnung vergleichen. + - **Vor oder mit Step 7:** Die Info-Mail an die Bestandskunden der Fassung 3 geht raus (beliebig viele Postfächer, Zusatzspeicher nur mit Zustimmung). Grund: `--anlegen` ändert die Beschreibung des Wartungs-Produkts in Stripe. + - **Stripe-Webhook-Endpunkt** (Dashboard, mit Freigabe des Nutzers): `customer.subscription.pending_update_applied` und `customer.subscription.pending_update_expired` freischalten. Außerdem prüfen, dass diese Ereignisse aktiv sind: + - `checkout.session.completed` + - `invoice.paid` + - `invoice.payment_failed` + - `customer.subscription.created` + - `customer.subscription.updated` + - `customer.subscription.deleted` + - **Pilot:** Die Routen für Speicher und Wechsel haben keinen Pilot-Filter. Bevor `ABO_PILOT_EMAILS` nicht `*` ist, entscheidet der Nutzer, ob das so bleiben soll. + - **Nach Step 6:** Über „Als Kunde ansehen“ einen echten Kunden mit Wartungs-Abo nach Fassung 3 prüfen: Verträge, Stundenkonto, Fristen. Außerdem muss der Admin-Reiter „E-Mail-Speicher“ laden (Sortierung nach `dueAt` in echtem Appwrite). + - **UptimeRobot:** Den Auftragsverarbeitungsvertrag ablegen und die Angaben zu UptimeRobot prüfen. + - **Löschfristen** (mit Freigabe des Nutzers): Cron nur mit `LOESCHFRISTEN=mail` im Januar. `apply` erst nach Durchsicht des Berichts, von Hand. + - **AGB der Website:** Das Stand-Datum setzen. - [ ] **Step 12:** Memory aktualisieren: Plan 2 live, Commits, offene Punkte.