商品信息修改
相关API
API名称 | 描述 |
taobao.items.onsale.get | 获取当前会话用户出售中的商品列表 |
taobao.items.inventory.get | 得到当前会话用户库存中的商品列表 |
taobao.items.custom.get | 根据商家编码取商品 |
taobao.skus.custom.get | 根据sku的商家编码取商品sku |
taobao.increment.items.get | 获取商品变更通知信息 |
taobao.item.update | 更新商品信息 |
taobao.item.sku.update | 更新SKU信息 |
taobao.item.update.delisting | 商品下架 |
taobao.item.update.listing | 一口价商品上架 |
逻辑与规则
全量下载:
通过taobao.items.onsale.get(获取店铺出售中商品信息)和 taobao.items.inventory.get(获取店铺仓库中商品信息)可获取店铺中所有商品,API 支持根据卖家昵称、类目、关键字等字段来搜索商品。
针对商品的下载:
对于已有统一管理商品数据(例如条形码)的卖家,可以通过商家编码(供卖家自定义输入的编码)与淘宝商品/sku做对应关系。
如下图:
对于有sku的商品,通过taobao.skus.custom.get(根据sku的商家编码取商品sku)获取sku;无sku的商品,通过taobao.items.custom.get(根据商家编码取商品)获取商品。
更新数量:
当商品包含sku时,更新商品总量无效,始终等于各sku数量之和。
由于架上商品不能为0,要将无sku的商品数量或者有sku商品的最后一个sku数量更新为0时,需要对商品先进行下架操作,可以通过taobao.item.update.delisting(商品下架)
更新价格:
带sku的商品,有一口价和sku价格两个价格,如下图红框标识:
基本规则:商品一口价必须介于有效sku的价格区间内。
有效sku:数量大于0的称为有效sku.
以taobao.item.sku.update的调用为例:
有效sku = 0时,更新sku的价格不受限制,除必填参数外,还需传入的参数为:price(sku价格)
有效sku = 1时,商品价格必须等于sku价格,这种情况,淘宝系统会自动更新商品价格,除必填参数外,还需传入的参数为:price(sku价格)
有效sku>=2时,商品价格介于有效sku之间,除必填参数外,还需传入的参数为:price(sku价格), item_price(商品价格),否则将会返回“价格不在区间内的异常”
新增销售属性:
在淘宝页面发布或者编辑商品时,会根据商品的销售属性自动组合出完整的sku,如图:
当首次入库时只有三个sku :a,b,c,如果通过淘宝页面发布商品, 则系统会自动保存四个sku填充矩阵,如:d 数量默认为0,价格等于商品价格。
但是在本地系统中,可能只保存了a、b、c三个sku,再次入库d时,会判断为新入库而执行sku新增的操作,这样API将返回错误,重复添加sku属性
针对这种情况,暂给出三种解决方案
方案一:
采用与淘宝相同的逻辑,在入库时只要有存在的销售属性自动完成矩阵。
方案二:
使用API发布或者修改商品不会出现上述问题,但是在淘宝页面编辑商品后,依然会填充矩阵。
方案三:
新增sku前先对比淘宝上商品的sku数据,如果存在此sku则修改,不存在则添加。
增量更新:
方案一:
使用 消息服务 的方式,由淘宝主动推送商品库存、价格等变更消息,应用程序接收到消息后,调用api做库存或价格等更新
方案二:
每条商品信息有一个修改时间字段modified,通过接口taobao.items.onsale.get和taobao.items.inventory.get指定时间段(start_modified,end_modified),可以获取此时间段内有信息更改过的商品列表
使用场景:
当在淘宝店铺编辑商品信息之后,以此方法获取被修改的商品信息,同步到本地,保持商品数据的一致,类似于增量API的功能。正常的商品交易过程导致的商品数量变化也会更新此修改时间。
FAQ
- 关于此文档暂时还没有FAQ