4

APIを介して次の2つの追加属性を追加しようとしています。エラーは発生していませんが、アップロードされていません。誰かが私に提案を与えることができれば、それは素晴らしいことです.

catalogProductAdditionalAttributesEntity AdAtrributeEntity = new catalogProductAdditionalAttributesEntity();

associativeEntity[] AdditionalAttributes = new associativeEntity[2];
associativeEntity AdditionalAttributeOne = new associativeEntity();
associativeEntity AdditionalAttributeTwo = new associativeEntity();

AdditionalAttributeOne.key = "color";
AdditionalAttributeOne.value = "green";
AdditionalAttributeTwo.key = "size";
AdditionalAttributeTwo.value = "xl";

AdditionalAttributes[0] = AdditionalAttributeOne;
AdditionalAttributes[1] = AdditionalAttributeTwo;

AdAtrributeEntity.single_data = AdditionalAttributes;
ProductEntity.additional_attributes = AdAtrributeEntity;

MyService.catalogProductUpdate(Mylogin, SKU, ProductEntity, null, null)
4

3 に答える 3

3

これは古いことは知っていますが、解決策を見つけました。「single_data」と「multi_data」には、属性の配列を持つ配列が内部に必要です。

product_data = {
          'name' => self.get_attribute_value('name'),
          'description' => self.get_attribute_value('description'),
          'short_description' => self.get_attribute_value('short_description'),
          'weight' => self.get_attribute_value('weight'),
          'status' => self.get_attribute_value('status'),
          'categories' => compose_categories,
          'url_key' => self.get_attribute_value('url_key'),
          'price' => self.get_attribute_value('price'),
          'additional_attributes' => { 'single_data' => { items: compose_attribute_values }}
}

この例では、追加の配列に「item」という名前を付けましたが、好きな名前を付けることができます。API がそのような多くの値を返すため、'item' を使用しました。追加の属性は、PHP では次のようになります。

...
'additional_attributes' = array(
    'single_data' => array(
        'item' => array(
            [0] => array(
                'key' => 'some_attribute_code',
                'value' => 'some_attribute_value'
            )
            [1] => array(
                'key' => 'some_other_attribute_code',
                'value' => 'some_other_attribute_value'
            )
        )
    )
)
...
于 2013-05-09T15:00:31.677 に答える