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 überusedFields, Definition zusätzlicher Attribute oder Feldgruppen.
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.
content* - Grundstruktur
Nachfolgend der Grundaufbau des Knotens contents
Parameterbeschreibungen
| 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. |
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
descr als Kategorie-Beschreibungsfeld definiert, das redaktionell gepflegt werden kann. Es ist nicht suchrelevant und kein Pflichtfeld.
Parameterübersicht
| 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 |
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
Parameterübersicht
| 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. |
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
int?, uint?, float?, string? bedeuten optional. Wird die Eigenschaft nicht gesetzt, gilt „keine zusätzliche Einschränkung“.
| 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). |
Details & Parametertabellen je Typ
bool
Beispiel
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
| - | - | Keine zusätzlichen Eigenschaften. Wirkung im Feldkontext klar dokumentieren: true = Funktion/Eigenschaft ist aktiv (z. B. „sichtbar“, „verfügbar“). false = inaktiv. |
dateTime
Beispiel
Parameterübersicht
| 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). |
enumeration
Beispiel - Produktzuordnungstyp
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
options | list<string> | Liste der zulässigen Werte (Whitelist). Eingaben müssen einem der Einträge entsprechen. |
float
Beispiel – Gewicht in kg
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
min | float? | Untere Schranke (inklusive). |
max | float? | Obere Schranke (inklusive). |
image
Beispiel
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
| - | - | Bildreferenz; Validierung, Größenbeschränkung und Speicherort werden außerhalb definiert (z. B. in content.imageFormat). |
integer
Beispiel – Bereich −100 … 100
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
min | int? | Untere Schranke (inklusive). |
max | int? | Obere Schranke (inklusive). |
list
Beispiel – max. 20 Einträge
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
maxEntries | int | Maximale Anzahl der Listeneinträge. |
map
Beispiel – Key-Value-Struktur für Eigenschaften:
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
maxEntries | int | Maximale Anzahl der Schlüssel-Wert-Paare. |
multiFormatImage
Beispiel – Zwei Ausgabeformate
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
imageFormats | multiAssoc → content.imageFormat | Verknüpfung zu mehreren definierten Bildformaten (Breakpoints, Varianten). |
price
Beispiel
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
min | float? | Untere Schranke (inklusive). |
max | float? | Obere Schranke (inklusive). |
text
Beispiel – SEO-Text mit Volltextsuche
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
searchIndexBehaviour | enum( notAnalyzed, analyzed) | Steuert, ob und in welcher Form der Inhalt des Feldes im Suchindex ausgewertet wird. Alle Inhalte des Feldes werden an Elasticsearch übertragen; über searchIndexBehaviour wird lediglich festgelegt, ob das Feld bei Suchanfragen (z. B. Volltextsuche oder Filter) berücksichtigt wird oder nur als Datenspeicher dient. - analyzed = Volltext (tokenisiert, linguistisch analysiert) - notAnalyzed = exakte Indexierung ohne Aufsplittung. Diese Einstellung greift nicht für das Suchmodul WEBSALE | search. Das technische Mapping des Feldes in Elasticsearch wird durch diese Einstellung nicht verändert. |
maxLength | int? | Maximale Zeichenzahl. Ohne Wert: keine Begrenzung. |
regex | string? | Optionaler regulärer Ausdruck zur Eingabevalidierung. |
uinteger
Beispiel – nur nichtnegative Werte
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
min | uint? | Untere Schranke (≥ 0, inklusive). |
max | uint? | Obere Schranke (inklusive). |
video
Beispiel – nur nicht-negative Werte
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
| - | - | Videoreferenz; Format, Codec und Speicherort werden außerhalb definiert. |
content.customCategoryField - Benutzerdefinierte Kategoriefelder
Über den Knoten content.customCategoryField werden zusätzliche, frei definierbare Felder angelegt, die zur Beschreibung von Kategorien im Katalog genutzt werden können.
Damit lassen sich individuelle Informationen – etwa Texte, Bilder, SEO-Metadaten oder technische Eigenschaften – an Kategorien hinterlegen, die im Frontend oder in externen Systemen (z. B. Warenwirtschaft, Suchindex, PIM) angezeigt oder weiterverarbeitet werden können.
Diese Felder ergänzen die festen Standardfelder aus content.categoryField und ermöglichen eine flexible Erweiterung der Kategoriestruktur.
Neue Felder können entweder über das Admin Interface im Service „Katalog → Kategorien“ angelegt oder über die REST API Konfiguration erstellt werden.
Beispielkonfiguration content.customCategoryField.image
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
dataId | string | Systeminterne eindeutige ID des Feldes. Wird automatisch generiert und ist read-only. |
label | string | Anzeigename des Feldes im Admin Interface. Dient der besseren Lesbarkeit und kann frei vergeben werden. |
manualEditable | bool | Gibt an, ob der Feldwert manuell geändert werden darf. true = Feld kann über das Admin Interface, die REST API oder WaWi gepflegt werden. false = Feld ist schreibgeschützt (z. B. Systemfelder). Typische Verwendung: Schreibgeschützte Felder wie automatisch berechnete Werte oder systemseitig gesetzte Status. |
name | string | Technischer Name des Feldes. Muss eindeutig sein. Frei wählbar für eigene Felder (z. B. image, seoText, bannerVideo). |
required | bool | Markiert das Feld als Pflichtfeld. true = Feld muss befüllt werden, sonst keine Speicherung möglich. false = Feld ist optional. |
searchable | bool | Steuert, ob der Feldinhalt in die Suchindizierung aufgenommen wird. true = Feld wird in den Suchindex integriert. false = Feld bleibt für die Suche unberücksichtigt. Diese Einstellung greift nicht für das Suchmodul WEBSALE | search. |
type | oneOf | Datentyp des Feldes. Die verfügbaren Typen sind in contentFieldDataTypes definiert (z. B. text, image, multiFormatImage, enumeration, price). → siehe Datentypen |
content.customProductField - Benutzerdefinierte Produktfelder
Über den Knoten content.customProductField werden zusätzliche, frei definierbare Felder für Produkte angelegt. Diese Felder ermöglichen es, individuelle Produktinformationen zu erfassen, die über die Standardfelder hinausgehen – etwa Materialien, technische Eigenschaften, zusätzliche Texte, Medieninhalte oder Marketingattribute.
So können produktrelevante Zusatzdaten gepflegt werden, die im Frontend, im Suchindex oder in externen Systemen (z. B. PIM, ERP, WaWi) verwendet werden.
Neue Felder können entweder über das Admin Interface im Service „Katalog → Produkte“ angelegt oder über die REST API Konfiguration erstellt werden.
Beispielkonfiguration content.customProductField.material
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
dataId | string | Systeminterne eindeutige ID des Feldes. Wird automatisch generiert und ist read-only. |
label | string | Anzeigename des Feldes im Admin Interface. Dient der besseren Lesbarkeit und kann frei vergeben werden. |
manualEditable | bool | Gibt an, ob das Feld manuell bearbeitet werden darf. - true = Feld kann über das Admin Interface, die REST API oder WaWi gepflegt werden. - false = Feld ist schreibgeschützt (z. B. Systemfelder oder automatisch gesetzte Werte). |
name | string | Technischer Name des Feldes. Muss eindeutig sein. Wird z. B. in Templates oder API-Abfragen referenziert. |
protectedField | bool | Steuert, ob das Feld vor ungewollten Änderungen geschützt ist. - true = Feld kann nicht gelöscht oder überschrieben werden. - false = Feld kann jederzeit angepasst oder gelöscht werden. Typische Verwendung: Schutz von systemkritischen Feldern. |
required | bool | Markiert das Feld als Pflichtfeld. - true = Feld muss befüllt werden. - false = Feld ist optional. |
searchable | bool | Steuert, ob der Feldinhalt in den Suchindex aufgenommen wird. - true = Feld wird bei der Suche berücksichtigt. - false = Feld wird nicht indexiert. Diese Einstellung greift nicht für das Suchmodul WEBSALE | search. |
searchBoost | int | Gewichtungsfaktor für die Suche. Höhere Werte verstärken den Einfluss des Feldes auf das Suchranking. Standardwert: 1. Diese Einstellung greift nicht für das Suchmodul WEBSALE | search. |
serviceFilter | bool | Kennzeichnet, ob das Feld in servicebasierten Filtern (z. B. API-Abfragen, dynamische Produktauswahlen) verwendet werden kann. - true = Feld kann als Filterkriterium genutzt werden. - false = Feld steht für Filter nicht zur Verfügung. |
type | oneOf | Datentyp des Feldes. Die verfügbaren Typen sind in contentFieldDataTypes → siehe Datentypen |
variant | bool | Gibt an, ob das Feld als variantenrelevantes Attribut gilt. - true = Feld kann bei Produktvarianten unterschiedliche Werte haben (z. B. Farbe, Größe). - false = Feld gilt für alle Varianten gleich. |
content.imageFormat - Bildformate & Konvertierungseinstellungen
Über den Knoten content.imageFormat werden Bildformate und zugehörige Konvertierungsregeln definiert, die vom System beim Import, bei der automatischen Umwandlung oder bei der Ausgabe von Produkt-, Kategorie- oder CMS-Bildern verwendet werden.
Ein Bildformat beschreibt, wie ein Bild verarbeitet, geprüft, gespeichert und benannt wird.Dazu gehören Einstellungen für Skalierung, Zuschnitt, Dateigröße, DPI-Grenzen, Ausgabeordner und Kompressionsqualität. Neue Bildformate können entweder über das Admin Interface im Service „Templates und Content → Bildkonverter“ angelegt oder über die REST API Konfiguration erstellt werden.
Beispielkonfiguration content.imageFormat.normal
products/normal.
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
autoConvert | object | Zeit- oder triggerbasierte automatische Konvertierung. |
active | bool | Aktiviert automatische Umwandlung. - true = Regelmäßige Ausführung gemäß Zeitplan. - false = Nur manuell ausgelöst. |
hour | list<uint> | Stundenangaben (0–23) für geplante Ausführung. |
sourceDirectory | string | Quellordner der zu konvertierenden Bilder. |
weekday | list<uint> | Liste der Wochentage (0–6 = Sonntag–Samstag), an denen konvertiert wird. |
check | object | Regeln zur Eingabeprüfung (Dateityp, Auflösung, Größe). |
inputTypeRestriction | ||
active | bool | Aktiviert die Typprüfung. - true = Nur definierte Dateitypen sind erlaubt. - false = Keine Einschränkung. |
allowedTypes | list<string> | Liste zulässiger Dateitypen (z. B. ["jpg", "png", "webp"]). |
dpi | DPI-Prüfung | |
active | bool | Aktiviert die DPI-Prüfung. - true = Dateien müssen innerhalb des DPI-Bereichs liegen. - false = Keine Prüfung. |
min | unit | Mindest-DPI. |
max | unit | Maximal-DPI. |
fileSize | Größenprüfung | |
active | bool | Aktiviert die Größenprüfung. - true = Prüft Dateigröße - false = Keine Prüfung |
min | float | Untere Grenze für Dateigröße. |
max | float | Obere Grenze für Dateigröße. |
minUnit | enum | Einheit: byte, kiloByte, megaByte. |
maxUnit | enum | Einheit: byte, kiloByte, megaByte. |
convert | object | Definition der Bildkonvertierung (Format, Qualität, Skalierung etc.). |
changeType | Dateityp-Konvertierung | |
active | bool | Aktiviert die Dateityp-Konvertierung. - true = Zieldatei wird in den angegebenen Typ umgewandelt - false = Originalformat bleibt erhalten |
type | enum | Ziel-Dateiformat: jpg, jpeg, png, gif, webp, avif. Standard: jpg. |
quality | Qualitätssteuerung | |
active | bool | Aktiviert die Qualitätssteuerung. - true = aktiviert - false = deaktiviert |
value | uint | Qualitätswert 0–100 (100 = beste Qualität, größte Datei). |
resize | Größenänderung | |
active | bool | Aktiviert Größenänderung. - true = aktiviert - false = deaktiviert |
type | enum | Methode: scale (Proportional), crop (Zuschnitt), stretch (Streckung). |
width | uint | Zielbreite in px. |
height | uint | Zielhöhe in px. |
background | string | Hintergrundfarbe im Hex-Format (z. B. #FFFFFF). |
orientation | enum | Positionierung beim Zuschneiden/Platzieren: center, north, south, east, west, northEast, southEast, northWest, southWest. |
sharpen | Schärfefilter | |
active | bool | Aktiviert Schärfung. - true = Schärfefilter wird angewendet. - false = Keine Schärfung. |
sigma | float | Stärke des Schärfefilters (Standard 1.0). |
removeMetadata | bool | Entfernt Metadaten (EXIF u. a.). - true = Metadaten werden gelöscht. - false = Metadaten bleiben erhalten. |
additionalArguments | string | Erweiterte Kommando- oder Toolparameter (für interne Konverter). |
description | string | Beschreibung oder Zweck des Formats (frei wählbar). |
name | string | Eindeutiger Name des Bildformats. Wird intern und im Admin Interface angezeigt. |
output | object | Zielpfad und Schreibregeln für die erzeugten Dateien. Details siehe Abschnitt output. |
targetDirectory | string | Zielverzeichnis für konvertierte Bilder (relativ zum Medien-Root). |
nameSuffix | string | Optionaler Namenszusatz (z. B. _thumb, _webp). |
handleIfExists | enum | Verhalten bei existierender Datei: - overwrite – überschreiben - skip – überspringen - counter – neuen Namen mit Zähler erzeugen. |
type | enum | Klassifizierung des Formats. Zulässige Werte: - product – Produktbilder - category – Kategoriebilder - cms – CMS- oder Content-Bilder - app – App-Assets - other – Sonstige Bilder Standardwert: product. |
content.inventory - Lagerverwaltung & Bestandsmeldungen
Der Knoten content.inventory steuert die Lagerbestandsverwaltung des Shops sowie die Kommunikation bei geringen oder ausverkauften Beständen. Er definiert, ab welchen Grenzwerten Produkte als verfügbar, niedrig oder nicht lieferbar gelten, und welche Texte oder E-Mail-Benachrichtigungen in diesen Fällen verwendet werden.
Darüber hinaus können automatische E-Mails an Verantwortliche oder Kundinnen und Kunden konfiguriert werden, z. B. bei niedrigen Lagerbeständen oder wenn ein Artikel wieder verfügbar ist.
Neue Grenzen und Bestandsmeldungen können über die REST API Konfiguration erstellt werden.
Beispielkonfiguration content.inventory
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
| active | bool | Aktiviert die Lagerbestandsverwaltung. - true = Lagerbestand wird überwacht und im Frontend angezeigt. - false = Keine Lagerprüfung, alle Artikel gelten als verfügbar. |
backInStock | object | Konfiguration der Benachrichtigung bei Wiederverfügbarkeit für Kundinnen/Kunden. Steuert, ob Kundinnen/Kunden automatisch informiert werden, sobald ein Produkt wieder verfügbar ist. |
allow | bool | Aktiviert die Funktion „Benachrichtigen, wenn wieder verfügbar“. - true = Kundinnen/Kunden können sich für eine E-Mail-Benachrichtigung anmelden. - false = Keine Benachrichtigung möglich. |
mailSubject | string | Betreff der E-Mail (z. B. „Produkt wieder verfügbar“). |
senderAddress | string | Absenderadresse (z. B. noreply@shop.de). |
senderName | string | Absendername (z. B. Shopname). |
template | string | E-Mail-Template für die Nachricht (z. B. backInStock.htm). |
greenYellowBorder | uint | Grenzwert (Menge), ab dem die Anzeige von grün auf gelb wechselt. Beispiel: 50. |
message | object | Konfiguration automatischer internen Lagerbestandsmeldungen (an Händler/Admin). |
active | bool | Aktiviert die interne Benachrichtigung. - true = Warnmails werden versendet. - false = Keine Benachrichtigung möglich. |
fromAddress | string | Absenderadresse für Warnmails. |
fromName | string | Absendername (z. B. „Lagerbestandswächter“). |
limit | uint | Schwellwert für Bestandsmeldung. Wenn der Bestand ≤ Wert ist, wird eine Warnmail versendet. |
mail | string | Empfängeradresse für Warnmails. |
template | string | E-Mail-Template für die Benachrichtigung (z. B. inventory.htm). |
subject | string | Betreffzeile der E-Mail. |
reserveRedOrdable | bool | Steuert, ob auch ausverkaufte, aber nachbestellbare Artikel reserviert werden dürfen. - true = Reservierung erlaubt. - false = Reservierung nur für verfügbare Produkte. |
reservationTime | uint | Zeitspanne (in Minuten), für die ein Produkt bei Hinzufügen in den Warenkorb reserviert wird. Standard: 15 |
reservationTimeCheckout | uint | Zeitspanne (in Minuten), für die Produkte während des Bestellvorgangs reserviert bleiben. Standard: 30 |
splitDeliveryText | bool | Aktiviert getrennte Textanzeigen für Teillieferungen. - true = Getrennte Texte für verfügbare und nachgelieferte Produkte. - false = Einheitliche Anzeige. |
textGreen | string | Text für die grüne Statusanzeige (z. B. „Auf Lager“). |
textRed | string | Text für die rote Statusanzeige (z. B. „Ausverkauft“). |
textRedOrder | string | Text, wenn ein Artikel zwar ausverkauft, aber nachbestellbar ist (z. B. „Wird nachbestellt“). |
textYellow | string | Text für die gelbe Statusanzeige (z. B. „Nur noch wenige Stück auf Lager“). |
yellowRedBorder | uint | Grenzwert (Menge), ab dem ein Artikel als rot (nicht verfügbar) gilt. Beispiel: 0 |
content.productField - Standard-Produktdatenfelder
Über den Knoten content.productField werden die vordefinierten Standardfelder der Produktdaten beschrieben. Diese Felder bilden die feste technische Basis für alle Produkte und können nicht gelöscht oder neu angelegt werden. Sie definieren, welche Eigenschaften jedes Produkt im System besitzt – etwa Name, Preis, Beschreibung oder Steuerinformationen.
Je nach Feld kann festgelegt werden, ob es manuell editierbar, suchrelevant oder variantenspezifisch ist.
Neue, zusätzliche Felder können nicht über diesen Knoten erstellt werden. Hierfür steht der separate Knoten content.customProductField zur Verfügung.
Bestehende Werte können – sofern das jeweilige Feld editierbar ist – über das Admin Interface (Service „Katalog → Produkte“) oder über die REST API Konfiguration geändert werden. Systemverwaltete Felder (z. B. Timestamps) sind schreibgeschützt.
Beispielkonfiguration content.productField.name
name, das für alle Produkte vorhanden ist. Es ist suchrelevant, Pflichtfeld und variantenspezifisch. Die maximale Länge beträgt 255 Zeichen.
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
dataId | string | Systeminterne eindeutige ID des Feldes. Wird automatisch vergeben und ist read-only. |
label | string | Anzeigename des Feldes im Admin Interface. Kann frei angepasst werden und dient nur der Lesbarkeit. |
manualEditable | bool | Gibt an, ob der Wert manuell bearbeitet werden darf. - true = Feld kann über das Admin Interface, die REST API oder WaWi geändert werden. - false = Feld ist schreibgeschützt und wird ausschließlich vom System gepflegt (z. B. timestampCreatedAt). |
name | string | Technischer Name des Feldes. Muss eindeutig sein. Folgende Standardfelder stehen zur Verfügung: - active- descr- id- itemNumber- name- price- setPrice- taxRateId- timestampCreatedAt- timestampUpdatedAtDiese Felder sind fest vorgegeben und nicht veränderbar. Für eigene Felder siehe content.customProductField. |
protectedField | bool | Steuert, ob das Feld gegen Änderungen oder Löschung geschützt ist. - true = Feld kann nicht entfernt oder überschrieben werden. - false = Feld kann (innerhalb der erlaubten Grenzen) angepasst werden. |
required | bool | Gibt an, ob das Feld verpflichtend befüllt werden muss. - true = Pflichtfeld (z. B. Produktname, Artikelnummer). - false = Optionales Feld. |
searchable | bool | Bestimmt, ob der Feldinhalt in den Suchindex aufgenommen wird. - true = Feld wird in der Suche berücksichtigt. - false = Feld bleibt für die Suche unberücksichtigt. |
searchBoost | int | Gewichtungsfaktor für die Suche. Höhere Werte erhöhen die Relevanz des Feldes im Suchranking. Standard: 1 |
serviceFilter | bool | Steuert, ob das Feld als Filterkriterium in servicebasierten Abfragen genutzt werden kann. - true = Feld kann in Filtern und API-Requests verwendet werden. - false = Feld steht für Filter nicht zur Verfügung. |
type | oneOf | Datentyp des Feldes. Nur ein Typ darf aktiv sein. Die verfügbaren Typen sind in contentFieldDataTypes beschrieben. → siehe Datentypen |
text | ||
maxLength | integer | Maximale Anzahl an Zeichen, die im Textfeld erlaubt sind. |
regex | string | Optionaler regulärer Ausdruck zur Validierung. - null = keine Prüfung. - "<pattern>" = Eingabe muss Muster entsprechen. |
searchIndexBehaviour | string | Steuert, wie der Text in der Suche indiziert wird. - "analyzed" = Tokenisierung/Volltextsuche - "notAnalyzed" = exakte Übereinstimmung (Keyword). |
variant | bool | Legt fest, ob das Feld variantenabhängig ist. - true = Feldwert kann sich je Variante unterscheiden (z. B. Farbe, Größe, Preis). - false = Feld gilt für alle Varianten eines Produkts gleich. |
content.productSettings - Allgemeine Produkteinstellungen
Der Knoten content.productSettings enthält allgemeine Einstellungen, die das Verhalten der Produktdarstellung und -kennzeichnung im Shop beeinflussen. Aktuell umfasst dieser Abschnitt insbesondere die Definition, wie lange ein Produkt als „neu“ markiert werden soll.
Die Settings können über die REST API Konfiguration erstellt werden.
Beispielkonfiguration content.productSettings
Nach Ablauf dieser Frist entfällt die Kennzeichnung automatisch.
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
daysNewTagged | int | Gibt an, wie viele Tage nach der Erstellung ein Produkt als „neu“ gilt. Standardwert: 14. Typischer Einsatz für Badges oder Hervorhebungen im Frontend („Neu“, „Just arrived“, „Neu im Sortiment“). |
content.productType - Produkttypen
Der Knoten content.productType dient zur Definition von Produkttypen, über die sich unterschiedliche Produktarten im System klassifizieren lassen.
Produkttypen können verwendet werden, um Funktionen, Prozesse oder Darstellungslogiken abhängig vom Typ zu steuern – z. B. zur Unterscheidung zwischen physischen Produkten, digitalen Gütern oder Dienstleistungen.
Jeder Produkttyp besitzt eine eindeutige ID und einen Namen, der im Admin Interface angezeigt wird.
Neue Produkttypen können über die REST API Konfiguration erstellt werden.
Beispielkonfiguration content.productType.digital
digital definiert.Er kann anschließend bei Produkten verwendet werden, um z. B. digitale Inhalte von physischen Waren zu unterscheiden.
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
id | string | Technische, eindeutige Kennung des Produkttyps (z. B. "physical", "digital", "service"). Wird als Referenz in Produktobjekten verwendet. |
name | string | Anzeigename des Produkttyps im Admin Interface. Dient der besseren Lesbarkeit und kann frei gewählt werden. |
content.usedFields - Zuordnung benutzerdefinierter Felder
Der Knoten content.usedFields legt fest, welche benutzerdefinierten Felder (customCategoryField / customProductField) im Shopsystem aktiv für bestimmte Funktionsbereiche genutzt werden. Damit wird definiert, welche Custom-Felder im Frontend oder im Backend für SEO, Metadaten, Cross-Selling, Rabatte, Gutscheine usw. herangezogen werden.
Das bedeutet:Ein hier hinterlegter Verweis wie
"metaTitle": "content.customProductField.metaTitle"definiert, welches benutzerdefinierte Feld tatsächlich das SEO-Titel-Feld für Produkte ist. Dadurch können Administratoren und Entwickler individuelle Felder flexibel in die Systemlogik einbinden, ohne dass feste Systemfelder nötig sind. Die Zuordnung kann über die REST API Konfiguration erstellt und bearbeitet werden.
Beispielkonfiguration content.usedFields
bestPrice, defaultSort) bleiben ungenutzt (null).
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
categories | object | Enthält alle Zuordnungen, die für Kategoriefelder gelten (z. B. SEO-Texte, Templates, Robots-Angaben). |
alternativeTemplate | singleAssoc → content.customCategoryField | Referenz auf ein Feld, das alternative Template-Pfade oder Layouts definiert. |
defaultSort | singleAssoc → content.customCategoryField | Legt die Standard-Sortierung innerhalb einer Kategorie für die interne Suche fest. Der Wert muss den Namen einer konfigurierten Sortieroption aus search.productSortOption enthalten. |
metaDescription | singleAssoc → content.customCategoryField | Feld für SEO-Beschreibung der Kategorie. |
metaDescriptionSetManually | singleAssoc → content.customCategoryField | Kennzeichnet für die SEO-Felder, ob ihr Inhalt manuell gepflegt oder automatisch erzeugt wird. Standardmäßig befüllt der SEO-Dienst diese Werte automatisch; in der Konfiguration wird einmalig zugewiesen, aus welchen Feldern die Generierung erfolgt. |
metaTitle | singleAssoc → content.customCategoryField | Feld für SEO-Titel der Kategorie. |
metaTitleSetManually | singleAssoc → content.customCategoryField | SEO-Titel Steuerfeld, ob die Werte manuell gesetzt oder automatisch generiert wurden. |
robotsNoFollow | singleAssoc → content.customCategoryField | Verweis auf ein Custom-Field (Boolean), das steuert, ob Suchmaschinen Links auf dieser Seite folgen dürfen. true - “nofollow” für diese Seite aktiviert false - Links werden von Suchmaschinen indexiert |
robotsNoIndex | singleAssoc → content.customCategoryField | Verweis auf ein Custom-Feld (Boolean), das steuert, ob die Seite indexiert werden darf. true - noindex(Seite nicht indexieren) false- Seite darf indexiert werden. |
products | object | Enthält alle Zuordnungen, die für Produktfeldeigenschaften gelten (z. B. Preise, Gutscheininformationen, Cross-Selling, SEO). Ordnet Custom-Felder zu, die für Produkte verwendet werden. |
bestPrice | singleAssoc → content.customProductField | Optionales Feld für die günstigste Preisoption oder Vergleichspreise. |
commission | singleAssoc → content.customProductField | Provisionsfelder für den Verkauf (z. B. Partnerprogramme). |
commissionTaxRate | singleAssoc → content.customProductField | Provisionsfelder für den Verkauf (z. B. Partnerprogramme). |
crossSelling | singleAssoc → content.customProductField | Feld für Cross-Selling- oder Zubehörverknüpfungen. |
customNumber | singleAssoc → content.customProductField | Alternative Artikelnummer. |
mainCategory | singleAssoc → content.customProductField | Verweist auf ein Custom-Feld, das die Hauptkatgeorie eines Produkts enthält. Diese wird u.a. genutzt für SEO-URL-Pfad (übergeordnete Kategorie im Link) oder Breadcrumbs beim Direkteinstieg auf die Produktseite. |
metaDescription | singleAssoc → content.customProductField | SEO-Feld für Produktbeschreibung. |
metaDescriptionSetManually | singleAssoc → content.customProductField | Steuerfeld für manuell gesetzte SEO-Werte. |
metaTitle | singleAssoc→ content.customProductField | SEO-Feld für Produkttitel. |
metaTitleSetManually | singleAssoc → content.customProductField | Steuerfeld für manuell gesetzte SEO-Werte. |
oneTimeFee | singleAssoc → content.customProductField | Zusatzgebühren (z. B. Servicepauschale) und deren Steuerinformationen. |
oneTimeFeeTaxRate | singleAssoc → content.customProductField | Zusatzgebühren (z. B. Servicepauschale) und deren Steuerinformationen. |
orderExportFields | multiAssoc → content.customProductField | Liste zusätzlicher Felder, die beim Bestellexport mitgegeben werden. |
productDiscount | singleAssoc → content.customProductField | Felder zur Steuerung von Rabattinformationen (prozentual / absolut). Dieser Rabatt gilt nur für Set-Produkte. |
productDiscountAbsolute | singleAssoc → content.customProductField | Felder zur Steuerung von Rabattinformationen (prozentual / absolut). Dieser Rabatt gilt nur für Set-Produkte. |
productType | singleAssoc → content.customProductField | Zuweisung eines Custom-Felds für Produkttyp-Informationen. |
ratingPoints | singleAssoc → content.customProductField | Feld für Bewertungs- oder Punktesysteme. |
robotsNoFollow | singleAssoc → content.customProductField | Suchmaschinensteuerung (Indexierung / Follow). |
robotsNoIndex | singleAssoc → content.customProductField | Suchmaschinensteuerung (Indexierung / Follow). |
validForDiscount | singleAssoc → content.customProductField | Steuerung, ob ein Produkt für Rabattaktionen berücksichtigt wird. |
voucherProductActive | singleAssoc → content.customProductField | Steuert, ob beim Kauf automatisch ein Gutschein (PDF) erzeugt wird. |
voucherProductCharge | singleAssoc → content.customProductField | Referenz auf die Charge/Charge-ID, aus der ein Gutschein neu erstellt oder aus einem importierten Pool entnommen wird. |
voucherProductHtmlTemplate | singleAssoc → content.customProductField | Name/Pfad des HTML-Templates, das zur Erzeugung des Gutschein-PDFs verwendet wird. |
voucherProductPrice | singleAssoc → content.customProductField | Wenn aktiv, entspricht der Gutscheinwert dem Produktpreis. |
weight | singleAssoc → content.customProductField | Feld für das Produktgewicht. |
freeShipping | singleAssoc → content.customProductField | Wenn sich nur Produkte im Warenkorb befinden, bei denen dieses Feld auf true steht, werden keine Versandkosten berechnet. |
content.videoSettings - Videoeinstellungen für Produkte und Kategorien
Der Knoten content.videoSettings definiert die allgemeinen Parameter für den Upload und die Ablage von Videodateien, die in Produkt- oder Kategorieinhalten verwendet werden.Hierüber wird festgelegt, welche Formate zulässig sind, wie groß eine Videodatei maximal sein darf, und in welchen Zielverzeichnissen Videos gespeichert werden. Diese Einstellungen greifen sowohl bei manuellen Uploads im Admin Interface als auch bei automatisierten Datenimporten. Neue und bestehende Einstellungen können über das Admin Interface (Service „Sonstige Module → Videos“) oder über die REST API Konfiguration bearbeitet werden.
Beispielkonfiguration content.videoSettings
Parameterübersicht
| Parameter | Typ | Beschreibung |
|---|---|---|
allowedFormats | list<string> | Liste der zugelassenen Dateiformate (z. B. ["mp4", "mov", "webm"]). Ist die Liste leer, werden alle unterstützten Standardformate akzeptiert. |
categoryTargetDirectory | string | Zielverzeichnis für Kategorievideos. Standardwert: categories/video. |
maxFileSize | int | Maximale Dateigröße in Megabyte (MB), die beim Hochladen von Videodateien erlaubt ist. Standardwert: 250. |
productTargetDirectory | string | Zielverzeichnis für Produktvideos. Standardwert: products/video. |
