Files
shop/base.md
Marek Lenczewski bf6f5456d6 update
2026-04-18 07:41:09 +02:00

4.6 KiB

Shopsystem — Vision (base)

Projektziel

Erweiterbares E-Commerce Shopsystem (B2C + B2B), weltweit einsetzbar, als verkaufbares Produkt. Dritt-Entwickler können eigene Apps bauen und verteilen (Marketplace-Konzept).

Architektur-Prinzip

App-basiert mit einem minimalen Core (Framework) und darauf aufbauenden Apps.

  • Core (Framework) — das Minimum, damit überhaupt etwas läuft: Auth, API-Router, App-Loader, Event-Bus, DI-Container, Migrations-Runner, Settings-Verwaltung, User-Management.
  • Core-Apps — das Minimum, damit ein Shop Sinn ergibt und funktioniert (z.B. Produkte, Kategorien, Warenkorb, Checkout, Bestellungen, Zahlung, Versand, Mail, Admin-UI, KI-Chat).
  • Optionale Apps — Features, ohne die der Shop trotzdem funktioniert (z.B. Wunschliste, Bewertungen, Gutscheine).
  • Dritt-Apps — gleiche Mechanik wie optionale Apps, nur von externen Entwicklern.

Jede App bringt mit: Manifest (Abhängigkeiten, Konflikte, Pflicht/Optional), eigene Migrationen, API-Endpunkte, Frontend-Komponenten, Events, Übersetzungen.

Kommunikation zwischen Apps: Events (lose Kopplung) + Dependency Injection (keine direkten Imports).

Tech-Stack

  • Backend: Python + FastAPI (Tooling: uv, ruff, pytest)
  • Datenbank: PostgreSQL (Write-Store) + Redis (Read-Store)
  • Frontend: Vue 3 + Vite + TypeScript + Pinia + Vue Router (Tooling: pnpm, eslint, prettier, vitest) — nur Web, responsives Design für Mobile. Zwei getrennte Vue-Apps mit eigenem Build: shop (Kundensicht) und admin.
  • KI: Lokale KI via Ollama (Standard-Modelle z.B. qwen2.5:7b für Chat, bge-m3 für Embeddings), RAG über Shop-/Produkt-/Einstellungs-Daten. Per Abstraktion austauschbar.
  • Auth: JWT (Access + Refresh), Passwort-Hashing via argon2
  • Migrationen: Alembic (SQLAlchemy)
  • Suche: austauschbar per Such-Abstraktion (Standard Meilisearch)
  • i18n: DE + EN initial, weitere Sprachen nachladbar
  • Deployment (Dev): docker-compose mit Postgres, Redis, Meilisearch, Ollama

Datenfluss

  • PostgreSQL ist Quelle der Wahrheit (alle Schreiboperationen).
  • Redis ist die Lese-Schicht — das Frontend liest nur aus Redis.
  • Sync: Sofort-Aktualisierung bei Änderungen + Scheduler als Sicherheitsnetz.
  • Frontend sieht die DB-Komplexität nie, nur schnelle Reads.

Kundensicht (Shop-Frontend)

Bewusst simpel gehalten:

  • Account mit Bestellungen und persönlichen Daten
  • Produkt-Browsing über Kategorien
  • KI-Helfer (verbunden mit lokaler KI + RAG): natürliche Anfragen wie "ich suche einen grünen Pulli" → KI filtert/sortiert angezeigte Produkte entsprechend
  • Warenkorb + Bestellprozess (Klasse = ordentlicher Checkout-Flow)
  • Bestätigungs-Mail nach der Bestellung

Admin-Sicht

Klassisches Admin: Produkte, Kategorien, Bestellungen, Einstellungen, Apps verwalten.

Zusätzlich KI-Chatbox auf der Startseite:

  • Befehle in natürlicher Sprache: "setze den Shopnamen auf TEST123" → KI erzeugt Vorschlags-Card mit geplanter Änderung → Admin bestätigt → Ausführung.
  • JSON-Bulk-Input: Admin wirft JSON in den Chat ("das sind neue Produkte, erstelle sie") → KI erzeugt mehrere Cards (eine pro Anweisung) → Fehlende Felder sind in der Card editierbar → Admin bestätigt (einzeln oder alle) → Ausführung.

Jede Aktion der KI ist immer erst Vorschlag, nie direkte Ausführung.

Betriebsmodell

Single-Shop pro Instanz (kein Multi-Tenant). Wer mehrere Shops betreiben will, deployed mehrere Instanzen. Vereinfacht Schema, Caching und RLS erheblich.

Umgebungen

APP_ENV=dev|staging|production steuert Verhalten:

  • dev: Seed-Daten, Mock-Services, Hot-Reload, Debug-Logging
  • staging: Stripe Testmodus, Catch-All E-Mails
  • production: echte Zahlungen, Caching aktiv

Domänen-Skizze (hoch-level)

Minimale Entitäten, die der Core bzw. Core-Apps mitbringen:

  • User (Kunde, Admin, Firma für B2B)
  • Product + Category
  • Cart + CartItem
  • Order + OrderItem + OrderStatus
  • Payment + Shipment
  • Setting (Key-Value, pro App-Namespace)
  • App (installierte Apps inkl. Version, Status)
  • Event (persistierte Domain-Events für Audit/Replay)

Abgrenzung — was ist nicht Core

  • Wunschliste, Bewertungen, Rabatt-/Gutschein-Engine, Produktempfehlungen, Multi-Vendor, Abo-Modelle — alles optionale Apps.

Bezug zur Analyse

Details zu Feature-Prioritäten (Pflicht/Soll/Kann), B2B-Anforderungen, i18n, Sicherheit und Phasenplan: siehe shopsystem-analyse.pdf (34 Seiten). Die Analyse bleibt unverändert; diese Datei ist die aktuelle Arbeits-Vision.