商品是卖家的核心数据,商品管理应用的基本功能是保证商品库存数量、价格、SKU和描述等信息的及时性、完整性。平台提供了多个接口来解决库存同步,商品价格更新,商品SKU更新,商品上下架等需求。
商品营销价格是根据使用的营销工具或参与平台大促活动,而有不同的优惠逻辑,一般由店铺运营人员在淘宝卖家中心里配置,不在商品API场景介绍。
淘宝商品管理会因为个别类目的规则 或者 平台活动临时要求,可能出现无法通过API编辑和更新商品的情况,以实际接口报错和平台规则为准。
1)淘宝商品id,它均由数字构成,且如同身份证号码一样具有唯一性,属于商品链接中的一部分。在淘宝页面可以以下方式查看。
直接打开商品的详情页面,看到浏览器地址栏中的宝贝链接,链接中找到“id=”,后面紧跟的一串数字就是商品id,如图:
【卖家中心】-【宝贝管理】-【出售中的宝贝】或【仓库中的宝贝】,ID显示在商品标题下方。
2)SKU是商品的最小库存量单位,简单的可理解为商品的具体规格:颜色、尺码等信息,比如: 鞋子的 黑色-39码 就是一个SKU,下图中每一个颜色和尺码的组合都是一个SKU;
3)商品上下架状态。 卖家发布的商品可以选择上架或者下架, 上架才能让展示在店铺中,让消费者访问正式售卖; 下架的商品会放在商品列表中无法对外展示,此时的商品状态为库中。
1)通用方案,先获取接口获取卖家商品列表,再通过商品列表中的商品id查询单个商品的详细信息。
先通过taobao.items.onsale.get(获取店铺出售中商品信息)和 taobao.items.inventory.get(获取店铺仓库中商品信息)可获取店铺中所有商品,API 支持根据卖家昵称、类目、关键字等字段来搜索商品。
再通过taobao.item.seller.get获取单个商品详细信息,能获取到商品标题,价格,SKU,属性,库存,主图,描述,状态等等商品的完整信息,具体需要哪些字段可以查看接口的描述文档。
2)对于已有统一管理商品数据(例如条形码或者自有商品编码)的卖家,可以通过商家编码(商品API字段中outer_id)与淘宝商品/sku做对应关系,在卖家中心编辑写入或者通过商品发布/更新接口写入。然后通过taobao.items.custom.get(根据商家编码取商品)获取商品,或者通过taobao.skus.custom.get(根据sku的商家编码取商品sku)获取sku。
当商品包含sku时,更新商品总量无效,始终等于各sku数量之和。
由于架上商品不能为0,要将无sku的商品数量或者有sku商品的最后一个sku数量更新为0时,需要对商品先进行下架操作,可以通过alibaba.item.operate.downshelf( 商品下架 )。
带sku的商品,有一口价和sku价格两个价格,如下图红框标识:
基本规则:商品一口价必须与有库存的sku价格一致,sku库存数量大于0的称为有效sku。
有效sku = 0时,也就是无SKU的商品,更新商品价格不受SKU限制,这种情况用tmall.item.price.update(该接口仅适用于天猫商品使用)为例,直接更新商品price;淘宝商品使用商品增量编辑接口alibaba.item.edit.fastupdate更新商品一口价。
有效sku = 1时,商品价格必须等于sku价格,这种情况用taobao.item.sku.update为例,淘宝系统会自动更新商品价格,传入的参数为:price(sku价格);
有效sku>=2时,商品价格介于有效sku之间,这种情况用taobao.item.sku.update为例,除必填参数外,还需传入的参数为:price(sku价格), item_price(商品价格),否则将会返回“价格不在区间内的异常”。
通过taobao.item.sku.add接口可以新增SKU,taobao.item.sku.update接口可以修改,要注意新增sku属性的基本逻辑。
在淘宝页面发布或者编辑商品时,会根据商品的销售属性自动组合出完整的sku,如图:
?
如果先通过淘宝页面发布了商品,则系统会自动根据颜色和尺码的组合保存四个sku矩阵:蓝1、蓝2、桔1、桔2。当时只有蓝1、蓝2、桔1有库存,则设置了桔2数量为0。
但是在商家自有系统中,可能只保存了蓝1、蓝2、桔1三个sku;再新增SKU-桔2时, API将返回错误,重复添加sku属性,因为桔2已经存在。针对这种情况,
1)自有系统采用与淘宝相同的逻辑,在入库时只要有存在的销售属性就进行枚举完全,保存完整SKU矩阵。
2)新增sku前先获取淘宝商品的sku数据,如果存在此sku则直接修改,不存在则添加。
alibaba.item.operate.downshelf( 商品下架 ) ,下架的商品无法被消费者访问也无法购买。
alibaba.item.operate.upshelf( 商品上架 ) 一口价商品上架,上架才能可以被消费者购买。
API名称 |
描述 |
获取当前会话用户出售中的商品列表 |
|
得到当前会话用户库存中的商品列表 |
|
根据商家编码取商品 |
|
根据sku的商家编码取商品sku |
|
全量编辑商品信息 |
|
增量编辑商品信息 |
|
更新SKU信息 |
|
商品下架 |
|
商品上架 |
|
获取单个商品详细信息 |
方案一:使用 消息服务(详情点击此处查看)的方式,由淘宝主动推送商品库存、价格等变更消息,应用程序接收到消息后,调用api做库存或价格等更新。
方案二:每条商品信息有一个修改时间字段modified,通过接口taobao.items.onsale.get和taobao.items.inventory.get指定时间段(start_modified,end_modified),可以获取此时间段内有信息更改过的商品列表。
商品主图和商品详情描述中的图片只能使用淘宝卖家图片空间的图片, 可以通过在 卖家图片空间 直接上传和管理图片。
如果需要系统对接可以使用图片上传管理接口,需要先开通卖家图片空间。
taobao.picture.upload ;taobao.picture.get;taobao.picture.delete
商品如果参加平台的官方营销活动,类似双十一大促活动,聚划算等,需要提前提报商品和库存,并且根据营销活动规则,商品将无法进行库存变更,或者无法编辑商品。为了减少商家库存变更的错误影响,提供了接口 taobao.item.promotion.rule.get 根据商品id获取该商品大促更新规则,需要注意接口中返回的 start_time,end_time,type的结果。因为随着时间推移,已生效的规则可能会失效。未生效的规则,可能会生效,因此遇到不允许修改的规则后,要调用这个API查询活动时间信息。常见规则有SKU锁定规则,下架锁定规则,库存减少锁定规则,库存禁止修改规则,一口价禁止修改规则。一般当商品编辑出现限制的报错以后,可以使用这个接口确认限制规则。