Produkte
Die Katalogebene — Produkte, Bilder, Chargen. Ein Produkt kann viele Pässe haben (einen pro serialisierter Einheit).
/api/v1/productsProdukt anlegen
Erstellt ein Produkt. Die Kategorienvorlage wird automatisch aus dem `category`-Slug aufgelöst — muss einer gesäten Kategorie entsprechen (z. B. `battery`, `textile`, `jewelry`). Modell-Strings sind innerhalb des Workspaces eindeutig.
/api/v1/products/{id}Einzelnes Produkt lesen
Liest ein Produkt per ID. Gibt das vollständige Dokument zurück, einschließlich Standard-Feldwerte, Bild-URLs, Template-Referenz und laufendem `passportCount`. Dieser Endpoint verbraucht kein tägliches Lese-Kontingent.
/api/v1/productsProdukte auflisten
Paginierte Liste aller Produkte des Workspaces, absteigend nach `createdAt` sortiert. Seitengröße max. 100. Filter nach Kategorie-Slug, Status (`active` / `archived`) oder Freitextsuche über name + model.
/api/v1/products/{id}Produkt aktualisieren
Patcht ein oder mehrere Produktfelder. Senden Sie nur die Schlüssel, die Sie ändern möchten — ausgelassene Felder bleiben unverändert. Die Ganz-Array-Semantik von `imageUrls` ist beabsichtigt: Das Kunden-CMS ist die kanonische Bildquelle, also ersetzt ein PATCH mit `imageUrls: ["a","b"]` die vorhandene Liste. Zum Anhängen eines einzelnen Bildes ohne Umschreiben nutzen Sie den Multipart-Upload-Endpoint.
/api/v1/products/{id}/imagesProduktbild hochladen
Lädt eine einzelne Bilddatei hoch (multipart/form-data, Feldname `file`) und hängt sie an das `imageUrls`-Array des Produkts an. Nützlich, wenn keine CDN-URL bereitsteht — TracePass speichert das Bild und gibt seine öffentliche URL in der Antwort zurück.
/api/v1/products/{id}/archiveProdukt archivieren
Soft-Archivierung. `Product.status` wechselt zu `archived`; die Änderung ist endgültig (kein Endpoint macht sie rückgängig). Archivierte Produkte erscheinen weiterhin in `GET /api/v1/products`; mit `status=active` blenden Sie sie aus. Nur zulässig, wenn alle Pässe des Produkts archiviert sind (sonst 409) — und das Archivieren eines Produkts verhindert nicht die Erstellung neuer Pässe dagegen.
/api/v1/products/{id}Produkt dauerhaft löschen
**Dauerhaft und unumkehrbar.** Entfernt die Produkt-Zeile + alle hochgeladenen Dokumente, deren einzige Referenz dieses Produkt war (Dokumente, die mit anderen Produkten/Pässen verknüpft sind, bleiben erhalten, nur ohne `productId`). Gespeicherte Dateien, die nur zu diesem Produkt gehörten, werden ebenfalls gelöscht.