Produktverwaltung in TYRIOS PIM
Fragestellungen:
- Produktverwaltung in TYRIOS PIM
Beschreibung:
TYRIOS PIM ist der zentrale Informationspunkt für alle deine produktbezogenen Daten. Es liefert Daten für dein Kassensystem, deinen Onlineshop und deine Webseite, deine Offline-Werbung, dein Digital Signage System, deine Newsletter und vieles mehr. Um all diese unterschiedlichen Anforderungen zu erfüllen, bietet es eine sehr komplexe Datenstruktur zur Verwaltung von Produkten mit zusätzlichen Informationen wie Preisangeboten, Lieferantenverknüpfung, Bild- und Medieninformationen.
Authentifizierung
Die API-Endpunkte von TYRIOS sind nur für autorisierte Nutzer 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 gültiges App-Registrierungstoken senden.
Erforderliche Rechte
Um diese API nutzen zu können, brauchst du Benutzeranmeldedaten mit Produktmanagement-Rechten. Wenn du nicht über diese Rechte verfügst, erhältst du einen 403-Fehlercode. Die API ist für externe Nutzer ohne Anmeldedaten nicht verfügbar.
Datenstruktur
Um Produkte zu verwalten, musst du normalerweise mit den folgenden Datenstrukturen umgehen
- produktdaten
- ShopKategorieDaten
- MediahelperFile
- ProduktDatenAngebot
Aufgrund des aspektorientierten Charakters von TYRIOS kann es sein, dass du dich mit anderen Klassen auseinandersetzen musst. Alle Datenstrukturen haben einen groß geschriebenen Anfangsbuchstaben.
Produkte 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 bestimmten Feldern 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 erhalten.
{
"Produkte": [
{
"id": 90,
"name_de": "Neuer Name De",
"shortDescription_de": "Kurzbeschreibung",
"description_de": "Beschreibung",
"price": 1.33,
"count": 20,
"ShopCategoryData": [
{
"id": 1
// Weitere Kategoriedaten hier
}
],
"mainMediaFile": {
"id": 136
// Weitere Mediendaten hier
},
"MediahelperFile": [
{
"id": 136
// Weitere Mediendaten hier
}
]
}
]
}
Die Produkte stehen in den Feldern products; das Feld count gibt an, wie viele Artikel gefunden wurden.
Bitte beachte, dass die konkrete Datenstruktur von der Instanz abhängt, da TYRIOS ein aspektorientiertes System ist.
ein bestimmtes Produkt 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]
}
Ein Produkt erstellen/aktualisieren
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 Objekte 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.
Ein Teilprodukt speichern.
Wenn du nur einige bestimmte Felder aktualisieren möchtest, kannst du ein Produkt teilweise aktualisieren, indem du eine PUT-Anfrage an den Endpunkt stellst:
https://[instance]/service/ProductManagement/product
Als Payload musst du neben der Produkt-ID nur die Felder senden, die aktualisiert werden müssen. Mediahelper-Dateien können als IDs oder MediahelperFile-Objekte übermittelt werden.
{ "id": 90, "name_de": "Neuer Name De", "mainMediaFile": 129, "MediahelperFile": [136,129] }
Ein Produkt löschen
Wenn du ein Produkt löschen willst, musst du eine DELETE-Anfrage an den Endpunkt senden
https://[instance]/service/ProductManagement/product/[productID]