Wir nutzen Shopware 5.4.0 und haben gestern ein interessanten Bug gefunden.
Leider wissen wir nicht ob wir da irgendwas falsch machen oder Shopware dort seine Grenzen zieht.
Der Fall ist das wir über die API ein Kunden updaten wollen und ihm seine standard und lieferaddresse setzten wollen.
Derzeit hat der Kunde Addresse A als Liefer und Addrese A als Rechnungsaddresse, ziel ist es das der Kunde Addresse B als Liefer und Addresse A als Rechnungsaddresse hat.
Anbei der Payload den wir über die Shopware API /customer Ressource hochladen, welche uns auch ein Success = 1 zurück gibt.
Array
(
[number] => x
[firstname] => y
[lastname] => z
[salutation] => mr
[active] => 1
[email] => x@y.de
[groupKey] => 282
[paymentPreset] => 7
[attribute] => Array
(
[uuid] => 856687be-5ca5-4513-a467-9c8adc0c96c6
)
[billing] => Array
(
[firstname] => y
[lastname] => z
[salutation] => mr
[street] => ABC
[city] => Test
[zipcode] => 12345
[country] => 2
[company] => X Y Z
[additionalAddressLine1] =>
[additionalAddressLine2] =>
[attribute] => Array
(
[text1] => 83ca9158-c951-4c69-b7f4-2655c6a6174e
)
)
[shipping] => Array
(
[firstname] => B
[lastname] => C
[salutation] => mr
[street] => XYZ
[city] => TEST
[zipcode] => 98765
[country] => 2
[company] => A B C
[additionalAddressLine1] =>
[additionalAddressLine2] =>
[attribute] => Array
(
[text1] => 7f9276a7-b854-4c2b-9c43-173bee774f12
)
)
)
Liegt das Problem am Array oder ist es einfach nicht möglich?
Interessant ist, wenn der Kunde Zwei verschiede Liefer und Rechnungsaddressen hat dann würde der Payload anbei funktionieren.
Dieses Problem besteht weiterhin. Wir haben jetzt auch die Test Umgebung auf die neuste Version geupdatet 5.5.3, welche immernoch das selbe Verhalten aufweißt.
Ist der Weg die Shipping und Billing addresse über den Kunden zu setzten der Falsche?
Den Fall das ich nicht alle Pflichtfelder mit gebe können wir denke ich ausschliessen da die Shopware API dann in bisherigen Fällen expliziet sagt das ein Feld fehlt.
Habe selbigen Import mit „countryId“ laufen lassen was leider auch nicht geklappt hat.
Der dritte Ansatz war sehr interessant, bin dem mal nachgegangen, hab dafür einfach Standard mäßig eine Address ID übergeben, ist der folgende Aufbau richtig?