Frage zu oxcategories

Hallo Forum,

wenn ich mir aus der DB z.b. die oxcategories als CSV Datei exportiere und öffne, habe ich in den Spalten OXID OXPARENTID und OXROOTID nur Zahlen stehen.

Kann man sich das nicht auch als Text anzeigen lassen? Wenn ja, wie?

Grüße
Richard

Hi Richard,
mit welchem Programm hast du die CSV geöffnet? Falls du die Datei mit Excel geöffnet hast, ist es vielleicht nur ein Anzeigeproblem. NImm mal einen Texteditor(Notepad++ oder so) und öffne die Datei so. Dann siehst du die richtigen ID’s(sollten 32-stellig sein und Zahlen und Kleinbuchstaben enthalten).

Grüße

Fabian

Ich denke Richard möchte Klarnamen und keine kryptischen ID´s sehen, die der Shop automatisch angelegt hat.
OXTITLE enthält ja den Klarnamen. Seh also nicht wirklich das Problem.

@priester Richard

Wie ChristophH schon vermutet - oder was genau möchtest Du zu welchem Zweck haben?

Wenn ich Kategorien anlege habe ich in der exportierten oxcategories diese Kryptischen ID´s
in OXID und OXPARENTID und in der OXROOTID.

Aber genau da möchte ich die Namen der Kategorien und Unterkategorien stehen haben.
In OXTITLE stehen ja auch die Namen drin.:confused:

Der Sinn und Zweck der Sache ist nur jener dass ich hin und wieder mir aus derDB CSV Datein exportiere, diese ändere und wieder importiere. Es ist übersichtlicher wenn eben überall Namen stehen.

Kann man dies ändern?

Grüße
Richard

Die Ersetzung der OXID-IDs durch Klartext würde funktionieren, solange es keine durch User verursachte Bezeichnungs-Konflikte gibt. Da dies jedoch bei zunehmender Datenmenge nicht mit Sicherheit auszuschliessen ist, wird irgendwann ein Chaos entstehen. Deshalb hat sich Oxid für 32-stellige Global Unified ID’s entschieden die praktisch immer einzigartig und somit konfliktfrei sind.

Also lass die IDs mal wie sie von Oxid generiert werden.

Folgende einfache Möglichkeit könnte für Dich hilfreich sein:

  1. Zusätzliche Spalte OXCATEGORYPATH in oxcategories einfügen und alles andere unverändert lassen.

2A. Export der oxcategories und Import in Excel, wo Du z.B. Pfade manuell anlegen kannst, wenn es nicht zuviele sind und dann alles komplett zurück in die DB importieren.

Das Ergebnis sieht auszugsweise z.B. so aus:

OXCATEGORYPATH…TITEL
Badarmaturen…Badarmaturen
Badarmaturen/Hansgrohe…Hansgrohe
Badarmaturen/Hansgrohe/Steel…Steel
Badarmaturen/Hansgrohe/Steel/Waschtisch…Waschtisch

2B. Wenn Du in umgekehrt Reihenfolge die Kategorien schon in Excel hast - nach o.g. Beispiel wären das 4 Spalten - dann kann der Pfad mit eine Excelformel leicht in eine 5. Spalte erstellt werden.

Die Frage ist halt, wie gross ist die Anzahl Deiner Kategorien, wie bereitest Du Daten für Oxid auf (manuelle Eingabe über Admin und/oder nur CSV-Import) und wie möchtest Du den gesamten Datenfluss haben?

Ansonsten müsste was in php geschrieben werden, um zusätzlich die Pfade in der DB anzuzeigen - das wäre ME am besten.

Ok, das mit der OXID verstehe ich.

Aber in der OXPARENTID und der OXROOTID könnte man doch die Kryptischen ID´s in Text ändern?

WIE?

Um das zu erläutern, will ich jetzt nicht zu weit ausholen und gleich ein Tutorial über “Trees” und “nested sets” (bei Oxid) oder “adjacency lists” schreiben. Nur kurz: Die 32-stelligen ID’s in den 3 ersten oxcategories Spalten sind von Oxid so miteinander verknüpft, dass damit die Baumstruktur eindeutig definiert ist.

Sobald Du hier manuell eingreifst, nimmt die Fehlerwahrscheinlich mit der Anzahl der Elemente zu und wie kannst Du ohne programmatischen Ablauf den Überblick behalten?

Wie willst Du Änderungen dürchführen, wenn neue Kategorien dazu kommen oder welche entfallen?

Um wieviele Kategorien (Zeilen in oxcategories) geht es überhaupt ?

Nein, denn OXPARENTID und OXROOTID sind ja eben die Verknüpfung zur OXID einer (anderen oder gleichen) Kategorie.

Und dein Wunsch die Namen der Kategorien samt aller Unterkategorien direkt dort stehen zu haben, wird sich - ob kryptisch oder nicht - sowieso nicht erfüllen, da die Tabelle einfach nicht so aufgebaut ist, dass zu einer Kategorie direkt die Unterkagorien dabei stehen.

Die Verbindung ist genau anders herum. Wenn es eine Kategorie eine andere Überkategrie hat, steht die OXID der drüberliegenden Kategorie als OXPARENTID bei dieser Kategorie (bzw, wenn identisch, eben nur der Verweis auf die OXROOTID)

Edit: Zu lahm getippt. Earlybird war schneller …

Ok. Ich habe euch verstanden. Wenn ich aber die oxcategorie manuel anlege und als CSV Datei hochlade und wieder exportiere, habe ich es so wie ich es haben möchte:

Die Namen der Kategorien und Unterkategorien in der Tabelle stehen. OXPARENTID und OXROOTID.

Lege ich im Backend dann wieder Kategorien an habe ich diese Kpytischen Zahlen.

Nunja, wenn es keine andere Möglichkeit gibt muss ich es so hinnehmen.

Wenn ich genauer wüsste, welchen praktischen Vorteil Du beim gewünschten Verfahren siehst, wäre evtl. noch eine andere Lösung möglich.

Bitte gib mal mehr Details dazu an.

Es betrifft die Tabellen oxcategories; oxobjekt2categorie, oxarticles.

Ich weiß ja nicht was in der oxobjekt2categorie => OXCATNID => der Eintrag: 8a142c3e4d3253c95.46563530 zu bedeuten hat. Ich weiß nicht um was für eine Kategorie es sich da handelt.

Auch dieser d8842e3cbf9290351.59301740 Eintrag in der OXOBJECTID sagt mir nichts.

Wenn ich jetzt nur mit CSV Dateien arbeite weiß ich nicht was für ein Artikel ich in welche Spalte zuordnen muss.

Wenn ich jetzt lesen könnte dass d8842e3cbf9290351.59301740 die Kategorie Handball ist, dann weiß ich welche Artikel ich zuordnen kann.

Ich lege ja nicht die kompletten Artikel plus Kategorien mit Unterkategorien Text etc.im Backend an.

Dafür exportiere ich mir obiege CSV Dateien, fülle diese, und importieren sie wieder.

Als ID kann man eintragen was man möchte - es muss nur shopweit einzigartig sein. Du kannst also statt der kryptisch erzeugten ID auch selbst eine “sprechende” ID hinterlegen.

OXPARENTID ist dann die OXID der direkt übergeordnete Kategorie - OXROOTID ist dann die OXID der Toplevel-Kategorie. Am besten schaust Du Dir die Struktur nochmal selbst in der DB an. Ist z.B. die Kategorie selbst die oberste Ebene, dann kommt nämlich in die Spalte OXPARENTID der Wert ‘oxrootid’ rein.

Hallo Hebsacker,

Ich glaube dass es falsch verstanden wird was ich meine.

OXOBJECTID
8a142c3e4d3253c95.46563530
8a142c3e4143562a5.46426637
8a142c3e4d3253c95.46563530
8a142c3e4d3253c95.46563530

OXCATNID
5064
d8842e3cbf9290351.59301740
5065
5067

setze das jetzt mal neben einander und sag mir was heißt übersetzt das:

8a142c3e4d3253c95.46563530 ?

Hallo Priester,

das habe ich Dir 2010 schon beantwortet mit einem Skript :rolleyes:

http://www.oxid-esales.com/forum/showthread.php?t=3685&page=3#post22270

Die Tabelle oxobjekt2categorie verknüpft Artikel (oxarticles.) und Kategorien (oxcategories) über ihre IDs. Dabei hat jede Verknüpfung selbst wieder eine ID (oxid).

Viel mehr gibt`s da nicht.

Grüße

Cutty

[QUOTE=Priester;84970]Hallo Hebsacker,

Ich glaube dass es falsch verstanden wird was ich meine.

[/QUOTE]

ah jetzt ja - eine Insel! :slight_smile: