Markus Michalski FAQ

Sylius Media Alt Text: Admin API

Admin API des Sylius Media Alt Text Plugins: die Felder alt, decorative und altTexts an Produkt-, Kategorie- und Avatar-Bildern lesen und schreiben, Ersetzungs-Semantik und die 422-Fehlerfälle.

English Version

Zurück zur Übersicht

Sylius Media Alt Text: Admin API

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

Das Plugin erweitert die vorhandenen Bild-Endpunkte der Sylius Admin API, es fügt keine neuen Routen hinzu. Das gilt für Produktbilder, Kategoriebilder und Avatar-Bilder.

Felder

Feld Typ Lesen Schreiben Beschreibung
alt String ja nein Aufgelöster Text mit Fallback, wie ihn die Storefront ausgibt
decorative Boolean ja ja Ob das Bild als dekorativ markiert ist
altTexts Objekt (Sprache => Text) ja ja Alle gepflegten Texte, immer ein Objekt, auch wenn es leer ist

Die Admin API zeigt immer, was gepflegt ist, auch wenn die Ausgabe im Shop ausgeschaltet ist.

Schreiben

PUT /api/v2/admin/products/MUG/images/12
Content-Type: application/ld+json

{
  "type": "main",
  "altTexts": { "en_US": "A blue mug on a table", "de_DE": "Eine blaue Tasse auf einem Tisch" },
  "decorative": false
}

Dieselben Felder funktionieren beim Multipart-Upload POST /api/v2/admin/products/{code}/images (z.B. altTexts[en_US]=...) und an den Endpunkten für Kategoriebilder (/api/v2/admin/taxons/{code}/images, mit PUT und Multipart-POST). Das Avatar-Bild eines Administrators (/api/v2/admin/administrators/{id}/avatar-image) kennt in Sylius nur GET, Multipart-POST und DELETE, Texte setzt Du dort also beim POST.

altTexts ersetzt den kompletten Satz an Texten: Eine Sprache, die Du weglässt, verliert ihren Text. Lässt Du altTexts ganz aus der Anfrage weg, bleiben die gespeicherten Texte unverändert. Dasselbe gilt für decorative.

Fehlerantworten

Die Antwort ist 422, und es wird nichts gespeichert (die ganze Anfrage läuft in einer Transaktion), bei:

Ursache Meldung bzw. Verhalten
Sprache, die im Shop nicht aktiviert ist The locale "xx_XX" is not enabled in this shop.
Text länger als 255 Zeichen Längenprüfung schlägt fehl
altTexts ist kein Objekt oder ein Wert kein String Typfehler
decorative ist kein Boolean "decorative" must be a boolean.

Beispiel: Texte auslesen

curl -s https://shop.example.com/api/v2/admin/products/MUG/images/12 \
  -H "Authorization: Bearer $TOKEN" -H 'Accept: application/ld+json'

Die Antwort enthält neben den Sylius-Feldern etwa:

{
  "alt": "A blue mug on a table",
  "decorative": false,
  "altTexts": { "en_US": "A blue mug on a table", "de_DE": "Eine blaue Tasse auf einem Tisch" }
}