Massnahmenpaket: Katalog
Diese Datei beschreibt das umsetzbare Massnahmenpaket fuer den Aufbau eines Katalogbereichs unter /katalog auf Basis der API rm_catalog_api.
Die API ist unter https://jtlshop-api.recent.digital erreichbar und liefert die erforderlichen Katalog-, Kategorie- und Produktdaten. Ziel ist kein isolierter Shop-Prototyp, sondern ein sauber in recent.digital integrierter Produktbereich mit konsistenter Markenwirkung, klarer Informationsarchitektur und belastbarer technischer Grundlage.
Zielbild
Unter /katalog entsteht ein dreistufiger Katalogbereich:
- Shop-Startseite
- Shop-Kategorieseite
- Shop-Detailseite
Der Bereich soll:
- visuell zur bestehenden
recent.digital-Website passen
- das Clean-First-Prinzip aus
DESIGN_GUIDELINE.md einhalten
- auf Mobile klar gestapelt und auf Desktop strukturiert wirken
- API-Daten robust laden, darstellen und im Fehlerfall sauber abfangen
- eigene technische Libs fuer API-Client, Mapping und Fehlerbehandlung mitbringen
- klare Types und Interfaces fuer API-Rohdaten und Frontend-Modelle definieren
- dokumentiert und fuer spaetere Erweiterung nachvollziehbar aufgebaut sein
- fuer eine spaetere Erweiterung um Filter, Paging und Feldselektion vorbereitet sein
Verbindliche Gestaltungsleitplanken
Fuer die UI des Katalogs gelten dieselben Marken- und Layoutregeln wie fuer den Rest der Seite:
- Primaerwelt in Blau, tiefem Navy und Petrol/Mint aufbauen
- warmes Orange nur gezielt fuer primaere Aktionen nutzen
Montserrat fuer Headlines und Nunito fuer Fliesstext einsetzen
- grosse Rundungen, weiche Schatten und ruhige Flaechen bevorzugen
- dichte Split-Layouts unter
lg immer stapeln
- keine generischen Shop-Templates, keine DaisyUI-Defaults, keine pseudo-dashboardartige Dekoration
- pro Section genau eine Hauptaussage und hoechstens einen dominanten visuellen Schwerpunkt
Bestehende Komponenten sollen bevorzugt wiederverwendet werden, insbesondere:
Section
SectionKicker
IconHeading
ArrowLink
TypeformButton
MessageBox
Zielseiten und Inhaltslogik
1. Shop-Startseite
Ziel: Orientierung geben und den Einstieg in den Katalog vereinfachen.
Aufbau:
- Hero mit klarer Katalogbotschaft
- Kategorienuebersicht
- Top-Artikel oder kuratierte Highlights
Anforderungen:
- genau eine primaere Einstiegsbotschaft
- sichtbare Navigation in die wichtigsten Kategorien
- kompakte, hochwertige Produktvorschau statt ueberladener Produktwand
- CTA-Hierarchie klar halten
2. Shop-Kategorieseite
Ziel: Produkte innerhalb einer Kategorie schnell erfassbar machen.
Aufbau:
- linkes oder oberes Kategorie-Navigationsmodul mit geoeffneter aktiver Kategorie
- Hero oder Intro fuer die aktuelle Kategorie
- Unterkategorien
- Produktliste der aktuellen Kategorie
Anforderungen:
- aktive Kategorie klar markieren
- Unterkategorien sichtbar priorisieren, wenn vorhanden
- Produktlisten auf Uebersicht und Scanbarkeit optimieren
- auf Mobile zuerst Inhalt, dann Hilfsnavigation oder sauber gestapelte Navigation
3. Shop-Detailseite
Ziel: Produktdaten verstaendlich, vertrauenswuerdig und conversion-orientiert darstellen.
Aufbau:
- Produktkopf mit Titel, Kerndaten und primaerer Aktion
- strukturierte Darstellung von Beschreibung, Attributen, Merkmalen und Kategorien
- optionale Verweise zu verwandten Produkten oder Ruecksprung in die Kategorie
Anforderungen:
- klare Informationshierarchie ohne Card-in-Card-Aufbau
- wichtige Daten direkt sichtbar
- technische Merkmale nur dann hervorheben, wenn sie echten Entscheidungswert haben
- Fehler- und Leerzustaende sauber behandeln
API-Grundlage
Die folgenden Endpunkte bilden den MVP-Rahmen:
GET /api/catalog/v2/catalog
GET /api/catalog/v2/categories/tree
GET /api/catalog/v2/categories/by-slug/:slugPath
GET /api/catalog/v2/categories/by-slug/:slugPath/products
GET /api/catalog/v2/products
GET /api/catalog/v2/products/by-slug/:productSlug
Alle Endpunkte sind per API-Key geschuetzt und erwarten den Header X-API-Key.
Beispiel:
curl -H "X-API-Key: <dein-api-key>" \
"https://shop.example.test/api/catalog/v2/categories/tree"
Technisches Basispaket fuer die API-Anbindung
Neben den sichtbaren Seiten ist eine eigene Integrationsschicht verpflichtender Bestandteil des MVP. Der Katalog darf nicht direkt in den Seiten aus Roh-Responses aufgebaut werden.
Ziel der Integrationsschicht
Die API-Anbindung soll:
- zentral statt verteilt ueber einzelne Seiten erfolgen
- API-Authentifizierung, Basis-URL und Request-Logik kapseln
- Rohdaten von stabilen Frontend-Modellen trennen
- Fehlerbilder vereinheitlichen
- fuer spaetere Erweiterungen wie Filter, Paging und Caching offen bleiben
Empfohlene Projektstruktur
Fuer die Frontend-Integration sollen diese Bausteine eingeplant werden:
src/lib/catalog/config.ts
src/lib/catalog/client.ts
src/lib/catalog/service.ts
src/lib/catalog/mapper.ts
src/lib/catalog/errors.ts
src/lib/catalog/guards.ts
src/api/Interfaces/catalog.ts
docs/catalog-api-integration.md
Verantwortung der einzelnen Bausteine
src/lib/catalog/config.ts
- liest Basis-URL, API-Key und optionale Timeouts aus der Laufzeitkonfiguration
- kapselt Defaultwerte und Validierung der Pflichtvariablen
src/lib/catalog/client.ts
- stellt einen zentralen API-Client fuer
rm_catalog_api bereit
- setzt Header wie
X-API-Key
- kuemmert sich um Fetch-Logik, Statuspruefung und Response-Parsing
src/lib/catalog/service.ts
- bietet die fachlichen Einstiegsfunktionen fuer Seiten und Komponenten
- zum Beispiel
getCatalogOverview, getCategoryById, getProductsByCategory, getProductById
- verhindert, dass Seiten direkt gegen einzelne Endpunkte arbeiten muessen
src/lib/catalog/mapper.ts
- transformiert API-Rohdaten in Frontend-Modelle
- trennt externe Feldnamen von internen Darstellungsmodellen
- definiert Fallbacks fuer fehlende oder optionale Felder
src/lib/catalog/errors.ts
- vereinheitlicht Fehlerklassen oder Fehlerobjekte fuer
401, 404, leere Daten und Upstream-Probleme
- sorgt fuer klare Behandlung in UI und Serverlogik
src/lib/catalog/guards.ts
- enthaelt schlanke Guards oder Validierungslogik fuer kritische Response-Strukturen
- schuetzt vor stillen Fehlern bei unvollstaendigen API-Antworten
src/api/Interfaces/catalog.ts
- enthaelt Types und Interfaces fuer die Katalogintegration
- trennt API-Response-Typen von internen View-Modellen
- dient als zentrale Referenz fuer Frontend und spaetere Erweiterungen
docs/catalog-api-integration.md
- dokumentiert Architektur, Umgebungsvariablen, Request-Fluss, Mapping und Fehlerverhalten
- beschreibt, welche Seite welche Service-Funktion verwendet
- dient als technische Uebergabedoku fuer spaetere Weiterentwicklung
Mindestumfang fuer Types und Interfaces
Folgende Typgruppen muessen mindestens definiert werden:
- API-Responses fuer Kategorienliste, Kategorie-Detail, Kategorie-Produkte, Produkt-Detail und Kataloguebersicht
- Basisobjekte fuer Kategorie, Produkt, Attribut, Merkmal und Breadcrumb- oder Navigationsdaten
- Frontend-View-Modelle fuer Startseite, Kategorieseite und Produktdetailseite
- Fehler- und Statusmodelle fuer Auth-, Not-Found- und Upstream-Faelle
Grundsatz fuer die Umsetzung
Seiten unter /katalog konsumieren keine ungefilterten API-Responses direkt. Sie verwenden ausschliesslich die Integrationsschicht aus src/lib/catalog und die zentralen Types aus src/api/Interfaces/catalog.ts.
Massnahmenpakete
Paket A: Architektur und Routing festziehen
Ziel: Eine saubere Grundlage fuer Katalog-Startseite, Kategorien und Produktdetails schaffen.
Umfang:
- Routing fuer
/katalog, Kategorien und Produktdetails definieren
- Datenfluss zwischen Seiten, API-Layer und UI-Komponenten festlegen
- Zielstruktur fuer
src/lib/catalog, zentrale Types und Dokumentation festlegen
- Namensschema fuer Slugs, IDs und Fallbacks dokumentieren
- Lade-, Fehler- und Leerzustaende als festen Teil der Seitenlogik planen
Ergebnis:
- nachvollziehbare Seitenstruktur
- klare Verantwortlichkeiten zwischen Route, Datenbeschaffung und Darstellung
- definierte technische Zielstruktur fuer Libs, Types und Doku
- robuste Fallback-Strategie fuer fehlende API-Daten
Paket B: Datenanbindung an rm_catalog_api
Ziel: Die benoetigten API-Daten sicher und konsistent im Frontend nutzbar machen.
Umfang:
- zentrale API-Libs unter
src/lib/catalog anlegen
- API-Zugriffe fuer Kategorien, Kategorieprodukte, Produktdetails und Kataloguebersicht anbinden
- Types und Interfaces fuer API-Vertraege und Frontend-Modelle definieren
- Response-Mapping fuer Frontend-Modelle definieren
- sensible Konfiguration wie API-Key sauber ueber Environment oder Server-Konfiguration einbinden
- Fehlerbilder wie
401, 404, leere Antworten oder unvollstaendige Datensaetze abfangen
Ergebnis:
- stabiler Datenzugriff fuer alle drei Seitentypen
- wiederverwendbare API-Libs statt verteilter Einzellogik
- zentrale Types und Interfaces fuer die gesamte Katalogintegration
- Frontend-nahe Datenmodelle statt direkter Rohdatenverwendung
- reproduzierbares Verhalten bei Ausfaellen und Teilfehlern
Paket C: Shop-Startseite gestalten
Ziel: Einen hochwertigen, markenkonformen Einstieg in den Katalog schaffen.
Umfang:
- Hero fuer den Katalogbereich gestalten
- Kategorienuebersicht mit klarer Navigationsfunktion entwickeln
- Top-Artikel oder kuratierte Highlights inszenieren
- bestehende Komponenten priorisiert wiederverwenden
Ergebnis:
- Startseite fuehlt sich wie Teil von
recent.digital an
- Kategorien werden schnell erfassbar
- erste Produkte sind sichtbar, ohne den Einstieg zu ueberfrachten
Paket D: Kategorieseiten auf Scanbarkeit optimieren
Ziel: Kategorien muessen auf Desktop und Mobile schnell bedienbar und klar lesbar sein.
Umfang:
- aktive Kategorie samt Unterkategorien sauber visualisieren
- Produktlisten mit konsistentem Karten- oder Listenmuster umsetzen
- sinnvolle Meta-Informationen definieren, etwa Name, Kurzbeschreibung, Preislogik oder Merkmale, falls vorhanden
- Mobile-Stapelung fuer Navigation, Intro und Produktliste bewusst gestalten
Ergebnis:
- Nutzer finden sich innerhalb des Katalogs schnell zurecht
- Unterkategorien und Artikel sind klar voneinander getrennt
- Produktdarstellung bleibt ruhig und professionell
Paket E: Produktdetailseite ausarbeiten
Ziel: Eine fokussierte Detailseite mit hoher Verstaendlichkeit und klarer CTA-Fuehrung.
Umfang:
- Produktkopf mit Titel, Kurzbeschreibung und primaerer Aktion bauen
- Attribute, Merkmale und Kategorien sauber strukturieren
- Ruecksprungpfade und Anschlussnavigation definieren
- technische und redaktionelle Inhalte visuell unterschiedlich gewichten
Ergebnis:
- Produktdetailseite liefert Orientierung statt Datenwand
- wichtige Informationen sind sofort sichtbar
- Seite bleibt anschlussfaehig fuer spaetere Erweiterungen
Paket F: Qualitaet, Tests und Betriebsfaehigkeit absichern
Ziel: Der Katalogbereich soll nicht nur gut aussehen, sondern auch verifizierbar stabil laufen.
Umfang:
- Smoke-Checks fuer alle benoetigten API-Endpunkte nutzen
- lokale Testdaten und Pflichtfaelle dokumentieren
- technische Dokumentation fuer Libs, Konfiguration, Types und Mapping verfassen
- Fehler- und Leerzustaende pruefen
- mobile und Desktop-Darstellung gegen die Designvorgaben kontrollieren
Ergebnis:
- belastbare Abnahmegrundlage
- weniger Risiko bei spaeteren API- oder UI-Aenderungen
- nachvollziehbare technische Doku fuer Anschlussarbeiten
- klarer Verifikationspfad vor Freigabe
Technische Leitplanken fuer die API
Die API rm_catalog_api verfolgt fuer den aktuellen MVP diese Grundsaetze:
- authentifizierte API-Endpunkte
- Produktdaten inklusive Merkmale und Attribute
- Kategorien und Produkt-Kategorie-Zuordnungen
- performanter Katalog-Endpunkt mit reduzierten Stammdaten fuer Uebersichten
Interne Bausteine des API-Plugins:
ApiConfigService: zentrale Quelle fuer API-Pfad, Version und Plugin-Konfiguration
ApiAuthenticationService: API-Key-Pruefung fuer Middleware und Erweiterungen
ApiResponseFactory: einheitliche Erfolgs- und Fehlerantworten
ApiRouteProvider: zentrale Definition der versionierten GET-Routen
CatalogApiService: Datenzugriff und Mapping fuer Kategorien, Produkte und Katalog
Performance-Grundsaetze:
- Detail-Endpunkte laden vollstaendige JTL-Artikelobjekte
- der Katalog-Endpunkt arbeitet mit kompakteren Summary-Daten
- Kategorie- und Kataloglisten sollen scanbar und performant bleiben
Abhaengigkeiten und Voraussetzungen
Vor oder waehrend der Umsetzung muessen folgende Punkte geklaert oder bereitgestellt sein:
- gueltiger API-Key fuer die Zielumgebung
- erreichbare API-Basis unter
https://jtlshop-api.recent.digital
- definierte Environment-Variablen fuer Basis-URL und Authentifizierung
- mindestens eine sichtbare Kategorie mit bekanntem
slugPath
- mindestens ein sichtbarer Artikel mit bekanntem
productSlug
- gepflegte Daten fuer Name, SKU und Kurzbeschreibung
- optional Merkmale oder Attribute fuer realistische Detailtests
Verifikation
Empfohlener Verifikationspfad fuer die API:
GET /api/catalog/v2/catalog auf gruppierte Startdaten pruefen.
GET /api/catalog/v2/categories/tree pruefen und gueltigen Kategorie-Slug bestaetigen.
GET /api/catalog/v2/categories/by-slug/:slugPath gegen dieselbe Kategorie pruefen.
GET /api/catalog/v2/categories/by-slug/:slugPath/products auf mindestens einen Artikel pruefen.
GET /api/catalog/v2/products/by-slug/:productSlug fuer einen Artikel aus der Liste pruefen.
Vorhandene Referenzen:
Zu dokumentieren im Frontend:
- technische Architektur der Kataloganbindung
- benoetigte Umgebungsvariablen und deren Zweck
- Datenfluss von Route zu Service zu Mapper zu UI
- definierte Types und Interfaces mit ihrer Rolle
- Fehlerverhalten und erwartete Fallbacks
Direkter Aufruf:
SHOP_BASE_URL="https://shop.example.test" \
API_KEY="dein-api-key" \
CATEGORY_ID="123" \
PRODUCT_ID="456" \
./rm_catalog_api/tests/api_smoke_tests.sh
Definition of Done
Das Massnahmenpaket gilt fuer den MVP als erfolgreich umgesetzt, wenn:
/katalog als sauber gestaltete Startseite vorhanden ist
- mindestens eine Kategorieseite mit Navigation, Unterkategorien und Produktliste funktioniert
- mindestens eine Produktdetailseite mit den zentralen Produktdaten funktioniert
- alle benoetigten API-Daten authentifiziert und stabil geladen werden
- die API-Anbindung ueber zentrale Libs in
src/lib/catalog erfolgt
- zentrale Types und Interfaces fuer API- und View-Modelle vorhanden sind
- eine technische Dokumentation fuer Integrationslogik und Konfiguration vorliegt
- Fehler-, Leer- und Nichtgefunden-Zustaende sauber dargestellt werden
- die UI sichtbar zur Markenwelt von
recent.digital passt
- Mobile-Layouts nicht wie zusammengeschobene Desktop-Ansichten wirken
- die CTA-Hierarchie pro Seite klar und reduziert bleibt
Priorisierte Umsetzungsreihenfolge
- Paket A: Architektur und Routing
- Paket B: Datenanbindung
- Paket C: Shop-Startseite
- Paket D: Kategorieseiten
- Paket E: Produktdetailseite
- Paket F: Qualitaet, Tests und Abnahme
Naechste Ausbaustufen nach MVP
- Filter und Paging fuer groessere Kataloge
- Feldselektion fuer API-Clients
- Schluesselrotation oder alternative Authentifizierung
- kuratierte Empfehlungslogiken oder verwandte Produkte
- SEO-Feinschliff fuer Kategorien und Produktdetails
Status
Stand 31.03.2026:
- Die API-MVP-Pakete A bis F fuer
rm_catalog_api sind abgeschlossen.
- Routing, Authentifizierung, Responses und Smoke-Tests fuer die API liegen vor.
- Dieses Dokument definiert das daraus abgeleitete Frontend-Massnahmenpaket fuer den Katalogbereich in
www.recent.digital.