Die Änderungs-Import-Datenbank ist eine vom Kunden gepflegte Datenbank für artikelspezifische und stammdatenbezogene Inhalte. Der Kunde befüllt diese Datenbank, SellSite liest sie über einen Import-Job aus und übernimmt die Änderungen in die SellSite-Datenbank. Wenn konfiguriert, läuft der Import-Job periodisch.
Dadurch lassen sich Artikeldaten effizient und aktuell halten, ohne dass externe Systeme direkt auf die SellSite-Datenbank zugreifen müssen oder komplexe Schnittstellen erforderlich sind. Auf welchem Weg die Import-Datenbank befüllt und gepflegt wird, kann der Kunde frei festlegen.
Das Schema unterteilt sich in zwei Bereiche:
Stammdaten
Artikelunabhängige Daten wie Marken, Merkmals-Einstellungen, Kataloge, Gruppen und Varianten können vollständig, gar nicht oder im Delta-Modus importiert werden.
Im Delta-Modus enthalten die Stammdaten-Tabellen ein Feld changeDate. Zeilen mit changeDate innerhalb des gewählten Zeitfensters werden dann importiert. Ein NULL-Wert sorgt dafür, dass die jeweilige Zeile immer aktualisiert wird. Dadurch können große Tabellen performanter per Delta verarbeitet werden, während kleinere Tabellen den Wert einfach leer lassen können.
Stammdaten, die ursprünglich aus der Änderungs-Import-Datenbank stammen, nun aber in dieser nicht mehr vorhanden sind, werden nur nach einem Vollimport der Stammdaten gelöscht und auch dann nur, sofern keine Artikel oder sonstigen Referenzierungen diese mehr verwenden.
Artikeldaten
Artikeldaten können vollständig, gar nicht oder im Delta-Modus importiert werden. Im Delta-Modus steuert der Änderungszeitpunkt am Artikel den Import.
Artikelspezifische Daten, die ursprünglich aus der Änderungs-Import-Datenbank stammen, nun aber nicht mehr vorhanden sind, werden für alle aktualisierten Artikel gelöscht. Artikel selber werden entweder direkt über das Löschkennzeichen gelöscht oder nach einem Vollimport entfernt, wenn sie in der Änderungs-Import-Datenbank nicht mehr vorhanden sind.
Enthält die Marken (Hersteller/Lieferanten), auf die Artikel verweisen können. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| code * | Text (max. 50 Zeichen) | Eindeutiger Markencode |
| name * | Text (max. 255 Zeichen) | Anzeigename der Marke |
| logo | Text (max. 512 Zeichen) | URL oder relativer Pfad zur Datei im Media-Repository / 'media' Ordner |
| description | Text (unbegrenzt) | Beschreibungstext |
| slogan | Text (max. 500 Zeichen) | Slogan der Marke |
| supplierNumber | Text (max. 50 Zeichen) | Lieferantennummer |
| priority | Ganzzahl | Sortierpriorität |
| useOxomiPreviewImages | Ja/Nein | Vorschaubilder aus OXOMI? |
| oxomiSupplierNumber | Ja/Nein | OXOMI Lieferantennummer? |
| manufacturerName | Text (max. 255 Zeichen) | Name des Herstellers |
| manufacturerPostalAddress | Text (max. 500 Zeichen) | Postanschrift des Herstellers |
| manufacturerElectronicAddress | Text (max. 255 Zeichen) | Elektronische Adresse des Herstellers |
| distributorName | Text (max. 255 Zeichen) | Name des Inverkehrbringers |
| distributorPostalAddress | Text (max. 500 Zeichen) | Postanschrift des Inverkehrbringers |
| distributorElectronicAddress | Text (max. 255 Zeichen) | Elektronische Adresse des Inverkehrbringers |
| changeDate | Datum + Uhrzeit | Änderungszeitpunkt für den Delta-Import; NULL bedeutet immer importieren |
Definiert die verfügbaren Merkmale und deren Darstellungsoptionen. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| code * | Text (max. 255 Zeichen) | Eindeutiger Merkmalscode |
| type * | Text (max. 20 Zeichen) | ALPHANUMERIC (Text), NUMERIC (Zahl), RANGE (Wertebereich) oder BOOL (Ja/Nein). |
| priority * | Ganzzahl | Sortierpriorität |
| showInDetails * | Ja/Nein | In Artikeldetails anzeigen? |
| showInList * | Ja/Nein | In Artikelliste anzeigen? |
| showAsFilter * | Ja/Nein | Als Filter verwenden? |
| noRangeFilter * | Ja/Nein | Kein Zahlenfilter? |
| useAsContent * | Ja/Nein | In Suche einschließen? |
| useAsExtendedContent * | Ja/Nein | Erweiterte Suche? |
| showInTooltip * | Ja/Nein | Als Tooltipinfo verwenden? |
| characteristic * | Ja/Nein | Charaktermerkmal? |
| multiple * | Ja/Nein | Mehrfach? |
| label (2) | Text (max. 255 Zeichen) | Anzeigename des Merkmals |
| changeDate | Datum + Uhrzeit | Änderungszeitpunkt für den Delta-Import; NULL bedeutet immer importieren |
Definiert Kataloge, denen Artikel zugeordnet werden können. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| name * | Text (max. 255 Zeichen) | Eindeutiger Katalogname |
| offer * | Ja/Nein | Angebotskatalog? |
| visibleName | Text (max. 255 Zeichen) | Abweichender, im Shop anzuzeigender Name des Katalogs |
| logo | Text (max. 512 Zeichen) | URL oder relativer Pfad zur Datei im Media-Repository / 'media' Ordner |
| partnerRole | Text (max. 255 Zeichen) | Partnerrolle, die untergeordnete Mandanten benötigen, um auf den Katalog zugreifen zu können |
| validFrom | Datum | Gültig ab |
| validUntil | Datum | Gültig bis |
| language | Text (max. 2 Zeichen) | Sprache des Katalogs (z. B. de, en) |
| changeDate | Datum + Uhrzeit | Änderungszeitpunkt für den Delta-Import; NULL bedeutet immer importieren |
Definiert die hierarchische Gruppenstruktur. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| type * | Text (max. 30 Zeichen) | Code des Gruppentyps. Siehe Gruppentypen für mögliche Werte. |
| code * | Text (max. 255 Zeichen) | Eindeutiger Gruppencode (Im Falle von markenspezifischen Gruppen eindeutig innerhalb der Marke) |
| name * (2) | Text (max. 255 Zeichen) | Anzeigename |
| priority * | Ganzzahl | Sortierpriorität |
| image | Text (max. 512 Zeichen) | URL oder relativer Pfad zur Datei im Media-Repository / 'media' Ordner |
| parent | Text (max. 255 Zeichen) | Code der übergeordneten Gruppe |
| brand | Text (max. 50 Zeichen) | Code der zugeordneten Marke (nur im Fall von markenspezifischen Gruppen) |
| cssClass | Text (max. 255 Zeichen) | CSS-Klasse für die Darstellung |
| changeDate | Datum + Uhrzeit | Änderungszeitpunkt für den Delta-Import; NULL bedeutet immer importieren |
Zusätzliche Texte zu Gruppen. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| group * | Text (max. 255 Zeichen) | Gruppencode |
| type * | Text (max. 50 Zeichen) | Texttyp |
| text * | Text (unbegrenzt) | Textinhalt |
| changeDate | Datum + Uhrzeit | Änderungszeitpunkt für den Delta-Import; NULL bedeutet immer importieren |
Zulässige Werte für type:
| Code | Bezeichnung |
|---|---|
| TEMPLATE_TOP_DESKTOP | Desktop-Template (oben) |
| TEMPLATE_TOP_MOBILE | Mobile-Template (oben) |
| TEMPLATE_BOTTOM_DESKTOP | Desktop-Template (unten) |
| TEMPLATE_BOTTOM_MOBILE | Mobile-Template (unten) |
| META_TITLE | Meta-Titel |
| META_DESCRIPTION | Meta-Beschreibung |
Definiert verfügbare Mengeneinheiten. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| code * | Text (max. 255 Zeichen) | Eindeutiger Einheitscode |
| shortName | Text (max. 255 Zeichen) | Kurzname |
| unitName | Text (max. 255 Zeichen) | Bezeichnung der Einheit |
| alias1 ... alias6 | Text (max. 255 Zeichen) | Alternative Schreibweisen |
| standardCode | Text (max. 255 Zeichen) | Standardcode |
| erpCode | Text (max. 255 Zeichen) | ERP-Code |
| changeDate | Datum + Uhrzeit | Änderungszeitpunkt für den Delta-Import; NULL bedeutet immer importieren |
Definiert Varianten-Gruppierungen, denen Artikel zugeordnet werden können. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| code * | Text (max. 255 Zeichen) | Eindeutiger Variantencode |
| itemPreviewIsVariantImage * | Ja/Nein | Produktabbildung zeigt Variantenausführung? |
| name | Text (max. 1024 Zeichen) | Anzeigename der Variante |
| previewImage | Text (max. 512 Zeichen) | URL oder relativer Pfad zur Datei im Media-Repository / 'media' Ordner |
| featureX | Text (max. 128 Zeichen) | Merkmalscode für die X-Achse der Variantenmatrix |
| featureY | Text (max. 128 Zeichen) | Merkmalscode für die Y-Achse der Variantenmatrix |
| changeDate | Datum + Uhrzeit | Änderungszeitpunkt für den Delta-Import; NULL bedeutet immer importieren |
Die zentrale Tabelle für Artikeldaten. Das Feld changeDate steuert, welche Artikel im Delta-Modus beim nächsten Import-Lauf berücksichtigt werden. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| itemNumber * | Text (max. 50 Zeichen) | Eindeutige Artikelnummer |
| shortText * (2) | Text (unbegrenzt) | Kurztext |
| quantityUnit * | Text (max. 255 Zeichen) | Code der Mengeneinheit |
| ranking * | Ganzzahl | Ranking |
| priceQuantity * | Zahl (3 Nachkommastellen) | Preismenge |
| minOrderQuantity * | Zahl (3 Nachkommastellen) | Mindestbestellmenge |
| orderStep * | Zahl (3 Nachkommastellen) | Bestellschritt |
| priority * | Ganzzahl | Sortierpriorität |
| changeDate * | Datum + Uhrzeit | Zeitpunkt der letzten Änderung – steuert den Import |
| deleted * | Ja/Nein | Artikel als gelöscht betrachten? |
| previewImage | Text (max. 512 Zeichen) | URL oder relativer Pfad zur Datei im Media-Repository / 'media' Ordner |
| brand | Text (max. 50 Zeichen) | Code der zugehörigen Marke |
| supplierNumber | Text (max. 50 Zeichen) | Lieferantennummer |
| gtin | Text (max. 50 Zeichen) | EAN / GTIN |
| supplierItemNumber | Text (max. 50 Zeichen) | Herstellerartikelnummer |
| userCorrelationNumber | Text (max. 50 Zeichen) | Eigene Referenz-Nummer |
| model | Text (max. 50 Zeichen) | Lieferanten-Type |
| variant | Text (max. 255 Zeichen) | Code der zugehörigen Variante |
| classificationSystem | Text (max. 50 Zeichen) | Klassifizierungssystem (z. B. ETIM, eClass) |
| classificationClass | Text (max. 50 Zeichen) | Code der Klasse innerhalb des Klassifizierungssystems |
Enthält die zusätzlichen Eigenschaften einzelner Artikel. Pflichtfelder sind mit * gekennzeichnet.
Anhand des Codes legt SellSite fest, welcher Datentyp entsteht. Als Kennzeichen, Zusatzattribut oder alternative Klassifizierung hinterlegte Codes werden immer entsprechend importiert. Entspricht ein Code einer Merkmals-Einstellung der Klassifikation des Artikels, wird ein Merkmal angelegt. Alle übrigen Werte werden als DIY-Merkmal importiert – auch ohne vorhandene Merkmals-Einstellung.
Im Falle von Merkmalen, bei denen in den Merkmals-Einstellungen „Mehrfach“ gesetzt ist, oder im Falle von Zusatzattributen, die mehrere Werte unterstützen, können mehrere Zeilen mit demselben Artikel und Code existieren.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| code * | Text (max. 128 Zeichen) | Code laut SellSite-Konfiguration |
| value * | Text (max. 255 Zeichen) | Wert (bzw. unterer Grenzwert bei Wertbereichen) |
| value2 | Text (max. 255 Zeichen) | Oberer Grenzwert (nur bei Wertbereichen) |
| valueDescription (2) | Text (max. 255 Zeichen) | Beschreibungstext zum Wert |
| unit | Text (max. 50 Zeichen) | Code der Einheit des Merkmals |
Sprachabhängige Zusatztexte zu Artikeln, z. B. Langbeschreibungen oder technische Hinweise. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| type * | Text (max. 50 Zeichen) | Code des Texttyps. Siehe Texttypen für mögliche Werte. |
| language * | Text (max. 3 Zeichen) | Sprachcode (z. B. de, en) |
| text * | Text (unbegrenzt) | Der eigentliche Textinhalt |
Dateien und Medien, die einem Artikel zugeordnet sind (z. B. Bilder, Datenblätter, Zertifikate). Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| type * | Text (max. 50 Zeichen) | Code des Anhangstyps. Siehe Bild- und Dateitypen für mögliche Werte. |
| file * | Text (max. 1024 Zeichen) | URL oder relativer Media-Repository-Pfad zur Datei |
| priority * | Ganzzahl | Sortierpriorität |
| languages | Text (max. 60 Zeichen) | Kommagetrennte Sprachcodes (z. B. de,en). Leer = alle Sprachen. |
| description (2) | Text (max. 255 Zeichen) | Beschreibungstext zum Anhang |
Definiert Beziehungen zwischen Artikeln, z. B. Zubehör, Alternativen oder Ersatzteile. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| sourceItem * | Text (max. 50 Zeichen) | Quell-Artikelnummer |
| targetItem * | Text (max. 50 Zeichen) | Ziel-Artikelnummer |
| relationType * | Text (max. 30 Zeichen) | Art der Beziehung (siehe unten) |
| priority * | Ganzzahl | Sortierpriorität |
| recommendedQuantity | Zahl (3 Nachkommastellen) | Empfohlene Menge |
| group | Text (max. 50 Zeichen) | Zubehörgruppe |
Mögliche Werte für relationType (Beziehungstyp):
- ACCESSORY – Zubehör
- RECOMMENDED_ACCESSORY – Empfohlenes Zubehör
- MANDATORY_ACCESSORY – Pflichtzubehör
- CROSS_SELLING – Querverkauf
- PREDECESSOR – Vorgänger
- ALTERNATIVE – Alternative
- UPSELLING – Upselling
- PRIVATE_BRAND – Eigenmarke
- SPECIAL_ALTERNATIVE – Sonderalternative
- PART_OF – Teil von
- SPARE_PART – Ersatzteil
- MOUNTING_ACCESSORY – Montagezubehör
- INSPECTION_CERTIFICATE – Prüfzertifikat
Ordnet Artikel einem oder mehreren Katalogen zu und kann katalogspezifische Preise sowie Rabattgruppen enthalten. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| catalog * | Text (max. 255 Zeichen) | Katalogname |
| catalogItemNumber | Text (max. 50 Zeichen) | Katalogspezifische Artikelnummer |
| price | Zahl (3 Nachkommastellen) | Katalogpreis |
| discountGroup | Text (max. 50 Zeichen) | Rabattgruppe |
Preisstaffeln je Katalogzuordnung. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| catalog * | Text (max. 255 Zeichen) | Katalogname |
| conditionValue * | Zahl (3 Nachkommastellen) | Schwellwert der Staffel |
| price | Zahl (3 Nachkommastellen) | Staffelpreis |
Ordnet Artikel Gruppen zu. Ein Artikel kann mehreren Gruppen angehören. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id * (1) | Ganzzahl (automatisch fortlaufend) | Dient zur Abfragen-Optimierung |
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| group * | Text (max. 255 Zeichen) | Gruppencode |
(1) Generell muss jede Tabelle eine numerische, automatisch-fortlaufende, id Spalte besitzen. Diese dient jedoch ausschließlich der blockweisen Abfrage der Daten, NICHT der Referenzierung anderer Entitäten. Andere Entitäten werden über Codes / Namen / … referenziert.
(2) Mehrsprachige Felder: Falls Ihr System mehrsprachig ist, können für mehrsprachige Felder sprachspezifische Werte über zusätzliche Spalten mit Suffix _xx bereitgestellt werden. So kann z. B. die items Tabelle um die Spalte shortText_en erweitert werden, um englischsprachige Artikel-Kurztexte zu definieren.
Nachfolgend finden Sie das vollständige SQL-Schema für die unterstützten Datenbanken. Die fachliche Struktur ist in allen Varianten identisch, die SQL-Syntax ist jedoch je nach Datenbank angepasst.
CREATE TABLE brands (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(50) NOT NULL,
name VARCHAR(255) NULL,
logo VARCHAR(512) NULL,
description TEXT NULL,
slogan VARCHAR(500) NULL,
supplierNumber VARCHAR(50) NULL,
priority BIGINT NOT NULL,
useOxomiPreviewImages TINYINT(1) NOT NULL,
oxomiSupplierNumber TINYINT(1) NOT NULL,
manufacturerName VARCHAR(255) NULL,
manufacturerPostalAddress VARCHAR(500) NULL,
manufacturerElectronicAddress VARCHAR(255) NULL,
distributorName VARCHAR(255) NULL,
distributorPostalAddress VARCHAR(500) NULL,
distributorElectronicAddress VARCHAR(255) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_brands_id (id),
INDEX idx_brands_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE featuresettings (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
type VARCHAR(20) NOT NULL,
label VARCHAR(255) NULL,
priority INT NOT NULL,
showInDetails TINYINT(1) NOT NULL,
showInList TINYINT(1) NOT NULL,
showAsFilter TINYINT(1) NOT NULL,
noRangeFilter TINYINT(1) NOT NULL,
useAsContent TINYINT(1) NOT NULL,
useAsExtendedContent TINYINT(1) NOT NULL,
showInTooltip TINYINT(1) NOT NULL,
characteristic TINYINT(1) NOT NULL,
multiple TINYINT(1) NOT NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_featuresettings_id (id),
INDEX idx_featuresettings_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE catalogs (
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
visibleName VARCHAR(255) NULL,
logo VARCHAR(512) NULL,
offer TINYINT(1) NOT NULL,
partnerRole VARCHAR(255) NULL,
validFrom DATE NULL,
validUntil DATE NULL,
language VARCHAR(2) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (name),
UNIQUE KEY uk_catalogs_id (id),
INDEX idx_catalogs_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE `groups` (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
name VARCHAR(255) NULL,
image VARCHAR(512) NULL,
parent VARCHAR(255) NULL,
type VARCHAR(30) NOT NULL,
brand VARCHAR(50) NULL,
priority INT NOT NULL,
cssClass VARCHAR(255) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_groups_id (id),
INDEX idx_groups_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE grouptexts (
id BIGINT NOT NULL AUTO_INCREMENT,
`group` VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
changeDate DATETIME NULL,
UNIQUE KEY uk_grouptexts_id (id),
INDEX idx_grouptexts_group (`group`),
INDEX idx_grouptexts_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE quantityunits (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
shortName VARCHAR(255) NULL,
unitName VARCHAR(255) NULL,
alias1 VARCHAR(255) NULL,
alias2 VARCHAR(255) NULL,
alias3 VARCHAR(255) NULL,
alias4 VARCHAR(255) NULL,
alias5 VARCHAR(255) NULL,
alias6 VARCHAR(255) NULL,
standardCode VARCHAR(255) NULL,
erpCode VARCHAR(255) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_quantityunits_id (id),
INDEX idx_quantityunits_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE variants (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
name VARCHAR(1024) NULL,
previewImage VARCHAR(512) NULL,
featureX VARCHAR(128) NULL,
featureY VARCHAR(128) NULL,
itemPreviewIsVariantImage TINYINT(1) NOT NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_variants_id (id),
INDEX idx_variants_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE items (
id BIGINT NOT NULL AUTO_INCREMENT,
itemNumber VARCHAR(50) NOT NULL,
shortText TEXT NOT NULL,
previewImage VARCHAR(512) NULL,
brand VARCHAR(50) NULL,
supplierNumber VARCHAR(50) NULL,
ranking BIGINT NOT NULL,
quantityUnit VARCHAR(255) NULL,
priceQuantity DECIMAL(20, 3) NOT NULL,
minOrderQuantity DECIMAL(20, 3) NOT NULL,
orderStep DECIMAL(20, 3) NOT NULL,
gtin VARCHAR(50) NULL,
supplierItemNumber VARCHAR(50) NULL,
userCorrelationNumber VARCHAR(50) NULL,
model VARCHAR(50) NULL,
variant VARCHAR(255) NULL,
classificationSystem VARCHAR(50) NULL,
classificationClass VARCHAR(50) NULL,
priority BIGINT NOT NULL,
changeDate DATETIME NOT NULL,
deleted TINYINT(1) NOT NULL,
PRIMARY KEY (itemNumber),
UNIQUE KEY uk_items_id (id),
INDEX idx_items_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE features (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
code VARCHAR(128) NOT NULL,
value VARCHAR(255) NULL,
value2 VARCHAR(255) NULL,
valueDescription VARCHAR(255) NULL,
unit VARCHAR(50) NULL,
UNIQUE KEY uk_features_id (id),
INDEX idx_features_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE additionaltexts (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
language VARCHAR(3) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
UNIQUE KEY uk_additionaltexts_id (id),
INDEX idx_additionaltexts_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE attachments (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
type VARCHAR(50) NOT NULL,
file VARCHAR(1024) NOT NULL,
languages VARCHAR(60) NULL,
description VARCHAR(255) NULL,
priority INT NOT NULL,
UNIQUE KEY uk_attachments_id (id),
INDEX idx_attachments_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE itemrelations (
id BIGINT NOT NULL AUTO_INCREMENT,
sourceItem VARCHAR(50) NOT NULL,
targetItem VARCHAR(50) NOT NULL,
relationType VARCHAR(30) NOT NULL,
priority INT NOT NULL,
recommendedQuantity DECIMAL(20, 3) NULL,
`group` VARCHAR(50) NULL,
UNIQUE KEY uk_itemrelations_id (id),
INDEX idx_itemrelations_source (sourceItem),
INDEX idx_itemrelations_target (targetItem)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE catalogitemmappings (
id BIGINT NOT NULL AUTO_INCREMENT,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
catalogItemNumber VARCHAR(50) NULL,
price DECIMAL(20, 3) NULL,
discountGroup VARCHAR(50) NULL,
PRIMARY KEY (catalog, item),
UNIQUE KEY uk_catalogitemmappings_id (id),
INDEX idx_catalogitemmappings_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE pricescales (
id BIGINT NOT NULL AUTO_INCREMENT,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
conditionValue DECIMAL(20, 3) NOT NULL,
price DECIMAL(20, 3) NULL,
PRIMARY KEY (catalog, item, conditionValue),
UNIQUE KEY uk_pricescales_id (id),
INDEX idx_pricescales_item_catalog (item, catalog)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE groupmappings (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
`group` VARCHAR(255) NOT NULL,
PRIMARY KEY (item, `group`),
UNIQUE KEY uk_groupmappings_id (id),
INDEX idx_groupmappings_group (`group`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin; CREATE TABLE brands (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
code VARCHAR(50) NOT NULL PRIMARY KEY,
name VARCHAR(255) NULL,
logo VARCHAR(512) NULL,
description VARCHAR(MAX) NULL,
slogan VARCHAR(500) NULL,
supplierNumber VARCHAR(50) NULL,
priority BIGINT NOT NULL,
useOxomiPreviewImages BIT NOT NULL,
oxomiSupplierNumber BIT NOT NULL,
manufacturerName VARCHAR(255) NULL,
manufacturerPostalAddress VARCHAR(500) NULL,
manufacturerElectronicAddress VARCHAR(255) NULL,
distributorName VARCHAR(255) NULL,
distributorPostalAddress VARCHAR(500) NULL,
distributorElectronicAddress VARCHAR(255) NULL,
changeDate DATETIME2 NULL
);
CREATE INDEX idx_brands_changedate ON brands(changeDate);
CREATE TABLE featuresettings (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
code VARCHAR(255) NOT NULL PRIMARY KEY,
type VARCHAR(20) NOT NULL,
label VARCHAR(255) NULL,
priority INT NOT NULL,
showInDetails BIT NOT NULL,
showInList BIT NOT NULL,
showAsFilter BIT NOT NULL,
noRangeFilter BIT NOT NULL,
useAsContent BIT NOT NULL,
useAsExtendedContent BIT NOT NULL,
showInTooltip BIT NOT NULL,
characteristic BIT NOT NULL,
multiple BIT NOT NULL,
changeDate DATETIME2 NULL
);
CREATE INDEX idx_featuresettings_changedate ON featuresettings(changeDate);
CREATE TABLE catalogs (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
name VARCHAR(255) NOT NULL PRIMARY KEY,
visibleName VARCHAR(255) NULL,
logo VARCHAR(512) NULL,
offer BIT NOT NULL,
partnerRole VARCHAR(255) NULL,
validFrom DATE NULL,
validUntil DATE NULL,
language VARCHAR(2) NULL,
changeDate DATETIME2 NULL
);
CREATE INDEX idx_catalogs_changedate ON catalogs(changeDate);
CREATE TABLE [groups] (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
code VARCHAR(255) NOT NULL PRIMARY KEY,
name VARCHAR(255) NULL,
image VARCHAR(512) NULL,
parent VARCHAR(255) NULL,
type VARCHAR(30) NOT NULL,
brand VARCHAR(50) NULL,
priority INT NOT NULL,
cssClass VARCHAR(255) NULL,
changeDate DATETIME2 NULL
);
CREATE INDEX idx_groups_changedate ON [groups](changeDate);
CREATE TABLE grouptexts (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
[group] VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
text VARCHAR(MAX) NOT NULL,
changeDate DATETIME2 NULL
);
CREATE INDEX idx_grouptexts_group ON grouptexts([group]);
CREATE INDEX idx_grouptexts_changedate ON grouptexts(changeDate);
CREATE TABLE quantityunits (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
code VARCHAR(255) NOT NULL PRIMARY KEY,
shortName VARCHAR(255) NULL,
unitName VARCHAR(255) NULL,
alias1 VARCHAR(255) NULL,
alias2 VARCHAR(255) NULL,
alias3 VARCHAR(255) NULL,
alias4 VARCHAR(255) NULL,
alias5 VARCHAR(255) NULL,
alias6 VARCHAR(255) NULL,
standardCode VARCHAR(255) NULL,
erpCode VARCHAR(255) NULL,
changeDate DATETIME2 NULL
);
CREATE INDEX idx_quantityunits_changedate ON quantityunits(changeDate);
CREATE TABLE variants (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
code VARCHAR(255) NOT NULL PRIMARY KEY,
name VARCHAR(1024) NULL,
previewImage VARCHAR(512) NULL,
featureX VARCHAR(128) NULL,
featureY VARCHAR(128) NULL,
itemPreviewIsVariantImage BIT NOT NULL,
changeDate DATETIME2 NULL
);
CREATE INDEX idx_variants_changedate ON variants(changeDate);
CREATE TABLE items (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
itemNumber VARCHAR(50) NOT NULL PRIMARY KEY,
shortText VARCHAR(MAX) NOT NULL,
previewImage VARCHAR(512) NULL,
brand VARCHAR(50) NULL,
supplierNumber VARCHAR(50) NULL,
ranking BIGINT NOT NULL,
quantityUnit VARCHAR(255) NULL,
priceQuantity DECIMAL(20, 3) NOT NULL,
minOrderQuantity DECIMAL(20, 3) NOT NULL,
orderStep DECIMAL(20, 3) NOT NULL,
gtin VARCHAR(50) NULL,
supplierItemNumber VARCHAR(50) NULL,
userCorrelationNumber VARCHAR(50) NULL,
model VARCHAR(50) NULL,
variant VARCHAR(255) NULL,
classificationSystem VARCHAR(50) NULL,
classificationClass VARCHAR(50) NULL,
priority BIGINT NOT NULL,
changeDate DATETIME2 NOT NULL,
deleted BIT NOT NULL
);
CREATE INDEX idx_items_changedate ON items(changeDate);
CREATE TABLE features (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
code VARCHAR(128) NOT NULL,
value VARCHAR(255) NULL,
value2 VARCHAR(255) NULL,
valueDescription VARCHAR(255) NULL,
unit VARCHAR(50) NULL
);
CREATE INDEX idx_features_item ON features(item);
CREATE TABLE additionaltexts (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
language VARCHAR(3) NOT NULL,
type VARCHAR(50) NOT NULL,
text VARCHAR(MAX) NOT NULL
);
CREATE INDEX idx_additionaltexts_item ON additionaltexts(item);
CREATE TABLE attachments (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
type VARCHAR(50) NOT NULL,
[file] VARCHAR(1024) NOT NULL,
languages VARCHAR(60) NULL,
description VARCHAR(255) NULL,
priority INT NOT NULL
);
CREATE INDEX idx_attachments_item ON attachments(item);
CREATE TABLE itemrelations (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
sourceItem VARCHAR(50) NOT NULL,
targetItem VARCHAR(50) NOT NULL,
relationType VARCHAR(30) NOT NULL,
priority INT NOT NULL,
recommendedQuantity DECIMAL(20, 3) NULL,
[group] VARCHAR(50) NULL
);
CREATE INDEX idx_itemrelations_source ON itemrelations(sourceItem);
CREATE INDEX idx_itemrelations_target ON itemrelations(targetItem);
CREATE TABLE catalogitemmappings (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
catalogItemNumber VARCHAR(50) NULL,
price DECIMAL(20, 3) NULL,
discountGroup VARCHAR(50) NULL,
PRIMARY KEY (catalog, item)
);
CREATE INDEX idx_catalogitemmappings_item ON catalogitemmappings(item);
CREATE TABLE pricescales (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
conditionValue DECIMAL(20, 3) NOT NULL,
price DECIMAL(20, 3) NULL,
PRIMARY KEY (catalog, item, conditionValue)
);
CREATE INDEX idx_pricescales_item_catalog ON pricescales(item, catalog);
CREATE TABLE groupmappings (
id BIGINT IDENTITY(1,1) NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
[group] VARCHAR(255) NOT NULL,
PRIMARY KEY (item, [group])
);
CREATE INDEX idx_groupmappings_group ON groupmappings([group]); CREATE TABLE brands (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(50) NOT NULL,
name VARCHAR(255) NULL,
logo VARCHAR(512) NULL,
description TEXT NULL,
slogan VARCHAR(500) NULL,
supplierNumber VARCHAR(50) NULL,
priority BIGINT NOT NULL,
useOxomiPreviewImages TINYINT(1) NOT NULL,
oxomiSupplierNumber TINYINT(1) NOT NULL,
manufacturerName VARCHAR(255) NULL,
manufacturerPostalAddress VARCHAR(500) NULL,
manufacturerElectronicAddress VARCHAR(255) NULL,
distributorName VARCHAR(255) NULL,
distributorPostalAddress VARCHAR(500) NULL,
distributorElectronicAddress VARCHAR(255) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_brands_id (id),
INDEX idx_brands_changedate (changeDate)
);
CREATE TABLE featuresettings (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
type VARCHAR(20) NOT NULL,
label VARCHAR(255) NULL,
priority INT NOT NULL,
showInDetails TINYINT(1) NOT NULL,
showInList TINYINT(1) NOT NULL,
showAsFilter TINYINT(1) NOT NULL,
noRangeFilter TINYINT(1) NOT NULL,
useAsContent TINYINT(1) NOT NULL,
useAsExtendedContent TINYINT(1) NOT NULL,
showInTooltip TINYINT(1) NOT NULL,
characteristic TINYINT(1) NOT NULL,
multiple TINYINT(1) NOT NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_featuresettings_id (id),
INDEX idx_featuresettings_changedate (changeDate)
);
CREATE TABLE catalogs (
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
visibleName VARCHAR(255) NULL,
logo VARCHAR(512) NULL,
offer TINYINT(1) NOT NULL,
partnerRole VARCHAR(255) NULL,
validFrom DATE NULL,
validUntil DATE NULL,
language VARCHAR(2) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (name),
UNIQUE KEY uk_catalogs_id (id),
INDEX idx_catalogs_changedate (changeDate)
);
CREATE TABLE `groups` (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
name VARCHAR(255) NULL,
image VARCHAR(512) NULL,
parent VARCHAR(255) NULL,
type VARCHAR(30) NOT NULL,
brand VARCHAR(50) NULL,
priority INT NOT NULL,
cssClass VARCHAR(255) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_groups_id (id),
INDEX idx_groups_changedate (changeDate)
);
CREATE TABLE grouptexts (
id BIGINT NOT NULL AUTO_INCREMENT,
`group` VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
changeDate DATETIME NULL,
UNIQUE KEY uk_grouptexts_id (id),
INDEX idx_grouptexts_group (`group`),
INDEX idx_grouptexts_changedate (changeDate)
);
CREATE TABLE quantityunits (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
shortName VARCHAR(255) NULL,
unitName VARCHAR(255) NULL,
alias1 VARCHAR(255) NULL,
alias2 VARCHAR(255) NULL,
alias3 VARCHAR(255) NULL,
alias4 VARCHAR(255) NULL,
alias5 VARCHAR(255) NULL,
alias6 VARCHAR(255) NULL,
standardCode VARCHAR(255) NULL,
erpCode VARCHAR(255) NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_quantityunits_id (id),
INDEX idx_quantityunits_changedate (changeDate)
);
CREATE TABLE variants (
id BIGINT NOT NULL AUTO_INCREMENT,
code VARCHAR(255) NOT NULL,
name VARCHAR(1024) NULL,
previewImage VARCHAR(512) NULL,
featureX VARCHAR(128) NULL,
featureY VARCHAR(128) NULL,
itemPreviewIsVariantImage TINYINT(1) NOT NULL,
changeDate DATETIME NULL,
PRIMARY KEY (code),
UNIQUE KEY uk_variants_id (id),
INDEX idx_variants_changedate (changeDate)
);
CREATE TABLE items (
id BIGINT NOT NULL AUTO_INCREMENT,
itemNumber VARCHAR(50) NOT NULL,
shortText TEXT NOT NULL,
previewImage VARCHAR(512) NULL,
brand VARCHAR(50) NULL,
supplierNumber VARCHAR(50) NULL,
ranking BIGINT NOT NULL,
quantityUnit VARCHAR(255) NULL,
priceQuantity DECIMAL(20, 3) NOT NULL,
minOrderQuantity DECIMAL(20, 3) NOT NULL,
orderStep DECIMAL(20, 3) NOT NULL,
gtin VARCHAR(50) NULL,
supplierItemNumber VARCHAR(50) NULL,
userCorrelationNumber VARCHAR(50) NULL,
model VARCHAR(50) NULL,
variant VARCHAR(255) NULL,
classificationSystem VARCHAR(50) NULL,
classificationClass VARCHAR(50) NULL,
priority BIGINT NOT NULL,
changeDate DATETIME NOT NULL,
deleted TINYINT(1) NOT NULL,
PRIMARY KEY (itemNumber),
UNIQUE KEY uk_items_id (id),
INDEX idx_items_changedate (changeDate)
);
CREATE TABLE features (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
code VARCHAR(128) NOT NULL,
value VARCHAR(255) NULL,
value2 VARCHAR(255) NULL,
valueDescription VARCHAR(255) NULL,
unit VARCHAR(50) NULL,
UNIQUE KEY uk_features_id (id),
INDEX idx_features_item (item)
);
CREATE TABLE additionaltexts (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
language VARCHAR(3) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
UNIQUE KEY uk_additionaltexts_id (id),
INDEX idx_additionaltexts_item (item)
);
CREATE TABLE attachments (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
type VARCHAR(50) NOT NULL,
file VARCHAR(1024) NOT NULL,
languages VARCHAR(60) NULL,
description VARCHAR(255) NULL,
priority INT NOT NULL,
UNIQUE KEY uk_attachments_id (id),
INDEX idx_attachments_item (item)
);
CREATE TABLE itemrelations (
id BIGINT NOT NULL AUTO_INCREMENT,
sourceItem VARCHAR(50) NOT NULL,
targetItem VARCHAR(50) NOT NULL,
relationType VARCHAR(30) NOT NULL,
priority INT NOT NULL,
recommendedQuantity DECIMAL(20, 3) NULL,
`group` VARCHAR(50) NULL,
UNIQUE KEY uk_itemrelations_id (id),
INDEX idx_itemrelations_source (sourceItem),
INDEX idx_itemrelations_target (targetItem)
);
CREATE TABLE catalogitemmappings (
id BIGINT NOT NULL AUTO_INCREMENT,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
catalogItemNumber VARCHAR(50) NULL,
price DECIMAL(20, 3) NULL,
discountGroup VARCHAR(50) NULL,
PRIMARY KEY (catalog, item),
UNIQUE KEY uk_catalogitemmappings_id (id),
INDEX idx_catalogitemmappings_item (item)
);
CREATE TABLE pricescales (
id BIGINT NOT NULL AUTO_INCREMENT,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
conditionValue DECIMAL(20, 3) NOT NULL,
price DECIMAL(20, 3) NULL,
PRIMARY KEY (catalog, item, conditionValue),
UNIQUE KEY uk_pricescales_id (id),
INDEX idx_pricescales_item_catalog (item, catalog)
);
CREATE TABLE groupmappings (
id BIGINT NOT NULL AUTO_INCREMENT,
item VARCHAR(50) NOT NULL,
`group` VARCHAR(255) NOT NULL,
PRIMARY KEY (item, `group`),
UNIQUE KEY uk_groupmappings_id (id),
INDEX idx_groupmappings_group (`group`)
); CREATE TABLE brands (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
code VARCHAR(50) PRIMARY KEY,
name VARCHAR(255),
logo VARCHAR(512),
description TEXT,
slogan VARCHAR(500),
supplierNumber VARCHAR(50),
priority BIGINT NOT NULL,
useOxomiPreviewImages BOOLEAN NOT NULL,
oxomiSupplierNumber BOOLEAN NOT NULL,
manufacturerName VARCHAR(255),
manufacturerPostalAddress VARCHAR(500),
manufacturerElectronicAddress VARCHAR(255),
distributorName VARCHAR(255),
distributorPostalAddress VARCHAR(500),
distributorElectronicAddress VARCHAR(255),
changeDate TIMESTAMP
);
CREATE INDEX idx_brands_changedate ON brands(changeDate);
CREATE TABLE featuresettings (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
code VARCHAR(255) PRIMARY KEY,
type VARCHAR(20) NOT NULL,
label VARCHAR(255),
priority INTEGER NOT NULL,
showInDetails BOOLEAN NOT NULL,
showInList BOOLEAN NOT NULL,
showAsFilter BOOLEAN NOT NULL,
noRangeFilter BOOLEAN NOT NULL,
useAsContent BOOLEAN NOT NULL,
useAsExtendedContent BOOLEAN NOT NULL,
showInTooltip BOOLEAN NOT NULL,
characteristic BOOLEAN NOT NULL,
multiple BOOLEAN NOT NULL,
changeDate TIMESTAMP
);
CREATE INDEX idx_featuresettings_changedate ON featuresettings(changeDate);
CREATE TABLE catalogs (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
name VARCHAR(255) PRIMARY KEY,
visibleName VARCHAR(255),
logo VARCHAR(512),
offer BOOLEAN NOT NULL,
partnerRole VARCHAR(255),
validFrom DATE,
validUntil DATE,
language VARCHAR(2),
changeDate TIMESTAMP
);
CREATE INDEX idx_catalogs_changedate ON catalogs(changeDate);
CREATE TABLE "groups" (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
code VARCHAR(255) PRIMARY KEY,
name VARCHAR(255),
image VARCHAR(512),
parent VARCHAR(255),
type VARCHAR(30) NOT NULL,
brand VARCHAR(50),
priority INTEGER NOT NULL,
cssClass VARCHAR(255),
changeDate TIMESTAMP
);
CREATE INDEX idx_groups_changedate ON "groups"(changeDate);
CREATE TABLE grouptexts (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
"group" VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
changeDate TIMESTAMP
);
CREATE INDEX idx_grouptexts_group ON grouptexts("group");
CREATE INDEX idx_grouptexts_changedate ON grouptexts(changeDate);
CREATE TABLE quantityunits (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
code VARCHAR(255) PRIMARY KEY,
shortName VARCHAR(255),
unitName VARCHAR(255),
alias1 VARCHAR(255),
alias2 VARCHAR(255),
alias3 VARCHAR(255),
alias4 VARCHAR(255),
alias5 VARCHAR(255),
alias6 VARCHAR(255),
standardCode VARCHAR(255),
erpCode VARCHAR(255),
changeDate TIMESTAMP
);
CREATE INDEX idx_quantityunits_changedate ON quantityunits(changeDate);
CREATE TABLE variants (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
code VARCHAR(255) PRIMARY KEY,
name VARCHAR(1024),
previewImage VARCHAR(512),
featureX VARCHAR(128),
featureY VARCHAR(128),
itemPreviewIsVariantImage BOOLEAN NOT NULL,
changeDate TIMESTAMP
);
CREATE INDEX idx_variants_changedate ON variants(changeDate);
CREATE TABLE items (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
itemNumber VARCHAR(50) PRIMARY KEY,
shortText TEXT NOT NULL,
previewImage VARCHAR(512),
brand VARCHAR(50),
supplierNumber VARCHAR(50),
ranking BIGINT NOT NULL,
quantityUnit VARCHAR(255),
priceQuantity NUMERIC(20, 3) NOT NULL,
minOrderQuantity NUMERIC(20, 3) NOT NULL,
orderStep NUMERIC(20, 3) NOT NULL,
gtin VARCHAR(50),
supplierItemNumber VARCHAR(50),
userCorrelationNumber VARCHAR(50),
model VARCHAR(50),
variant VARCHAR(255),
classificationSystem VARCHAR(50),
classificationClass VARCHAR(50),
priority BIGINT NOT NULL,
changeDate TIMESTAMP NOT NULL,
deleted BOOLEAN NOT NULL
);
CREATE INDEX idx_items_changedate ON items(changeDate);
CREATE TABLE features (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
code VARCHAR(128) NOT NULL,
value VARCHAR(255),
value2 VARCHAR(255),
valueDescription VARCHAR(255),
unit VARCHAR(50)
);
CREATE INDEX idx_features_item ON features(item);
CREATE TABLE additionaltexts (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
language VARCHAR(3) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL
);
CREATE INDEX idx_additionaltexts_item ON additionaltexts(item);
CREATE TABLE attachments (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
type VARCHAR(50) NOT NULL,
file VARCHAR(1024) NOT NULL,
languages VARCHAR(60),
description VARCHAR(255),
priority INTEGER NOT NULL
);
CREATE INDEX idx_attachments_item ON attachments(item);
CREATE TABLE itemrelations (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
sourceItem VARCHAR(50) NOT NULL,
targetItem VARCHAR(50) NOT NULL,
relationType VARCHAR(30) NOT NULL,
priority INTEGER NOT NULL,
recommendedQuantity NUMERIC(20, 3),
"group" VARCHAR(50)
);
CREATE INDEX idx_itemrelations_source ON itemrelations(sourceItem);
CREATE INDEX idx_itemrelations_target ON itemrelations(targetItem);
CREATE TABLE catalogitemmappings (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
catalogItemNumber VARCHAR(50),
price NUMERIC(20, 3),
discountGroup VARCHAR(50),
PRIMARY KEY (catalog, item)
);
CREATE INDEX idx_catalogitemmappings_item ON catalogitemmappings(item);
CREATE TABLE pricescales (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
catalog VARCHAR(255) NOT NULL,
item VARCHAR(50) NOT NULL,
conditionValue NUMERIC(20, 3) NOT NULL,
price NUMERIC(20, 3),
PRIMARY KEY (catalog, item, conditionValue)
);
CREATE INDEX idx_pricescales_item_catalog ON pricescales(item, catalog);
CREATE TABLE groupmappings (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL UNIQUE,
item VARCHAR(50) NOT NULL,
"group" VARCHAR(255) NOT NULL,
PRIMARY KEY (item, "group")
);
CREATE INDEX idx_groupmappings_group ON groupmappings("group");