[GELÖST] mehrere Eigenschaften / PropertyValues übergeben

Hallo Zusammen Smile,

wir bauen momentan eine Schnittstelle zwischen unserem Produktmanagementsystem und unserem Shopware-System.

 

Die Artikel gelangen vollständig ins Web, uns fehlen nun die Eigenschaften (Filter-Möglichkeiten). Wir wollen mehrere Values aus verschiedenen Options in einem Schritt importieren.

 

Die würde ich gerne beim Artikel-Import mit übergeben:

Größe // $articleData['propertyValues'][1]['option']['id'] = 26;
XL // $articleData['propertyValues'][1]['id'] = 301;
Farbe // $articleData['propertyValues'][2]['option']['id'] = 4;
Grün // $articleData['propertyValues'][2]['id'] = 16;

Wenn wir den Import so laufen lassen, wird immer nur die „Größe“ importiert… Wir können lediglich der „Größe“ mehrere Values mitgeben, aber scheinbar keine mehreren Options und Values.

 

Wir würden allerdings gerne mehrere Values aus verschiedenen Options importieren, funktioniert das?

 

Vielen Dank und ein schönes Wochenende! Thumb-Up

Laut Doku gibt man die OptionID auf der gleichen Ebene, wie die ID an:

https://developers.shopware.com/developers-guide/rest-api/examples/article/

"propertyValues":[
         {
            "id":24,
            "optionId":2           
         },
         {
            "id":28,
            "optionId":4
         },
...

 

1 „Gefällt mir“

@sacrofano schrieb:

Laut Doku gibt man die OptionID auf der gleichen Ebene, wie die ID an:

https://developers.shopware.com/developers-guide/rest-api/examples/article/

„propertyValues“:[
{
„id“:24,
„optionId“:2
},
{
„id“:28,
„optionId“:4
},

@sacrofano

Vielen Dank für deine schnelle Rückmeldung! Es funktioniert nun einwandfrei … :slight_smile: schönes Wochenende.

 

Für die Nachwelt, Lösung an unserem Beispiel:

[...]

Filterset // $articleData['filterGroupId'] = 1;
Größe // $articleData['propertyValues'][1]['optionId'] = 26;
XL // $articleData['propertyValues'][1]['id'] = 301;
Farbe // $articleData['propertyValues'][2]['optionId'] = 4;
Grün // $articleData['propertyValues'][2]['id'] = 16;

[...]

 

Hallo,

ich versuche seit Stunden die Options über die API zu setzen (nutze Python).

Ich mache das genau so, wie hier beschrieben:

...

'propertyValues':
[{'id': 3845, 'optionId': 26}, {'id': 3843, 'optionId':11}, {'id': 3728, 'optionId': 25}]

...

und erhalte immer den Fehler:

apiTest.ShopwareAPIError: Shopware indicated a failure: {'success': False, 'message': 'Name or id for property value required'}

zurück.

 

Habe auch diese Kombinationen durchprobiert:

  1. mit Schlüsselwort „option“:

‚propertyValues‘: [{‚option‘: {‚id‘: 3845, ‚optionId‘: 26}}, {‚option‘: {‚id‘: 3843, ‚optionId‘:11}}, {‚option‘: {‚id‘: 3728, ‚optionId‘: 25}}]

  1. mit value eine Ebene tiefer:

‚propertyValues‘: [{‚option‘: {‚id‘: 3845},  ‚optionId‘: 26}, {‚option‘: {‚id‘: 3843}, ‚optionId‘:11}, {‚option‘: {‚id‘: 3728}, ‚optionId‘: 25}]

  1. Keys gedreht:

‚propertyValues‘: [{‚option‘: {‚optionId‘: 26},  ‚id‘: 3845}, {‚option‘: {‚optionId‘: 11}, ‚id‘:3843}, {‚option‘: {‚optionId‘: 25}, ‚id‘: 3728}]

etc.

 

Wenn ich ein GET mache, erhalte ich das:

	'propertyValues': [
		{ 'id': 3728, 'value': '27 mm', 'position': 0, 'optionId': 25, 'mediaId': None}, 
		{ 'id': 3843, 'value': '800 mm', 'position': 0, 'optionId': 11, 'mediaId': None}, 
		{ 'id': 3845, 'value': '4200 mm', 'position': 0, 'optionId': 26, 'mediaId': None}
		]

Wenn ich jetzt lese, dass das alles bei Euch so funktioniert, könnte ich verzweifeln … übersehe ich etwas?

Gruß,

Christoph

Hallo @Weidmann, hast du auch die 

filterGroupId

übergeben?

 

Die ID deines Filtersets. Da habe ich auch eine Fehlermeldung zu bekommen.

 

@Weidmann schrieb:

Hallo,

ich versuche seit Stunden die Options über die API zu setzen (nutze Python).

Ich mache das genau so, wie hier beschrieben:

‚propertyValues‘:
[{‚id‘: 3845, ‚optionId‘: 26}, {‚id‘: 3843, ‚optionId‘:11}, {‚id‘: 3728, ‚optionId‘: 25}]

und erhalte immer den Fehler:

apiTest.ShopwareAPIError: Shopware indicated a failure: {‚success‘: False, ‚message‘: ‚Name or id for property value required‘}

zurück.

 

Habe auch diese Kombinationen durchprobiert:

  1. mit Schlüsselwort „option“:

‚propertyValues‘: [{‚option‘: {‚id‘: 3845, ‚optionId‘: 26}}, {‚option‘: {‚id‘: 3843, ‚optionId‘:11}}, {‚option‘: {‚id‘: 3728, ‚optionId‘: 25}}]

  1. mit value eine Ebene tiefer:

‚propertyValues‘: [{‚option‘: {‚id‘: 3845},  ‚optionId‘: 26}, {‚option‘: {‚id‘: 3843}, ‚optionId‘:11}, {‚option‘: {‚id‘: 3728}, ‚optionId‘: 25}]

  1. Keys gedreht:

‚propertyValues‘: [{‚option‘: {‚optionId‘: 26},  ‚id‘: 3845}, {‚option‘: {‚optionId‘: 11}, ‚id‘:3843}, {‚option‘: {‚optionId‘: 25}, ‚id‘: 3728}]

etc.

 

Wenn ich ein GET mache, erhalte ich das:

‚propertyValues‘: [
{ ‚id‘: 3728, ‚value‘: ‚27 mm‘, ‚position‘: 0, ‚optionId‘: 25, ‚mediaId‘: None},
{ ‚id‘: 3843, ‚value‘: ‚800 mm‘, ‚position‘: 0, ‚optionId‘: 11, ‚mediaId‘: None},
{ ‚id‘: 3845, ‚value‘: ‚4200 mm‘, ‚position‘: 0, ‚optionId‘: 26, ‚mediaId‘: None}

]

Wenn ich jetzt lese, dass das alles bei Euch so funktioniert, könnte ich verzweifeln … übersehe ich etwas?

Gruß,

Christoph