Markus Michalski FAQ

Marketplace Redirect: Admin API

Admin API von Marketplace Redirect: Links per Import oder Automation anlegen, ändern und löschen, Felder, Antwortcodes und Filter.

English Version

Zurück zur Übersicht

Marketplace Redirect: Admin API

Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.

Über die Admin API pflegst du die gespeicherten Links, zum Beispiel per Import oder Automation. Alle Operationen brauchen ein Admin-Token mit ROLE_API_ACCESS. GraphQL ist für diese Ressource nicht freigegeben.

Operationen

Operation Endpunkt
Liste (Filter ?product=/api/v2/admin/products/{code}) GET /api/v2/admin/product-marketplace-links
Lesen GET /api/v2/admin/product-marketplace-links/{id}
Anlegen POST /api/v2/admin/product-marketplace-links
Ändern PUT /api/v2/admin/product-marketplace-links/{id}
Löschen DELETE /api/v2/admin/product-marketplace-links/{id}
{
  "product": "/api/v2/admin/products/my-book",
  "type": "amazon",
  "reference": "3836244764",
  "amazonDomain": "de"
}

Felder

Feld Regeln
product IRI des Produkts. Beim Anlegen Pflicht, beim Ändern wird es ignoriert (ein Link bleibt bei seinem Produkt). Ein Produkt hat höchstens einen Link
type amazon oder shopware_store. Beim Anlegen ohne Angabe gilt amazon
reference amazon: die ASIN, genau 10 Buchstaben und Ziffern. shopware_store: eine Produkt-URL https://store.shopware.com/.... Leerzeichen am Rand werden entfernt
amazonDomain Nur bei amazon: de, com, co.uk, fr, it, es, nl, pl, se oder ca. null nimmt die Standard-Domain. Bei jedem anderen Typ muss es null sein

Antwortcodes

Code Wann
201 Link angelegt (POST)
204 Link gelöscht (DELETE)
401 / 403 Das Token fehlt oder hat nicht die Rolle ROLE_API_ACCESS
404 GET, PUT oder DELETE mit einer unbekannten ID
422 Ein zweiter Link für ein Produkt, eine Referenz, die nicht zum Typ passt, eine unbekannte Domain, eine Domain an einem Store-Link, ein fehlendes Produkt. Die Verstöße stehen je Feld in der Antwort
400 Ein unbekannter type oder eine unbekannte Produkt-IRI

Die Regeln für Referenz und Domain sind dieselben wie im Produktformular. Einziger Unterschied: Eine Domain an einem Store-Link verwirft das Formular ohne Meldung, die API lehnt sie mit 422 ab. Legen zwei Anfragen gleichzeitig einen Link für dasselbe Produkt an, bekommt die Anfrage, die zu spät kommt, ebenfalls ein 422 und keinen Datenbankfehler.

Filter und Teil-Updates

Der Filter product nimmt eine oder mehrere Produkt-IRIs (product[]=...&product[]=...). Ein Wert, der kein existierendes Produkt benennt (unbekannter Code, keine IRI, leerer Wert), trifft nichts: Die Liste ist leer, die Anfrage gelingt trotzdem. Bei mehreren Werten leert eine unbekannte IRI die ganze Liste, egal an welcher Stelle sie steht.

PUT ist ein Teil-Update: Ein Feld, das du weglässt, behält seinen gespeicherten Wert. Wechselst du einen Link von amazon zu shopware_store, sende "amazonDomain": null zusammen mit der neuen Referenz mit. Löschst du einen Link, hat das Produkt wieder den normalen Warenkorb-Button.

curl -X POST "https://shop.example.com/api/v2/admin/product-marketplace-links" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product":"/api/v2/admin/products/my-book","reference":"3836244764"}'

curl -X DELETE "https://shop.example.com/api/v2/admin/product-marketplace-links/12" \
  -H "Authorization: Bearer $TOKEN"

Ohne type legt der erste Aufruf einen Amazon-Link mit der Standard-Domain an.