Skip to main content

Documentation Index

Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt

Use this file to discover all available pages before exploring further.

Die Katalog API stellt die zentralen Informationen für Produkte und Kategorien bereit und bildet damit die Grundlage für Produktdetailseiten, Kategorieseiten und Navigationselemente. Sie liefert Standardattribute (z. B. Name, Beschreibung, Preis), ergänzt um individuelle Produkt- und Kategorieattribute sowie SEO-Informationen wie Meta-Daten und sprechende URLs. Zusätzlich können Kategoriestrukturen (Hierarchien, Unterkategorien, Verknüpfungen) abgerufen werden, ebenso einzelne Produkte/Kategorien oder Produktlisten im Kontext einer Kategorie. Funktionen für Suchergebnisse und Kategorieseiten – etwa Filter, Sortierung, Paging oder die Anzahl der Produkte pro Seite – werden nicht über die Katalog API bereitgestellt. Diese Aufgaben übernimmt das separate Modul WEBSALE search und die Einbindung kann entweder über die entsprechenden WEBSALE WebComponents oder die Search API erfolgen.

Unterstützte Methoden

Angabe aller unterstützten Methoden.
BefehlEndpunkteGETPUTPOSTDELETE
Produktedetails zu einem Artikel abrufencatalog/product/load
Varinanten-Informationen zu einem Produkt abrufencatalog/product/variantInfo
Alle Kategorien laden, in denen ein bestimmtes Produkt vorkommtcatalog/product/categoryMembership
Kategoriepfade laden, in denen ein bestimmtes Produkt vorkommtcatalog/product/categoryMembershipPaths
Liste aller verfügbaren Produktfelder ladencatalog/product/fields
Liste aller verfügbaren benutzerdefinierten Produktfelder ladencatalog/product/customFields
Details einer Kategorie ladencatalog/category/load
Unterkategorie einer Kategorie ladencatalog/category/loadChildren
Kompletten Pfad bis zur Kategorie ladencatalog/category/path
Produktliste für eine angegebene Kategorie ladencatalog/category/products
Liste aller verfügbaren Kategoriefelder ladencatalog/category/fields
Liste aller benutzerdefinierten Kategoriefelder ladencatalog/category/customFields

Methoden für Produkte

Mithilfe dieser Methoden werden Produktinformationen für die Storefront bereitgestellt. Dabei werden die Detaildaten eines einzelnen Artikels (inklusive konfigurierbarer Produktfelder und ggf. Custom-Felder) geladen und ergänzend Varianteninformationen (z. B. auswählbare Attribute und zugehörige Variantenartikel) geliefert. Darüber hinaus können alle Kategorien und Kategoriepfade ermittelt werden, in denen ein Produkt geführt wird, beispielsweise für Breadcrumbs, Kachel-Teaser oder Filter. Über eigene Endpunkte wird zudem die vollständige Liste aller standardisierten und benutzerdefinierten Produktfelder zurückgegeben. Somit können Suche, Filter, Detailseiten und Integrationen (z. B. ERP-/PIM-Anbindung) dynamisch auf der tatsächlich im Shop konfigurierten Datenstruktur aufbauen.

GET catalog/product/load

Folgender Aufruf lädt die Produktdetails zu einem Artikel: Welche Felder im Response erscheinen, lässt sich in der Katalog-Konfiguration steuern: storefrontApi - Storefront-API. Dies ist zum Anzeigen einer Produktdetailseite oder zum gezielten Nachladen von Produktinfos verwendbar. Beispiel-Aufruf, der die Produktdetails für das Produkt mit der ID 146-78608 lädt:
GET https://<ihr-shop>.de/api/v1/catalog/product/load?productId=146-78608

Parameterübersicht

ParameterTypBeschreibung
productIdstringPflichtfeld*
Produkt-ID des Artikels.
itemNumberstringPflichtfeld*
Produktnummer (SKU) des Artikels.
customNumberstringPflichtfeld*
Eine frei vergebene Artikelkennung (z.B. ERP-ID oder Marketing-Nummer).
*Es muss genau einer der drei Parameter übergeben werden.

Beispiel-Response

{
  "custom": {
    "image": {},
    "setOrgPrice": 0.0
  },
  "id": "146-78608",
  "name": "Plushie",
  "price": 6.7,
  "setOrgPrice": 0.0
}

GET catalog/product/loadList

Folgender Aufruf lädt die Produktdetails zu mehreren Artikeln: Welche Felder im Response erscheinen, lässt sich in der Katalog-Konfiguration steuern: storefrontApi - Storefront-API. Dies ist zum effizienten Anzeigen mehrer Produkte auf einer Kategorieseite verwendbar. Beispiel-Aufruf, der die Produktdetails für die Produkte mit der ID 146-78608 und 147-3720 lädt:
GET https://<ihr-shop>.de/api/v1/catalog/product/loadList?productId=146-78608&productId=147-3720

Parameterübersicht

ParameterTypBeschreibung
productIdstringPflichtfeld*
Produkt-ID des Artikels.
itemNumberstringPflichtfeld*
Produktnummer (SKU) des Artikels.
customNumberstringPflichtfeld*
Eine frei vergebene Artikelkennung (z.B. ERP-ID oder Marketing-Nummer).
*Es können nur Parameter eines Typs (productId, itemNumber, customNumber) übergeben werden. Es können beliebig viele Parameter eines Typs angegeben werden.

Beispiel-Response

[
  {
    "custom": {
      "image": {},
      "setOrgPrice": 0.0
    },
    "id": "146-78608",
    "name": "Plushie",
    "price": 6.7,
    "setOrgPrice": 0.0
  },
  {
    "custom": {
      "image": {},
      "setOrgPrice": 0.0
    },
    "id": "147-3720",
    "name": "Stift",
    "price": 3.7,
    "setOrgPrice": 0.0
  }
]

GET catalog/product/variantInfo

Der folgende Aufruf liefert die Varianteninformationen zu einem Produkt. Er kann beispielsweise zum Aufbau des Varianten-Selectors auf der Produktseite verwendet werden. Beispiel-Aufruf, der die Varianteninformationen zum Produkt mit der ID 146-78608 lädt:
GET https://<ihr-shop>.de/api/v1/catalog/product/variantInfo?productId=146-78608

Parameterübersicht

ParameterTypBeschreibung
productIdstringPflichtfeld
ID des Produktes, dessen Varianten geladen werden sollen.

Beispiel-Response

{
  "numVariants": 2,
  "variantAttributes": [
    {
      "name": "Arbeitsspeicher",
      "options": [
        {
          "name": "128 GB",
          "resolvedVariant": {
            "base": {
              "base": null,
              "custom": { "image": {}, "setOrgPrice": 0.0 },
              "id": "146-78608",
              "name": "Plushie",
              "price": 6.7,
              "setOrgPrice": 0.0
            },
            "custom": { "image": {}, "setOrgPrice": 0.0 },
            "id": "146-78608.1",
            "name": "Plushie",
            "price": 6.7,
            "setOrgPrice": 0.0
          }
        },
        { "name": "512 GB" }
      ]
    }
  ]
}

GET catalog/product/categoryMembership

Mit folgendem Aufruf werden alle Kategorien ausgegeben, in denen ein bestimmtes Produkt aktuell einsortiert ist. Er kann für Breadcrumbs verwendet werden oder dazu, die Produktnavigation/Filter vorzubelegen. Beispiel-Aufruf, der alle Kategorien ausgibt, in denen das Produkt mit der ID 147-15732 einsortiert ist:
GET https://<ihr-shop>.de/api/v1/catalog/product/categoryMemberships?productId=147-15732

Parameterübersicht

ParameterTypBeschreibung
productIdstringPflichtfeld
ID des Produktes, dessen Kategoriezugehörigkeiten geladen werden sollen.

Beispiel-Response

[
  {
    "custom": { "image": {} },
    "id": "135-98530",
    "name": "Coole Dinge"
  },
  {
    "custom": { "image": {} },
    "id": "104-40827",
    "name": "Sale"
  }
]

GET catalog/product/categoryMembershipPaths

Mit dem folgenden Aufruf werden alle vollständigen Kategoriepfade (von der Wurzel zur Zielkategorie) geliefert, in denen ein bestimmtes Produkt vorkommt. Er kann für Breadcrumbs, die SEO-Navigation oder die Anzeige alternativer Pfade eines Produkts genutzt werden. Beispiel-Aufruf, der die vollständigen Kategoriepfade für das Produkt mit der ID 147-15732 anzeigt:
GET https://<ihr-shop>.de/api/v1/catalog/product/categoryMembershipPaths?productId=14715732

Beispiel-Request

{
  "productId": "147-15732"
}

Parameterübersicht

ParameterTypBeschreibung
productIdstringPflichtfeld
ID des Produktes, dessen Kategoriezugehörigkeiten geladen werden sollen.

Beispiel-Response

{}

GET catalog/product/fields

Der folgende Aufruf listet alle im System verfügbaren Standard-Produktfelder inklusive ihrer Metadaten. Er kann zum Aufbau von Produktseiten oder zur Anpassung von Such- und Filterfunktionen verwendet werden.
GET https://<ihr-shop>.de/api/v1/catalog/product/fields

Parameterübersicht

ParameterTypBeschreibung
Keine zusätzlichen Parameter.

Beispiel-Response

[
  {
    "dataId": "active",
    "label": "",
    "manualEditable": true,
    "name": "active",
    "protectedField": false,
    "required": false,
    "searchBoost": 1,
    "searchable": true,
    "serviceFilter": true,
    "type": "Enumeration"
  },
  {
    "dataId": "descr",
    "label": "",
    "manualEditable": true,
    "name": "descr",
    "protectedField": false,
    "required": false,
    "searchBoost": 2,
    "searchable": true,
    "serviceFilter": false,
    "type": "Text"
  },
  {
    "dataId": "id",
    "label": "",
    "manualEditable": false,
    "name": "id",
    "protectedField": false,
    "required": true,
    "searchBoost": 2,
    "searchable": true,
    "serviceFilter": true,
    "type": "Text"
  },
  {
    "dataId": "itemNumber",
    "label": "",
    "manualEditable": true,
    "name": "itemNumber",
    "protectedField": false,
    "required": true,
    "searchBoost": 2,
    "searchable": true,
    "serviceFilter": true,
    "type": "Text"
  },
  {
    "dataId": "name",
    "label": "",
    "manualEditable": true,
    "name": "name",
    "protectedField": false,
    "required": true,
    "searchBoost": 6,
    "searchable": true,
    "serviceFilter": true,
    "type": "Text"
  },
  {
    "dataId": "price",
    "label": "",
    "manualEditable": true,
    "name": "price",
    "protectedField": false,
    "required": true,
    "searchBoost": 1,
    "searchable": false,
    "serviceFilter": false,
    "type": "Price"
  }
]

GET catalog/product/customFields

Der folgende Aufruf listet alle im System verfügbaren benutzerdefinierten Produktfelder inklusive ihrer Metadaten. Er kann zum Aufbau von Produktseiten oder zur Anpassung von Such- und Filterfunktionen verwendet werden.
GET https://<ihr-shop>.de/api/v1/catalog/product/customFields

Parameterübersicht

ParameterTypBeschreibung
Keine zusätzlichen Parameter.

Beispiel-Response

[
  {
    "dataId": "4682",
    "label": "activityLevel",
    "manualEditable": true,
    "name": "activityLevel",
    "protectedField": false,
    "required": false,
    "searchBoost": 1,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  },
  {
    "dataId": "4683",
    "label": "animalSize",
    "manualEditable": true,
    "name": "animalSize",
    "protectedField": false,
    "required": false,
    "searchBoost": 1,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  },
  {
    "dataId": "4684",
    "label": "animalSpecies",
    "manualEditable": true,
    "name": "animalSpecies",
    "protectedField": false,
    "required": false,
    "searchBoost": 1,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  },
  {
    "dataId": "4685",
    "label": "areaOfApplication",
    "manualEditable": true,
    "name": "areaOfApplication",
    "protectedField": false,
    "required": false,
    "searchBoost": 1,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  }
]

Methoden für Kategorien

Diese Methoden arbeiten mit den Kategorien im Katalog: Sie laden die Detaildaten einer einzelnen Kategorie, geben deren direkte Unterkategorien zurück und liefern den vollständigen Pfad von der Wurzel bis zur Zielkategorie (z. B. für Breadcrumbs). Darüber hinaus können alle Produkte einer Kategorie abgefragt und die im System verfügbaren Kategoriefelder ausgelesen werden.

GET catalog/category/load

Folgender Aufruf lädt die Details einer einzelnen Kategorie (z. B. ID, Name). Er kann zur Anzeige von Kategorietiteln, -bildern/-inhalten sowie für Navigations- oder Breadcrumb-Aufbauten verwendet werden. Beispiel-Aufruf, der die Details zur Kategorie mit der ID 135-98530 anzeigt:
GET https://<ihr-shop>.de/api/v1/catalog/category/load?=categoryId=135-98530

Parameterübersicht

ParameterTypBeschreibung
categoryIdstringPflichtfeld
ID der Kategorie, die geladen werden soll.

Beispiel-Response

{
  "custom": { "image": {} },
  "id": "135-98530",
  "name": "Coole Dinge"
}

GET catalog/category/loadChildren

Mit folgendem Aufruf werden die direkten Unterkategorien einer Kategorie zurückgegeben. Er kann zum Aufbau von Navigationsbäumen, Kachel- oder Teaser-Listen auf Kategorieseiten sowie für Breadcrumb-Erweiterungen verwendet werden. Beispiel-Aufruf, der die direkten Unterkategorien der Kategorie mit der ID 135-98530 zurückgibt:
GET https://<ihr-shop>.de/api/v1/catalog/category/loadChildren?categoryId=135-98530

Parameterübersicht

ParameterTypBeschreibung
categoryIdstringPflichtfeld
ID der Kategorie, die geladen werden soll.

Beispiel-Response

[
  {
    "custom": { "image": {} },
    "id": "100-14213",
    "name": "Bekleidung"
  }
]

GET catalog/category/path

Der folgende Aufruf liefert den vollständigen Kategoriepfad von der Wurzel bis zur angegebenen Kategorie (inklusive dieser). Er ist verwendbar für Breadcrumbs, SEO-Pfadangaben, Navigationsleisten oder Kontextanzeigen auf Kategorieseiten. Beispiel-Aufruf, der den vollständigen Pfad der Kategorie mit der ID 104-40827 ausliefert:
GET https://<ihr-shop>.de/api/v1/catalog/category/path?categoryId=104-40827

Parameterübersicht

ParameterTypBeschreibung
categoryIdstringPflichtfeld
ID der Kategorie, deren Pfad geladen werden soll.

Beispiel-Response

[
  { "custom": { "image": {} }, "id": "135-98530", "name": "Coole Dinge" },
  { "custom": { "image": {} }, "id": "100-14213", "name": "Bekleidung" },
  { "custom": { "image": {} }, "id": "104-40827", "name": "Sale" }
]

GET catalog/category/products

Mit dem folgenden Aufruf wird die Produktliste für eine angegebene Kategorie geliefert. Er kann beispielsweise verwendet werden, um Kategorie-Listingseiten zu befüllen.
GET https://<ihr-shop>.de/api/v1/catalog/category/products

Beispiel-Request

{
  "categoryId": "135-98530"
}

Parameterübersicht

ParameterTypBeschreibung
categoryIdstringPflichtfeld
ID der Kategorie, deren Produkte geladen werden sollen.

Beispiel-Response

{}

GET catalog/category/fields

Der folgende Aufruf liefert eine Liste aller verfügbaren Kategoriefelder inklusive Typ-Informationen. Er kann für Formulare, Validierungen oder zur Anzeige von Kategorieattributen verwendet werden.
GET https://<ihr-shop>.de/api/v1/catalog/category/fields

Parameterübersicht

ParameterTypBeschreibung
Keine zusätzlichen Parameter.

Beispiel-Response

[
  {
    "dataId": "active",
    "label": "",
    "manualEditable": true,
    "name": "active",
    "required": false,
    "searchable": false,
    "serviceFilter": false,
    "type": "Enumeration"
  },
  {
    "dataId": "descr",
    "label": "",
    "manualEditable": true,
    "name": "descr",
    "required": false,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  },
  {
    "dataId": "hidden",
    "label": "",
    "manualEditable": true,
    "name": "hidden",
    "required": false,
    "searchable": false,
    "serviceFilter": false,
    "type": "Bool"
  },
  {
    "dataId": "id",
    "label": "",
    "manualEditable": false,
    "name": "id",
    "required": true,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  }
]

GET catalog/category/customFields

Der folgende Aufruf liefert eine Liste aller verfügbaren benutzerdefinierten Kategoriefelder inklusive Typ-Informationen. Er kann für Formulare, Validierungen oder zur Anzeige von Kategorieattributen verwendet werden.
GET https://<ihr-shop>.de/api/v1/catalog/category/customFields

Parameterübersicht

ParameterTypBeschreibung
Keine zusätzlichen Parameter.

Beispiel-Response

[
  {
    "dataId": "4645",
    "label": "alternatives Template",
    "manualEditable": true,
    "name": "alternativeTemplate",
    "required": false,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  },
  {
    "dataId": "4651",
    "label": "Default Sortierung",
    "manualEditable": true,
    "name": "defaultSort",
    "required": false,
    "searchable": false,
    "serviceFilter": false,
    "type": "Text"
  },
  {
    "dataId": "4641",
    "label": "Kategorie",
    "manualEditable": true,
    "name": "image",
    "required": false,
    "searchable": false,
    "serviceFilter": false,
    "type": "MultiFormatImage"
  },
  {
    "dataId": "4644",
    "label": "Produkte an übergeordnete Kategorien vererben",
    "manualEditable": false,
    "name": "inheritProductsToParents",
    "required": false,
    "searchable": false,
    "serviceFilter": false,
    "type": "Bool"
  }
]