OX-ID ändern

Hallo zusammen,

als Neuling muss ich nun mich auch mal an die Oxid-Profi-Gemeinschaft hier wenden.
Folgendes Problem:

Ich möchte Artikel händisch von einem 4.0 Shop in einen 5.0 Shop übertragen. Ich weiß ich kann auch exportieren und importieren, aber das hat seinen Grund warum ich das mache, weil ich nicht den ganzen “Datenmüll” importieren möchte da jede Beschreibung, jedes Bild, jeder Titel, usw. komplett neu überarbeitet werden soll
Daher habe ich mich dazu entschieden die Artikel komplett neu im 5.0 Shop anzulegen.

Problem ist nun aber dass an der 4.0 schon eine WaWi angeschlossen war die die Artikel an der sogenannten OX-ID erkennt und die dann später an den neuen 5.0 angeschlossen werden soll.

Wenn ich jetzt im 5.0 einen Artikel komplett neu anlege wird ja im Hintergrund eine neue zufällige OX-ID generiert.
Wie ist es mir nun möglich diese in der phpmyadmin-Konsule zu ändern ???
Reicht es wenn ich in der Tabelle oxarticles diese neue suche und dort mit der alten aus Shop 4.0 ersetze oder muss ich noch irgendwo irgendwas dabei beachten …

Ziel ist es das die Warenwirtschaft davon quasi nichts mitbekommt wenn auf den neuen Shop geschaltet wird … im besten Fall soll sie sich dann anhand der OX-ID den Neuen Titel, Preis usw. ziehen und aktualisieren.

Hoffe ich konnte mein Anliegen grob darlegen :):):slight_smile:

Gruss

Marc

Das ist viel zu umständlich. Bearbeite Deine Artikel mit folgender Script-Demo. CSV erstellen und gut ist (achte auf die Spalten. Die Demo ist 4.5x).
Artikel-Import. Für [B]alle [/B]wesentlichen Tabellen gibt es auch eine aktuelle erweiterte Version.

Hm danke … aber das Problem ist wenn wir schon die Hälfte der Artikel in 5.0 neu angelegt haben, dann bringt mir das nur für die andere Hälfte die noch nicht im neuen 5.0 ist etwas … wie kann ich dort im Nachhinein bei den bereits angelegten die OX-ID noch ändern ?

Ginge da evtl. auch ein einfacher SQL-Befehl direkt im Admin-Bereich ?? So nach dem Prinzip: Suche und ersetze ??? Wenn ja wie müsste der lauten ??? Da meine Kenntnisse was SQL betrifft eher etwas schlecht sind.

Na, das ist doch noch besser. Du kannst die gesamten, schon vorhandenen Tabellen als CSV exportieren und dann nach dem vorgegebenen Schema im Skript einfügen und bearbeiten. Vorher musst Du die Spalten anpassen. Das ist sehr viel einfacher als in der Datenbank selbst.

Ein SQL Befehl geht auch, wenn die alten Tabellen kurzfristig in die neue Datenbank mit eingefügt werden. Dann nach der Artikelnummer suchen und die alte Oxid in der neuen Artikeltabelle einfügen bzw. ersetzen.

Ergänzung: Dies muss auch in z.b: oxobject2category gemacht werden.

Das erinnert mich an meine erste Begegnung mit JTL, als ich mit Schrecken festgestellt habe, das JTL beim Erstimport alle OXID´s neu vergibt. Fand ich nicht so witzig:D:D

[QUOTE=BlueIcebear;133380]
Ziel ist es das die Warenwirtschaft davon quasi nichts mitbekommt wenn auf den neuen Shop geschaltet wird … im besten Fall soll sie sich dann anhand der OX-ID den Neuen Titel, Preis usw. ziehen und aktualisieren.
[/QUOTE]

Bist Du sicher, dass das deine WAWI auch mitmacht, und nicht genau umgekehrt, also die alten Preise, Titel usw. wieder hochlädt?

Ansonsten kann ich Dir auch nur von deinem Vorhaben abraten, das manuell zu bewerkstelligen. Warum willst Du keinen neuen Import deiner Artikel in der WAWI machen? Willst Du gewisse Historien nicht verlieren?

Ja die Warenwirtschaft verhält sich zum Shop wie Slave zu Master … Es wird geschaut welche Daten unter der OXID geändert sind und die werden dann in der WaWi überschrieben … das einzige was die WaWi dem Shop vorgibt ist der EK und der Lieferant … kann man auch das Tool im Oxid für solche Sachen nutzen indem man dort einen SQL-Befehl zum Suchen und ersetzen eingibt ??? Kennt sich Jemand mit solchen SQL-Befehlen aus ?

Komisches WAWI das den Sklaven spielt und nicht den Herrn. Na gut…

Also, was genau ist dein Problem mittels phpmyadmin einen neuen Wert in das Feld OXID einzutragen?

Naja es ist keine Warenwirtschaft … es ist mehr eine Lagerwirtschaft … der Shop erfüllt da mehr die Artikelpflege …

kann mir irgendeiner helfen bei der Erstellung eines solchen SQL-Befehls ?

Das ist der falsche Weg, aber nagut, du willst ja einen SQL Befehl.

Somit ersetzt Du die OXID´s deiner Artikel mit deiner alten Artikel Tabelle, die Du temporär importierst.



UPDATE oxarticles, oxtemp
SET oxarticles.OXID=oxtemp.OXID
WHERE oxarticles.OXARTNUM=oxtemp.OXARTNUM


Aber wenn ich die OXID einzeln ersetzen will gibt es da keinen Befehl der sagt ersetze mir die OXID 12345 in der Tabelle oxarticles durch die OXID 67890 ???


UPDATE oxarticles
SET OXID = REPLACE(OXID, "12345", "67890");

Habe noch ein wenig recherchiert und das rausgefunden, kann das jemand bestätigen dass das so zumindest für einen einzelnen Artikel funktionieren würde:

UPDATE oxarticles SET OXID = REPLACE(OXID,“12345”,“67890”);

Das war Gedankenübertragung :slight_smile: … danke novalgin … kann man in dem Befehl auch mehrere Ersetzungen hintereinander eintragen ??? Dazu habe ich noch nichts gefunden. So: ersetze 1 durch 2 und 3 durch 4 und 5 durch 6 usw. weil wenn das ginge könnte ich dann auch beide Tabellen in Excel einfügen und durch verbinden der Zellen so etwas basteln … Meine Excel-Kenntnisse sind weit besser als die SQL aber ich erkenne zusammenhänge :slight_smile:

Ach noch eine Frage … wenn die OXID in der oxarticles geändert wird würde das für mein Hauptproblem ändern oder muss die noch irgendwo geändert werden ??? nicht dass dann irgendwo die alte immer noch vorhanden wäre


UPDATE oxarticles 
SET OXID = REPLACE(REPLACE(OXID, "123", "456"), "789", "1011")

Das musst Du noch in mehreren Tabellen ändern, ja

Das gibt so nix, wenn der Artikel im neuen Shop schon Zuordnungen wie Kategorie etc. hat. Wird die Artikel-Oxid hier überschrieben, musst alle Zuordnungen der alten Datenbank ebenfalls wiederherstellen oder manuell neu machen.

Sichere die Datenbank oder wenigstens die Tabelle und probiere es aus.

auch die Langbeschreibung etc wird mit einer anderen Tabelle über die OX-ID zugeordnet, da gibts ganz schön viele Querverbindungen