bei der Migration von Shopware 5 fehlen diverse Bestellungen. Im Migration Log erhalten wir den folgenden Fehler bei den fehlerhaften Bestellungen:
Level: error
Code: SWAG_MIGRATION_WRITE_EXCEPTION
Profile name: shopware57
Gateway name: api
Created at: 2026-07-22 11:40:09.950
Entity: order
Exception message: An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (usr_p454327_11.order_line_item, CONSTRAINT order_line_item_ibfk_1 FOREIGN KEY (product_id, product_version_id) REFERENCES product (id, version_id) ON DELETE SET NULL ON UPDAT in /html/shopware-6-target.m3c.de/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:56
Kann mir jemand sagen was zu tun ist? Ich verstehe die Fehlermeldung nicht!
Wir möchten bei der Migration nur die Kunden/Bestellungen aus dem alten SW5 Shop übertragen, keine Produkte, da diese per API-Connector aus unserer Warenwirtschaft in den Shopware 6 Shop eingespielt werden. Geht das so überhaupt, oder müssen wir bei der Migration auch die Produkte übertragen? Zu den alten Bestellungen aus SW5, die ja mehrere Jahre alt sind, gibt es die Produkte ja auch im alten SW5 Shop nicht mehr.
Bestellungen sind immer an Produkte geknüpft. Die dazugehörigen Produkte müssen vorhanden sein. SW6 kann keine Bestellung anlegen, wenn das Produkt dieser Bestellung nicht vorhanden ist. Egal ob per Admin, per API oder per Migration.
Über den Migration-Assistenten sind Bestellungen und Produkt verknüpft.
Wir sind inzwischen über gegangen, komplett individuelle Migrationsskripte zu schreiben, da man die Daten dann einfach besser rüber bekommt.
Ist gar kein so ein großer Aufwand (mehr).
Damit ließen sich auch Bestellungen von Produkten entkoppeln. Fällt halt die Möglichkeit weg, z.B. im Admin bei einer Bestellungsposition das entsprechende Produkt zu öffnen - oder die Möglichkeit „jetzt nachbestellen“ im Kundenkonto.
Ist das bei der Migration wirklich so?! Manchmal hat man doch Bestellungen, die bereits Jahre alt sind und bei denen evtl schon längst die Produkte gelöscht wurden? Diese Bestellungen können dann -nicht- migriert werden?! Das wäre ja super merkwürdig.
Bei der Migration zu SW6 werden die Bestellungen mit den angelegten Produkten verbunden. Das ist der eigentliche Punkt. Wenn die Produkte dazu vorher im SW6 noch gar nicht existieren, kann die Bestellung nicht angelegt werden. Und genau das zeigt (nach meiner Meinung) oben die Fehlermeldung. Zumindest bei der Migration hatte ich damals ähnliche Fehler. SW6 benötigt die UUID vom Produkt. Wenn die nicht vorhanden ist, ist Ende.
Ja, genau den Fall haben wir eben. Die Produkte existieren im alten SW5 Shop nicht mehr. Wie soll denn das auch gehen? Alle alten Produkte im Shop behalten? Das ist doch unpraktikabel.
Der Tip mit den Migrationsscripten ist gut, aber zu aufwendig für den Umzug eines einzelnen Shops.
Ginge denn evtl. ein Import der Bestellungen über eine csv Datei?
Dies habe ich bisher noch nie versucht (war bisher nicht nötig), aber ich glaube das dies nicht funktionieren wird - Stichwort IDs in SW5, UUIDs in SW6.
Ob sich da inzwischen was geändert hat, weiß ich nicht. Aber früher war es definitiv so, dass in Shopware 5 ein Dummy-Produkt angelegt werden musste und das per DB-Skript in die Bestellungen (mit gelöschten Produkten) gemappt werden musste.
Danke für den Tip. Ist wohl die praktikabelste Idee. Werde ich dann wohl auch so machen.
Da hätte vielleicht auch Shopware mal eine Lösung finden können. Denke, es gibt viele alte SW5 Shops, die dann wohl alle das Problem mit den nicht mehr vorhandenen Produkten haben.
Aus meiner Sicht kann ich dazu nur sagen, dass der Migrationsassistent hier ehrheblich Schwierigkeiten hatte. Der Migrationsassistent läuft nur sauber, wenn der SW5 fast relativ neu, nichts gelöscht oder sonstiges nichts hinzugefügt oder eingebaut wurde. Wir hatten wirklich viele alte SW5-Shops (teilweise noch aus SW4-Zeiten) - überall gab es Probleme.