ent_devent_dev MemberComments: 50 Received thanks: 3 Member since: April 2018 edited July 2019

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

1 Answer

Answers

  • sacrofanosacrofano MemberComments: 23 Received thanks: 6 Member since: December 2016

    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
             },
    ...

     

    Quote
    Accepted Answer
    Thanked by 1ent_dev
  • ent_devent_dev MemberComments: 50 Received thanks: 3 Member since: April 2018

    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 .. :) 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;
    
    [...]

     

  • WeidmannWeidmann MemberComments: 1 Received thanks: 0 Member since: May 4

    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}}]

    2) mit value eine Ebene tiefer:

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

    3) 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

  • ent_devent_dev MemberComments: 50 Received thanks: 3 Member since: April 2018

    Hallo @Weidmann, hast du auch die 

    filterGroupId

    übergeben?

     

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

     

    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}}]

    2) mit value eine Ebene tiefer:

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

    3) 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

Sign In or Register to comment.