Crossselling -> Zubehör zuordnen auch umgekehrt möglich?

Wir haben in unserem Shop zig verschiedene Artikel in allen möglichen Varianten denen ich nun ein Zubehör, was auf alle diese Artikel passt, zuordnen möchte. Wenn ich mich dafür durch alle Varianten durchklicken müsste, wäre ich mindestens eine ganze Stunde mit nichts anderem beschäftigt. Daher meine Frage: Ist es auch möglich dem Zubehör zu sagen, bei welchen Artikeln es überall als Zubehör angezeigt werden soll?

Falls nicht:

Ginge das auch per MySQL direkt in der Datenbank? In der Tabelle oxaccessoire2article werden die beiden IDs ja miteinander verknüpft. Was passiert, wenn ich selbst einen Eintrag dort mache? Wird die OXID in dieser Tabelle automatisch (und korrekt) gesetzt - oder würde ich mir damit irgendwas zerhauen?

Danke und viele Grüße,

Thorsten

Also ich habe das jetzt mal versucht direkt in der Datenbank zu erstellen.

Es funktioniert auch, allerdings wird keine eindeutige OXID für den Record erzeugt. Gibt es eine Möglichkeit diesen korrekt zu erzeugen? Ist das vielleicht nur eine Art Hash-Wert aus den anderen beiden OXIDs?

Die Oxid wird in oxutilsobject::generateUId() erzeugt, kann leider nicht posten wie weil das Forum mich nicht lässt.

Im Prinzip ist es egal was man einträgt, es muss nur DB-weit eindeutig sein, also darf nirgendwo anders schon für das Feld “oxid” verwendet worden sein.

Jo, hab’s in der Sekunde auch gefunden.

Ist einfach nur die MD5 gehashte PHP Funktion “uniqid” an die seltsamerweise nochmal die microtime angehängt wurde. Da hat sich wohl jemand gedacht doppelt gemoppelt hält besser. :wink:

Danke auf jeden Fall. So kann ich jetzt verhältnismäßig schnell meine Zubehöre einpflegen.

Wenn man nur mit SQL arbeiten will, kann man auch die MySql-Funktionen uuid() und uuid_short() verwenden. Da die oxid-Spalten nur 32 Stellen haben, muss man allerdings das Minuszeichen extrahieren oder die uuid_short() verwenden.

select uuid(), replace(uuid(),'-',''), uuid_short() from dual;
+--------------------------------------+----------------------------------+-------------------+
| uuid()                               | replace(uuid(),'-','')           | uuid_short()      |
+--------------------------------------+----------------------------------+-------------------+
| 21790ce5-31a4-11e8-bc68-028e6def3b89 | 21790aef31a411e8bc68028e6def3b89 | 25537170294964230 |
+--------------------------------------+----------------------------------+-------------------+
1 Like