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 |
|---|---|---|
| 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 |
|---|---|---|
| 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 (1) | 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 |
|---|---|---|
| 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 |
|---|---|---|
| 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 * (1) | 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 |
|---|---|---|
| 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 |
|---|---|---|
| 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 |
|---|---|---|
| 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 |
|---|---|---|
| itemNumber * | Text (max. 50 Zeichen) | Eindeutige Artikelnummer |
| shortText * (1) | 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 |
| ean | Text (max. 50 Zeichen) | EAN / GTIN |
| supplierArticleNumber | 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. Dabei werden die Werte abhängig vom Code automatisch zu Merkmalen, Kennzeichen oder Zusatzattributen. Pflichtfelder sind mit * gekennzeichnet.
Im Falle von Merkmalen, bei denen die 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 |
|---|---|---|
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| feature * | Text (max. 128 Zeichen) | Code des Merkmals / Kennzeichens / Zusatzattributs |
| value * | Text (max. 255 Zeichen) | Wert (bzw. unterer Grenzwert bei Wertbereichen) |
| value2 | Text (max. 255 Zeichen) | Oberer Grenzwert (nur bei Wertbereichen) |
| valueDescription (1) | 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 |
|---|---|---|
| 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 |
|---|---|---|
| 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 (1) | 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 |
|---|---|---|
| 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):
- ACCESOIRE – Zubehör
- RECOMMENDED_ACCESSOIRE – Empfohlenes Zubehör
- MANDATORY_ACCESSORIES – Pflichtzubehör
- CROSS – Querverweise
- PREDECESSOR – Vorgänger
- ALTERNATIVE – Alternative
- UPSELLING – Upselling
- PRIVATE_BRAND – Eigenmarke
- SPECIAL_ALTERNATIVE – Sonderalternative
- PART_OF – Teil von
- SPAREPART – Ersatzteil
- MOUNTING_ACCESSOIRE – Montagezubehör
Ordnet Artikel einem oder mehreren Katalogen zu und kann katalogspezifische Preise sowie Rabattgruppen enthalten. Pflichtfelder sind mit * gekennzeichnet.
| Spalte | Typ | Beschreibung |
|---|---|---|
| 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 |
|---|---|---|
| item * | Text (max. 50 Zeichen) | Artikelnummer |
| catalog * | Text (max. 255 Zeichen) | Katalogname |
| conditionValue * | Zahl (3 Nachkommastellen) | Schwellwert der Staffel |
| price | Zahl (3 Nachkommastellen) | Staffelpreis |
(1) 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 (
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),
INDEX idx_brands_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE featuresettings (
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),
INDEX idx_featuresettings_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE catalogs (
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),
INDEX idx_catalogs_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE `groups` (
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),
INDEX idx_groups_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE grouptexts (
`group` VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
changeDate DATETIME NULL,
INDEX idx_grouptexts_group (`group`),
INDEX idx_grouptexts_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE quantityunits (
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),
INDEX idx_quantityunits_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE variants (
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),
INDEX idx_variants_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE items (
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,
ean VARCHAR(50) NULL,
supplierArticleNumber 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),
INDEX idx_items_changedate (changeDate)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE features (
item VARCHAR(50) NOT NULL,
feature VARCHAR(128) NOT NULL,
value VARCHAR(255) NULL,
value2 VARCHAR(255) NULL,
valueDescription VARCHAR(255) NULL,
unit VARCHAR(50) NULL,
INDEX idx_features_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE additionaltexts (
item VARCHAR(50) NOT NULL,
language VARCHAR(3) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
INDEX idx_additionaltexts_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE attachments (
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,
INDEX idx_attachments_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE itemrelations (
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,
INDEX idx_itemrelations_source (sourceItem),
INDEX idx_itemrelations_target (targetItem)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE catalogitemmappings (
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),
INDEX idx_catalogitemmappings_item (item)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE pricescales (
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),
INDEX idx_pricescales_item_catalog (item, catalog)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin;
CREATE TABLE groupmappings (
item VARCHAR(50) NOT NULL,
`group` VARCHAR(255) NOT NULL,
PRIMARY KEY (item, `group`),
INDEX idx_groupmappings_group (`group`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_bin; CREATE TABLE brands (
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 (
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 (
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] (
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 (
[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 (
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 (
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 (
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,
ean VARCHAR(50) NULL,
supplierArticleNumber 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 (
item VARCHAR(50) NOT NULL,
feature 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 (
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 (
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 (
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 (
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 (
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 (
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 (
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),
INDEX idx_brands_changedate (changeDate)
);
CREATE TABLE featuresettings (
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),
INDEX idx_featuresettings_changedate (changeDate)
);
CREATE TABLE catalogs (
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),
INDEX idx_catalogs_changedate (changeDate)
);
CREATE TABLE `groups` (
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),
INDEX idx_groups_changedate (changeDate)
);
CREATE TABLE grouptexts (
`group` VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
changeDate DATETIME NULL,
INDEX idx_grouptexts_group (`group`),
INDEX idx_grouptexts_changedate (changeDate)
);
CREATE TABLE quantityunits (
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),
INDEX idx_quantityunits_changedate (changeDate)
);
CREATE TABLE variants (
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),
INDEX idx_variants_changedate (changeDate)
);
CREATE TABLE items (
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,
ean VARCHAR(50) NULL,
supplierArticleNumber 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),
INDEX idx_items_changedate (changeDate)
);
CREATE TABLE features (
item VARCHAR(50) NOT NULL,
feature VARCHAR(128) NOT NULL,
value VARCHAR(255) NULL,
value2 VARCHAR(255) NULL,
valueDescription VARCHAR(255) NULL,
unit VARCHAR(50) NULL,
INDEX idx_features_item (item)
);
CREATE TABLE additionaltexts (
item VARCHAR(50) NOT NULL,
language VARCHAR(3) NOT NULL,
type VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
INDEX idx_additionaltexts_item (item)
);
CREATE TABLE attachments (
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,
INDEX idx_attachments_item (item)
);
CREATE TABLE itemrelations (
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,
INDEX idx_itemrelations_source (sourceItem),
INDEX idx_itemrelations_target (targetItem)
);
CREATE TABLE catalogitemmappings (
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),
INDEX idx_catalogitemmappings_item (item)
);
CREATE TABLE pricescales (
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),
INDEX idx_pricescales_item_catalog (item, catalog)
);
CREATE TABLE groupmappings (
item VARCHAR(50) NOT NULL,
`group` VARCHAR(255) NOT NULL,
PRIMARY KEY (item, `group`),
INDEX idx_groupmappings_group (`group`)
); CREATE TABLE brands (
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 (
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 (
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" (
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 (
"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 (
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 (
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 (
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,
ean VARCHAR(50),
supplierArticleNumber 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 (
item VARCHAR(50) NOT NULL,
feature 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 (
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 (
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 (
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 (
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 (
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 (
item VARCHAR(50) NOT NULL,
"group" VARCHAR(255) NOT NULL,
PRIMARY KEY (item, "group")
);
CREATE INDEX idx_groupmappings_group ON groupmappings("group");