> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# E-Commerce

Workspace-Produkte und Bestellungen auf einem vorwärtsgerichteten Lebenszyklus.

## Schritt-für-Schritt für Einsteiger

Voraussetzungen: Lesen Sie die beiden folgenden Einsteigerhandbücher, schließen Sie die lokale Web-Einrichtung ab und öffnen Sie dieses Monorepo im Stammverzeichnis in Ihrem Editor. Webeinstellungen gehören in `apps/web/.env.local`; Next.js liest das Stammverzeichnis `.env` nicht. `/dashboard` im Standard-Fake-Modus ist eine Demo ohne Datenbank; `/auth` benötigt eine migrierte Datenbank.

Kurze Begriffe: Ein Arbeitsbereich umfasst die einzelnen Benutzer, Daten und Einstellungen eines Teams. Der Server ist das vertrauenswürdige Backend; Halten Sie Anbieterschlüssel aus Browser- und Telefoncodes fern. Eine Migration ist eine versionierte Datenbankänderung, die Tabellen erstellt oder aktualisiert. Ein KI-Modell ist der Motor, der antwortet; Der Modellkatalog ist die Liste der verfügbaren Modell-IDs und Preise des Servers. Ein Anbieter ist ein externer Dienst wie ein KI-, E-Mail- oder Abrechnungsdienst. Eine Berechtigung ist eine Bewilligung, die einem Arbeitsbereich die Nutzung einer Funktion ermöglicht. Ein Webhook ist eine Nachricht, die ein Dienst an den URL eines anderen Dienstes sendet.

1. Öffnen Sie als Workspace-Inhaber oder Administrator `/commerce` und verwenden Sie das Produktformular, um einen Entwurf mit einem Namen, einer Währung, einem ganzzahligen Nebenpreis und einem optionalen verfolgten Lagerbestand zu erstellen (für USD bedeutet `1299` 12,99 $).

2. Aktivieren Sie es und erstellen Sie einen lokalen Testauftrag; Bestätigen Sie, dass der Server die Gesamtsumme berechnet und den Produkt-Snapshot speichert.

3. Schließen Sie keinen Live-Zahlungsanbieter an und belasten Sie keinen echten Käufer. Wenn eine Bestellung nicht ausgeführt werden kann, überprüfen Sie den verfügbaren Bestand und den dokumentierten Bestellstatus, bevor Sie es erneut versuchen.

Beginnen Sie für benutzerdefinierten Code mit dem bereitgestellten `prompts/README.md` und kopieren Sie die nächstgelegene Eingabeaufforderung: `prompts/new-app-screen.md` für einen App-Bildschirm oder `prompts/new-landing-page.md` für eine öffentliche Seite. Geben Sie Ihrem Programmieragenten für Server-, Datenbank- oder Anbieterarbeiten die Aufgabe dieses Handbuchs und bitten Sie ihn, `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` und passende `.ai/`-Spiegel zu lesen; Überprüfen Sie die hier genannten genauen Quelldateien. Listen Sie Dateien auf und prüfen Sie sie vor der Bearbeitung. Bewahren Sie den Arbeitsbereichseigentum und die Nur-Server-Geheimnisse. und zeige dir den Unterschied. Teilen Sie ihm das gewünschte Verhalten, Eingabe- und Ausgabefelder, zulässige Rollen, erwartete Erfolge und Fehler sowie das Testkonto, den Anbieter oder das Gerät mit. Beispielwerte verwenden; Fügen Sie niemals ein echtes Geheimnis ein.

[Bevor Sie beginnen](https://supastack.dev/de/docs/web/before-you-start.md)

[Terminal-Grundlagen](https://supastack.dev/de/docs/web/terminal-basics.md)

[Lokales Web-Setup](https://supastack.dev/de/docs/web/ship-in-5-minutes.md)

[Agentenaufforderungen und Projektspeicher](https://supastack.dev/de/docs/web/agents.md)


## Produkte und Bestand verwalten

`/commerce` bietet Ownern und Admins die Produktverwaltung für einen Workspace. Produkte haben den Status draft, active oder archived; Preise verwenden die kleinste Währungseinheit, und der Bestand kann optional verfolgt werden. Die gemeinsame Persistenz liegt in `packages/db`.

Dies ist ein Modul zum Aufbau eines Produkts. Es umfasst weder den Kauf dieses Kits noch die Auslieferung eines Quell-Repositorys oder die Erfüllung von Verkäuferlizenzen.


## Bestellablauf einhalten

Bestellungen durchlaufen pending → paid → fulfilled, mit Stornierung, Rückbuchung und Bestandskorrektur. Der Server berechnet Summen und speichert Snapshots von Produktname und Stückpreis, damit spätere Produktänderungen historische Bestellungen nicht umschreiben. `commerce.order_*`-Ereignisse unterstützen nachgelagerte Integrationen.

Verbinden Sie einen echten Produktzahlungsablauf bewusst. Ein Admin-Statuswechsel bestätigt weder eine Belastung noch eine Rückerstattung beim Zahlungsanbieter.


## Bestand und Statusübergänge testen

Prüfen Sie unzureichenden Bestand, gleichzeitige Bestellungen, manipulierte Client-Preise, ungültige Rückwärtsübergänge, Bestandskorrektur nach Stornierung, Rückerstattungsverhalten und Workspace-übergreifenden Zugriff.

[Outbound-Commerce-Ereignisse](https://supastack.dev/de/docs/web/project-structure.md)

[Produktrasterblock](https://supastack.dev/de/docs/web/project-structure.md)

[Datensatztabellenblock](https://supastack.dev/de/docs/web/project-structure.md)


## Einrichtung und Konfiguration

Die Fläche /commerce verwaltet einen Produktkatalog und Bestellungen für den aktiven Workspace. Produkte tragen Name, Slug, Integer-Cent-Preis, dreibuchstabige Währung, optionale Bild-URL und optionalen Lagerbestand; Bestellungen speichern Positionen in commerce_order_item mit serverseitig berechneten Summen.

Der Bestellstatus bewegt sich nur vorwärts — pending → paid → fulfilled, mit Storno vor der Zahlung und Erstattung danach. evaluateOrderStatusChange lehnt ungültige, unveränderte oder verbotene Übergänge ab, sodass eine stornierte oder erstattete Bestellung nie wieder geöffnet werden kann.

```
/commerce                   owner/admin console
src/commerce.ts             money math + lifecycle
src/commerce-actions.ts     owner/admin mutations
commerce_product/order/order_item
```


## Implementierungsablauf

Nur Owner und Admins schreiben — jede Aktion löst Session und Workspace über requireWorkspaceManager auf. createCommerceOrderAction validiert Positionen (ganze Mengen von 1–9999, doppelte Produkte werden zusammengeführt), beschränkt Positionen auf aktive Produkte, berechnet Summen serverseitig neu und hält eine Bestellung auf eine einzige Währung.

Getrackter Bestand verringert sich beim Anlegen einer Bestellung und wird bei Storno wieder aufgefüllt; ein leeres Bestandsfeld bedeutet ungetrackt. Bestellanlage und jede Statusänderung senden commerce.order_created- und commerce.order_status_changed-Webhooks plus Audit-Zeilen.


## Überprüfung und Fehlerbehebung

Verifiziere, dass ein Member unter Admin keine Produkte anlegen oder Bestellungen bewegen kann, rückwärts- und Seitwärtsübergänge abgelehnt werden und eine bezahlte Bestellung nicht storniert werden kann. Prüfe, dass Summen vom Server kommen — vertraue nie einem client-gelieferten Betrag — und dass der Bestand nach einem Storno zurückkehrt.


## Weiter

[Marketing-Seiten](https://supastack.dev/de/docs/web/marketing-site.md)
