Produktdaten - Kundenzugriff via API
Questions:
- Wie kann ich Produktdaten als Kunde via API abfragen?
- Wie können Produktdaten in meinen Onlineshop geladen werden?
- Wie kann ich automatisch Produktbilder herunterladen?
Description:
TYRIOS bietet die Möglichkeit, Kunden den Zugriff via API auf sämtliche Produktdaten zu bieten. Dabei werden nicht nur die Basisdaten dem Kunden bereitgestellt, sondern sämtliche Produktinformationen wie Beschreibungen, Bilder, PDF-Downloads und mehr. Ziel ist es, dass der Kunde nicht nur über Daten für eine kleine Warenwirtschaft importieren kann, sondern dass auch ein Komplett-Import für den eigenen Onlineshop möglich ist.
Dieser Knowledge-Base Eintrag beschreibt nun die Struktur der Produktdaten im Detail:
URL-Struktur:
Sofern dir vom Shop-Betreiber der Zugang zur Kunden-Produkt-API freigeschaltet wurde, kannst du die Produkte über folgende URL abrufen:
https://[shop-url]/services/ProductManagement/UserProductData
Wie der Name der Schnittstelle vermuten lässt, ist die Schnittstelle personalisiert. Du bekommst also direkt die für dich geltenden Preise angezeigt.
Paginierung
Die Produktschnittstelle ist paginiert, um die Produktmenge einzugrenzen. Es gibt zwei Parameter für die Paginierung:
offset: definiert das erste zu liefernde Produkt
length: definiert die Anzahl der zu liefernden Produkte
Sprache
Standardmäßig liefert TYRIOS die Produkte in der Sprache, die deinem Benutzerkonto hinterlegt ist. Sollte der Shop weitere Sprachen unterstützen, so kannst du die Daten in dieser Sprache alternativ abfragen:
lang: definiert die Sprache, in der die Produktdaten geliefert werden soll (z.B. "de" für deutsch, "en" für englisch). Sofern die Sprache nicht hinterlegt ist, wird das Produkt in deutsch geliefert.
Modus
Du kannst die Produktdaten so abfragen, dass alle Produkte auf einmal abgerufen werden können oder alternativ nach Kategorie abgefragt werden. Der zweite Modus erlaubt dir die Integration der Produktdaten in Echtzeit, ohne dass du die Daten in deiner eigenen Warenwirtschaft importieren musst. Das macht die Anzeige der Produkte auf deiner Website noch viel einfacher. Denn es werden stets nur die aktuellen Daten angezeigt.
mode: definiert den Modus. Mögliche Werte: "category": erlaubt das Filtern auf Kategorie-Ebene, "product": erlaubt das Filtern auf Produkt-Ebene (Standard)
Filter
Die Schnittstelle erlaubt es dir, die Daten abhängig vom Modus zu filtern. Dazu musst du lediglich eine JSON-Struktur zur Filterung mit der Struktur "Feldname => Filterwert" übergeben.
filter: definiert den Filter als JSON-Struktur. Z.B. "filter={'ean': '123456789'}"
Authentifizierung
Je nach Einstellung des Shop-Betreibers kannst du die Produktdaten nur als authentifizierter Benutzer abfragen. Deine persönlichen Preise sind auf jeden Fall nur als authentifizierter Benutzer sichtbar.
Zur Authentifizierung benötigst du neben deinem Benutzernamen ein API-Secret, welches dir vom Shopbetreiber mitgeteilt werden muss. Beides zusammen muss in Form einer Basic-Authentication an TYRIOS übergeben werden.
Datenstruktur
Aufgrund der Komplexität der Daten wird das Ergebnis als JSON-Datenstruktur bereitgestellt. Die Syntax sieht wie folgt aus:
{products: [ { id: 123, materialNumber:"", title:"product title" link: "https://example.com/shop/product_title/2833/144/1" shortDescription: "...", description: "html code", additionalDescriptions: { /* here additional descriptions as key,value, potentially nested object structure */}, images: ["https://..." /* path to full size images */], media: ["https://..." /* path to media downloads (only if public!) */] listPrice: 1.00, standardPrice: 0.37, /* standard price in net value */ price: 0.33, /* user specific price, including potential current offers */ tax: 19, ean: "", isbn: "", upc: "", brand: "", manufacturer: "", mpn: "", google_product_category: "...", availability: "", /stockState translated according to Google Feed stockCount: 22, /* only if activated for user */ deliveryCosts: [{name: "DHL", costs: "1.30"}], /* all possible delivery options with corresponding costs */ unit: "", energyEfficiencyClass: "", multiPack: 1, isBundle: true/false, isAdult: true / false, gender: "", ageGroup:"", pattern: "", material: "", color: ["",""] size: "", sizeType: "", sizeSystem: "", width: , height: , depth: , weight: , unitPricingMeasure: , unitPricingBaseMeasure: , unit4unitPricing: , reorderable: , overbookable: , /* only if stock export enabled*/, customsTariffNumber:, countryOfOrigin: , stockable: true/false /*only if stock export enabled */, groupProduct: { groupID: 123, groupName: "groupName", dimensions: { size: "XL", color: "red" } }, /* only of group product is assigned */ configurationParameters: [ { name: "Size", type: "selection", variants: [ { name: "Text", additionalPrice: 1.3 additionalDeliveryCosts: 0 isDefault: true } ] }, /** variants in parameters **/ { name: "Your name", type: "input" } /* free text input */ ] /* only if configuration parameters are assigned */ } ], count: 1853 }