API für Entwickler
Alle Daten des Plugins sind über die Admin-API von Shopware erreichbar. Eine Store-API gibt es nicht. Zur Anmeldung nutzt du eine Integration (siehe Anbindung an andere Systeme) mit POST /api/oauth/token und grant_type=client_credentials.
Entitäten
| Entität | Inhalt |
|---|---|
iwv-dpp-passport | Pass mit resolverKey, sourceType, sourceUrl, status, granularity, gtin, Gültigkeit, productManufacturerId (Hersteller-Rückfallebene) und den übersetzten Feldern title, summary, content (HTML), accessNote |
iwv-dpp-passport-product | Zuordnung: passportId, productId, isOverride, priority |
iwv-dpp-field-profile | Feldprofile (lesen) |
iwv-dpp-field-value | Werte der Profilfelder: passportId, fieldKey, languageId, valueType (text oder url), value |
iwv-dpp-audit-log | Protokoll (nur lesen) |
Die Standard-Endpunkte von Shopware gelten, zum Beispiel POST /api/search/iwv-dpp-passport oder PATCH /api/iwv-dpp-passport/{id}. Eine doppelte Zuordnung desselben Produkts beantwortet die API mit 409 IWV_DPP__PASSPORT_ALREADY_ATTACHED.
Beispiel: Feldwert für einen Pass setzen
POST /api/iwv-dpp-field-value
{
"passportId": "<Pass-ID>",
"fieldKey": "repair_information",
"languageId": "<Sprach-ID>",
"valueType": "text",
"value": "Ersatzteile sind zehn Jahre lang beim Hersteller erhältlich."
}Zusätzliche Endpunkte
| Methode und Pfad | Zweck |
|---|---|
GET /api/_action/iwv-dpp/product-passport?productId= | Welcher Pass für ein Produkt gilt und woher (product, parent, manufacturer) |
GET /api/_action/iwv-dpp/coverage | Kennzahlen der Seite Bereitschaft |
GET /api/_action/iwv-dpp/coverage/missing?page=&limit= | Produkte ohne Pass |
GET /api/_action/iwv-dpp/resolver-key | Neuen Code erzeugen |
POST /api/_action/iwv-dpp/import/dry-run | CSV prüfen (Datei als file) |
POST /api/_action/iwv-dpp/import/commit | CSV importieren |
GET /api/_action/iwv-dpp/export | CSV-Export |
GET /api/_action/iwv-dpp/export/carriers | QR-Codes als ZIP |
Öffentliche Adressen
| Adresse | Antwort |
|---|---|
/dpp/{CODE} | Passseite (HTML). Mit ?format=jsonld oder dem Header Accept: application/ld+json JSON-LD |
/dpp/{CODE}.jsonld | JSON-LD nach schema.org Product |
/dpp/{CODE}/carrier.svg, /dpp/{CODE}/carrier.png | QR-Code |
/dpp/01/{GTIN}, /dpp/01/{GTIN}/10/{Charge} | Pass zu einer GTIN, optional mit Charge |
Unbekannte Codes liefern 404.

