Store API v1 · Release Candidate 1

Von null auf erste Bestellung.

EYIS ist so gebaut, dass Menschen und KI-Agenten dieselben Regeln lesen. Diese Seite fasst Installation, Agenten-Setup, API und SDK zusammen.

1 · Installation

Voraussetzung ist bun. Datenbank wird für dev, test und build nicht benötigt.

Terminal
git clone https://github.com/u-canboz/EYIS.git
cd commerce-os
bun install
bun run dev        # http://localhost:8080

2 · Agenten anlernen

Kopiere diesen Block in die Regeldatei deines Agenten (Lovable, Cursor, Claude Code, Codex). Er verweist auf die Dokumentation im Repository statt sie zu duplizieren.

Agenten-Regeln
# .cursorrules / AGENTS.md deines Projekts
Arbeite ausschließlich nach den Regeln in AGENTS.md dieses Repositories.

Reihenfolge beim Einstieg:
1. AGENTS.md
2. docs/agent/START_HERE.md
3. docs/agent/OPERATING_MODES.md   -> Betriebsart A, B oder C bestimmen
4. docs/agent/ARCHITECTURE_MAP.md
5. docs/agent/SECURITY_BOUNDARIES.md

Nicht verhandelbar:
- Mandantentrennung über organization_id / shop_id in jeder Abfrage
- Neue Tabelle: CREATE TABLE -> GRANT -> ENABLE RLS -> CREATE POLICY
- Storefronts nur über @/lib/store-sdk (kein Supabase-Import)
- Server rechnet Preise, Steuern, Bestände und Summen
- Keine Seeds, QA-Läufe oder echten Zahlungen gegen Production
- Fertig ist erst, was "bun run verify" grün bestätigt

3 · Prüfbefehle

Verifikation
bun run typecheck            # TypeScript ohne Emit
bun run test                 # Engine- und Grenz-Tests
bun run generate:manifests   # nach Doku-/Routenänderungen
bun run verify               # Pflichtlauf vor jedem Abschluss

4 · Store API v1

Öffentliche, versionierte Schnittstelle mit Publishable Key, Rate-Limits und DTO-Allowlist. Breaking Changes sind ausgeschlossen; Neues kommt additiv.

HTTP
curl https://deine-domain.tld/api/public/store/v1/catalog/products \
  -H "Authorization: Bearer $STORE_PUBLISHABLE_KEY" \
  -H "Accept: application/json"
React SDK
import { StoreProvider, useCatalog } from "@/lib/store-sdk/react";

export function App() {
  return (
    <StoreProvider
      baseUrl={import.meta.env.VITE_STORE_API_URL}
      publishableKey={import.meta.env.VITE_STORE_PUBLISHABLE_KEY}
    >
      <Catalog />
    </StoreProvider>
  );
}

function Catalog() {
  const { data, isLoading } = useCatalog({ limit: 12 });
  if (isLoading) return <p>Lädt …</p>;
  return <ul>{data?.products.map((p) => <li key={p.id}>{p.title}</li>)}</ul>;
}

5 · Weg zum ersten Shop

  1. Organisation und Shop anlegen

    Im Backoffice registrieren, Organisation erstellen, ersten Shop mit Währung, Land und Steuerprofil konfigurieren.

  2. Provider im Integration Center verbinden

    Stripe, PayPal, Mollie, Resend oder eigener SMTP-Server. Zugangsdaten werden verschlüsselt serverseitig gespeichert – nie im Client.

  3. Publishable Key erzeugen

    Der Key adressiert genau einen Shop und erlaubt nur die Store-API-Operationen einer Storefront.

  4. Storefront über das SDK anbinden

    Katalog, Warenkorb, Checkout und Zahlungsarten kommen vollständig aus der API. Keine Berechnung im Client.

  5. Readiness prüfen und live gehen

    Shop-Readiness im Backoffice zeigt offene Punkte je Provider, Domain und Konfiguration vor dem Go-live.

Wichtige Dateien im Repository

AGENTS.md
Verbindliche Regeln für jede Änderung.
docs/agent/START_HERE.md
Orientierung in zehn Minuten.
docs/agent/STORE_API_GUIDE.md
Endpunkte, Fehlercodes, Limits.
docs/agent/MIGRATION_RULES.md
Schema, Grants, RLS, Reihenfolge.
src/lib/store-sdk/
SDK-Core und React-Hooks.
docs/production/
Umgebungen, Secrets, Rollback, Go-live.