有赞云开放接口商品场景对接说明

一、场景说明
    第三方系统需要将商品信息同步至有赞,上架到有赞商城或者同步至商城仓库,效果是在有赞的【商城后台 - 商品 - 商品管理】功能中创建一个对应的商品并同步商品基础信息。商品同步至有赞支持在后台维护商品信息,同时也可以通过接口来维护商品信息。主要涉及的接口有新增商品、更新商品、获取单个商品信息、获取出售中 / 仓库中的商品列表、上架 / 下架商品、全量或增量方式更新 SKU 库存等。
   商品信息同步说明:当需要同步的商品数量较多时,推荐使用接口同步;当需要同步的商品数量很少时,推荐使用后台创建方式;商家或系统对接方根据自己的情况和需求来选择。

二、涉及 API 接口及调用说明    

   在开始调用接口之前,先了解下涉及商品对接模块都有哪些名词:

名词 描述
商品规格 sku 通常表示规格、颜色、款式等,通过创建商品接口youzan.item.create.3.0.0生成
SPU 属性值、特性相同的商品就可以称为一个 spu
商品规格 id 通过创建商品接口youzan.item.create.3.0.0设置 sku 信息后生成的 id
规格编码 通过这个商家为商品设置的外部编号,可与商家外部系统对接,通过这个接口去查商品详情:youzan.skus.custom.get.3.0.0
商品编码 可调用此接口youzan.items.custom.get.3.0.0获取
商品 id 1. 微商城后台编辑商品,查看链接部分最后的“id=”2. 或者获取单个商品信息可获得
商品别名 商品链接最后的部分,例如https://h5.youzan.com/wscshop/goods/2x9272j7pmw9q,该商品别名 alias:2x9272j7pmw9q
cid 商品分类的叶子类目 id,通过接口youzan.itemcategories.get.3.0.0获取
商品成本价 是指产品生产等成本录入到商品信息中,商家可以在数据 - 数据概况 - 管理视窗中,查看利润额

1、商品创建及更新场景
场景说明:商家需要将外部系统的商品同步至有赞,在有赞商城出售,同时在后期能够对商品的信息进行维护更新;
——微商城后台 - 商品 - 商品管理界面,点击“发布商品”可以添加需要出售的商品;填写商品详细信息后点击下一步,对商品添加一些详情描述就可以发布商品了;
image.png
image.png

——添加完成后,即可在商品管理中看到已添加的商品,如果想推广该商品,可以点击商品右侧的“推广商品”获取推广二维码及推广链接;
image.png

——通过哪个接口可以将外部系统的商品一键同步到有赞?或者如何通过接口在商城后台新增商品?
(1)商品创建接口:youzan.item.create.3.0.0 
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/71
(3)重要字段说明:
》》cid: 商品分类的叶子类目 id,可以通过接口:youzan.itemcategories.get.3.0.0 获取到;
 链接地址:https://doc.youzanyun.com/doc#/content/API/1-302/detail/api/0/186 ,此处的 cid 也就是商品分组 id,也叫商品标签 id;
》》delivery_template_id: 运费模板 ID,可以通过接口:youzan.logistics.template.search.3.0.0
链接地址:https://doc.youzanyun.com/doc#/content/API/1-316/detail/api/0/11
》》image_ids:图片 id 列表,用逗号分隔。可以通过接口:youzan.materials.storage.platform.img.upload.3.0.0 获取到;
链接地址:https://doc.youzanyun.com/doc#/content/API/1-372/detail/api/0/193上传图片接口去上传图片后获取图片 id;
》》item_no:商品货号 / 商品编码,商家为商品设置的外部编号,对应有赞微商城后台 - 商品管理 - 商品编辑信息中的商品编码;主要用于外部系统也有自己的商品编号的场景,用于和有赞的商品 ID 形成关联,方便运营管理;
》》price:价格,单位是“分”;
》》desc:
desc 表示商品描述,字数要大于 5 个字符,小于 25000 个字符,受违禁词控制;
注意点:image_ids 和 img 可以使用图片上传接口youzan.materials.storage.platform.img.upload,将图片上传至有赞店铺,拿到 image_id 和 image_url,才能在创建商品的接口里使用;
》》tag_ids:商品分组 ID 列表,可以通过分组列表接口获取:youzan.itemcategories.taglist.search.3.0.0
链接地址:https://doc.youzanyun.com/doc#/content/API/1-302/detail/api/0/72
》》title:商品标题,不能超过 100 字,受违禁词控制;
》》sku_stocks:sku 的 JSON 字符串,传入一定要按照这个格式:
[{ “price”:10000, “quantity”:100, “item_no”:“MOYU-1”, “skus”:[ { “k”:“颜色”, “v”:“绿色”,}, {“k”:“尺寸”, “v”:“l”,}, {“k”:“内存”, “v”:“1024G”,} ] }, {“price”:10000, “quantity”:100, “item_no”:“MOYU-2”,“skus”:[ { “k”:“颜色”, “v”:“绿色”,}, {“k”:“尺寸”, “v”:“l”,}, {“k”:“内存”, “v”:“16G”,} ] } ] 
price 是 sku 价格,quantity 是 sku 的库存,item_no 是 sku 的商家编码,k 是规格名称,v 是规格值名称;
要注意:sku_stocks 数量 = 规格 1 数量 * 规格 2 数量 * 规格 3 数量【注意:最多只支持三级规格】,即使有的 SKU 搭配是没有的,也要以库存 0 的形式传进来,否则会报错 sku 信息不完整;
入参注意点:
①、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:规格名称非法(缺失或者过长)
》》sku_images:SKU 图片,仅支持第一级规格, 参数一定要与 sku_stocks 参数匹配, 如 sku_stocks 参数是这样的 [{ “price”:10000, “quantity”:100, “item_no”:“MOYU-1”, “skus”:[ { “k”:“颜色”, “v”:“绿色”,}, {“k”:“尺寸”, “v”:“l”,}, {“k”:“内存”, “v”:“1024G”,} ] }, {“price”:10000, “quantity”:100, “item_no”:“MOYU-2”,“skus”:[ { “k”:“颜色”, “v”:“绿色”,}, {“k”:“尺寸”, “v”:“l”,}, {“k”:“内存”, “v”:“16G”,} ] } ] 颜色就是第一级规格。它下面的规格只有“绿色”这一项,sku_images 应该与之一一对应,如下 :
[{“v":“绿色”,“img_url”:“www.youzan.com”}]
 请务必按此格式传参数,不然校验通不过,无法新增商品
(4)调用格式, 通过(2)中链接访问后:
image.png

(5)HTTP 调用示例:

curl -X POST "https://open.youzanyun.com/api/youzan.item.create/3.0.0?access_token=1418980f9c172ef783fd29c5468ecd76" -H 'content-type: application/json' -d '{"hide_stock":0,"auto_listing_time":1558592472,"item_type":0,"title":"\u4e0b\u4e00\u8bb2\u76f4\u64ad\u6d4b\u8bd5","item_no":"3378","price":100,"tag_ids":"99963428","quantity":1000,"image_ids":2387622830,"desc":"Just a test","cid":1000015,"is_display":0}'

(6)JAVA 调用示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemCreate youzanItemCreate = new YouzanItemCreate();
//创建参数对象,并设置参数(必传示例)
YouzanItemCreateParams youzanItemCreateParams = new YouzanItemCreateParams();
youzanItemCreateParams.setTitle("一包薯片");
youzanItemCreateParams.setDesc("创建一个普通商品,我是商品描述");
youzanItemCreateParams.setImageIds("1401286001");
youzanItemCreateParams.setPrice(1000L);
youzanItemCreateParams.setAutoListingTime(0L);
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}]}]");
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}]");
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\"}]");
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\"}]");
youzanItemCreate.setAPIParams(youzanItemCreateParams);

注:更多创建商品接口详情,请参考文档:https://developers.youzanyun.com/article/1560404411445
——商品信息发生变化,如何更新商品信息?微商城后台 - 商品管理,点击编辑按钮即可修改商品信息; 
image.png

——通过哪个接口可以更新商品信息?
(1)商品信息更新接口:youzan.item.update.3.0.1
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/517
(3)重要字段说明:
》》item_id:商品 ID,通过商品创建接口创建商品后返回的 ID,也可以通过接口:youzan.item.search.3.0.0 获取
链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/20批量获取;
其他字段同以上商品创建接口,不再做说明;
(4)调用格式,通过(2)中链接访问后:
image.png

(5)HTTP 请求示例:

curl -X POST "https://open.youzanyun.com/api/youzan.item.update/3.0.1?access_token=c3220121ae0fc6c4e11123370e0d1b03" -H 'content-type: application/json' -d '{ "auto_listing_time":"0","hide_stock":"0","refund_param":"0","post_fee":"1000", "buy_quota":"0","title":"test","item_id":"4989893"}'

(6)JAVA 请求示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemUpdate youzanItemUpdate = new YouzanItemUpdate();
//创建参数对象,并设置参数
YouzanItemUpdateParams youzanItemUpdateParams = new YouzanItemUpdateParams();
youzanItemUpdateParams.setAutoListingTime(0L);
youzanItemUpdateParams.setBuyQuota(1);
youzanItemUpdateParams.setTitle("一包薯片");
youzanItemUpdateParams.setTagIds("298983");
youzanItemUpdateParams.setQuantity(100L);
youzanItemUpdateParams.setPrice(100L);
youzanItemUpdateParams.setRefundParam("0");
youzanItemUpdateParams.setImageIds("2222");
youzanItemUpdateParams.setIsDisplay(0);
youzanItemUpdateParams.setHideStock(0);
youzanItemUpdateParams.setItemNo("29894893");
youzanItemUpdateParams.setItemId(409293L);
youzanItemUpdate.setAPIParams(youzanItemUpdateParams);

2、上架 / 下架商品场景
场景说明:微商城后台可以手动操作商品的上架和下架,当需要维护的商品量较大时,就需要接口的辅助了;此场景主要说明如何在后台上架 / 下架商品,如何通过接口快速的上架 / 下架商品;
——微商城后台 - 商品 - 商品管理,默认会显示“出售中”的商品,勾选需要下架的商品,然后点击下方的下架即可下架商品;下架后,商品将会出现在“仓库中”列表中; 
image.png

——通过哪个接口可以一键下架商品? 
(1)下架商品:youzan.item.update.delisting.3.0.1
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/520 
(3)重要字段说明:
》》item_id:商品 ID,通过商品创建接口创建商品后返回的 ID,也可以通过接口:youzan.items.onsale.get.3.0.0;
链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/45批量获取出售中的商品 ID 信息;
(4)调用格式,通过(2)中链接访问后:
image.png

(5)HTTP 调用示例:

curl -X POST "https://open.youzanyun.com/api/youzan.item.update.delisting/3.0.1?access_token=c3220121ae0fc6c4e11123370e0d1b03" -H 'content-type: application/json' -d '{ "item_id":"409878", "yz_open_id":"3hf8Fb8I596768747084054528"}'

(6)JAVA 调用示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemUpdateDelisting youzanItemUpdateDelisting = new YouzanItemUpdateDelisting();
 //创建参数对象,并设置参数
YouzanItemUpdateDelistingParams youzanItemUpdateDelistingParams = new YouzanItemUpdateDelistingParams();
youzanItemUpdateDelistingParams.setAdminId(111L);
youzanItemUpdateDelistingParams.setItemId(4090909L);
youzanItemUpdateDelisting.setAPIParams(youzanItemUpdateDelistingParams);

——如何上架商品?微商城后台 - 商品 - 商品管理,选择“仓库中”的商品,勾选需要上架的商品进行上架即可;
image.png

——通过哪个接口可以一键上架商品?
(1)上架商品:youzan.item.update.listing.3.0.1
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/516
(3)重要字段说明:
》》item_id:商品 ID,通过商品创建接口创建商品后返回的 ID,也可以通过接口
链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/516批量获取仓库中的商品 ID 信息;
(4)调用格式,通过(2)中链接访问后: 
image.png

(5)HTTP 调用示例:

curl -X POST "https://open.youzanyun.com/api/youzan.item.update.listing/3.0.1?access_token=c3220121ae0fc6c4e11123370e0d1b03" -H 'content-type: application/json' -d '{ "item_id":"409878", "yz_open_id":"3hf8Fb8I596768747084054528"}'

(6)JAVA 调用示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemUpdateListing youzanItemUpdateListing = new YouzanItemUpdateListing();
//创建参数对象,并设置参数
YouzanItemUpdateListingParams youzanItemUpdateListingParams = new YouzanItemUpdateListingParams();
youzanItemUpdateListingParams.setAdminId(122L);
youzanItemUpdateListingParams.setItemId(4099922L);
youzanItemUpdateListing.setAPIParams(youzanItemUpdateListingParams);

3、外部系统同步有赞商品场景
场景说明:有赞微商城在有一定的商品量之后,外部系统想要从有赞同步商品信息或是拉取商品信息做运营,如何从有赞获取到想要的商品信息?
——微商城后台 - 商品 - 商品管理,点击“导出报表”即可一键导出商品信息,导出文件为 csv 文件;
image.png

——通过哪个接口可以批量查询出售中的商品信息?
(1)获取出售中的商品列表:youzan.items.onsale.get.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/45
(3)重要字段说明:
》》order_by:排序方式,格式为 column:asc/desc,目前排序字段:1. 创建时间:created_time,2. 更新时间:update_time,3. 价格:price,4. 销量:sold_num;
》》page_no:页码,显示第几页的数据;
》》page_size:每页显示的条数,最大不能超过 300;
》》q:搜索字段,根据关键词搜索 title,只返回 title 中包含此关键词的商品;
》》update_time_start:更新开始时间,格式为时间戳,如 1534176000000,单位 ms ;
》》update_time_end:更新结束时间,格式为时间戳,如 1534262400000,单位 ms;
(4)调用格式,通过(2)中链接访问后: 
image.png

(5)HTTP 调用示例:

curl -X POST "https://open.youzanyun.com/api/youzan.items.onsale.get/3.0.0?access_token=c3220121ae0fc6c4e11123370e0d1b03" -H 'content-type: application/json' -d '{ "q":"一包薯片", "tag_id":"234528","order_by":"1","page_no":"1","update_time_start":"1563379200000","page_size":"20","update_time_end":"1563465600000"}'

(6)JAVA 调用示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemsOnsaleGetParams youzanItemsOnsaleGetParams = new YouzanItemsOnsaleGetParams();
YouzanItemsOnsaleGet youzanItemsOnsaleGet = new YouzanItemsOnsaleGet();
youzanItemsOnsaleGetParams.setPageNo(1);
youzanItemsOnsaleGetParams.setPageSize(20);
youzanItemsOnsaleGetParams.setQ("一包薯片");
youzanItemsOnsaleGetParams.setTagId(000L);
youzanItemsOnsaleGetParams.setUpdateTimeEnd(1563465600000L);
youzanItemsOnsaleGetParams.setUpdateTimeStart(1563379200000L);
youzanItemsOnsaleGet.setAPIParams(youzanItemsOnsaleGetParams);

——通过哪个接口可以批量查询仓库中的商品列表?
(1)获取仓库中的商品列表:youzan.items.inventory.get.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/61
(3)重要字段说明:
》》banner:分类字段,可选值:for_shelved(已下架的)/ sold_out(已售罄的)
》》order_by:排序方式。格式为 column:asc/desc,目前排序字段:1. 创建时间:created_time,2. 更新时间:update_time,3. 价格:price,4. 销量:sold_num;
》》page_no:页码,拉取第几页的数据;
》》page_size:每页条数,即每页显示多少条的商品数据,最大不超过 300;
》》q:搜索字段,根据关键词搜索 title,只返回 title 中包含此关键词的商品;
》》update_time_start:更新开始时间,格式为时间戳,如 1534176000000,单位 ms ;
》》update_time_end:更新结束时间,格式为时间戳,如 1534262400000,单位 ms;
》》tag_id:商品分组的 ID,可以通过接口:youzan.itemcategories.taglist.search.3.0.0
链接地址:https://doc.youzanyun.com/doc#/content/API/1-302/detail/api/0/72 批量获取;
(4)调用格式,通过(2)中链接访问后:
image.png

(5)HTTP 调用示例:

curl -X POST "https://open.youzanyun.com/api/youzan.items.inventory.get/3.0.0?access_token=c3220121ae0fc6c4e11123370e0d1b03" -H 'content-type: application/json' -d '{ "q":"一包薯片", "tag_id":"234528","order_by":"1","page_no":"1","update_time_start":"1563379200000","page_size":"20","update_time_end":"1563465600000","banner":"for_shelved"}'

(6)JAVA 调用示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemsInventoryGet youzanItemsInventoryGet = new YouzanItemsInventoryGet();
//创建参数对象,并设置参数
YouzanItemsInventoryGetParams youzanItemsInventoryGetParams = new YouzanItemsInventoryGetParams();
youzanItemsInventoryGetParams.setBanner("for_shelved");
youzanItemsInventoryGetParams.setOrderBy("908909933");
youzanItemsInventoryGetParams.setQ("一包薯片");
youzanItemsInventoryGetParams.setPageSize(20);
youzanItemsInventoryGetParams.setPageNo(1);
youzanItemsInventoryGetParams.setUpdateTimeEnd(1563465600000L);
youzanItemsInventoryGetParams.setUpdateTimeStart(1563379200000L);
youzanItemsInventoryGet.setAPIParams(youzanItemsInventoryGetParams);

4、商品 SKU 信息维护场景
场景说明:外部系统和有赞进行商品信息的对接,商品会包含基础信息和 SKU 信息,基础信息基本不会有大的变化,但是 SKU 信息中的库存和价格的变化可能比较频繁,并且 SKU 信息的结构也相对比较复杂,本节主要说明如何对商品 SKU 信息中库存和价格进行维护。
——如何在微商城中修改 / 更新商品的 SKU 信息?微商城后台 - 商品 - 商品管理,点击商品右侧的“编辑”选项,即可进入商品信息修改界面;在规格信息模块,修改规格信息保存即可。
image.png

——通过哪个接口可以更新商品 SKU 信息中的价格和库存?
(1)更新 SKU:youzan.item.sku.update.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/47
(3)重要字段说明:
》》item_id:商品 ID,通过商品创建接口创建商品后返回的 ID,也可以通过接口https://www.youzanyun.com/apilist/detail/group_item/item/youzan.item.search 批量获取;
》》item_no:商品编码,商家为商品的设置的外部编码;
》》price:商品价格,sku 销售价格,精确到小数点 2 位,单位: 元;
》》quantity:SKU 库存数量;
》》sku_id:规格的 ID 值,需要更新的规格 ID 信息,可以通过接口:youzan.item.search.3.0.0
链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/20获取;
(4)调用格式,通过(2)中链接访问后:
image.png
 
(5)HTTP 调用示例:

curl -X POST "https://open.youzanyun.com/api/youzan.item.sku.update/3.0.0?access_token=1a3c3998f5f5a727264ca3462550661c" -H 'content-type: application/json' -d '{"item_id":"444377161","sku_id":16256327,"quantity":"2"}'

(6)JAVA 调用示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemSkuUpdate youzanItemSkuUpdate = new YouzanItemSkuUpdate();
//创建参数对象,并设置参数
YouzanItemSkuUpdateParams youzanItemSkuUpdateParams = new YouzanItemSkuUpdateParams();
youzanItemSkuUpdateParams.setQuantity("0");
youzanItemSkuUpdateParams.setItemId(479304885L);
youzanItemSkuUpdateParams.setSkuId(36338548L);
youzanItemSkuUpdate.setAPIParams(youzanItemSkuUpdateParams);

——通过哪个接口可以进行全量或增量的方式更新 SKU 库存?
(1)全量和增量方式更新 SKU 库存:youzan.item.quantity.update.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/48
(3)重要字段说明:
》》item_id:商品 ID,通过商品创建接口创建商品后返回的 ID,也可以通过接口:youzan.item.search.3.0.0
链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/20批量获取;
》》quantity:SKU 库存数量;
》》sku_id:规格编码,需要更新的规格 ID 信息,可以通过接口:youzan.item.get.3.0.0
链接地址:https://doc.youzanyun.com/doc#/content/API/1-299/detail/api/0/44获取;如果商品为无规格商品无需传入此参数,有规格商品必传;
》》type:库存更新方式:0 为全量更新,1 为增量更新 (默认为 0);举例:原商品库存为 10,当 type 为 0,quantity 为 6 时,接口调用成功后商品库存变为 6;当 type 为 1,quantity 为 6 时,接口调用成功后库存变为 16;
(4)调用格式,通过(2)中链接访问后: 
image.png

(5)HTTP 调用示例:

curl -X POST "https://open.youzanyun.com/api/youzan.item.quantity.update/3.0.0?access_token=c3220121ae0fc6c4e11123370e0d1b03" -H 'content-type: application/json' -d '{ "quantity":"20", "item_id":"4234528","type":"0","sku_id":"198938"}'

(6)JAVA 调用示例:

Token token = new Token("492f892459dce39286c04d27af7187a5");
DefaultYZClient yzClient = new DefaultYZClient();
YouzanItemQuantityUpdate youzanItemQuantityUpdate = new YouzanItemQuantityUpdate();
//创建参数对象,并设置参数
YouzanItemQuantityUpdateParams youzanItemQuantityUpdateParams = new YouzanItemQuantityUpdateParams();
youzanItemQuantityUpdateParams.setItemId(432244L);
youzanItemQuantityUpdateParams.setQuantity(20L);
youzanItemQuantityUpdateParams.setSkuId(39443L);
youzanItemQuantityUpdateParams.setType(0);
youzanItemQuantityUpdate.setAPIParams(youzanItemQuantityUpdateParams);

三、使用 Postman 接口调试工具排查问题

调用有赞云 API 接口出现问题时,可以使用 Postman 接口调试工具对调用参数进行检查,以此来确认是否是调用参数的问题。
Postman 接口调试工具下载地址:https://www.getpostman.com/downloads/
Postman 接口测试工具使用介绍:https://developers.youzanyun.com/article/1560842143144
正确示例: 
image.png

错误示例:
image.png