Add-ons bauen
Wie Erweiterungen gebucht, signiert und in Dashboard und Medusa geprüft werden.
Erweiterungen (Add-ons) schalten Funktionen pro Shop frei – wie Apps bei Shopify, aber als Code im Repository.
#Ablauf
config/addons.ts ──▶ Agentur bucht / Kunde bucht (Stripe) ──▶ shop_addons
│
Plattform signiert { plan, features[] } (Ed25519) ◀─────┘
│ push an den Shop (Sekunden)
▼
shop-admin: hasFeature("…") ──▶ speichert Token in Medusa-Store-Metadaten
medusa: featureAllowed(metadata, "…") prüft dieselbe SignaturEin Tarif kann Erweiterungen enthalten (includedIn), andere setzen eine voraus (requires).
#Ein neues Add-on
Katalog – in
apps/platform/config/addons.tseintragen:apps/platform/config/addons.tstsgiftcard_designs: { label: "Geschenkkarten Pro", description: "Mehrere Gutschein-Designs zur Auswahl, eigene Textfelder mit Live-Vorschau …", includedIn: ["business"], requires: [], available: true, },Dashboard – Funktion nur zeigen, wenn gebucht:
tsimport { hasFeature } from "@/lib/entitlements" if (await hasFeature("giftcard_designs")) { /* … */ }Medusa – serverseitig durchsetzen (der Shop kann die Daten nicht fälschen):
tsimport { hasFeature } from "../lib/features" const pro = await hasFeature(req.scope, "giftcard_designs")Preis – unter Agentur → Abrechnung, damit Kund:innen im Portal buchen können.
Hinweis
Ohne Plattform-Schlüssel (lokale Entwicklung, nicht verbundener Shop) ist alles freigeschaltet. Ein verbundener Shop hat nur, was ein gültiger Token auflistet.
#Bestehende Add-ons
| ID | Name | Enthalten in |
|---|---|---|
loyalty | Treuepunkte | Business |
b2b | B2B / Großhandel | – |
b2b_storefront | Separater Händlershop (setzt b2b voraus) | – |
giftcard_designs | Geschenkkarten Pro | Business |
Zuletzt aktualisiert am 21. Oktober 2026