新接口中,商品更新接口采用增量更新模式,和旧接口中的update.field类似,即传入哪些字段,就只会更新哪些字段。以下列举一些常用的部分更新场景的使用样例(部分字段之间有联动,例如价格类型是规格价时,SKU里必须填写SKU价,类似联动请参见商品发布文档。)。
1 2 3 4 5 | <itemSchema> <field id= "productTitle" name= "Product name" type= "input" > <value>wang chen test api submit sourcing updateFields 333 </value> </field> </itemSchema> |
注意当前商品接口只支持普通编辑,修改详情时,需要带上详情类型字段 productDescType ,同时需要确保提交上来的详情里的html标记,都是转义后的。
1 2 3 4 5 6 | <field id= "productDescType" name= "Product Detail" type= "singleCheck" > <value> 2 </value> </field> <field id= "superText" name= "Custom Description " type= "input" > <value><p>test</p></value> </field> |
价格类型变化时,需要在对应的价格类型字段中,标识出当前的价格类型,即scPrice ,然后再将具体的价格数据上传,例如fob字段。同时需要注意的是,当价格类型改变时,某些组件是否必填也会发生变化,例如本例子中,阶梯价变成FOB价时,商品的最小起订量就必须单独传递进来,放在minOrderQuantity字段中。更多这种字段联动的情况,可参考 【新接口】商品发布使用文档中的字段说明。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <itemSchema> <field id= "minOrderQuantity" name= "MOQ" type= "input" > <value> 3.11 </value> </field> <field id= "scPrice" name= "Price Setting" type= "singleCheck" > <options> <option displayName= "Set uniform price of FOB" value= "1" /> <option displayName= "Set one FOB price" value= "2" /> </options> <value> 2 </value> </field> <field id= "fob" name= "FOB Price" type= "complex" > <complex-value> <field id= "range_min" type= "input" > <value> 12.34 </value> </field> <field id= "range_max" type= "input" > <value> 56.78 </value> </field> <field id= "unit_type" type= "singleCheck" > <value> 4 </value> </field> </complex-value> </field> </itemSchema> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <itemSchema> <field id= "scPrice" name= "Price Setting" type= "singleCheck" > <options> <option displayName= "Set uniform price of FOB" value= "1" /> <option displayName= "Set one FOB price" value= "2" /> </options> <value> 1 </value> </field> <field id= "ladderPrice" name= "Quantity Price" type= "complex" > <complex-value> <field id= "ladderPrice_1" type= "complex" > <complex-value> <field id= "quantity" type= "input" > <value> 3333 </value> </field> <field id= "price" type= "input" > <value> 233.0000 </value> </field> </complex-value> </field> <field id= "ladderPrice_0" type= "complex" > <complex-value> <field id= "quantity" type= "input" > <value> 22 </value> </field> <field id= "price" type= "input" > <value> 3333.0000 </value> </field> </complex-value> </field> </complex-value> </field> </itemSchema> |
下面的demo,需要变更前的商品有销售属性和SKU,即saleProp和sku两个字段都有值。如果没有的话,则必须添加销售属性和SKU才能完成变更。
如果商家想变更销售属性,不能只变更saleProp字段,必须同时变更SKU字段,保持两个字段的销售属性是一致的,系统才能保存新增的变化。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | <itemSchema> <field id= "marketPrice" name= "Price Setting " type= "singleCheck" > <value> 2 </value> </field> <field id= "saleProp" name= "Sales Property" type= "complex" > <complex-value> <field id= "p-191286172" name= "Size" type= "multiCheck" > <values> <value inputValue= "one size" > 4348586 </value> <value inputValue= "XXL" > 28318 </value> </values> </field> <field id= "p-191288010" name= "Color" type= "multiCheck" > <values> <value inputValue= "BROWN" > 3399503 </value> </values> </field> </complex-value> </field> <field id= "sku" name= "" type= "multiComplex" > <complex-values> <field id= "price" name= "Price" type= "input" > <value> 23.00 </value> </field> <field id= "skuStock" name= "Quantity in stock" type= "multiInput" > <values> <value srcValue= "4" warehouseCode= "CN_LOCAL_01" > 44 </value> </values> </field> <field id= "skuOuterId" name= "sku code" type= "input" > <value>sku2</value> </field> <field id= "skuId" name= "" type= "input" > </field> <field id= "props" name= "" type= "multiInput" > <values> <value propValueId= "28318" propId= "191286172" propName= "p-191286172" propValueName= "XXL" > 111 : 333 ; 22 , 11 </value> <value propValueId= "3399503" propId= "191288010" propName= "p-191288010" propValueName= "Brown" > 111 : 333 ; 22 , 11 </value> </values> </field> </complex-values> <complex-values> <field id= "price" name= "Price" type= "input" > <value> 23.00 </value> </field> <field id= "skuStock" name= "Quantity in stock" type= "multiInput" > <values> <value srcValue= "3" warehouseCode= "CN_LOCAL_01" > 33 </value> </values> </field> <field id= "skuOuterId" name= "sku code" type= "input" > <value>sku1</value> </field> <field id= "skuId" name= "" type= "input" > </field> <field id= "props" name= "" type= "multiInput" > <values> <value propValueId= "4348586" propId= "191286172" propName= "p-191286172" propValueName= "Free" > 111 : 333 ; 22 , 11 </value> <value propValueId= "3399503" propId= "191288010" propName= "p-191288010" propValueName= "Brown" > 111 : 333 ; 22 , 11 </value> </values> </field> </complex-values> </field> </itemSchema> |