Markus Michalski FAQ

Marketplace Redirect: Shop API

Shop API von Marketplace Redirect für Headless-Clients: Endpunkt, Antwortfelder und das 404-Verhalten.

English Version

Zurück zur Übersicht

Marketplace Redirect: Shop API

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

Dual-Mode

Das Plugin ist dual-mode: Die Twig-Storefront und die Shop API beantworten dieselbe Frage („Wo wird dieses Produkt gekauft?“) mit derselben Logik. Ein Headless-Client bekommt die fertige URL und zeigt bei einem 404 seinen normalen Warenkorb-Button.

graph LR
    A["Storefront Twig Hook"] --> C["Redirect-Provider"]
    B["Shop API Request"] --> C
    C --> D["Channel-Einstellung"]
    D --> E["Link am Produkt"]
    E --> F["Button im HTML"]
    E --> G["JSON-Antwort"]

Endpunkt

Methode Pfad Beschreibung
GET /api/v2/shop/marketplace-redirects/{productCode} Liefert Typ und URL des externen Kaufs für ein Produkt

Der Endpunkt ist schreibgeschützt, andere Operationen gibt es nicht.

curl "https://shop.example.com/api/v2/shop/marketplace-redirects/my-book"
{ "productCode": "my-book", "type": "amazon", "url": "https://www.amazon.de/dp/3836244764" }
Feld Beschreibung
productCode Code des Produkts
type amazon oder shopware_store
url Fertige Adresse, bei Amazon aus ASIN und Domain berechnet

Fehlerverhalten

Der Endpunkt antwortet mit 404 bei einem unbekannten Produktcode, einem deaktivierten Produkt, einem Produkt, das im aktuellen Channel nicht verkauft wird, einem Produkt ohne Link und in einem Channel, in dem das Plugin nicht eingeschaltet ist.

Alles, was nicht sichtbar sein soll, antwortet mit demselben 404 wie „kein Link“. So verrät die API nicht, dass zu einem deaktivierten Produkt ein Link existiert. Ein Headless-Client zeigt bei jedem 404 seinen normalen Warenkorb-Button.

Einen eigenen Fehlerbody führt das Plugin nicht ein, es gilt das Standardformat von API Platform. Der gespeicherte Link selbst ist über die Shop API nicht sichtbar, nur diese berechnete Antwort. Zum Pflegen der Links siehe Admin API.