Datenmodell

TRADElube führt einen festen Satz von Objekten, und alles Weitere bezieht sich darauf: Ein Transferplan weist Felder dieser Objekte zu, eine Aufgabe überträgt eines davon, eine Kanalzuordnung hängt an einem einzelnen Datensatz.

Diese Seite beantwortet deshalb eine Frage, die bei jeder Einrichtung früher oder später kommt: Wo gehört diese Angabe hin? Ein Wert, der am falschen Objekt liegt, lässt sich später nur mit Aufwand verschieben, weil Transferpläne, Zuordnungen und bereits übertragene Datensätze daran hängen.

Die sechs Hauptobjekte

Sechs Objekte tragen das Modell. Jedes hat einen eigenen Navigationspunkt, eine eigene Liste und eine eigene Detailseite.

Navigationsleiste mit den sechs Objektbereichen zwischen Übersicht und Kanälen

Objekt Was es führt
Produkte Artikel mit Nummer, Bezeichnung, Beschreibung, Maßen, Preisen und Beständen
Hersteller Wer den Artikel herstellt, mit eigenem Namen und eigenen Texten
Kategorien Der Baum, in den Produkte einsortiert werden
Medien Bilder und Dateien als eigene Datensätze
Bestellungen Was bestellt wurde, mit Positionen, Adressen und Status
Kunden Wer bestellt hat, mit Rechnungs- und Lieferadresse

Woran man ein Hauptobjekt erkennt: Nur diese sechs tragen Eigenschaften und Kanalzuordnungen. Alles andere im Modell gehört entweder zu einem der sechs, wie eine Bestellposition zur Bestellung, oder kommt aus den Einstellungen und wird von mehreren Datensätzen benutzt, wie ein Lager oder ein Steuersatz.

Sie müssen nicht alle sechs benutzen. Wer über einen Marktplatz nur verkauft und dort keine Artikeldaten pflegt, rührt Hersteller und Medien nie an. Die Bereiche bleiben dann leer und stören nichts.

Dieselben sechs Objekte sind es auch, die ein angebundenes System kennt. Welches System davon was aufnimmt, steht unter Kanäle und Aufgaben: Ein Marktplatz nimmt vielleicht nur Bestellungen entgegen, ein Onlineshop dagegen alle sechs.

Produkte, Varianten und Einzelartikel

Ein Produkt kann drei Rollen haben, und Sie stellen sie nicht ein, sie ergibt sich:

  • Ein Einzelartikel steht für sich, ohne Varianten und ohne übergeordneten Artikel.
  • Ein Hauptartikel ist ein Produkt, unter dem Varianten hängen. Er ist die Klammer über eine Familie, etwa einen Lack in vier Gebinden und sechs Farbtönen.
  • Eine Variante ist ein Produkt mit einem Hauptartikel darüber. Sie ist ein vollwertiger Artikel mit eigener Artikelnummer, eigenem Preis und eigenem Bestand.

Am Produkt sehen Sie beide Richtungen im Bereich Allgemein: Eine Variante zeigt unter Eltern Produkt den Hauptartikel, ein Hauptartikel zeigt unter Produktvarianten seine Varianten, beides als Verweis auf den jeweiligen Datensatz.

Bereich Allgemein des Hauptartikels Sprühlack mit seinen vier Varianten

Wer seine Artikelfamilien noch einmal untergliedern will, stößt an eine Grenze. Ein Produkt, unter dem Varianten hängen, kann selbst keinen Hauptartikel bekommen, und TRADElube lehnt das beim Speichern ab. Der Grund liegt nicht bei uns, sondern in den Zielsystemen: Ein Onlineshop stellt eine Artikelfamilie mit auswählbaren Ausführungen dar, eine dritte Ebene hat dort kein Gegenstück. Eine Struktur, die sich nicht übertragen lässt, ist in einer Integrationsplattform keine Freiheit, sondern eine Falle.

Was Varianten voneinander unterscheidet, sind Eigenschaften vom Typ Auswahl, etwa Farbton und Ausführung. Genau daraus wird im Shop die Auswahl, die der Käufer trifft.

Daraus folgt eine Empfehlung, die viel Nacharbeit spart: Der Hauptartikel trägt, was für die ganze Familie gilt, die Variante nur, was sie unterscheidet. Ein Hauptartikel mit dem Gewicht seiner ersten Variante sieht in der Liste unauffällig aus und wird im Shop trotzdem falsch angezeigt.

Eine Lieferantenliste einsortiert

Damit ist die Frage vom Anfang beantwortbar, und zwar Spalte für Spalte. Angenommen, Ihr Lackhersteller schickt seine Artikeldaten als Tabelle, und Sie richten die Übernahme einmal ein:

Spalte der Lieferantenliste Wohin sie gehört
Artikelnummer, Bezeichnung, Beschreibung Felder am Produkt, die beiden Texte je Sprache
Marke Hersteller, ein eigener Datensatz, am Produkt ausgewählt
Warengruppe Kategorie, ein eigener Datensatz im Baum
Farbton, Gebindegröße Eigenschaften vom Typ Auswahl, an der Variante
Glanzgrad Eigenschaft am Hauptartikel
Einkaufspreis, Verkaufspreis zwei Preisgruppen, je ein Block am Produkt
Bestand Bestandszeile am Produkt, zu einem Lager
Steuersatz „19 %" Auswahl aus den Einstellungen, nicht der Zahlenwert am Produkt
Bild, Sicherheitsdatenblatt je ein Medium, am Produkt verknüpft

Drei dieser Zeilen entscheiden später etwas. Farbton und Gebindegröße stehen an der Variante, weil genau sie die vier Gebinde auseinanderhalten. Im Shop wird daraus die Auswahl, die der Käufer trifft. Der Glanzgrad steht dagegen am Hauptartikel, weil er für die ganze Familie derselbe ist: unten stünde er viermal und müsste viermal richtig gehalten werden. Und der Steuersatz kommt aus den Einstellungen statt als Zahl an den Artikel, was sich in dem Moment auszahlt, in dem der Gesetzgeber ihn ändert und Sie einen Eintrag anfassen statt zwölftausend Produkte.

Das Sicherheitsdatenblatt zeigt denselben Gedanken noch einmal: Es gilt für alle vier Gebinde, liegt als ein Medium vor und wird einmal übertragen. Vier gleiche Dateien wären vier Datensätze, vier Übertragungen und vier Stellen, an denen die nächste Fassung nachgezogen werden müsste.

Kategorien und Hersteller

Beide sagen etwas darüber, wo ein Produkt hingehört, und beide funktionieren verschieden.

Kategorien bilden einen Baum. Jede Kategorie hat höchstens eine übergeordnete, und daraus entsteht die Struktur, die der Kunde im Shop als Menü sieht. Ein Produkt wird in beliebig viele Kategorien einsortiert, und die Reihenfolge dieser Zuordnungen bleibt erhalten. Die Zuordnung ist ein eigener Datensatz zwischen Produkt und Kategorie, was der Grund dafür ist, dass sie eine eigene Kanalzuordnung tragen kann: Das angebundene System kennt die Verknüpfung als eigenes Objekt, nicht als Feld am Produkt.

Kategoriebaum mit sieben Wurzeln und den aufgeklappten Unterkategorien von Innenfarben

Eine Kategorie kann außerdem auf andere Kategorien verweisen, etwa auf ein verwandtes Sortiment. Diese Verknüpfungen bleiben im Mandanten und werden nicht übertragen. Wo sie gepflegt werden, steht unter Kategorien.

Hersteller dagegen sind eine flache Liste. Ein Produkt hat höchstens einen Hersteller, und es muss keinen haben: Zubehör aus dem eigenen Import trägt oft gar keinen. Der Hersteller ist ein eigener Datensatz und kein Textfeld am Produkt, damit sein Name an einer Stelle gepflegt wird und mit eigenen Eigenschaften in den Shop übertragen werden kann.

Medien

Ein Bild ist in TRADElube ein eigener Datensatz und keine Datei, die am Produkt klebt. Das ist der Unterschied, der in der Praxis zählt: Dasselbe Bild kann an mehreren Produkten hängen, wird einmal übertragen und behält seine Kanalzuordnung im Zielsystem. Ein Datenblatt, das für eine ganze Produktfamilie gilt, laden Sie also einmal hoch und nicht vierundzwanzig Mal.

Am Produkt entsteht daraus im Bereich Bilder eine geordnete Liste von Verweisen, und eines davon ist als Titelbild gekennzeichnet: das Bild, das der Shop in seiner Übersicht zeigt.

Preise, Bestände und die Listen aus den Einstellungen

Preise und Bestände hängen am Produkt, aber nicht als einzelnes Feld:

  • Ein Preis gehört immer zu einer Preisgruppe, etwa Einkaufspreis oder Verkaufspreis. Am Produkt steht deshalb je Preisgruppe ein eigener Block, gefüllt oder leer, und darin lassen sich Staffeln nach Menge und Zeiträume hinterlegen. Einzelheiten stehen unter Preise.
  • Ein Bestand gehört immer zu einem Lager. Legen Sie ein zweites Lager an, bekommt jedes Produkt dafür von selbst eine Bestandszeile, ohne dass Sie jeden Artikel einzeln anfassen. Einzelheiten stehen unter Bestände.

Beides folgt derselben Bauart: Der Wert steht nicht am Produkt, sondern an der Verbindung zwischen Produkt und einem Eintrag aus den Einstellungen. So kommen Sie ohne eine Anpassung an TRADElube zu einer weiteren Preisgruppe oder einem weiteren Lager. Der Preis dieser Bauart steht daneben: Ein neues Lager erzeugt an jedem Produkt eine Bestandszeile, auch an denen, die Sie dort nie führen werden.

Nach demselben Muster arbeiten die übrigen Listen aus den Einstellungen. Steuersatz, Basiseinheit, Verpackungseinheit, Lieferzeit und Lieferart stehen dort einmal und werden am Produkt ausgewählt, Bestellstatus, Zahlungsart und Anrede genauso an der Bestellung. Sie sind der Grund, warum in der Oberfläche an vielen Stellen eine Auswahl steht, wo man ein Textfeld erwarten würde: Ein ausgewählter Eintrag ist eindeutig, ein getippter Text nicht, und im Zielsystem entscheidet genau diese Eindeutigkeit darüber, ob der Wert ankommt.

Bestellungen und Kunden

Ein Kunde ist ein eigener Datensatz mit Rechnungs- und Lieferadresse. Eine Bestellung verweist auf ihn, führt seine Angaben aber zusätzlich als eigene Kopie: Anschrift, Anrede, Rechnungs- und Lieferadresse stehen noch einmal an der Bestellung selbst.

Das sieht auf den ersten Blick nach doppelter Datenhaltung aus und ist eine bewusste Entscheidung. Eine Bestellung ist ein Beleg über einen Vorgang, der stattgefunden hat. Zieht der Kunde um, dann gilt die neue Anschrift für die nächste Bestellung, nicht rückwirkend für die letzten dreißig. Mit einem bloßen Verweis auf den Kundendatensatz würde jede Adressänderung stillschweigend alle vergangenen Belege umschreiben.

Die Positionen einer Bestellung sind nicht alle Artikel. Es gibt sie in fünf Arten: Produkt, Rabatt, Gutschein, Aufschlag und Lieferung. Der Betrag einer Bestellung setzt sich aus allen fünf zusammen, weshalb die Summen an der Bestellung nach diesen Arten getrennt geführt werden.

Positionen einer Bestellung mit drei Artikelzeilen und einer Zeile vom Typ Lieferung

Eine Artikelposition verweist auf das Produkt, trägt Artikelnummer und Bezeichnung aber zusätzlich als eigenen Wert. Deshalb bleibt eine Bestellung vollständig lesbar, auch wenn der Artikel längst aus dem Sortiment ist: Beim Löschen eines Produkts verlieren die betroffenen Positionen den Verweis, nicht ihren Inhalt.

Umgekehrt sehen Sie am Produkt im Bereich Bestellungen, in welchen Bestellungen es vorkommt.

Übersetzungen hängen am Datensatz

Beschreibende Texte gibt es je Sprache, nicht je Datensatz einmal: Bezeichnung, Kurzbeschreibung und Beschreibung eines Produkts stehen für jede eingerichtete Lokalisierung getrennt, ebenso bei Kategorie und Hersteller. Nummern, Preise, Bestände und Maße gibt es dagegen nur einmal, denn sie sind in jeder Sprache dieselben.

Welche Sprachen es gibt und wie ein zweisprachiger Shop daran hängt, steht unter Sprachen und Übersetzungen.

Zusammenspiel

  • An jedem der sechs Hauptobjekte hängen Eigenschaften für alles, was die eingebauten Felder nicht abdecken.
  • An jedem der sechs hängen Kanalzuordnungen, eine je angebundenem System. Sie sind der Grund, warum eine zweite Ausführung denselben Datensatz aktualisiert, statt ihn erneut anzulegen.
  • Der Transferplan einer Aufgabe folgt diesem Modell: Er hat je Bereich einen Abschnitt, also einen für Preise, einen für Bestände, einen für Medien.
  • Eine Aufgabe überträgt immer ein Objekt, nicht alles auf einmal. Deshalb heißen die Aufgaben nach dem Objekt, das sie bewegen.

Weiterführend