Neu Variationen und Variationswerte ändern per SQL?

cdx

Sehr aktives Mitglied
13. März 2013
1.601
54
Wir stehen vor dem Problem, dass wir bei einigen tausend Artikeln die Variationen und die dazugehörigen Werte anpassen müssen. Laut JTL-Support ist das leider nicht über die Ameise möglich.

Wir möchten die Variationsnamen und die Variationswertnamen anpassen beim Vaterartikel.
So dass bei den Kindartikeln dann auch die neuen Werte stimmen.

Beispiel:
Eine Variation heißt jetzt T-Shirt und der Wert ist grün oder rot.
Das soll geändert werden auf Shirt und grasgrün sowie feuerrot.

Weiß jemand von euch einen Weg dies per SQL zu machen?

Manuell kommt auf Grund der Menge der Daten für uns nicht in Frage und per Workflow geht es leider auch nicht, da man auf die Werte nicht zugreifen kann.
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.648
2.700
Berlin
Firma
css-umsetzung
ich denke mal wenn nur die Namen und Texte geändert werden sollte das nicht so dramatisch sein, weil ihr ja keine ID's anfasst.

ich würde nach einer Sicherung, einfach in den sql manager gehen und die Werte setzen

update blablaDatenbank set cName='hanswurst' where cName='wurst'

so in etwa
 

cdx

Sehr aktives Mitglied
13. März 2013
1.601
54
So in etwa ist gut. 😀
Hab schon mal die Variationen angepasst. Die Werte kommen morgen dran. Das wird aber aufwändiger...
Hab schon überlegt ob man einfach die fertige CSV per SQL eingespielt bekommt.
Hat das schon mal jemand gemacht?
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.648
2.700
Berlin
Firma
css-umsetzung

Aber es war ja vermutlich genau diese Vorgehensweisse 🙂

Eine CSV ist da vermutlich nicht die Lösung, da du über eine CSV in verbindung mit der DB ja nur Imports und keine Updates machst.

wenn du eine CSV hast, würde ich diese eher zeilenweise über ein Bash Script einlesen und aus dem Werten dann ein SQL Query genieren den ich dann absetze.
 

cdx

Sehr aktives Mitglied
13. März 2013
1.601
54
Ich hätte es gern über Bulk-Operationen versucht.
Leider weiß ich noch nciht genau, ob das mit der Zuordnung dann problemlos klappt...

Hat jemand von euch schonmal sowas gemacht?
 

cdx

Sehr aktives Mitglied
13. März 2013
1.601
54
Derzeit hänge ich grade an der Verknüpfung der einzelnen Artikel, denn von den Varkombi-Kindartikeln habe ich die Artikelnummer und würde gern den dazu passenden Wert korrekt hinterlegen.
Leider finde ich keinen passenden Eintrag der eine Verknüpfung darstellt...

Any ideas???
 

fav-hosting.online

Sehr aktives Mitglied
16. Oktober 2012
781
60
Weiterstadt
Firma
FaV-Hosting
Das mit Zuordnungen ist kein Problem da sowas immer über die Schlüssel k*** erfolgt, solange du die nicht änderst kann die Wawi auch weiterhin die Werte zuordnen.
Willst du den alle Farben einfach nur umbennen also unabhängig vom Artikel z.B. aus grün grasgrün machen, oder eine Tabelle mit allen vorhandenen Artikeln bzw. deren Werten auslesen und nach Korrekturen wieder einlesen?
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.648
2.700
Berlin
Firma
css-umsetzung
wenn es so ist das du wirklich nur diverse Farbnamen ändern möchtest, egal welcher Artikel, dann würde ich die vorhandenen Eigenschaften als csv exportieren (das geht über die Shell und als CSV), danach würde ich die Werte anpassen udn das ganze wie oben beschrieben über ein Bash script updaten.
Ich behaupte mal das das der beste weg wäre wenn du wirklich grosse Mengen hast.

Hast du nur 5 verschiedene Werte die in allen Artikeln einen zusatz bekommen sollen, kannst du das mit 5 Querys regeln.
Nur du weißt, wie umfangreich die Änderungen sind die du machen möchtest.
 

cdx

Sehr aktives Mitglied
13. März 2013
1.601
54
Leider sind die Werte nicht gleich. Wir haben bei der Bearbeitung der CSV festgestellt, dass teilweise Werte falsch hinterlegt wurden.
Die Datei ist bereits bereinigt und könnte als Grundlage dienen.

Wie @mike59999 richtig festgestellt hat, möchten wir gern die Werte korrigiert wieder einlesen.

Aber wir finden den Zusammenhang der Artikelnummern mit den Variationswerten leider nicht.
 

fav-hosting.online

Sehr aktives Mitglied
16. Oktober 2012
781
60
Weiterstadt
Firma
FaV-Hosting
Um die Variationsnamen und Werte auszulesen um sie später wieder importieren zu können brauchst du folgende Abfrage.

Code:
SELECT tArtikel.kArtikel, tArtikelBeschreibung.cName AS Artikelname, tEigenschaftSprache.kEigenschaft, tEigenschaftSprache.cName AS Variationsname, tEigenschaftWertSprache.kEigenschaftWert, tEigenschaftWertSprache.cName AS Variationswert FROM tEigenschaftSprache
INNER JOIN teigenschaft ON (tEigenschaftSprache.kEigenschaft = teigenschaft.kEigenschaft)
INNER JOIN teigenschaftwert ON (teigenschaft.kEigenschaft = teigenschaftwert.kEigenschaft)
INNER JOIN tEigenschaftWertSprache ON (teigenschaftwert.kEigenschaftWert = tEigenschaftWertSprache.kEigenschaftWert)
INNER JOIN tArtikel ON (tEigenschaft.kArtikel = tArtikel.kArtikel)
INNER JOIN tArtikelBeschreibung ON (tArtikel.kArtikel = tArtikelBeschreibung.kArtikel)
WHERE
tEigenschaftSprache.kSprache = 1 AND
tEigenschaftWertSprache.kSprache = 1 AND 
tArtikelBeschreibung.kSprache = 1 AND
tArtikelBeschreibung.kPlattform = 1 AND
tArtikelBeschreibung.kShop = 0
ORDER BY Artikelname

Wichtig ist das die Spalte kEigenschaft und kEigenschaftWert nicht während der Bearbeitung entfernt wird, danach kann ich dir gerne beim Import helfen.

EDIT: Bei der Abfrage wird nur die Sprache Deutsch exportiert, falls du weitere Sprachen bei den Variationen hast müsste man die Abfrage nochmal ändern.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: ROGUE

cdx

Sehr aktives Mitglied
13. März 2013
1.601
54
Danke schon mal.
Ich bräuchte bei dem Export idealerweise statt dem Artikelnamen die Kindartikelnummer, da wir die schon in unserer CSV haben und ein Mapping damit eineindeutig wäre.
Die normale Artikelnummer habe ich selbst gefunden, nur die Kindartikelnummer nicht :-/
Variationsname könnte raus, da der schon geändert ist - stört aber auch nicht wenn er drin bleibt.
 

fav-hosting.online

Sehr aktives Mitglied
16. Oktober 2012
781
60
Weiterstadt
Firma
FaV-Hosting
Unten stehend die Abfrage mit Kindartikelnummer

Code:
SELECT
tArtikel.kArtikel,
(SELECT TOP(1) cArtNr FROM tArtikel WHERE kEigenschaftKombi = A.kEigenschaftKombi) AS Kindartikelnummer,
tArtikelBeschreibung.cName AS Artikelname,
tEigenschaftSprache.kEigenschaft,
tEigenschaftSprache.cName AS Variationsname,
tEigenschaftWertSprache.kEigenschaftWert,
tEigenschaftWertSprache.cName AS Variationswert
FROM tEigenschaftSprache
INNER JOIN teigenschaft ON (tEigenschaftSprache.kEigenschaft = teigenschaft.kEigenschaft)
INNER JOIN teigenschaftwert ON (teigenschaft.kEigenschaft = teigenschaftwert.kEigenschaft)
INNER JOIN tEigenschaftWertSprache ON (teigenschaftwert.kEigenschaftWert = tEigenschaftWertSprache.kEigenschaftWert)
INNER JOIN tEigenschaftKombiWert A ON (A.kEigenschaft = teigenschaft.kEigenschaft AND  A.kEigenschaftWert = teigenschaftwert.kEigenschaftWert)
INNER JOIN tArtikel ON (tEigenschaft.kArtikel = tArtikel.kArtikel)
INNER JOIN tArtikelBeschreibung ON (tArtikel.kArtikel = tArtikelBeschreibung.kArtikel)
WHERE
tEigenschaftSprache.kSprache = 1 AND
tEigenschaftWertSprache.kSprache = 1 AND
tArtikelBeschreibung.kSprache = 1 AND
tArtikelBeschreibung.kPlattform = 1 AND
tArtikelBeschreibung.kShop = 0
ORDER BY Artikelname

EDIT: Je nach Anzahl der Variationsartikel kann die Abfrage etwas dauern, als Vergleich bei insgesamt 600 Einträgen hat die Abfrage 30 Sekunden gedauert.
 
  • Gefällt mir
Reaktionen: ROGUE

cdx

Sehr aktives Mitglied
13. März 2013
1.601
54
Das schaut schon mal SEHR gut aus...
Ich würd dann jetzt unsere CSV mit dem Export verknüpfen bzw die Werte mappen und melde mich nochmal wegen dem Import...
Es sei denn du hast da schon nen Plan wie der aussehen muss!? 🙂
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.648
2.700
Berlin
Firma
css-umsetzung
Ich behaupte ja, dass du die Varianten nicht importieren kannst, wenn du die Kinder bereits angelegt hast, daher sagte ich ja das ich das es über ein script gemacht werden müsste.
 

fav-hosting.online

Sehr aktives Mitglied
16. Oktober 2012
781
60
Weiterstadt
Firma
FaV-Hosting
Die Varianten können nicht neu importiert werden das stimmt soweit aber es sollen ja auch nur die Sprachwerte geändert werden was direkt über die DB geht.
Davon ausgehend das in der Exceltabelle in Spalte A die Werte mit der Überschrift kEigenschaftWert und in Spalte B die Werte mit der Überschrift Variationswert stehen kannst du folgende Formel beginned ab Zeile 2 einfügen und auf alle Zeilen anwenden. Falls du Werte hast die ein ' enthalten musst du diese um ein 2. ' erweitern.

Code:
="UPDATE tEigenschaftWertSprache SET cName = '"&B2&"' WHERE kEigenschaftWert = "&A2&" AND kSprache = 1"

Bitte nicht vergessen VOR dem Import eine Sicherung der Datenbank anzulegen, habe es zwar bei mir gestestet aber sicher ist sicher.
Die Änderungen der Variationswerte sollten beim nächsten Webshopabgleich automatisch übermittelt werden, ob eine Anpassung bei Ebay automatisch erfolgt kann ich dir leider nicht sagen.
 

Ähnliche Themen