Artikel- und Attribut-Datenbanken verknüpfen

Hallo zusammen,

ich mache gerade ein Praktikum bei einem Shop-Anbieter. Dieser hat mehrere 1000 Artikel, die alle sorgfältig eingepflegt wurden. Alle diese Artikel sollen um ein Attribut erweitert werden, nennen wir es “Zielgruppe”. Dieses Attribut kann drei Ausprägungen haben. Welche Artikel welche Ausprägung haben soll, lässt sich aus Informationen ablesen, die im Artikel bereits gespeichert sind (u.a. der Artikel-Titel und der Hersteller). Bei dieser großen Anzahl an Artikeln kann ich die Eingabe der Attributs-Ausprägung natürlich nicht per Hand im Backend vornehmen.

Die ersten Schritte meines Lösungsansatzes:

  1. Das neue Attribut im Backend erstellen
  2. Per MYSQL-Befehle die Tabellen oxarticles und oxobject2attribute verknüpfen, da ich im Endeffekt die Spalten OXTITLE (in oxarcticles) und OXVALUE (in oxobject2attribute) verbinden will.

Das Problem: Die beiden Tabellen oxarcticles und oxobject2attribute arbeiten mit verschiedenen OXIDs. Habt ihr eine Idee, wie ich die beiden Spalten zusammen bringe? Im Backend macht das OXID ja auch, also muss es ja irgendwie möglich sein… :wink:

Vielen Dank schon mal!

Grüße
Thomas

Hi,

also du kannst das doch über die oxartnum etc abgleichen.

oxarticles > oxartnum
join
oxobject2attribute > oxobjectid (oxartnum) + oxattrid + oxvalue

Ohne Gewähr…:smiley:

der erste Schritt muss erst mal sein: Datensicherung der DB :slight_smile:

zur Datenbank: die OXID in oxarticles ist mit dem Feld OXOBJECTID in der Tabelle oxobject2attribute verknüpft und das Feld OXATTRID in der oxobject2attribute mit dem Feld OXID in der Tabelle oxattribute.
Du musst also wenn du 1000 Artikel mit 3 Attributen hast 3000 neue Zeilen in der oxobject2attribute anlegen. Nur mit mysql wird das sehr aufwändig!
Meiner Ansicht nach ist der einfachste Weg die relevanten Tabellen als csv zu exportieren, in Excel die neuen Zeilen für die oxobject2attribute zu erstellen und dann diese Daten zu importieren.

Erstmal danke für die umfangreichen Antworten!

Im Grunde war das Problem, dass ich ohne Nachzudenken eine OXID aus oxarticles in der Tabelle oxobject2attribute gesucht hatte. Dabei hatte ich übersehen, dass nur die IDs der Parent-Artikel in der Tabelle oxobject2attribute auftauchen und konnte deshalb meine wahllos aus oxarticles gepickten IDs dort nicht finden. Seit mir das klar wurde, funtioniert auch alles wie geplant :wink:

Das Geschlechts-Attribut ist also erstellt und allen Kategorien zugewiesen. Nun taucht, wie gewollt, in allen Kategorien ein zusätzlicher Geschlechtsfilter auf. Allerdings UNTER den bisherigen Filtern (Hersteller, Farbe). Manuell ließe sich das in den einzelnen Kategorien ändern (Position der Attribute anpassen), allerdings würde ich gerne ohne stundenlange, monotone Arbeit für alle Kategorien den Geschlechtsfilter ganz noch vorne/oben bringen. Hat jemand eine Idee, wie das funktionieren könnte?

Grüße
Thomas

für Attribute gibts im Admin-Bereich eine Sortierung …

Die mir leider nicht dabei hilft, die Attributs-Filter zu sortieren.

Ich könnte das machen, wenn ich unter Attribute > Kategorien zuordnen in eine zugeordnete Kategorie klicke. Dort öffnet sich rechts dann die Liste mit den dieser Kategorie zugewiesenen Attribute und ich könnte [B]für diese Kategorie[/B] die Sortierung anpassen, die von den Filtern dann entsprechend übernommen wird. Den Kategorien sind aber nicht immer die gleichen Attribute zugewiesen. Was ich erreichen möchte, ist: Immer wenn das Attribut “Geschlecht” zugewiesen ist, soll es in der Attributssortierung der jeweiligen Kategorie an 1. Position stehen. Anstatt mich manuell durch 1000 Kategorien zu arbeiten, wäre eine Anpassung per MySQL am einfachsten. Allerdings kann ich den Ort nicht finden, wo diese Infos gespeichert sind?

Ok, hab sie wohl mehrmals überlesen, ist natürlich oxcategory2attribute…