409 lines
13 KiB
Markdown
409 lines
13 KiB
Markdown
# 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)
|