Store API
Diese Seite richtet sich an Entwickler:innen. Sie beschreibt die Store-API-Endpunkte des Plugins PremsBlog für Headless-Frontends und externe Integrationen.
Allgemeines
Basis-URL:
https://<shop>/store-apiAuthentifizierung: via
sw-access-key-Header des VerkaufskanalsDatenformat: JSON mit
Content-Type: application/jsonRouten-Scope:
store-apiSprachbehandlung: Antworten respektieren den per
sw-language-idgesetzten Sprachkontext. Übersetzbare Felder stehen zusätzlich im Blocktranslated.
Endpunkte im Überblick
GET POST
/store-api/prems-blog/articles
store-api.prems-blog.article.list
GET POST
/store-api/prems-blog/article/{articleId}
store-api.prems-blog.article.detail
GET POST
/store-api/prems-blog/authors
store-api.prems-blog.author.list
GET POST
/store-api/prems-blog/author/{authorId}
store-api.prems-blog.author.detail
GET POST
/store-api/prems-blog/category/{categoryId}
store-api.prems-blog.category.detail
GET POST
/store-api/prems-blog/tag/{tagId}
store-api.prems-blog.tag.detail
POST
/store-api/prems-blog/article/{articleId}/review
store-api.prems-blog.review.save
Beiträge auflisten
GET /store-api/prems-blog/articles
Liefert eine paginierte Liste aller aktiven Beiträge im aktuellen Sichtbarkeitsfenster.
Parameter
page
int
Query oder Body
Seitenzahl. Standard ist 1.
limit
int
Query oder Body
Treffer pro Seite. Standard ist 12. Das IAP-Feature numberOfBlogPosts kann den Wert nach oben begrenzen.
categoryId
string
Query oder Body
Filtert nach Blog-Kategorie.
tagId
string
Query oder Body
Filtert nach Tag.
authorId
string
Query oder Body
Filtert nach Autor:in.
sort
string
Query oder Body
displayDate absteigend oder title aufsteigend.
Filter
Die Route liefert nur Beiträge mit status = 'active'.
Zusätzlich muss das Sichtbarkeitsfenster erfüllt sein:
activeFrom IS NULLoderactiveFrom <= NOW()activeTo IS NULLoderactiveTo >= NOW()
Assoziationen
author, categories, tags, previewMedia
Response
Beispiel
Beitragsdetail
GET /store-api/prems-blog/article/{articleId}
Liefert einen einzelnen Beitrag mit allen relevanten Assoziationen.
Parameter
articleId
string
Pfad
UUID des Blog-Beitrags. Pflicht.
Assoziationen
author, author.media, categories, tags, media.media, reviews, products, products.cover, products.cover.media, products.options.group, products.seoUrls, previewMedia
Sichtbarkeit
Die Route liefert den Beitrag nur aus, wenn status = 'active' gesetzt ist und das Zeitfenster über activeFrom und activeTo erfüllt ist.
Andernfalls antwortet die Route mit 500 und RuntimeException: Article not found or not active.
Response
Das Array reviews enthält auch noch nicht freigeschaltete Bewertungen mit active = false. In eigenen Storefronts solltest du clientseitig auf active = true filtern.
Autor:innen auflisten
GET /store-api/prems-blog/authors
Liefert eine paginierte Liste aller Blog-Autor:innen.
Parameter
page
int
Query oder Body
Seitenzahl. Standard ist 1.
limit
int
Query oder Body
Treffer pro Seite. Standard ist 12. Das IAP-Feature numberOfAuthors kann den Wert nach oben begrenzen.
letter
string
Query oder Body
A–Z-Filter auf lastName.
Sortierung
lastName aufsteigend, danach firstName aufsteigend
Assoziationen
media, articles
Response
Autorendetail
GET /store-api/prems-blog/author/{authorId}
Liefert eine Autorin oder einen Autor sowie deren oder dessen aktive Beiträge.
Parameter
authorId
string
Pfad
UUID des Autors. Pflicht.
page
int
Query oder Body
Seite der Artikelliste. Standard ist 1.
limit
int
Query oder Body
Treffer pro Seite. Standard ist 12.
Verhalten
Der Datensatz wird mit
mediageladen.Beiträge werden auf
status = 'active', Sichtbarkeitsfenster undauthorIdgefiltert.Sortiert wird nach
displayDateabsteigend.
Response
Existiert authorId nicht, antwortet die Route mit 500 und RuntimeException: Author not found.
Kategorie mit Beiträgen
GET /store-api/prems-blog/category/{categoryId}
Liefert eine Blog-Kategorie und alle aktiven Beiträge dieser Kategorie.
Parameter
categoryId
string
Pfad
UUID der Blog-Kategorie. Pflicht.
page
int
Query oder Body
Seite der Artikelliste. Standard ist 1.
limit
int
Query oder Body
Treffer pro Seite. Standard ist 12.
Response
Existiert categoryId nicht, antwortet die Route mit 500 und RuntimeException: Category not found.
Tag mit Beiträgen
GET /store-api/prems-blog/tag/{tagId}
Liefert ein Blog-Tag und alle aktiven Beiträge mit diesem Tag.
Parameter
tagId
string
Pfad
UUID des Blog-Tags. Pflicht.
page
int
Query oder Body
Seite der Artikelliste. Standard ist 1.
limit
int
Query oder Body
Treffer pro Seite. Standard ist 12.
Response
Existiert tagId nicht, antwortet die Route mit 500 und RuntimeException: Tag not found.
Bewertung speichern
POST /store-api/prems-blog/article/{articleId}/review
Speichert eine Beitragsbewertung. Neue Reviews werden immer mit active = false angelegt und erscheinen erst nach manueller Freigabe in der Storefront.
Voraussetzungen
Aktiver IAP premsBlogPremium mit Feature RATING_FEATURE_ENABLED
404 Not Found mit „Blog reviews are not available on the current plan."
Eingeloggter Kunde ohne Gastmodus
403 Forbidden mit Fehlercode CHECKOUT__CUSTOMER_NOT_LOGGED_IN
articleId existiert
404 Not Found mit „Blog article with id … not found."
Parameter
articleId
string
Pfad
ja
UUID des Beitrags.
title
string
Body
ja
Titel der Bewertung mit 5 bis 255 Zeichen.
content
string
Body
ja
Inhalt der Bewertung mit mindestens 40 Zeichen.
stars
int
Body
ja
Sternebewertung zwischen 1 und 5.
name
string
Body
nein
Anzeigename. Bei leerem Wert wird firstName + lastName des eingeloggten Kunden verwendet.
email
string
Body
nein
E-Mail-Adresse. Bei leerem Wert wird die E-Mail des eingeloggten Kunden verwendet.
Response
204 No Content
Fehlercodes
204
Bewertung wurde gespeichert und wartet auf Freigabe.
400
Validierung fehlgeschlagen.
403
Kunde ist nicht eingeloggt oder befindet sich im Gastmodus.
404
Premium-IAP fehlt oder articleId ist unbekannt.
Beispiel
Plan-Limits über IAPs
Einige Endpunkte respektieren die im aktiven Plan gesetzten Feature-Limits.
numberOfBlogPosts
Begrenzt limit bei GET /articles.
numberOfAuthors
Begrenzt limit bei GET /authors.
RATING_FEATURE_ENABLED
Aktiviert POST /article/{articleId}/review.
Ist ein Feature unbegrenzt, hat es keinen Einfluss auf den übergebenen limit-Wert.
Zuletzt aktualisiert
War das hilfreich?
