Kategorien verwalten im TYRIOS PIM
Beschreibung:
Ein zentrales Element zur Verwaltung von Produkten in TYRIOS pim ist das Kategoriesystem. Es ist eine hierarchische Baumstruktur mit einem Wurzelknoten. Ein Produkt kann so vielen Kategorien zugewiesen werden, wie du möchtest.
Authentifizierung
Die API-Endpunkte von TYRIOS sind nur für autorisierte Benutzer verfügbar. Daher muss der Benutzer authentifiziert werden. Es gibt zwei verschiedene Arten der Authentifizierung:
- Authentifizierung durch BASIC-Authentifizierung. Das Benutzerkonto muss über ein aktiviertes REST API-Token verfügen. Du musst einen entsprechenden BASIC-Authentifizierungs-Header senden.
- Authentifizierung durch die Registrierung einer mobilen App. Du musst ein entsprechendes App-Registrierungs-Token senden.
Erforderliche Rechte
Um diese API nutzen zu können, brauchst du Benutzeranmeldedaten mit Rechten zur Kategorieverwaltung. Wenn du diese Rechte nicht hast, erhältst du einen 403-Fehlercode. Die API ist für externe Nutzer ohne Anmeldedaten nicht verfügbar.
Datenstruktur
Shop-Kategorien werden mit ShopCategoryData-Strukturen verwaltet. Die ShopCategoryData ist eine verschachtelte Datenstruktur, um schnelles Lesen der Baumstruktur zu ermöglichen. Das heißt, jedes ShopCategoryData hat drei Felder:
- nodeLeft
- nodeRight
- nodeLevel
Mit diesen Feldern ist es möglich, jeden Teilbaum mit nur einer SQL-Anweisung abzufragen.
Zusätzlich zu den ShopCategoryData kannst du einer Kategorie auch Vorschaubilder zuordnen. Dies geschieht durch Zuweisung eines MediahelperFile-Objekts.
Kategorien auflisten
Um ein Produkt anzufordern, musst du den GET-Endpunkt aufrufen
https://[instance]/service/ProductManagement/products
Die Anfrage unterstützt mehrere GET-Parameter:
- offset: Offset der Produktliste, Standardwert 0
- length: Anzahl der angebotenen Produkte, Standardwert 20,
- filter: JSON-Objekt, um nach einem bestimmten Feld zu filtern. Es werden alle Produktdatenfelder unterstützt.
- sortieren: JSON-Objekt mit Feld: ASC/DESC-Sortierdefinition
Eine Anfrage, um nach der Materialnummer zu filtern, sieht wie folgt aus:
https://[instance]/service/ProductManagement/products/?offset=0&length=5&filter={%22materialNumber%22:%221%22}&sorting={%22name_de%22:%22ASC%22}
Du wirst die folgende Datenstruktur zurückerhalten
{
"Produkte": [
{
"id": 90,
"name_de": "Neuer Name De",
"shortDescription_de": "Kurzbeschreibung",
"description_de": "Beschreibung",
"price": 1.33,
"ShopCategoryData": [
{ "id": 1, "name": "Kategorie 1" },
{ "id": 14, "name": "Kategorie 14" }
],
"mainMediaFile": {
"id": 136,
"url": "/media/produkte/136.jpg",
"alt": "Produktbild Haupt"
},
"MediahelperFile": [
{
"id": 136,
"url": "/media/produkte/136.jpg",
"alt": "Galerie 1"
},
{
"id": 129,
"url": "/media/produkte/129.jpg",
"alt": "Galerie 2"
}
]
}
],
"count": 1
}
Die Produkte stehen in den Produktfeldern, das Feld "count" gibt dir Auskunft darüber, wie viele Artikel gefunden wurden.
Bitte beachte, dass die konkrete Datenstruktur von der Instanz abhängt, da TYRIOS ein aspektorientiertes System ist.
eine bestimmte Kategorie abrufen
Du kannst ein bestimmtes Produkt abfragen, indem du den GET-Endpunkt
https://[instance]/service/ProductManagement/product/[productID]
Wenn das Produkt existiert, erhältst du ein vollständiges Datenobjekt für die Produktdaten
{
"id": 90,
"name_de": "Neuer Name De",
"shortDescription_de": "Kurzbeschreibung",
"description_de": "Beschreibung",
"price": 1.33,
"ShopCategoryData": [1, 14],
"mainMediaFile": 129,
"MediahelperFile": [136, 129]
}
Erstellen / Aktualisieren einer Kategorie
Du kannst Produkte über denselben Endpunkt erstellen und aktualisieren. Dazu musst du eine POST-Anfrage senden.
https://[instance]/service/ProductManagement/product
Wenn die ID nicht null ist, geht das System davon aus, dass es ein bestehendes Produkt aktualisieren muss. Andernfalls erstellt es ein neues Produkt.
Als Payload musst du nur ein vollständiges Produktobjekt senden. Wenn du ein bestehendes Produkt aktualisierst, wird davon ausgegangen, dass die nicht angegebenen Felder leer sind.
{
"id": 90,
"name_de": "Neuer Name De",
"shortDescription_de": "Kurzbeschreibung",
"description_de": "Beschreibung",
"price": 1.33,
"ShopCategoryData": [1, 14],
"mainMediaFile": 129,
"MediahelperFile": [136, 129]
}
Referenzobjekte können als Objekt oder als Id angegeben werden.
Bitte beachte, dass die verfügbaren Felder von der Instanz abhängen. Daher ist es nicht möglich, in dieser Dokumentation die vollständige Struktur zu beschreiben.
Eine Kategorie löschen
Wenn du eine Kategorie und alle Unterkategorien löschen willst, musst du eine DELETE-Anfrage an den Endpunkt senden
https://[instance]/service/ShopCategoryManagement/category/[categoryD]