新增商品

新增商品接口中复杂参数传入示例

说明:本文档主要用来解释说明有赞云新增商品接口部分复杂参数如何传入,并提供对应参数的请求格式示例,其他常规参数传入自行参考接口文档:
https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/71

一、必传参数新增商品

1)代码示例:

public static void main(String[] args) {
    DefaultYZClient yzClient = new DefaultYZClient();
    Token token = new Token("d1ab25fb98b2f1b16346f92799b7f898");
    YouzanItemCreate youzanItemCreate = new YouzanItemCreate();
    //创建参数对象,并设置参数
    YouzanItemCreateParams youzanItemCreateParams = new YouzanItemCreateParams();
    //必传参数
    youzanItemCreateParams.setDesc("创建一个普通商品,我是商品描述");
    youzanItemCreateParams.setImageIds("1401286001");
	youzanItemCreateParams.setPrice(10000L);
    youzanItemCreateParams.setTitle("我是商品标题");
    youzanItemCreate.setAPIParams(youzanItemCreateParams);
    YouzanItemCreateResult result = yzClient.invoke(youzanItemCreate, token, YouzanItemCreateResult.class);
    System.out.println(JSON.toJSONString(result));
}

二、非必传参数新增商品

1、关于 item_weight(无规格商品)的传值规则

1)如果传值item_weight(运费商品重量)需要传值 delivery_template_id 运费模版 id,并且这个运费模板 id 是按重量计算的。

2)代码示例:

youzanItemCreateParams.setItemWeight(20000L);//商品重量,没有SKU时用。单位:克
youzanItemCreateParams.setDeliveryTemplateId(706441L);//运费模板id 按重量类型

3)微商城生成的商品示例:
10000.png

2、关于 sku_stocks 的传值规则

1)首先思考明确即将创建的商品有几级规格,例如有颜色、产地和品种,就算有三级规格。每级规格对应的规格值有几种,例如颜色对应的规格值有红色和黄色两种,产地对应的规格值有福建和浙江两种,品种对应的规格值只有麒麟瓜一种。最后排列组合计算最终的规格组合数量。
计算公式如下:
sku_stocks 数量 = 规格 1 数量 * 规格 2 数量 * 规格 3 数量【注意:最多只支持三级规格】

2)我们以第一规格为颜色(红色、黄色)、第二规格为产地(福建、浙江)、第三规格为品种(麒麟瓜)为例。
所以我们 sku_stocks 数量 = 颜色(2 种) * 产地(2 种) * 品种(1 种)= 4 条 sku 数据。

3)代码示例:

youzanItemCreateParams.setSkuStocks("[{\"price\":10000,\"quantity\":100,\"item_no\":\"XIGUA-1\",\"skus\":[{\"k\":\"颜色\",\"kid\":1,\"v\":\"红色\",\"vid\":1111},{\"k\":\"产地\",\"kid\":2,\"v\":\"福建\",\"vid\":2222},{\"k\":\"品种\",\"kid\":3,\"v\":\"麒麟瓜\",\"vid\":3333}]},{\"price\":20000,\"quantity\":200,\"item_no\":\"XIGUA-2\",\"skus\":[{\"k\":\"颜色\",\"kid\":1,\"v\":\"红色\",\"vid\":1111},{\"k\":\"产地\",\"kid\":2,\"v\":\"浙江\",\"vid\":2223},{\"k\":\"品种\",\"kid\":3,\"v\":\"麒麟瓜\",\"vid\":3333}]},{\"price\":30000,\"quantity\":300,\"item_no\":\"XIGUA-3\",\"skus\":[{\"k\":\"颜色\",\"kid\":1,\"v\":\"黄色\",\"vid\":1112},{\"k\":\"产地\",\"kid\":2,\"v\":\"福建\",\"vid\":2222},{\"k\":\"品种\",\"kid\":3,\"v\":\"麒麟瓜\",\"vid\":3333}]},{\"price\":40000,\"quantity\":400,\"item_no\":\"XIGUA-4\",\"skus\":[{\"k\":\"颜色\",\"kid\":1,\"v\":\"黄色\",\"vid\":1112},{\"k\":\"产地\",\"kid\":2,\"v\":\"浙江\",\"vid\":2223},{\"k\":\"品种\",\"kid\":3,\"v\":\"麒麟瓜\",\"vid\":3333}]}]");

JSON 格式参数直观展示点击查看

4)入参注意点:
①、sku_stocks 表示 sku 的 JSON 字符串,传入一定要按照上面的格式示例。
②、price 是 sku 价格,quantity 是 sku 的库存,item_no 是 sku 的商家编码,k 是规格名称,kid 是规格名称对应的 id,v 是规格值名称,vid 是规格值名称对应的 id。
③、sku 中的 kid 和 vid 是开发者自定义的,只需要保证每个 sku 中相同规格的 kid、vid 值一致即可。例如颜色的 kid 都是 1,浙江的 vid 都是 2223。
④、k 规格名称、v 规格值名称不要超过 20 个字符且不要传入特殊字符,否则会报 code:121001001,message:规格名称非法(缺失或者过长)。

5)微商城生成的商品示例:
10001.png

3、关于 item_sku_extends 的传值规则

1)商品 sku 扩展信息,组装成一个 JSON, 与 sku_stocks 参数匹配。如上面传入的 sku_stocks,cost_price 为该规格对应的商品成本价,s1 为规格层级 1 对应的 vid,s2 为规格层级 2 对应的 vid…以此类推。传入一定要按照这个格式:[{“cost_price”:8000,“s1”:1111,“s2”:2222,“s3”:3333,“s4”:0,“s5”:0},…]

2)无规格商品若需要设置成本价则传入 [{“cost_price”:8000,“s1”:0,“s2”:0,“s3”:0,“s4”:0,“s5”:0}]; 多规格商品若只设置部分规格商品成本价,则无成本价的 sku 成本价传入 -1, 如 [{“cost_price”:8000,“s1”:1111,“s2”:2222,“s3”:3333,“s4”:0,“s5”:0},{“cost_price”:-1,“s1”:1111,“s2”:2223,“s3”:3333,“s4”:0,“s5”:0},…]

3)代码示例:

youzanItemCreateParams.setItemSkuExtends("[{\"cost_price\":8000,\"s1\":1111,\"s2\":2222,\"s3\":3333,\"s4\":0,\"s5\":0},{\"cost_price\":17000,\"s1\":1111,\"s2\":2223,\"s3\":3333,\"s4\":0,\"s5\":0},{\"cost_price\":-1,\"s1\":1112,\"s2\":2222,\"s3\":3333,\"s4\":0,\"s5\":0},{\"cost_price\":-1,\"s1\":1112,\"s2\":2223,\"s3\":3333,\"s4\":0,\"s5\":0}]");

JSON 格式参数直观展示点击查看

4)微商城生成的商品示例:
10002.png

4、关于 sku_images 的传值规则

1)SKU 图片,与商品规格匹配的的规格图片,注意仅支持为第一组规格设置规格图片,买家选择不同规格会看到对应规格图片。

2)代码示例:

youzanItemCreateParams.setSkuImages("[{\"v\":\"红色\",\"img_url\":\"https://img.yzcdn.cn/upload_files/2019/06/05/FhQMXApjuvEnl47VaK_GCaGp565R.jpg\"},{\"v\":\"黄色\",\"img_url\":\"https://img.yzcdn.cn/upload_files/2019/06/05/Fqoq8JtHgEZmPeKWSVZfBAPDfUzA.jpg\"}]");

JSON 格式参数直观展示点击查看

3)入参注意点:
①、sku_images 表示第一级规格的 sku 图片。 参数一定要与 sku_stocks 参数匹配。 传入格式:“sku_images”:“[{"v":"v1","img_url":"img_url1"}
]”
②、第一级规格每个规格值名称只支持传入一张 sku 图片。例如颜色是我们第一级规格,红色和黄色是其对应的规格值名称。
③、img_url 获取方式:
方式一:youzan.materials.storage.platform.img.upload 图片上传接口返回图片链接 image_url;
方式二:微商城店铺后台–店铺–素材中心–图片列表点击图片链接–点击复制。

4)微商城生成的商品示例:
10003.png

5、关于 sku_weight 的传值规则

1)代码示例

youzanItemCreateParams.setDeliveryTemplateId(706441L);
youzanItemCreateParams.setSkuWeight("11000,21000,31000,41000");//和SKU对应,只校验个数。单位:克

2)微商城生成的商品示例:
10004.png

6、关于 messages 的传值规则

1)messages 表示商品留言信息。其中 type 与页面中的类型对应,比如:文本格式、日期、邮件等;editable 表示是否可以修改,multiple 表示是否多行,required 表示是否必填

2)代码示例:

youzanItemCreateParams.setMessages("[{\"datetime\":0,\"editable\":true,\"multiple\":1,\"name\":\"文本格式\",\"required\":1,\"type\":\"text\"},{\"datetime\":0,\"editable\":true,\"multiple\":0,\"name\":\"数字格式\",\"required\":0,\"type\":\"tel\"},{\"datetime\":0,\"editable\":true,\"multiple\":0,\"name\":\"邮件格式\",\"required\":0,\"type\":\"email\"},{\"datetime\":0,\"editable\":true,\"multiple\":0,\"name\":\"日期格式\",\"required\":0,\"type\":\"date\"},{\"datetime\":0,\"editable\":true,\"multiple\":0,\"name\":\"时间格式\",\"required\":0,\"type\":\"time\"},{\"datetime\":0,\"editable\":true,\"multiple\":0,\"name\":\"身份证号格式\",\"required\":0,\"type\":\"id_no\"},{\"datetime\":0,\"editable\":true,\"multiple\":0,\"name\":\"图片格式\",\"required\":0,\"type\":\"image\"},{\"datetime\":0,\"editable\":true,\"multiple\":0,\"name\":\"手机号格式\",\"required\":0,\"type\":\"mobile\"}]");

JSON 格式参数直观展示点击查看

3)微商城生成的商品示例:
10005.png

7、关于 desc 的传值规则

1)desc 表示商品描述,字数要大于 5 个字符,小于 25000 个字符,受违禁词控制;
2)商品描述详情如何添加图片,示例:
descDemo.png

3)注意点:image_ids 和 img 可以使用图片上传接口youzan.materials.storage.platform.img.upload,将图片上传至有赞店铺,拿到 image_id 和 image_url,才能在创建商品的接口里使用。