urls/identify beantwortet die Frage, welche Seite unter einer aufgerufenen Adresse angezeigt werden soll, und ist damit der Einstiegspunkt für das Routing einer eigenen Storefront. urls/product und urls/category gehen den umgekehrten Weg und liefern zu einer bekannten ID die passende Adresse, beispielsweise um Links in Listen und Navigationen zu erzeugen.
Ein typischer Ablauf ist: Die Storefront übergibt die aufgerufene Adresse an urls/identify, erhält Seitentyp und ID zurück und lädt die Inhalte anschließend über die Katalog API.
Welcher Subshop antwortet, ergibt sich aus der Domain, gegen die die Aufrufe gehen. Mehr dazu unter Storefront API Basics. Da SEO-URLs je Subshop gepflegt werden, liefert dieselbe Adresse in verschiedenen Subshops unterschiedliche Ergebnisse.
Die Endpunkte dieser Seite benötigen keinen
x-session-Header. Ein mitgesendeter Header stört nicht.Unterstützte Methoden
Angabe aller unterstützten Methoden.
Alle anderen HTTP-Methoden beantworten die Endpunkte mit
404 Not Found.
Methoden für die URL-Resolution
GET urls/identify
Folgender Aufruf ordnet eine eingehende Adresse einer Shop-Ressource zu. Die Antwort sagt, welcher Seitentyp zu rendern ist, welche Ressource dazu geladen werden muss und ob stattdessen weitergeleitet werden soll. Der Endpunkt ist für Storefronts gedacht, die das Routing selbst übernehmen. Die Storefront gibt die vom Besucher aufgerufene Adresse hinein und entscheidet anhand der Antwort, ob sie eine Produktseite, eine Kategorieseite, eine Weiterleitung oder eine 404-Seite ausliefert. Beispiel-AufrufParameterübersicht
Der Abgleich erfolgt zeichengenau gegen die gespeicherten SEO-URLs. Ein abweichender abschließender Schrägstrich oder eine abweichende Groß- und Kleinschreibung führen deshalb zu
404 Not Found. Ein Query-String, der im Wert von url mitgegeben wird, führt ebenfalls zu 404 Not Found. Zusätzliche Query-Parameter am Endpunkt selbst werden dagegen mit 400 invalidParameters abgelehnt. Übergeben Sie ausschließlich den Pfad, mit führendem Schrägstrich und ohne Query-String.
Antwortfelder
Seitentypen
Der Wert von
type ist die Kennung des zuständigen View-Controllers. Kommen im Shop weitere Seitentypen mit eigenen SEO-URLs zum Einsatz, können auch deren Kennungen erscheinen. Fangen Sie unbekannte Werte deshalb ab und geben Sie in diesem Fall Ihre eigene 404-Seite aus.
Antworten im Überblick
Beispiel-Response: vorhandene Ressource
Beispiel-Response: Startseite
Beispiel-Response: Template-Seite
Beispiel-Response: Alt-Adresse derselben Ressource
type und id beschreiben sie korrekt.
Beispiel-Response: gelöschte Ressource mit Weiterleitungsziel
type und id die nicht mehr vorhandene Ressource. Sie dürfen nicht zum Laden von Seitendaten verwendet werden, auswertbar ist hier nur redirect.
Beispiel-Response: unbekannte Adresse
Auswertung in der Storefront
Werten Sie die Antwort in dieser Reihenfolge aus:- HTTP-Status 404: Die Adresse ist dem Shop unbekannt. Geben Sie Ihre eigene 404-Seite aus.
- Feld
redirectvorhanden: Leiten Sie auf diesen Wert weiter, empfohlen mit Status 301. Das gilt sowohl für Alt-Adressen als auch für gelöschte Ressourcen. Prüfen Sieredirectdeshalb vorfound. - Kein
redirect,foundisttrue: Bauen Sie die Seite regulär auf.typebestimmt den Seitentyp,idist die Ressource für den anschließenden Aufruf voncatalog/product/loadbeziehungsweisecatalog/category/load. - Der Ladeaufruf kommt leer zurück: Die Ressource ist deaktiviert oder gelöscht, ohne dass ein Weiterleitungsziel hinterlegt ist. Geben Sie Ihre eigene 404-Seite aus.
found: false mit dem hinterlegten Weiterleitungsziel. In diesem Fall entstehen also zwei Weiterleitungen nacheinander.
found: true bedeutet, dass die Adresse auflösbar ist, nicht dass die Ressource auslieferbar ist. Ein deaktiviertes Produkt ohne hinterlegtes Weiterleitungsziel liefert found: true. Diesen Fall muss die Storefront selbst erkennen, indem sie das Ergebnis des anschließenden Ladeaufrufs prüft.Aufbau des Feldes redirect
redirect ist immer ein Pfad und beginnt mit /, es ist keine absolute URL. Der Wert kann direkt als Location-Header gesetzt werden. Zwei Formen sind möglich:
- eine SEO-URL des Ziels, beispielsweise
/herren/schuhe - eine technische Shop-URL, wenn zum Ziel keine SEO-URL existiert, beispielsweise
/?wsvc=Category&id=135-98530
Voraussetzung für Weiterleitungen gelöschter Ressourcen
Ein Weiterleitungsziel für eine gelöschte Ressource wird nur ausgegeben, wenn im ShopredirectToParentCategory aktiv ist. Standard ist aktiv, siehe urls.redirects. Ist die Option deaktiviert, verhält sich eine gelöschte Ressource wie eine Ressource ohne hinterlegtes Ziel.
Fehlercodes
GET urls/product
Folgender Aufruf liefert die Adresse eines Produkts. Verwenden Sie ihn, um in Listen, Suchergebnissen oder Empfehlungen Links auf Produktseiten zu erzeugen, ohne das URL-Schema des Shops in der Storefront nachbauen zu müssen. Beispiel-AufrufParameterübersicht
Beispiel-Response
Statuscodes
Kann das Produkt nicht geladen werden, antwortet der Endpunkt mit404 Not Found und leerem Body. Fehlt productId oder wurden weitere Query-Parameter mitgegeben, antwortet der Endpunkt mit 400 Bad Request und dem Fehlercode invalidParameters.
GET urls/category
Folgender Aufruf liefert die Adresse einer Kategorie, beispielsweise für den Aufbau der Navigation oder von Breadcrumbs. Beispiel-AufrufParameterübersicht
Beispiel-Response
Statuscodes
Kann die Kategorie nicht geladen werden, antwortet der Endpunkt mit404 Not Found und leerem Body. Fehlt categoryId oder wurden weitere Query-Parameter mitgegeben, antwortet der Endpunkt mit 400 Bad Request und dem Fehlercode invalidParameters.
Weiterführende Links
- Storefront API Basics - Basis-URL, Subshop-Auswahl über die Domain, Session-Handling und Fehlerformat.
- Storefront API Katalog - Produkt- und Kategoriedaten zur ermittelten ID laden.
- urls - URL (Webadressen) - Aufbau der SEO-URLs und Verhalten bei nicht mehr gültigen Adressen.
- Storefront API Session-Handling - Übergabe der Session an eine Template-Seite.
