Probleme mit Migration von Shopware 5 nach Shopware 6

Hallo zusammen

Ich versuche seit bald 4 Monaten die Migration von Shopware 5 nach Shopware 6 hin zu bekommen. Dafür habe ich bereits einen regelrechten Spagat Akt vollzogen. Aber zunächst alles von Anfang an.

Vor ca. 1 Jahr versuchte ich eine Migration von einem wirklich schon fast prähistorischen XtCommerce Fork nach Shopware 5. Zu meiner Überraschung wurden praktisch alle Daten tadellos übertragen. Da ich langfristig plante, wollte ich aber gleich auf Shopware 6 upgraden. Also versuchte ich eine Migration von Shopware 5 nach Shopware 6 und es klappte erneut fast ohne Probleme. Die einzige Änderung welche ich in der Tabelle s_user vornehmen musste, war den encoder von MD5 auf bcrypt umzustellen. Dies gelang mit einem einfachen UPDATE Befehl in der sql Befehlsausführung von phpMyAdmin. Nach der Migration hatte ich sämtliche Kunden und Bestellungen einwandfrei importiert, inkl. den migrierten Passwörtern. D.h. sogar der Login klappte tadellos. Zufrieden widmete ich mich also dem Neuaufbau des Shops. Da die Bildverarbeitung beim XtCommerce Fork erheblich vom Standard XtCommerce Shop abwich, musste ich hier manuell nachpflegen. Nach einigen Monaten Aufbau und Neugestaltung, hätte ich eigentlich letzten Oktober den neuen Shopware 6 Store in Betrieb nehmen können. Also nur noch „schnell“ die neuen Kunden und Bestellungen übernehmen und los gehts. So war zumindest meine Theorie. Doch nun klappte einfach überhaupt nichts mehr. Die Kunden wurden zwar noch importiert, jedoch nicht die Bestellungen. Klar man hätte darüber wegsehen können, doch es gibt eben viele Kunden die informieren sich anhand ihrer letzten Bestellung und deshalb wollte ich diese Daten ebenfalls. Also ging die Bastelei los. Doch es wollte mir einfach nicht gelingen, die Migration nochmals sauber laufen zu lassen. Schlussendlich klappte nicht mal mehr der Kundenimport.

Weil ich bei meinem aktuellen Provider keinen Zugriff auf die CLI erhalte, wollte ich mir ein lokales Testsystem bauen. Über Xampp klappte zwar die Installation von Shopware 6, jedoch nicht von Shopware 5. Trotz grossartiger Hilfe hier im Forum, wollte es einfach nicht klappen. Ein User hier empfahl mir schliesslich eine Installation auf einer virtuellen Umgebung. Also installierte ich die VirtualBox und installierte alles in einer Ubuntu Umgebung. Nach mehreren Wochen grauer Haare, habe ich die Testumgebung heute endlich in Betrieb nehmen können. Also machte ich zunächst die Migration von XtCommerce nach SW5, was erneut ohne Probleme funktionierte. Ich hatte nun sämtliche Bestellungen und Kunden sauber eingetragen. Einzig die Länderangabe meiner Kunden (ich bin aus der Schweiz und versende nur im Inland) stimmt nicht. Wie schon damals war bei allen Kunden „Deutschland“ als Herkunftsland eingetragen. Also änderte ich diese Unschönheit über den sql Befehl:

UPDATE s_user_addresses  SET country_id='26' WHERE country_id='2'

womit wieder alles stimmte. Dann nahm ich noch einige Änderungen in den Einstellungen von SW5 (z.B. den Mehrwertsteuersatz, Währung von EUR auf CHF geändert etc.) vor, bevor ich die Migration in SW6 startete. Und da ist dann auch bereits Sendeschluss. Starte ich die Migration im Admin, bleibt die Migration ohne Fehlermeldung einfach hängen bzw. wird nie beendet. Also versuchte ich es über die CLI. Und da gibts dann auch eine ausführliche Fehlermeldung, welche mir aber als Laie überhaupt nichts sagt. Nun ist meine Hoffnung, dass mir hier irgendjemand einen Tipp hat, wo es genau hakt.

Fehler

Für jede Antwort ein GROSSES DANKESCHÖN im Voraus!

LG

Hallo,
Du hast einen fehlerhaften Bestell-, Liefer- oder Zahlungsstatus in Deiner Shopware 5 Installation. Eventuell hast Du Bestellungen mit einem nicht mehr vorhandenen Status?

Bei der Migration über den Admin kannst Du im Assistenten das Protokoll abrufen. Das ist zwar sehr umfangreich, aber zeigt normalerweise gut, welche Daten aus welchen Gründen nicht importiert werden konnten.

Viele Grüße
Markus

Hallo Markus

Vielen Dank für Deine Antwort. Das habe ich schon lange vermutet, dass Source und Target System an irgend einem Punkt nicht übereinstimmen. Doch leider habe ich bis jetzt noch keine Fehlermeldung entdeckt, mit welcher ich arbeiten könnte. Hoffnungsvoll habe ich natürlich gleich nachgesehen und das von Dir beschriebene Protokoll gefunden (ich habe es bisher offenbar nie entdeckt). Darin steht aber (nach meiner Auffassung auch nicht viel brauchbares). Oder ich übersehe irgendwas. Es ist echt zum Haare ausreissen. :flushed:

Hier mal das Protokoll - vielleicht sieht jemand ja was bei mir nicht passt.

Protokoll

Hallo Markus

Ich muss hier nochmals nachfragen, betreffend dem Protokoll. Du schreibst ja, dass dieses relativ ausführlich sein soll. Wenn ich jedoch die Migration starte, erhalte ich die Meldung „Die Prüfung der Daten wird durchgeführt“. Diese Prüfung läuft dann ewig (ich habe Sie am Wochenende 10 Stunden laufen lassen.) Es muss also irgendwo ein Fehler produziert werden. Um diesen zu finden, benötige ich jedoch eine aufschlussreiche Fehlermeldung. Wenn ich mir aber das aktuelle Protokoll anschaue, ist da wirklich kein einziger Hinweis auf ein Fehler. Im Gegenteil es steht am Schluss sogar „message“: „No error.“

Migration log generated at 09.01.2023 08:44:07 UTC
Run id: 96261ccf8e274ef0814a2ee17e33d461
Status: aborted
Created at: 09.01.2023 08:41:39 UTC
Updated at: 09.01.2023 08:43:48 UTC
Last control user id: FA54916CF55D4440961D41A2BBEFD7CA
Connection id: 1e3dd888edc549d4ae2bf613c69a8325
Connection name: SW5 nach SW6
Profile: shopware57
Gateway: local

Selected data:
- basicSettings (total: 20)
	- language (total: 1)
	- category_custom_field (total: 1)
	- category (total: 0)
	- customer_group_custom_field (total: 1)
	- customer_group (total: 5)
	- currency (total: 2)
	- sales_channel (total: 1)
	- number_range (total: 9)
- customersOrders (total: 20812)
	- customer_custom_field (total: 1)
	- customer (total: 5763)
	- shipping_method (total: 1)
	- order_custom_field (total: 1)
	- order (total: 15045)
	- order_document_custom_field (total: 1)
	- order_document (total: 0)
- processMediaFiles (total: 0)
	- media (total: 0)

--------------------Log-entries---------------------

--------------------Additional-metadata---------------------
Environment information {JSON}:
{
    "extensions": [],
    "sourceSystemName": "Shopware",
    "sourceSystemVersion": "5.7",
    "sourceSystemDomain": "sw5.local",
    "totals": {
        "category": {
            "extensions": [],
            "entityName": "category",
            "total": 0
        },
        "currency": {
            "extensions": [],
            "entityName": "currency",
            "total": 2
        },
        "newsletter_recipient": {
            "extensions": [],
            "entityName": "newsletter_recipient",
            "total": 1401
        },
        "customer_group": {
            "extensions": [],
            "entityName": "customer_group",
            "total": 5
        },
        "customer": {
            "extensions": [],
            "entityName": "customer",
            "total": 5763
        },
        "media": {
            "extensions": [],
            "entityName": "media",
            "total": 0
        },
        "number_range": {
            "extensions": [],
            "entityName": "number_range",
            "total": 9
        },
        "order": {
            "extensions": [],
            "entityName": "order",
            "total": 15045
        },
        "product": {
            "extensions": [],
            "entityName": "product",
            "total": 0
        },
        "product_option_relation": {
            "extensions": [],
            "entityName": "product_option_relation",
            "total": 0
        },
        "product_property_relation": {
            "extensions": [],
            "entityName": "product_property_relation",
            "total": 0
        },
        "property_group_option": {
            "extensions": [],
            "entityName": "property_group_option",
            "total": 0
        },
        "sales_channel": {
            "extensions": [],
            "entityName": "sales_channel",
            "total": 1
        },
        "translation": {
            "extensions": [],
            "entityName": "translation",
            "total": 7
        },
        "order_document": {
            "extensions": [],
            "entityName": "order_document",
            "total": 0
        },
        "shipping_method": {
            "extensions": [],
            "entityName": "shipping_method",
            "total": 1
        },
        "product_review": {
            "extensions": [],
            "entityName": "product_review",
            "total": 0
        },
        "seo_url": {
            "extensions": [],
            "entityName": "seo_url",
            "total": 20
        },
        "product_cross_selling": {
            "extensions": [],
            "entityName": "product_cross_selling",
            "total": 0
        },
        "main_variant_relation": {
            "extensions": [],
            "entityName": "main_variant_relation",
            "total": 0
        },
        "promotion": {
            "extensions": [],
            "entityName": "promotion",
            "total": 0
        },
        "customer_wishlist": {
            "extensions": [],
            "entityName": "customer_wishlist",
            "total": 0
        }
    },
    "additionalData": [
        {
            "id": 1,
            "main_id": null,
            "name": "Engeli & Co NaturProdukte",
            "title": null,
            "position": 0,
            "host": "sw5.local",
            "base_path": null,
            "base_url": null,
            "hosts": "sw5.local",
            "secure": 0,
            "template_id": 22,
            "document_template_id": 22,
            "category_id": 3,
            "locale_id": 118,
            "currency_id": 1,
            "customer_group_id": 1,
            "fallback_id": null,
            "customer_scope": 0,
            "default": 1,
            "active": 1,
            "locale": {
                "id": 118,
                "locale": "gsw_CH",
                "language": "Schweizerdeutsch",
                "territory": "Schweiz"
            }
        }
    ],
    "requestStatus": {
        "extensions": [],
        "isWarning": false,
        "code": "",
        "message": "No error."
    },
    "migrationDisabled": false,
    "targetSystemCurrency": "CHF",
    "sourceSystemCurrency": "CHF",
    "displayWarnings": [],
    "sourceSystemLocale": "gsw-CH",
    "targetSystemLocale": "gsw-CH"
}

Premapping {JSON}: ----------------------------------------------------
null

Hättest Du mir noch einen Tipp, was ich noch versuchen könnte? Dieser Fehler beschäftigt mich nun seit Oktober und ich habe unzählige Installationen mit Shopware 5 und 6 unternommen. Ich kann auch nicht verstehen, weshalb es damals mit Shopware 5.5 und einer älteren Shopware 6 Version (ich weiss leider nicht mehr welche Version das war) ohne Probleme funktionierte und jetzt nicht mehr. Aktuell habe ich einfach zwei frische Systeme aufgesetzt, die Migration von Xtcommerce nach SW5 vorgenommen (dies klappte tadellos) und versuche nun ebenfalls in einer frischen SW6 Version die Migration von SW5 nach SW6. Gibts irgendwo noch ein anderes Protokoll wo Fehler festgehalten werden?

LG

Hallo,
das Sammeln der Daten verläuft ja korrekt. Unter diesem Teil

Premapping {JSON}: ----------------------------------------------------
null

kämen normalerweise Aufstellungen über spezielle Fehler. Zum Beispiel Anrede falsch oder Adresse unvollständig. Da das nicht der Fall ist, würde ich die Ursache außerhalb der Migration vermuten.

Aber: Falls Du bereits einen Migrationslauf gestartet hattest, dann bestünde noch die Möglichkeit, dass es keine geänderten Daten im Vergleich zum letzten Lauf gibt, dann werden keine neue Daten importiert.

Bitte prüfe die Server-Logs zu der Zeit, hier kann Dir eventuell der Support Deines Hosters helfen. Gibt es dort Hinweise auf nicht ausreichendes memory_limit oder andere Einträge? Eventuell musst Du das memory_limit oder ähnliche Einstellungen erhöhen. Hier findest Du eine paar Hinweise zur Migration: https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/hinweise-fuer-die-migration?category=shopware-6-de/tutorials-und-faq/troubleshooting.

Viele Grüße
Markus

Hallo Markus

Herzlichen Dank für Deine Antwort. Ich habe nach vielen Versuchen nun erneut zwei neue Testsysteme installiert. Einmal eine Shopware 5.5 Version und eine Shopware 6.4.6.0 Version. Dies deshalb, weil es damals ja mit der Migration zwischen den älteren Versionen klappte. Anschliessend vollzog ich nochmals die Migration von XtCommerce nach Shopware 5.5, was erneut ohne jegliche Probleme klappte. Alle Kunden und Bestellungen wurden einwandfrei übernommen. Dann versuchte ich die Migration von SW 5.5 nach SW 6.4.6.0 und diesmal lief sie auch durch. Ich hatte schon eine riesen Freude, welche aber bald grosser Ernüchterung wich. Es wurde weder ein Kunde noch eine Bestellung übernommen. :woozy_face:

Immerhin, ich habe nun einen ganzen Haufen Fehler im Import Log. Zunächst mal die Übersicht. Es konnten also 10781 Positionen nicht migriert werden, da die Versandmethode nicht gefunden wurde. Ok aber welche da vermisst wird, ist mir nicht ganz klar. Ebenso verstehe ich nicht welches Pflichtfeld in der Order Entität nicht gefunden wurde. Wüsste ich welches das wäre, könnte ich dieses wohl direkt in der DB in der entsprechenden Order-Tabelle anlegen.

Mehr Details soll ja die Log Datei versprechen. Doch hier verstehe ich nur noch Bahnhof. Beispiel:

info] SWAG_MIGRATION__SHOPWARE_UNSUPPORTED_NUMBER_RANGE_TYPE
Unsupported number range type
NumberRange-Entity with source id "926" could not be converted because of unsupported type: sSERVICE1.

Hier erkenne ich weder welche Shopware 6 Tabelle betroffen ist, noch sehe ich welche Daten nicht gefunden wurden. Ich bin echt am Verzweifeln und gebe so langsam das Projekt der Migration auf.

Migrations-Log

Hättest Du mir vielleicht noch einen Tipp wie man aus den ganzen Fehlern schlau werden kann?

LG

Hallo,

[info] SWAG_MIGRATION__SHOPWARE_UNSUPPORTED_NUMBER_RANGE_TYPE
Unsupported number range type
NumberRange-Entity with source id "926" could not be converted because of unsupported type: sSERVICE1.

am besten vergleichst Du hier einmal Einstellungen > Grundeinstellungen > Shopeinstellungen > Nummernkreise in Shopware 5 mit denen unter Einstellungen > Shop > Nummernkreisein Shopware 6. Hier könnte der Eintrag in den Shopware 5 Nummernkreisen fehlen, aber irgendwo verwendet worden sein.

[info] SWAG_MIGRATION__SHOPWARE_UNSUPPORTED_OBJECT_TYPE
Unsupported object type
translation of object type "config_payment" with source id "9" could not be converted.

Entweder fehlt die Zahlungsart mit der ID „9“ bzw. notwendige Daten für die Konvertierung oder sie wurde nach der Verwendung gelöscht, ist aber noch in den Bestellungen enthalten.

[warning] SWAG_MIGRATION_SHIPPING_METHOD_ENTITY_UNKNOWN
Cannot find shipping_method
The order entity with the source id "3" cannot find the depended shipping_method entity with the source id "0".

Ähnlich wie bei den Zahlungsarten: Vermutlich gab es eine Versandmethode mit der ID „0“, die in einigen Bestellungen vorhanden ist, aber nicht (mehr) existiert. Findest Du vermutlich in der SW5 Bestellung mit der Datenbank ID „3“.

Im Assistenten gibt ein paar Einstellungen, bei denen Du für einige Bereiche bestimmen kannst, was passieren soll, wenn unbekannte Daten konvertiert werden sollen.

[warning] SWAG_MIGRATION_EMPTY_NECESSARY_FIELD_ORDER
The order entity has one or more empty necessary fields
The order entity with the source id 8676 does not have the necessary data for the field(s): customer

Bei dieser Meldung fehlen Kundendaten. Vermutlich ist 8676 die ID der der Bestellung in Shopware 5.

Wenn Du diese Meldungen geprüft und die Ursache beseitigt hast, sollte das Protokoll auf jeden Fall geringer ausfallen und einige Kunden übernommen worden sein.

Da es kein Patentrezept gibt, um solche Fehler zu beseitigen, wäre meine Empfehlung jede häufig auftretende Meldung zunächst mit einem Beispiel nachzuvollziehen und dort die Ursache zu bestimmen. Dann kannst noch ein paar weitere Meldungen prüfen und daraus eine einheitliche Ursache ableiten. Dann musst Du pro Meldung überlegen, welches Vorgehen das beste wäre. Bei nicht vorhandenen Zahlungsarten zum Beispiel könnte eine Möglichkeit darin bestehen per SQL die PaymentID „9“ durch beispielsweise die ID für „Vorkasse“ zu ersetzen.

Falls Du eine gültige Subscription hast, könntest Du Dich an den Shopware Support wenden. Unter Umständen kann es sinnvoll sein eine Agentur hinzuziehen. Aber das hängt natürlich davon ab, was für Dich in Frage kommt.

Viele Grüße
Markus

Hallo Markus

Das war ein Volltreffer :grinning: :point_up:

Kaum hatte ich die Nummernkreise angepasst, lief die Migration durch und alle Daten (Bestellungen und Kunden) wurden erfolgreich importiert.

Allerdings - und jetzt kommt das aber. Ich bin mir mittlerweile zu 99% sicher, dass der Migrations-Assistent in der aktuellen Version einen Bug enthält. Ich habe mindestens 3 x eine frische SW6 Installation in der aktuellsten Version aufgesetzt und dies auf verschiedenen Servern. Mit keinem einzigen klappte die Migration. Identische Erfahrungen machte auch User tarkka.ch (siehe: Export von Bestellungen möglich, aber kein Import? - #15 von tarkka.ch) der einen Versuch mit nur 2 Bestellungen unternahm, aber ebenfalls hängen blieb und kein Fehlerprotokoll generiert bekam.

Gelungen ist mir die Migration jedoch, als ich nochmals eine ältere SW6 Version (6.4.6.0) installierte und dann den Assistenten ausführte. Nun habe ich die Bestellungen und Kunden in dieser Version, sollte diese jedoch in meinen aktuellen übertragen. Das Problem: Bestellungen können nicht mit dem Import/Export Assistenten übertragen werden. Deshalb werde ich wohl die entsprechenden Kunden und Bestellungs-Tabellen in den aktuellen Shop übertragen müssen. Hier jedoch die Frage: Welche Tabellen sind für Bestellungen und Kunden relevant?

LG

Hallo Markus

Darf ich Dich nochmals etwas fragen? Ich bin betreffend Abarbeitung der Fehler noch etwas ratlos. Und zwar wie ich die Fehlermeldung genau verstehen kann.

Beispiel:

[info] SWAG_MIGRATION_LANGUAGE_ENTITY_ALREADY_EXISTS
The language entity already exists
The language entity with source id "118" already exists and cannot be written.

Ich wechsle nun in die Shopware 6 Installation, von welcher ich die Migration ausgeführt habe. Doch in welcher Tabelle finde ich nun genau die id 118? In der „language“ Tabelle gibts keine solche ID. Und eine entsprechende language Swag_Migration gibts ja auch nicht.

Kannst Du (oder jemand anders hier) mir da noch einen Tipp geben?

Herzlichen Dank im Voraus
LG

Oder mal Dein Beispiel genommen. Schaue ich in der Tabelle „Order“ nach, gibts da nicht ansatzweise eine ID die vierstellig ist.

Oder verstehe ich da etwas völlig falsch?

Hallo Mercator,
die ID „8676“ gehört zu einer Shopware 5 Bestellung. Dort müsstest Du die ID in s_order finden können, darüber kannst Du dann die Bestellnummer für das Backend feststellen.

Viele Grüße
Markus

Hallo Markus

Herzlichen Dank :slight_smile:

Betreffend Migrations-Tool noch eine grundsätzliche Frage. Es gibt ja hier im Forum einige Berichte, bei welchen - wie bei mir - das Tool mit der Mitteilung „Die Prüfung der Daten wird durchgeführt“ stehen bleibt. Ich habe darauf ja alles mögliche probiert und zunächst eine paralelle Installation (SW 6.4.6.0) installiert. Von dieser Version konnte ich problemlos die Migration durchführen. Nun habe ich diese bis zur Aktuellen 6.4.18 aktuallisiert und das Migrations-Tool funktioniert noch immer. :slight_smile:

So schön das ganze auch ist, ich habe nun ein Problem, da ich den ganzen Produktekatalog in der bisherigen Shopware 6.4.18 Version aufgebaut habe (in welcher das Migrations-Tool hängen bleibt). Ich habe nun also eine neue Installation, wo sich alle Kunden und Bestellungen befinden und eben meine andere Installation, wo leider die Migration nicht funktioniert.

Ich habe daraufhin die DB Tabellen
Migration
swag_migration_connection
swag_migration_data
swag_migration_general_setting
swag_migration_logging
swag_migration_mapping
swag_migration_media_file
swag_migration_run

durch jene der funktionierenden Shopware 6 Installation ersetzt und auch im Plugin-Ordner „SwagMigrationAssistant“ ausgetauscht. Leider ohne Erfolg, die Migration bleibt nach wie vor hängen.

Meine zweite Hoffnung lag darin, die Bestellungen in den anderen Shop zu kopieren. Dafür habe ich mich an folgendem Code orientiert, welcher Shopware auf den Hilfeseiten zur Löschung von Bestellungen publiziert hat.

delete ot2.*, ot.*, oli.*, odp.*, od.*, oc.*, oa.*, o.* from `order` o 
left join  order_address oa on o.id = oa.order_id 
left join  order_customer oc on o.id = oc.order_id 
left join  order_delivery od on o.id = od.order_id 
left join  order_delivery_position odp on od.id = odp.order_delivery_id 
left join  order_line_item oli on o.id = oli.order_id 
left join  order_tag ot on o.id = ot.order_id 
left join  order_transaction ot2 on o.id = ot2.order_id;

Ich bin kein sql Spezialist, dachte aber, dass es irgendwie mit einem Insert Befehl funktionieren sollte.

INSERT INTO ch77807_sw6.order
SELECT ot2.*, ot.*, oli.*, odp.*, od.*, oc.*, oa.*, o.* from `order` o 
left join  ch77807_sw646.order_address oa on o.id = oa.order_id 
left join  ch77807_sw646.order_customer oc on o.id = oc.order_id 
left join  ch77807_sw646.order_delivery od on o.id = od.order_id 
left join  ch77807_sw646.order_delivery_position odp on od.id = odp.order_delivery_id 
left join  ch77807_sw646.order_line_item oli on o.id = oli.order_id 
left join  ch77807_sw646. order_tag ot on o.id = ot.order_id 
left join  ch77807_sw646.order_transaction ot2 on o.id = ot2.order_id;

Doch irgendwie habe ich da ein Fehler drin und erhalte nur immer eine Fehlermeldung. Gibts betreffend des Migrations-Tools welches stehen bleibt vielleicht ein Tipp woran das liegen könnte? Leider habe ich keine Suscription womit mir nur der Weg über das Forum bleibt.

LG

Ich hab das Problem ENDLICH gefunden :grinning:

Die Migration stoppt, weil folgender Fehler besteht:

[Mon Jan 16 17:48:43.663186 2023] [fcgid:warn] [pid 2284364] (32)Broken pipe: [client 62.138.2.160:0] mod_fcgid: ap_pass_brigade failed in handle_request_ipc function

Keine Ahnung was dieser genau verursacht, doch mit der Umstellung auf php fpm läuft die Migration endlich durch.

Vielleicht kann mir hier jemand erklären, was genau der Vorteil/Nachteil von php fcgi ist. Aktuell läuft der Shop auch mit fpm. :slight_smile:

Dies ist ein Hinweis auf ein Limit seitens des Servers. Meist ist es hier der Wert für die Ausführungsdauer des Skriptes (ProcessLifeTime), evtl. aber auch der Wert für BusyTimeout oder RequestLen. Schau Dir die Werte mal an und passe ggfs. an - oder über den Hoster erledigen lassen.

Vor- und Nachteile fcgi oder fpm - Glaubensfrage, anwendungsbezogen und nicht pauschal zu beantworten. FPM ist aber meiner Meinung nach die modernere und zielführendere Variante, zumal man auch eine gewisse Schonung von Ressourcen, sowie Optimierung im Punkt Geschwindigkeit erreicht.

Im Grund besteht der Unterschied darin, dass neben der Funktionalität (im Grunde gleich) ein Prozessmanager enthalten ist, der für Webseiten mit höherer Last (da zähle ich Shopware durchaus zu) durchaus Vorteile bringt.

Siehe auch PHP: FastCGI Process Manager (FPM) - Manual

1 „Gefällt mir“

Herzlichen Dank für die ausführliche und detailierte Antwort. :+1:

Hallo Markus

Nach sehr langem „Verstehen lernen“ wie der Migrationsprozess überhaupt funktioniert, glaube ich, endlich auch die richtige Frage stellen zu können.

Konkret suche ich ja schon seit mehreren Wochen die Ursache für folgenden Migrationsfehler:

[warning] SWAG_MIGRATION_EMPTY_NECESSARY_FIELD_ORDER
The order entity has one or more empty necessary fields
The order entity with the source id 15013 does not have the necessary data for the field(s): customer

Nun glaube ich endlich herausgefunden zu haben, weshalb dieser überhaupt generiert wird. Und zwar weisen sämtliche IDs (ich habe über 4500 solcher Fehler) alle auf sogenannte Gastkonten hin. Und zwar importiere ich ja von XtCommerce nach SW5 und dann nach SW6, wo mir dann eben der besagte Fehler angezeigt wird. Nun habe ich mal verschiedene Prozesse durchgespielt und festgestellt, dass importierte Gastkonten in Shopware 5 nur in zwei Tabellen niedergeschrieben werden. Konkret sind das:

  • s_order_billingaddress
  • s_order_shippingaddress

ein normal registrierter Benutzer befindet sich aber zusätzlich noch in folgenden Tabellen

  • s_user_addresses
  • s_user

Somit haben natürlich Gastkonten keine UserID (bzw. UserID 0) erhalten, was dann vermutlich genau zum oben genannten Fehler führt. Das ist im Prinzip ja alles korrekt, da ein Gastkonto nach der Bestellung wieder gelöscht werden soll. Während man in Shopware 5 die betreffende Bestellung noch einsehen kann, wird diese in Shopware 6 somit nicht importiert.

Meine Frage ist nun einzig noch. Ist das so gewollt, dass Gastbestellungen komplett aus der Datenbank gelöscht werden, oder ist das ein Fehler des Migrationstools? Sollte es gewollt sein, dürfte das Migrationstool auch keinen Fehler auswerfen.

Ich wäre froh, wenn Du mir diese Frage demnächst beantworten könntest.

Herzlichen Dank im Voraus
LG Patrik

Kann mir da vielleicht jemand diese Frage beantworten? Konkret: Werden Gastkonten gleich nach der Bestellung bei Shopware 6 wieder gelöscht. D.h. existiert danach nur noch die Bestell-E-Mail? Ich kann das aktuell leider nicht testen, da ich noch kein funktionierenden Shop habe.

Hallo Patrik,
bei einer einfachen Migration von Shopware 5 zu Shopware 6 werden die Gastbesteller übernommen.

Gastbesteller-aus-Migration

Die Kunden aus dem Bild stammen aus einer 5er Migration. Shopware löscht auch keine Datensätze, sondern übernimmt sie aufgrund fehlender Daten nicht. Welche Tabellen das sind, hast Du ja bereits festgestellt.

Die Ursache wird vermutlich bereits bei der Übernahme der Daten von xtCommerce zu Shopware 5 entstanden sein. Ich kenne den Aufbau von xtCommerce nicht, jedoch ist es bei Magento so, dass Kundendaten ohne Kundennummer existieren können, diese werden dann aufgrund der fehlenden Kundendaten auch nicht zu Shopware 6 übernommen.

Viele Grüße
Markus

Hallo Markus
Das ist ein toller Hinweis, betreffend den fehlenden Kundennummern. Bei XtCommerce ist dieses Feld nämlich ebenfalls leer. Nun werde ich das testweise mal befüllen und dann nochmals alles durchspielen.

Herzlichen Dank!
LG Patrik