Files
aza/AzA march 2026 - Kopie (7)/deploy/SELL_READY_KAUFPFAD.md
2026-04-16 13:32:32 +02:00

409 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AZA Office Sell-Ready Kaufpfad (konsolidiert)
Stand: 2026-03-30
Dieses Dokument ist die **fuehrende Referenz** fuer den produktiven Kauf-/Auslieferungspfad.
Es ersetzt und konsolidiert die aelteren Einzel-Dokumente (WORDPRESS_GOLIVE.md, WOOCOMMERCE_PRODUCT.md,
STRIPE_LIVE_SETUP.md, GO_LIVE_CHECKLIST_SHORT.md) in einen konsistenten Stand.
---
## Architektur-Entscheidung (FEST)
| Zweck | Plattform | Domain |
|---|---|---|
| Website, Produktseite, Marketing | **Hostpoint / WordPress** | aza-medwork.ch |
| Stripe Checkout + Lizenz-Backend | **Hetzner / Docker** | api.aza-medwork.ch |
WordPress/WooCommerce zeigt das Produkt. Der Kauf laeuft ueber **Stripe Payment Links** direkt.
Das Hetzner-Backend empfaengt den Webhook und erstellt die Lizenz.
Kein WooCommerce-Subscriptions-Plugin noetig.
---
## A. PRODUKTKLARHEIT
### Verbindlicher Produktname
| Feld | Wert |
|---|---|
| Produktname | **AZA Office** |
| Langform | AZA Office Ihr medizinischer KI-Arbeitsplatz fuer die Praxis |
| Version | 1.0.0 |
| Typ | Download-Produkt (Windows-Installer .exe, ca. 40 MB) |
| Plattform | Windows 10/11 (64-Bit) |
### Verbindliche Preise
| Plan | Monatlich | Jaehrlich (17 % guenstiger) |
|---|---|---|
| **Basic (1 Benutzer, 2 Geraete)** | CHF 59 / Monat | CHF 590 / Jahr |
| **Team (2 Benutzer, 2 Geraete/Benutzer)** | CHF 89 / Monat | CHF 890 / Jahr |
- Kein Einmalkauf
- Subscription mit automatischer Verlaengerung
- Kuendigung jederzeit moeglich (Zugang bis Ende der bezahlten Periode)
- Alle Updates inklusive solange Subscription aktiv
### Stripe Lookup-Keys und Price-IDs (LIVE)
| Lookup-Key | Price-ID | Betrag |
|---|---|---|
| `aza_basic_monthly` | `price_1T53xHL5lREAW68VbuK43lmz` | CHF 59/Monat |
| `aza_basic_yearly` | `price_1T542BL5lREAW68VNLQGCKWZ` | CHF 590/Jahr |
| `aza_team_monthly` | `price_1T544tL5lREAW68VkmnmZ21Q` | CHF 89/Monat |
| `aza_team_yearly` | `price_1T545RL5lREAW68VLbIh73AN` | CHF 890/Jahr |
### WICHTIG: Kein OpenAI-Key fuer Kunden
Seit Variante B (2026-03-25) liegt der OpenAI-Key **ausschliesslich serverseitig**.
Der Kunde braucht KEINEN eigenen OpenAI-Key. Alle KI-Funktionen laufen ueber das
AZA-Backend auf Hetzner. In keinem Produkttext, keiner E-Mail und keiner Anleitung
darf ein OpenAI-Key als Kundenanforderung erwaehnt werden.
### Enthaltene Module
1. **KI-Assistent** Medizinische Fragen stellen, Befunde besprechen
2. **Krankengeschichte** Diktat aufnehmen, transkribieren, KG erstellen
3. **Audio-Notizen** Sprachnotizen fuer den Praxisalltag
4. **Uebersetzer** Medizinische Fachtexte uebersetzen
5. **Projekt-Notizen** Tabs, Bilder, Diktat, Auto-Save
6. **Aerzte-Netzwerk** Kollegialer Austausch (Vorschau)
### Systemvoraussetzungen (fuer Produktseite)
- Windows 10 oder 11 (64-Bit)
- Mindestens 4 GB RAM
- Internetverbindung
- Ca. 150 MB Festplattenplatz
---
## B. CHECKOUT-/KAUFPFAD
### Soll-Ablauf aus Kundensicht
```
aza-medwork.ch (WordPress-Produktseite)
Kunde waehlt Plan (Basic/Team, Monatlich/Jaehrlich)
Klick auf "Jetzt abonnieren"
Stripe Checkout (gehostet von Stripe)
- E-Mail-Adresse eingeben
- Kreditkarte eingeben
- Bezahlen
Stripe verarbeitet Zahlung
│ │
▼ ▼
Webhook an Hetzner Redirect zu Success-Seite
(api.aza-medwork.ch (Download-Link + Anleitung)
/stripe/webhook)
Lizenz in DB angelegt
(status=active)
```
### Checkout-Methode: Stripe Payment Links
Stripe Payment Links sind bereits angelegt. Fuer die WordPress-Produktseite werden
die Payment-Link-URLs als Buttons eingebunden. Kein WooCommerce-Checkout noetig.
Alternativ koennen die Payment Links auch ueber `stripe_routes.py` (`POST /stripe/create_checkout_session`)
erzeugt werden das ist der Pfad den die Hetzner-Landing-Page (`web/index.html`) nutzt.
### Success-URL nach Zahlung
| Variante | URL | Anmerkung |
|---|---|---|
| Hetzner-Success | `https://api.aza-medwork.ch/billing/success?session_id={CHECKOUT_SESSION_ID}` | Existiert und funktioniert |
| WordPress-Danke | `https://aza-medwork.ch/danke/` | Einfache WordPress-Seite (manuell anlegen) |
**Empfehlung:** Stripe Payment Links koennen auf eine WordPress-Danke-Seite weiterleiten.
Die Hetzner-Success-Seite bleibt als Fallback fuer den Hetzner-Landing-Page-Pfad.
### Cancel-URL
Zurueck zur Produktseite: `https://aza-medwork.ch/`
### Abo-Verwaltung / Kuendigung
Der Kunde verwaltet sein Abo ueber das **Stripe Billing Portal**.
Der Desktop hat einen Button "Abonnement verwalten", der `/stripe/billing_portal_url` aufruft
und zum Stripe-Portal weiterleitet. Dort kann der Kunde:
- Zahlungsmethode aendern
- Abo kuendigen
- Rechnungen einsehen
---
## C. DOWNLOAD-/AUSLIEFERUNGSPFAD
### Was der Kunde nach Kauf erhaelt
1. **Sofort nach Zahlung:** Weiterleitung zur Success-/Danke-Seite mit Download-Link
2. **Per E-Mail:** Stripe-Kaufbestaetigung (automatisch) + optionale manuelle E-Mail mit Download-Link
3. **Spaeter erneut:** Download ueber Stripe Billing Portal oder direkt via URL
### Download-URL
| Pfad | URL |
|---|---|
| Installer (Hetzner) | `https://api.aza-medwork.ch/download/aza_desktop_setup.exe` |
| Version-Info | `https://api.aza-medwork.ch/release/version.json` |
Der Installer wird ueber den Hetzner-Server ausgeliefert (Caddy Static Files).
Alternativ kann die EXE auch als WooCommerce-Download-Produkt in WordPress hochgeladen werden.
### Installer-Ablauf fuer den Kunden
1. `aza_desktop_setup.exe` herunterladen (ca. 40 MB)
2. Installer starten (ggf. SmartScreen-Warnung bestaetigen bis Code-Signing aktiv)
3. Installation in ca. 2 Minuten
4. App startet, Fachgebiet waehlen, KI-Einwilligung bestaetigen
5. App prueft Lizenzstatus automatisch gegen Backend
6. Bei aktiver Subscription: Vollmodus. Bei keiner/gekuendigter: Testmodus
### Mein-Konto / Kundenbereich
Fuer den produktiven Start gibt es **keinen WordPress-Kundenbereich**.
Stattdessen:
| Funktion | Loesung |
|---|---|
| Abo verwalten / kuendigen | Stripe Billing Portal (aus Desktop-App erreichbar) |
| Rechnung / Beleg | Stripe sendet automatische Receipts |
| Erneuter Download | Direktlink per E-Mail oder Success-Seite-Lesezeichen |
| Lizenzstatus pruefen | Desktop-App zeigt Status, Admin-Panel zeigt Betreibersicht |
**Spaeter** kann ein WordPress-"Mein Konto"-Bereich ergaenzt werden,
aber fuer den produktiven Start ist das NICHT noetig.
---
## D. E-MAILS
### Automatische E-Mails (Stripe)
Stripe sendet automatisch:
- **Kaufbestaetigung / Receipt** nach jeder erfolgreichen Zahlung
- **Zahlungserinnerung** bei fehlgeschlagener Zahlung
- **Kuendigungsbestaetigung** bei Abo-Ende
Diese E-Mails koennen im Stripe Dashboard unter **Settings → Emails** konfiguriert werden.
### Empfohlene manuelle E-Mail nach Erstkauf
Wird vom Betreiber manuell oder spaeter automatisiert verschickt:
| Feld | Wert |
|---|---|
| Absender | info@aza-medwork.ch |
| Absendername | AZA MedWork |
| Betreff | Ihr AZA Office Download ist bereit |
**Inhalt (Vorlage):**
```
Guten Tag
Vielen Dank fuer Ihren Kauf von AZA Office.
Ihr Download:
https://api.aza-medwork.ch/download/aza_desktop_setup.exe
Installationsanleitung:
1. Datei herunterladen und ausfuehren
2. Installation abschliessen (ca. 2 Minuten)
3. App starten und Fachgebiet waehlen
4. Fertig alle KI-Funktionen sind sofort verfuegbar
Abo verwalten:
In der App unter "Abonnement" koennen Sie Ihr Abo jederzeit
verwalten oder kuendigen.
Bei Fragen: info@aza-medwork.ch
Freundliche Gruesse
AZA MedWork
```
### Keine Marketing-E-Mails
Fuer den produktiven Start keine Newsletter oder Werbe-E-Mails.
Nur transaktionale E-Mails (Kauf, Download, Kuendigung).
---
## E. TESTKAUF-CHECKLISTE
### Vor dem ersten Testkauf pruefen
- [ ] WordPress-Produktseite ist online und zeigt korrekte Preise
- [ ] Payment-Link-Buttons fuehren zu Stripe Checkout
- [ ] Stripe ist im **Live-Modus** (oder bewusst im Testmodus fuer Testkauf)
### Testkauf-Ablauf (10 Schritte)
| # | Schritt | Erwartetes Ergebnis |
|---|---|---|
| 1 | Produktseite auf aza-medwork.ch oeffnen | Seite laedt, AZA Office mit korrekten Preisen sichtbar |
| 2 | "Jetzt abonnieren" (Basic Monatlich) klicken | Stripe Checkout oeffnet sich |
| 3 | E-Mail + Kreditkarte eingeben, bezahlen | Zahlung erfolgreich |
| 4 | Success-/Danke-Seite wird angezeigt | Download-Link sichtbar, Bestaetigung angezeigt |
| 5 | Stripe Dashboard pruefen | Neue Subscription sichtbar, Status: active |
| 6 | Admin-Panel pruefen: `GET /admin/license_customer_map` | Neue Lizenz mit korrekter E-Mail und status=active |
| 7 | Download-Link klicken | `aza_desktop_setup.exe` wird heruntergeladen |
| 8 | Installer ausfuehren, App starten | App laeuft im Vollmodus (nicht Testmodus) |
| 9 | In Stripe: Subscription kuendigen | Webhook liefert 200 OK, Lizenz auf canceled |
| 10 | App neu starten | App faellt auf Testmodus zurueck |
### Testkauf mit Stripe-Testkarte (optional vorab)
Stripe auf Testmodus stellen, dann mit Testkarte `4242 4242 4242 4242` (beliebiges Datum, CVC 123) testen.
### Nach erfolgreichem Testkauf
- [ ] Stripe auf Live-Modus stellen (falls noch im Testmodus)
- [ ] Produktseite auf Startseite verlinken
- [ ] E-Mail-Vorlage bereithalten
---
## F. ADMIN-SETUP-STAND WordPress/WooCommerce
### Was bereits erledigt ist
- [x] WordPress auf Hostpoint laeuft mit HTTPS
- [x] Kadence Theme aktiv
- [x] WooCommerce Plugin aktiv
- [x] Stripe Live-Konto eingerichtet mit 4 Preisen
- [x] Stripe Payment Links erstellt
- [x] Stripe Webhook auf api.aza-medwork.ch funktional (200 OK)
- [x] Hetzner-Backend live mit Lizenz-DB
- [x] Admin Control Panel v2 live
### 7 Admin-Schritte in WordPress (manuell auszufuehren)
**Schritt 1: WooCommerce-Grundeinstellungen korrigieren**
WooCommerce → Einstellungen → Allgemein:
- Land: **Schweiz**
- Waehrung: **Schweizer Franken (CHF)**
- Waehrungsposition: Links
- Tausendertrennzeichen: `'`
- Dezimaltrennzeichen: `.`
**Schritt 2: Demo-Produkte loeschen**
WooCommerce → Produkte → Alle Produkte:
9 Demo-Produkte auswaehlen → Massenaktion → In Papierkorb:
Everest Series, Rockies Line, Kilimanjaro Set, Andes Collection,
Alps Edition, Himalaya Range, Sierra Series, Fuji Line, Pyrenees Pack
**Schritt 3: Produktseite erstellen**
Seiten → Neu hinzufuegen:
- Titel: **AZA Office Medizinische KI fuer Ihre Praxis**
- Inhalt: Produktbeschreibung + Pricing-Tabelle + Payment-Link-Buttons
(Texte aus Abschnitt A dieses Dokuments verwenden)
- Fuer jeden Plan einen Button mit der Stripe Payment Link URL
- Veroeffentlichen
**Schritt 4: Danke-Seite erstellen**
Seiten → Neu hinzufuegen:
- Titel: **Vielen Dank fuer Ihren Kauf**
- Inhalt:
```
Ihr Download ist bereit:
[AZA Office herunterladen](https://api.aza-medwork.ch/download/aza_desktop_setup.exe)
Installationsanleitung:
1. Datei herunterladen und ausfuehren
2. Installation abschliessen (ca. 2 Minuten)
3. App starten und Fachgebiet waehlen
4. Fertig alle KI-Funktionen sind sofort verfuegbar
Abo verwalten: In der App unter "Abonnement".
```
- Slug: `danke`
- Veroeffentlichen
**Schritt 5: Stripe Payment Links aktualisieren**
In Stripe Dashboard → Payment Links → jeweils After-Completion auf Redirect setzen:
- URL: `https://aza-medwork.ch/danke/`
**Schritt 6: Produktseite auf Startseite verlinken**
Design → Menues (oder Kadence Header Builder):
- Neuen Menuepunkt hinzufuegen: "AZA Office kaufen" → Link zur Produktseite
- Oder: Button im Header mit Link zur Produktseite
**Schritt 7: Rechtliches pruefen**
Im Footer oder auf eigenen Seiten verlinken:
- **Impressum** (Pflicht in der Schweiz)
- **Datenschutzerklaerung** (Hinweis auf KI-Nutzung, Stripe-Zahlungsverarbeitung)
- **AGB** (Subscription-Hinweis, automatische Verlaengerung, Kuendigung, digitales Produkt)
---
## Wichtige Dateien / Referenzen
### Backend / Hetzner
| Datei | Zweck |
|---|---|
| `/root/aza-app/stripe_routes.py` | Webhook-Handler, Checkout-Session, Lizenz-DB |
| `/root/aza-app/admin_routes.py` | Admin Control Panel (8 Endpunkte) |
| `/root/aza-app/backend_main.py` | FastAPI-App, Success/Cancel-Seiten |
| `/root/aza-app/deploy/.env` | Stripe-Keys, Domain, Secrets |
| `/root/aza-app/data/stripe_webhook.sqlite` | Lizenz-Datenbank |
### Stripe Dashboard
| Element | Status |
|---|---|
| Produkt: AzA Office | Angelegt mit 4 Preisen |
| Payment Links | Erstellt fuer alle 4 Preise |
| Webhook | `https://api.aza-medwork.ch/stripe/webhook` → 200 OK |
| Billing Portal | Aktiviert |
### Installer / Desktop
| Datei | Zweck |
|---|---|
| `aza_desktop_setup.exe` | Windows-Installer (ca. 40 MB) |
| `release/version.json` | Versions-Info fuer Update-Check |
---
## Nicht-Ziele dieses Blocks
- Kein WooCommerce-Subscriptions-Plugin (Stripe handhabt Billing direkt)
- Kein WooCommerce-Stripe-Gateway (Payment Links umgehen WooCommerce-Checkout)
- Kein WordPress-Kundenbereich "Mein Konto" (Stripe Billing Portal genuegt)
- Kein automatisiertes E-Mail-System (manuelle E-Mail-Vorlage genuegt fuer Start)
- Kein Code-Signing (kommt spaeter, SmartScreen-Warnung ist akzeptabel fuer Start)
- Keine Browser-AZA-Integration (separater Block)
---
## Superseded Documents
Dieses Dokument konsolidiert und ersetzt fuer den Kaufpfad:
- `deploy/WORDPRESS_GOLIVE.md` (Stand 14.03.2026, teilweise veraltet)
- `deploy/WOOCOMMERCE_PRODUCT.md` (AZA Desktop → AZA Office, OpenAI-Key entfernt)
- `deploy/STRIPE_LIVE_SETUP.md` (Stripe-Setup ist erledigt, hier zusammengefasst)
- `deploy/GO_LIVE_CHECKLIST_SHORT.md` (URLs korrigiert, Testkauf-Checkliste hier)
- `billing/BILLING_FLOW.md` (generischer Platzhalter, durch realen Flow ersetzt)