2013-01-11 33 views
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) 
+0

你們每個人都明白這一點嗎? 我在API中添加了打印語句,看起來sngle_data數組中的元素已經丟失了所有的值。 [single_data] =>數組( [0] =>數組( [0] => stdClass的對象() [1] => stdClass的對象() ) ) – KPheasey

回答

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',然而,你可以任意調用它。我使用'item'是因爲API返回了許多值。附加屬性看起來像這樣在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' 
      ) 
     ) 
    ) 
) 
... 
2

此工作添加additional_attributes

'additional_attributes' => array(
    'single_data' => array(
     array(
      'key' =>'manufacturer', 
      'value' => '10' 
     ) 
    ) 
) 
0

例爲JavaApache XML-RPC客戶端+ Gson):

我有屬性manufacturer帶選項:Adidas(ID:318)

產品實體:

... 
@SerializedName("additional_attributes") 
private Map<String,Map<String,String>> additionalAttributes; 
... 
// getters + setters 
... 

代碼:

... 
Map<String,String> attribute = new HashMap<>(); 
attribute.put("manufacturer", "318"); 

Map<String,Map<String,String>> additionalAttributes = new HashMap<>(); 
additionalAttributes.put("single_data", attribute); 

product.setAdditionalAttributes(additionalAttributes); 
... 

然後做product.update API請求

PS:當然,這是一個有點怪異,但你可以用與一些門面