content - Katalog (Kategorien & Produkte)

content - Katalog (Kategorien & Produkte)

Der Knoten content bildet die zentrale Konfigurationsebene für alle Inhalte des Katalogs.
Hier werden die Strukturen, Felder und Einstellungen definiert, die zur Verwaltung von Produkten, Kategorien und den dazugehörigen Medien- und Attributsdaten dienen.

Zu den wichtigsten Bereichen gehören:

  • Kategorien
    Definition von Kategoriefeldern, Feldgruppen und ergänzenden Informationen zur Darstellung im Frontend.

  • Produkte
    Verwaltung von Produktfeldern, Varianten, Produkttypen und allgemeinen Produkteinstellungen.

  • Medien
    Steuerung von Bild- und Videoformaten, Speicherzielen und automatischen Konvertierungsprozessen.

  • Verknüpfungen & Erweiterungen
    Zuordnung benutzerdefinierter Felder über usedFields, Definition zusätzlicher Attribute oder Feldgruppen.

Die im Knoten content enthaltenen Konfigurationen bilden somit die Grundlage für sämtliche katalogbasierten Funktionen des Shops – von der Produktdarstellung im Frontend bis zur Datenintegration über die API.

Die einzelnen Konfigurationsbereiche sind im Admin Interface unter verschiedenen Services zu finden (z. B. Katalog → Produkte, Katalog → Kategorien etc.). Sie können auch über die REST API Konfiguration bearbeitet werden.

Inhaltsverzeichnis

 


1. content* - Grundstruktur

Nachfolgend der Grundaufbau des Knotens contents:

{ "content": { "categoryFieldGroup": {...}, "categoryField": {...}, "contentFieldDataTypes": {...}, "customCategoryField": {...}, "customProductField": {...}, "imageFormat": {...}, "inventory": {...}, "productAttribute": {...}, "productFieldGroup": {...}, "productField": {...}, "productSettings": {...}, "productType": {...}, "usedFields": {...}, "videoSettings": {...} } }

 

Parameterbeschreibungen

Parameter

Beschreibung

Parameter

Beschreibung

categoryFieldGroup

Gruppiert Kategoriefelder.

categoryField

Vordefinierte Standardfelder für Kategorien.

contentFieldDataTypes

Zentrale Typendefinitionen für Felder.

customCategoryField

Eigene (benutzerdefinierte) Kategoriefelder.

customProductField

Eigene Produktfelder für individuelle Datenpunkte.

imageFormat

Vorgaben für Bildformate / -größen.

inventory

Einstellungen zum Bestands- / Verfügbarkeitsmanagement.

productAttribute

Verwaltung von Atrributen zur Katalognavigation und Suche.

productFieldGroup

Gruppiert Produktfelder.

productField

Vordefinierte Standardfelder für Produkte.

productSettings

Globale Produktschalter & Defauls.

productType

Definition von Produkttypen.

usedFields

Nutzungsübersicht der Felder.

videoSettings

Vorgaben für Videoeinbindung.

 


 

2. content.categoryField - Standard-Kategoriefelder

Dieser Knoten beschreibt die vordefinierten Systemfelder einer Kategorie. Erstellen oder Löschen zusätzlicher Felder ist an dieser Stelle nicht möglich. Je nach Feld sind bestimmte Eigenschaften editierbar, andere werden ausschließlich vom System geführt.

Bestehende Werte können – sofern das jeweilige Feld editierbar ist – über das Admin Interface (Service „Katalog → Kategorien“) oder über die REST API Konfiguration geändert werden. Systemverwaltete Felder (z. B. Timestamps) sind schreibgeschützt.

Beispielkonfiguration content.categoryField.descr

{ "label": "", "manualEditable": true, "name": "descr", "required": false, "searchable": false, "serviceFilter": false, "type": { "bool": null, "dateTime": null, "enumeration": null, "float": null, "image": null, "integer": null, "list": null, "map": null, "multiFormatImage": null, "price": null, "text": { "maxLength": 4096, "regex": null, "searchIndexBehaviour": "notAnalyzed" }, "uinteger": null, "video": null } }

In diesem Beispiel wurde das Feld descr als Kategorie-Beschreibungsfeld definiert, das redaktionell gepflegt werden kann. Es ist nicht suchrelevant und kein Pflichtfeld.

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

dataId

string

Systeminterne eindeutige ID des Feldes. Wird automatisch vergeben und ist schreibgeschützt (readonly).

label

string

Anzeigename des Feldes im Admin Interface. Dient der besseren Lesbarkeit und kann angepasst werden, ohne die Funktion des Feldes zu beeinflussen.

manualEditable

bool

Steuert, ob der Wert dieses Feldes manuell bearbeitet werden darf.
true = Das Feld kann über das Admin Interface, die REST API oder angebundene Systeme (z. B. WaWi) geändert werden.
false = Das Feld ist schreibgeschützt und wird ausschließlich vom System gesetzt (z. B. Felder wie timestampCreatedAt, die automatisch vom Shop verwaltet werden).

name

string

Technischer Name des Feldes. Muss eindeutig sein.

Übersicht der Standardfelder für Kategorien:

  • active - Kategorie wird im Shop verwendet

  • descr - Beschreibung der Kategorie

  • hidden - Kategorie wird nicht in der Navigation angezeigt

  • id - Eindeutiger Index für die Kategorie

  • name - Name der Kategorie

  • productAssignmentType - Methode, wie der Kategorie Produkte zugewiesen werden, z.B. über den RuleBuilder oder direkte Zuweisung von Produktindexen

  • productRules - Regeln für die Produktzuweisung

  • timestampCreatedAt - Erstellungsdatum Kategorie (Unix-Timestamp)

  • timestampUpdatedAt - Letzte Aktualisierung der Kategorie (Unix-Timestamp)

required

bool

Markiert das Feld als Pflichtfeld.
true = Feld muss ausgefüllt werden.
false = Feld ist optional.

searchable

bool

Gibt an, ob der Inhalt des Feldes in der Suchindizierung der Core-Suche berücksichtigt wird.
true = Feld wird in den Suchindex aufgenommen.
false = Feld bleibt für die Suche unberücksichtigt.

Diese Einstellung hat keine Auswirkung auf das Suchmodul WEBSALE | search. Hier sind separate Anpassungen im Suchmodul selbst notwendig.

type

oneOf

Datentyp des Feldes. Zulässige Werte sind über contentFieldDataTypes definiert.

siehe Datentypen

 


 

3. content.categoryFieldGroup - Kategoriefeldgruppen

Der Knoten content.categoryFieldGroup dient zur logischen Gruppierung von Kategoriefeldern innerhalb des Katalogs. Da in umfangreichen Shops eine große Anzahl individueller Kategorie-Felder existieren kann, lassen sich diese hier in thematische Gruppen zusammenfassen – etwa für SEO-Daten, Bilder, Marketinginhalte oder Stammdaten.

Die Gruppierung erleichtert die Übersichtlichkeit im Admin Interface und sorgt dafür, dass Felder strukturiert dargestellt werden. Eine Feldgruppe kann mehrere bestehende Felder referenzieren.

Neue Gruppen können aktuell nur über die REST API Konfiguration erstellt werden.

Beispielkonfiguration content.categoryFieldGroup.robots

{ "fields": [ "customCategoryField.robotsNoIndex", "customCategoryField.robotsNoFollow" ], "name": "Robots" }

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

name

string

Anzeigename der Feldgruppe. Dient zur eindeutigen Identifikation und zur Anzeige im Admin Interface.

fields

multiAssoc

Enthält eine Liste der zugehörigen Felder.
Hier können Felder vom Typ content.categoryField oder content.customCategoryField referenziert werden.

 


 

4. content.contentFieldDataTypes - Datentypen (oneOf)

Der Typ contentFieldDataTypes definiert, welcher Datentyp type einem Produkt- und/oder Kategoriedatenfeld zugewiesen wird. Dadurch stellt WEBSALE einheitliche, validierbare Felddefinitionen für Kategorien und Produkte (z. B. „Text mit max. Länge“, „Ganzzahl mit Min/Max“, „Auswahlliste“) zur Verfügung

Es gilt das oneOf-Prinzip: Genau ein Datentyp ist aktiv; alle anderen Typobjekte sind nicht gesetzt (z. B. null oder fehlen).

 

Beispielkonfiguration für die Zuweisung von Datentypen type bei einem Datenfeld:

{ ... "type": { "bool": null, "dateTime": null, "enumeration": null, "float": null, "image": null, "integer": null, "list": null, "map": null, "multiFormatImage": null, "price": null, "text": { "maxLength": 4096, "regex": null, "searchIndexBehaviour": "notAnalyzed" }, "uinteger": null, "video": null } ... }

 

4.1 Überblick der verfügbaren Datentypen

int?, uint?, float?, string? bedeuten optional. Wird die Eigenschaft nicht gesetzt, gilt „keine zusätzliche Einschränkung“.

Typname

Eigenschaft (Auszug)

Beschreibung

Typname

Eigenschaft (Auszug)

Beschreibung

bool

-

Wahr/Falsch. In Beschreibungen stets die Wirkung für true / false benennen.

dateTime

-

Zeitstempel/Datum-Uhrzeit (ISO-8601). Oft systemgeführt.

enumeration

options (list<string>)

Auswahlliste fester Werte (Whitelist).

float

min (float?), max (float?)

Gleitkommazahl (z. B. Maße, Gewichte).

image

-

Einzelnes Bild (Format/Storage außerhalb festgelegt).

integer

min (int?), max (int?)

Signierte Ganzzahl (inkl. negative Werte).

list

maxEntries (int)

Geordnete Liste homogener Werte (Typ aus Feldkontext).

map

maxEntries (int)

Schlüssel-Wert-Sammlung (Strings → Werte; Größe begrenzen).

multiFormatImage

imageFormats (multiAssoc → content.imageFormat)

Bildreferenz in mehreren Zielformaten / Breakpoints.

price

min (float?), max (float?)

Preise / Beträge (fachlich wie float, ggf. Währungskontext separat).

text

searchIndexBehaviour (notAnalyzed | analyzed), maxLength (int?), regex (string?)

Freitextfeld.

searchIndexBehaviour steuert, ob der Feldinhalt für Suchanfragen ausgewertet wird (analyzed/notAnalyzed).

maxLength begrenzt optional die Zeichenanzahl, regex ermöglicht eine optionale Musterprüfung.

uinteger

min (uint?), max (uint?)

Unsignierte Ganzzahl (≥ 0).

video

-

Einzelnes Video (Referenz/Storage außerhalb).

 

4.2 Details & Parametertabellen je Typ

 

4.2.1 bool

Beispiel:

"type": { "bool": {} }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

-

-

Keine zusätzlichen Eigenschaften. Wirkung im Feldkontext klar dokumentieren:
true = Funktion/Eigenschaft ist aktiv (z. B. „sichtbar“, „verfügbar“).
false = inaktiv.

 

4.2.2 dateTime

Beispiel:

"type": { "dateTime": {} }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

-

-

Keine zusätzlichen Eigenschaften.

Erwartetes Format: ISO-8601 (z. B. 2025-10-28T12:34:56Z).

Wird häufig systemgeführt (z. B. timestampCreatedAt).

 

4.2.3 enumeration

Beispiel - Produktzuordnungstyp:

"type": { "enumeration": { "options": ["manual", "rules"] } }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

options

list<string>

Liste der zulässigen Werte (Whitelist).

Eingaben müssen einem der Einträge entsprechen.

 

4.2.4 float

Beispiel – Gewicht in kg:

"type": { "float": { "min": 0.0, "max": 200.0 } }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

min

float?

Untere Schranke (inklusive).

max

float?

Obere Schranke (inklusive).

 

4.2.5 image

Beispiel:

"type": { "image": {} }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

-

-

Bildreferenz; Validierung, Größenbeschränkung und Speicherort werden außerhalb definiert (z. B. in content.imageFormat).

 

4.2.6 integer

Beispiel – Bereich −100 … 100:

"type": { "integer": { "min": -100, "max": 100 } }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

min

int?

Untere Schranke (inklusive).

max

int?

Obere Schranke (inklusive).

 

4.2.7 list

Beispiel – max. 20 Einträge:

"type": { "list": { "maxEntries": 20 } }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

maxEntries

int

Maximale Anzahl der Listeneinträge.

 

4.2.8 map

Beispiel – Key-Value-Struktur für Eigenschaften:

"type": { "map": { "maxEntries": 50 } }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

maxEntries

int

Maximale Anzahl der Schlüssel-Wert-Paare.

 

4.2.9 multiFormatImage

Beispiel – Zwei Ausgabeformate:

"type": { "multiFormatImage": { "imageFormats": ["thumb_1x1", "hero_16x9"] } }

 

Parameterübersicht

Parameter

Typ

Beschreibung

Parameter

Typ

Beschreibung

imageFormats

multiAssoc → content.imageFormat

© 2025 WEBSALE AG | Impressum | Datenschutz