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.
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.
altTextsersetzt den kompletten Satz an Texten: Eine Sprache, die Du weglässt, verliert ihren Text. Lässt DualtTextsganz aus der Anfrage weg, bleiben die gespeicherten Texte unverändert. Dasselbe gilt fürdecorative.
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" }
}