Kapitel 3

Mandanten-Onboarding

Wie aus einem interessierten Weingut ein laufender Shop wird. Die technischen Schritte sind weitgehend automatisiert und dauern zusammen unter einer Stunde — der eigentliche Aufwand steckt im Branding und im Sortiment.

Der Ablauf

Sechs Schritte, in dieser Reihenfolge. Die ersten beiden laufen per Skript, der dritte ist Handarbeit, der vierte gehört dem Weingut, der fünfte braucht Geduld, und der sechste ist die eigentliche Arbeit.

  1. 1

    Medusa-Entitäten anlegen

    ca. 5 Min.

    Sales Channel, Publishable API Key, Region und Cockpit-Benutzer entstehen per Skript.

  2. 2

    Storefront erzeugen

    ca. 15 Min.

    Das Template wird kopiert, parametrisiert, gebaut und als Container gestartet.

  3. 3

    Branding setzen

    2 – 4 Std.

    Farben, Logo, Schriftpaarung, Hero-Bild und die Texte der Startseite — Handarbeit.

  4. 4

    Stripe Connect verbinden

    ca. 10 Min.

    Das Weingut verbindet sein eigenes Stripe-Konto über den Connect-Flow im Cockpit.

  5. 5

    DNS eintragen

    10 Min. + Wartezeit

    A-Record oder CNAME beim Provider des Weinguts. Danach holt Traefik das Zertifikat.

  6. 6

    Sortiment einpflegen

    1 – 2 Tage

    Weine einzeln anlegen oder als CSV importieren, dann Lagen, Rebsorten und Profil.

Schritt 1 — Medusa-Entitäten

Bevor es eine Storefront geben kann, muss Medusa den Mandanten kennen. scripts/new-winery.sh legt alles Nötige an:

  • einen Sales Channel — die Mandantengrenze
  • einen Publishable API Key, eingeschränkt auf genau diesen Channel
  • die Verknüpfung von Key und Channel
  • eine Region mit Währung, Steuersatz und Lieferländern
  • den Cockpit-Benutzer mit der sales_channel_id in den Metadaten
Neues Weingut in Medusa anlegen
cd /root/repos/wein-onlineshop
./scripts/new-winery.sh

Schritt 2 — Storefront erzeugen

scripts/new-storefront.sh kopiert das Template nach storefronts/<slug>/, trägt die Umgebungsvariablen des Mandanten ein, legt Dockerfile und Compose-Datei an, baut das Image und startet den Container.

Storefront aus dem Template erzeugen
cd /root/repos/wein-onlineshop
./scripts/new-storefront.sh

# Danach erreichbar unter:
#   https://shop-<slug>.raspb.eu
Skripte rund um das Onboarding
SkriptFunktion
scripts/new-winery.shLegt Sales Channel, Publishable Key, Region und Benutzer in Medusa an
scripts/new-storefront.shKopiert das Template, parametrisiert es, baut und deployt den Container
scripts/update-storefronts.shRollt Template-Änderungen auf bestehende Mandanten aus
scripts/seed-rebsorten.tsSchreibt den Grundstock an Rebsorten für einen Mandanten
scripts/seed-winzer.tsLegt ein leeres Winzer-Profil zum Befüllen an

Schritt 3 — Branding

Hier wird bewusst nicht automatisiert. Ein Shop, der aussieht wie ein Baukasten, verkauft Wein wie ein Baukasten. Was pro Weingut eingestellt wird:

  • Farben — Primär- und Akzentfarbe, abgeleitet aus Etikett oder Hausfarbe
  • Logo — im Cockpit hochgeladen, mit Auswahl, wo es erscheint: Rechnung, E-Mail, Website, Header
  • Schriftpaarung — eine Serifenschrift für Überschriften, eine ruhige Grotesk für den Text
  • Hero-Bild — der Weinberg, der Hof oder der Keller, nicht das Stockfoto
  • Texte der Startseite — Anrede, Tonfall, Region
Der Shop soll aussehen wie unser Hof, nicht wie ein Onlineshop, der zufällig Wein führt.
Musterweingut Sonnenhang · fiktives Demo-Weingut, shop-sonnenhang.raspb.eu

Der Demoshop unter shop-sonnenhang.raspb.eu ist ein bewusst erfundenes Weingut. Er zeigt, wie weit sich das Template treiben lässt, ohne dass ein echtes Weingut dafür herhalten muss.

Schritt 4 — Stripe Connect

Das Weingut verbindet sein eigenes Stripe-Konto im Cockpit unter Einstellungen → Zahlungen. Der Connect-Flow führt zu Stripe, dort wird zugestimmt oder ein neues Konto angelegt, danach geht es zurück ins Cockpit.

Warum Standard-OAuth und nicht Express

Viele Weingüter haben bereits ein Stripe-Konto — für den Hofverkauf, für Veranstaltungen oder aus einem früheren Shop. Mit Standard-OAuth bleibt dieses Konto ihres: eigenes Dashboard, eigene Auszahlungsregeln, eigene Belege. Bei Express-Accounts läge die Kontrolle bei der Plattform. Das wollen wir nicht, und die Weingüter wollen es auch nicht.

Was technisch passiert

  • Das Cockpit fordert eine Connect-URL an; Medusa erzeugt dabei ein kurzlebiges State-Token gegen CSRF
  • Nach der Zustimmung ruft Stripe die Callback-Route auf, das Token wird geprüft und verbraucht
  • Die stripe_user_id landet in den Benutzer-Metadaten und als TENANT_STRIPE_ACCOUNT_ID in der Storefront-Konfiguration

Schritt 5 — DNS

Solange das Weingut mit shop-<slug>.raspb.eu zufrieden ist, gibt es hier nichts zu tun. Für eine eigene Domain wird ein Eintrag beim Domain-Provider des Weinguts nötig.

DNS-Einträge
# Eigene Domain, Shop auf einer Subdomain
shop.ihr-weingut.de.    A      <SERVER-IP>

# Alternativ: gesamte Domain auf den Shop
ihr-weingut.de.         A      <SERVER-IP>
www.ihr-weingut.de.     CNAME  ihr-weingut.de.

# Prüfen, ob der Eintrag greift
dig +short shop.ihr-weingut.de
Klickpfade der gängigen deutschen Anbieter
AnbieterMenüpfadEintrag
IONOSDomains & SSL → Domain → DNSA-Record „shop“ auf die Server-IP
StratoDomainverwaltung → Verwalten → DNSA-Record „shop“ auf die Server-IP
Hetzner DNSDNS Console → Zone → Add RecordTyp A, Name „shop“, Value = Server-IP
NamecheapDomain List → Manage → Advanced DNSA Record, Host „shop“
GoDaddyMeine Produkte → DNS → VerwaltenTyp A, Name „shop“

Schritt 6 — Sortiment

Jetzt kommen die Weine in den Shop. Zwei Wege stehen offen: einzeln im Weinbuch anlegen oder als CSV beziehungsweise XLSX importieren. Der Import zeigt vor dem Speichern eine Vorschau und erkennt Duplikate; ein Export in dasselbe Format gibt es ebenfalls.

Danach die Inhalte, die den Unterschied machen: Lagen mit Bodenart und Exposition, Rebsorten-Steckbriefe, das Winzer-Profil mit Historie, Team und Werten und die ersten Beiträge. Wie das im Cockpit aussieht, steht im Quick-Start-Guide.

Abnahme-Checkliste

Diese zehn Punkte werden vor jedem Go-live durchgegangen. Erst wenn alle stimmen, wird der DNS-Eintrag umgelegt.

  • Shop über HTTPS erreichbar, kein Zertifikatshinweis
  • Katalog zeigt Produkte, Filter nach Lage und Rebsorte funktionieren
  • Produktdetailseite vollständig: Bild, Preis, Grundpreis, Allergene, Alkoholgehalt
  • Testbestellung im Stripe-Testmodus erfolgreich abgeschlossen
  • Bestellbestätigung per E-Mail angekommen
  • Rechnungs-PDF trägt Logo, Adresse und korrekt ausgewiesene Mehrwertsteuer
  • Versandkosten und Lieferländer stimmen
  • Impressum, Datenschutz, Widerruf und Versandinformationen sind gefüllt
  • Winzer hat Cockpit-Zugang und hat sich einmal angemeldet
  • Das nächtliche Backup erfasst den neuen Mandanten