API-Referenz Textbausteine
Der Endpunkt /text stellt eine Schnittstelle zur Verwaltung von Textbausteinen in unserem Shopsystem bereit. Darüber können Sie sprachspezifische Variablen definieren, die innerhalb von Templates verwendet werden. Änderungen an diesen Texten können bequem über das Admin-Interface oder automatisiert per API vorgenommen werden, ohne dass die Templates selbst angepasst werden müssen. Zusätzlich bietet die Schnittstelle Funktionen zum Abrufen, Bearbeiten und Löschen einzelner Textbausteine sowie zum Publizieren der Änderungen.
Inhaltsverzeichnis
1. Unterstützte Methoden
Angabe aller unterstützten Methoden.
Befehl/Info | Endpunkte | GET | PUT | POST | DELETE |
|---|---|---|---|---|---|
Textbausteine | text | ||||
Publizieren | text/publish |
2. Datenfelder eines Textbausteins
Name | Typ | Bedeutung |
|---|---|---|
variable | String | Name der Textvariablen, über die der Inhalt im Template angesprochen wird. |
translations | Objekt | Array von Textbausteindaten |
translations.id | Integer | Eindeutiger Index des Textbausteins in der Datenbank (fortlaufende Nummer). |
translations.text | String | Der tatsächliche Inhalt des Textbausteins (z. B. ein Hinweistext oder eine Überschrift). |
translations.languageId | String | Sprachcode (z. B. |
translations.author | Integer | ID des Benutzers, der die letzte Änderung an diesem Eintrag vorgenommen hat. |
translations.systemtext | Boolean | Gibt an, ob der Textbaustein standardmäßig vom System bereitgestellt wird. |
translations.used | Boolean | Wird auf |
translations.changedAt | String | Zeitpunkt der letzten Änderung des Textbausteins (ISO 8601-Format, UTC). |
Beispiel:
{
"translations": {
"DE": {
"author": 3,
"changedAt": "2025-04-01T14:23:00Z",
"id": "42",
"languageId": "DE",
"system": true,
"text": "In den Warenkorb",
"used": true
},
"EN": {
"author": 3,
"changedAt": "2025-04-01T14:23:00Z",
"id": "43",
"languageId": "EN",
"system": true,
"text": "Add to cart",
"used": true
}
},
"variable": "button.addToCart"
}
3. Methoden für Textbausteine
Die hier dokumentierten Methoden bieten eine Schnittstelle zur Verwaltung von Textbausteinen im Shop-System. Sie ermöglichen das Laden, Erstellen, Aktualisieren und Löschen von Variablen, die sprachabhängige Texte enthalten – beispielsweise für Buttons, Fehlermeldungen oder andere UI-Elemente. Jeder Textbaustein kann in mehreren Sprachen vorliegen.
Um diese Methoden nutzen zu können, müssen entsprechende Berechtigungen zum Lesen, Schreiben, Erstellen oder Löschen von Textbausteinen vorhanden sein.
3.1 GET text
Mit dieser Methode wird eine Liste aller verfügbaren Textbausteine inklusive ihrer Übersetzungen geladen. Jeder Eintrag enthält die zugehörige Variable sowie die vorhandenen Sprachversionen mit zusätzlichen Metainformationen wie Änderungszeitpunkt und Autor.
Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Lesen von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/textAntwort:
{
"endReached": true,
"items": [
{
"translations": {
"DE": {
"author": 3,
"changedAt": "2025-04-01T14:23:00Z",
"id": "42",
"languageId": "DE",
"system": true,
"text": "In den Warenkorb",
"used": true
},
"EN": {
"author": 3,
"changedAt": "2025-04-01T14:23:00Z",
"id": "43",
"languageId": "EN",
"system": true,
"text": "Add to cart",
"used": true
}
},
"variable": "button.addToCart"
}
],
"nextPageToken": "MTAw",
"totalCount": 1
}Filterfelder:
variable, text, author, systemtext, used, changedAt
Sortierfelder:
variable, text, languageId, author, systemtext, used, changedAt
Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Textbausteinen. |
400 Bad Request | "invalidValue" |
|
400 Bad Request | "invalidCharacters" |
|
400 Bad Request | "unknownDataField" | Ein Filter- oder Sortierfeld ist ungültig. |
400 Bad Request | "unknownOperation" | Ein Filtertyp ist ungültig. |
400 Bad Request | "syntaxError" |
|
3.2 GET text/authors
Mit dieser Methode wird eine Liste der Benutzer-IDs zurückgegeben, die mindestens einen Textbaustein bearbeitet haben. Die Daten können beispielsweise zur Filterung oder Analyse der Autorenaktivität verwendet werden.
Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Lesen von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/text/authorsAntwort:
{
"items": [
{
"author": "1"
}
],
"totalCount": 1
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Textbausteinen. |
3.3 GET text/{id}
Mit dieser Methode werden alle Übersetzungen eines bestimmten Textbausteins geladen, identifiziert über den Namen der Variable. Für jede Sprache wird ein eigener Eintrag mit Informationen wie Textinhalt, Bearbeiter und Änderungszeitpunkt zurückgegeben.
Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Lesen von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/text/button.addToCartAntwort:
[
{
"author": 1,
"changedAt": "2025-02-17T11:46:54.000Z",
"id": "39",
"languageId": "DE",
"system": false,
"text": "In den Warenkorb",
"used": true
},
{
"author": 1,
"changedAt": "2024-12-18T14:44:54.000Z",
"id": "40",
"languageId": "EN",
"system": false,
"text": "Add to cart",
"used": true
}
]Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Textbausteinen. |
3.4 POST text
Mit dieser Methode kann eine neue Textvariable mit mehreren Sprachversionen erstellt werden. Dabei werden der Name der Variable name und mindestens ein Sprachobjekt mit Sprache data.languageId und Text data.text übergeben. Alle anderen Parameter werden ignoriert. Die Variable muss eindeutig sein – ein Eintrag mit gleichem Namen darf noch nicht existieren.
Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Erstellen von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/textRequest Body:
{
"name": "button.addToCart",
"data": [
{
"languageId": "DE",
"text": "In den Warenkorb"
},
{
"languageId": "EN",
"text": "Add to cart"
}
]
}Antwort:
{
"variable": "button.addToCart",
"translations": {
"DE": {
"id": "39",
"languageId": "DE",
"text": "In den Warenkorb",
"author": 1,
"changedAt": "2025-02-17T11:46:54.000Z",
"system": false,
"used": false
},
"EN": {
"id": "40",
"languageId": "EN",
"text": "Add to cart",
"author": 1,
"changedAt": "2025-02-17T11:46:54.000Z",
"system": false,
"used": false
}
}
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Erstellen von Textbausteinen. |
400 Bad Request |
| Request body konnte nicht geladen werden oder die Variable nicht erzeugt werden. |
400 Bad Request | "invalidValue" | Die Parameter |
400 Bad Request | “invalidCharacters” | Der Variablenname enthält ungültige Zeichen. |
400 Bad Request | “missing” |
|
409 Conflict |
| Eine Variable mit dem selben Namen existiert bereits. |
3.5 POST text/{id}/duplicate
Mit dieser Methode kann eine vorhandene Textvariable dupliziert werden. Dabei werden alle Sprachversionen und Eigenschaften der Originalvariable übernommen. Der Name der neuen Variable wird automatisch generiert, indem an das Ende des ursprünglichen Namens eine Nummer angehängt wird.
Falls der Ursprungsname noch keine Zahl am Ende enthält, wird die Ziffer 1 hinzugefügt (z. B. aus „titel“ wird „titel1“). Falls der Name bereits auf eine Zahl endet, wird geprüft, welche Namensvarianten mit diesem Präfix bereits existieren, und die nächsthöhere freie Zahl wird verwendet. Beispiel: Gibt es bereits Variablen mit den Namen „x1“ bis „x9“, führt die Duplizierung einer dieser Variablen zur Erstellung von „x10“. Fehlt z. B. „x4“, wird stattdessen „x4“ erzeugt.
Die neue Variable ist eindeutig und kann unabhängig von der Originalvariablen weiterverwendet oder bearbeitet werden.
Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Erstellen von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/text/button.addToCart/duplicateAntwort:
{
"variable": "button.addToCart1"
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Erstellen von Textbausteinen. |
404 Not Found |
| Variable mit |
503 Service Unavailable | "internalError" | Das Duplizieren ist fehlgeschlagen. |
3.6 PUT text/{id}
Mit dieser Methode können bestehende Textbausteine einer Variable aktualisiert oder die Variable selbst umbenannt werden. Es ist möglich, Übersetzungen für eine oder mehrere Sprachen zu ändern – nicht angegebene Sprachen bleiben unverändert.
Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Schreiben von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/text/button.addToCartRequest Body:
{
"name": "button.addToCart",
"data": [
{
"languageId": "EN",
"text": "Buy now"
}
]
}Antwort:
{
"variable": "button.addToCart",
"translations": {
"DE": {
"id": "39",
"languageId": "DE",
"text": "In den Warenkorb",
"author": 1,
"changedAt": "2025-02-17T11:46:54.000Z",
"system": false,
"used": false
},
"EN": {
"id": "40",
"languageId": "EN",
"text": "Buy now",
"author": 1,
"changedAt": "2025-04-30T14:10:12.000Z",
"system": false,
"used": false
}
}
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Schreiben von Textbausteinen. |
400 Bad Request | "invalidValue" | Der Parameter |
400 Bad Request | “invalidCharacters” | Der neue Variablenname enthält ungültige Zeichen. |
404 Not Found |
| Variable mit |
3.7 DELETE text/{id}
Mit dieser Methode kann eine bestehende Textvariable vollständig gelöscht werden. Dies betrifft alle zugehörigen Übersetzungen in verschiedenen Sprachen.
Damit der Endpunkt verwendet werden kann, müssen die entsprechenden Berechtigungen zum Löschen von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/text/button.addToCartAntwort:
{
"success": true
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Löschen von Textbausteinen. |
404 Not Found |
| Variable mit |
4. Methoden für Publizieren
Die folgenden Methoden ermöglichen es, Textbausteine im Shop-System zu publizieren. Dabei wird geprüft, ob ein Publiziervorgang läuft oder ein neuer gestartet werden kann. Um diese Funktionen zu verwenden, müssen entsprechende Berechtigungen zum Publizieren von Textbausteinen vorhanden sein.
4.1 GET text/publish
Mit dieser Methode kann geprüft werden, ob aktuell ein Publiziervorgang für Textbausteine läuft.
Um den Status abzufragen, müssen entsprechende Berechtigungen zum Lesen von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/text/publishAntwort:
{
"running": false,
"success": true
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Textbausteinen. |
4.2 POST text/publish
Mit dieser Methode werden die Templates des Shops mit den zuletzt geänderten Textbausteinen neu kompiliert.
Damit dieser Vorgang gestartet werden kann, müssen die erforderlichen Berechtigungen zum Publizieren von Textbausteinen vorhanden sein.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/text/publishAntwort:
{
"success": true
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Publizieren von Textbausteinen. |
503 Service Unavailable |
| Das Kompilieren der Templates konnte nicht gestartet werden. |
5. Support
Bei technischen Fragen und Hilfestellungen ist unser Support-Team für Sie erreichbar: Zum Kundenportal
Bitte senden Sie uns eine möglichst detaillierte Beschreibung sowie Screenshots, Requests/Antworten damit wir Ihre Anfrage zeitnah und zielführend beantworten können.
© 2025 WEBSALE AG | Impressum | Datenschutz