Files
aza/AzA march 2026 - Kopie (14)/deploy/SELL_READY_KAUFPFAD.md

409 lines
13 KiB
Markdown
Raw Normal View History

2026-04-19 20:41:37 +02:00
# 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)