Order Import mit REST API unklare Fehlermeldung

Hallo Shopware Community,

Ich versuche momentan unsere Kundenbestellungen aus der JTL-WaWi in Shopware zu importieren. Da die Import/Export Funktion das nicht kann, habe ich eine Python API geschrieben.

Kunden Daten konnte ich über die Sync API mit dem endpoint /api/_action/sync bereits erfolgreich in die Datenbank importieren. Allerdings tauchte auch hier schon die Fehlermeldung Malformed UTF-8 characters, possibly incorrectly ''encoded auf. Durch einiges rumprobieren konnte ich den Fehler allerdings fixen, welcher nichts mit UTF-8 zu tun hatte.

Bei den Orders ist es allerdings schwierig nachzuvollziehen was das Problem ist, da ich immer nur die Fehlermeldung Malformed UTF-8 characters, possibly incorrectly ''encoded bekomme. Meine Payload Dummy Struktur zum testen schaut momentan so aus:

{
„write-order“: {
„entity“: „order“,
„action“: „upsert“,
„payload“: [
{
„id“: uuid.uuid4().hex,
„stateId“: uuid.uuid4().hex,
„currencyId“: „b7d2554b0ce847cd82f3ac9bd1c0dfca“,
„languageId“: „2fbb5fe2e29a4d70aa5854ce7ce3e20b“,
„salesChannelId“: „4e435892fe444354a700a0d7966a8497“,
„billingAddressId“: uuid.uuid4().hex,
„price“: {
„netPrice“: 256.72,
„totalPrice“: 305.5,
„positionPrice“: 305.5,
„rawTotal“: 305.5,
„taxStatus“: „gross“,
},
„orderDateTime“: „2018-09-29 00:00:00.000“,
„currencyFactor“: 1.0,
„shippingCost“: {
„unitPrice“: 128.36,
„totalPrice“: 305.5,
„quantity“: 5,
},
}
],
}
}

id benötige ich anscheinend nicht wirklich aber bei den Customer import hat es auch geholfen sie selbst zu generieren. In der Entity Reference sind noch sehr viel mehr Einträge, wobei ich nicht weiß ob die wirklich notwendig sind (ich bekomme keine Fehlermeldung dass sie benötigt werden, welche ich bekomme wenn ich zB „stateId“ wegnehme) .
Ich habe auch schon versucht alle verschachtelten „required“ Einträge hinzuzunehmen, allerdings bekomme ich auch da die gleiche Fehlermeldung. Hier ein längeres Beispiel:

{
„id“: „0103215fe79542ec8d099707ca9da006“,
„stateId“: „754e78b448d041f8a17e888fa245b9b5“,
„currencyId“: „b7d2554b0ce847cd82f3ac9bd1c0dfca“,
„languageId“: „2fbb5fe2e29a4d70aa5854ce7ce3e20b“,
„salesChannelId“: „4e435892fe444354a700a0d7966a8497“,
„billingAddressId“: „4b81f58f4a8d492ba5453824bfad5c5a“,
„price“: {
„netPrice“: 256.72,
„totalPrice“: 305.5,
„positionPrice“: 305.5,
„rawTotal“: 305.5,
„taxStatus“: „gross“
},
„orderDateTime“: „2018-09-29 00:00:00.000“,
„currencyFactor“: 1,
„shippingCost“: {
„unitPrice“: 128.36,
„totalPrice“: 305.5,
„quantity“: 5
},
„stateMachineState“: {
„technicalName“: „in_progress“,
„name“: „in Bearbeitung“,
„stateMachineId“: „fa940f709c62413abf7feb208c8b3007“
},
„orderCustomer“: {
„customerId“: „001cf50e6a2244f698190efcd8649b4f“,
„customerNumber“: „147780“,
„orderId“: „0103215fe79542ec8d099707ca9da006“,
„email“: „maxmusterman@test.de“,
„firstName“: „Max“,
„lastName“: „Musterman“,
„salutationId“: „5fbf2045cd3d4391a7f68fe002ec9b0e“
}
}

Funktioniert aber genau so nicht und ich bin ziemlich hilflos.
Da ich nun schon sehr viel getestet habe, wäre ich um externe Hilfe sehr Dankbar. Vielleicht hat es ja von euch schon jemand geschafft :slight_smile: Vielen Dank

mit freundlichen Grüßen
Jonas

Ich habe es nun geschafft nachdem ich mein Payload so angepasst hab wie in diesem Thread beschrieben :slight_smile: Komplette Order über API anlegen, aber wie ? - #3 von hloettgen

1 Like