Artikel-Attribute über REST API werden nicht übertragen

Hallo Shopware Community,

ich habe ein Problem beim Upload der Artikel-Attribute über die API.

 

Meine JSON-Struktur sieht wie folgt aus:

{
	"mainDetail":
	{
		"number":"773-670",
		"ean":null,
		"active":0,
		"weight":"0",
		"inStock":"100",
		"attribute":
		[
			{
				"attr9":"null",
				"attr19":"null",
				"attr18":"null",
				"attr6":"null",
				"attr17":"null",
				"attr5":"null",
				"attr16":"null",
				"attr8":"null",
				"attr15":"null",
				"attr7":"null",
				"attr14":"null",
				"attr2":"null",
				"attr13":"null",
				"attr1":"Test",
				"attr12":"null",
				"attr4":"null",
				"attr11":"null",
				"attr3":"null",
				"attr10":"null",
				"attr20":"null"
			}
		],
		"prices":
                [
		        {
			        "pseudoPrice":"0,0",
			        "price":"2,4645152178518"
		        }
                ]
	}
	,"related":[
		{
		"number":""
		}
	],
	"supplier":"Testsupplier",
	"descriptionLong":"",
	"name":"Testartikel",
	"active":0,
	"description":"Test",
	"tax":19.0,
	"categories":
	[
		{
		         "path":"Deutsch|Testkategorie"
		}
	]
}

 

Egal wie ich die Attribute übertrage sie werden komplett ignoriert.

In der Shopware-Version 5.0.2 macht es keinen Unterschied ob ich die Attribute als Array oder als Object übertrage. Beides funktioniert nicht.

In Version 5.2.2 bekomme ich eine Fehlermeldung, wenn ich die Attribute nicht als Array übertrage.

 

Alle anderen Felder werden wie gewünscht angepasst.

 

Liegt es an meiner Struktur oder habe ich etwas Grundsätzliches für die Attribute übersehen?

 

Mit freundlichen Grüßen

SysTech

Attribute müss ein Object sein und kein Array. Siehe shopware/Article.php at 5.2 · shopware/shopware · GitHub

	"mainDetail":
	{
		"number":"773-670",
		"ean":null,
		"active":0,
		"weight":"0",
		"inStock":"100",
		"attribute":
		{
			"attr9":"null",
			"attr19":"null",
			"attr18":"null",
			"attr6":"null",
			"attr17":"null",
			"attr5":"null",
			"attr16":"null",
			"attr8":"null",
			"attr15":"null",
			"attr7":"null",
			"attr14":"null",
			"attr2":"null",
			"attr13":"null",
			"attr1":"Test",
			"attr12":"null",
			"attr4":"null",
			"attr11":"null",
			"attr3":"null",
			"attr10":"null",
			"attr20":"null"
		},
		"prices":
                [
		        {
			        "pseudoPrice":"0,0",
			        "price":"2,4645152178518"
		        }
                ]
	}
	,"related":[
		{
		"number":""
		}
	],
	"supplier":"Testsupplier",
	"descriptionLong":"",
	"name":"Testartikel",
	"active":0,
	"description":"Test",
	"tax":19.0,
	"categories":
	[
		{
		         "path":"Deutsch|Testkategorie"
		}
	]
}

 

Hallo Shyim,

danke für deine Antwort.

Ich habe zuvor beides getestet und beides führte nicht zum Erfolg.

 

Aus irgendeinem Grund kann ich nur die Attribute übertragen die nicht “null” enthalten.

"attribute":
		{
			"attr1":"Test"
		}

Das Attribut attr1 wird wie gewünscht gefüllt.

Wenn ich aber die restlichen Attribute attr2-20 mit “null” mit hochlade ignoriert er auch das attr1.

Wollte eigentlich immer alle Attribute mitgeben.

Als Lösung wird erstmal nur jedes “richtig” gefüllte Attribut hochgeladen.