🛍️ 淘宝商品详情API(taobao.item.get)Python/Java调用实战与字段解析
淘宝开放平台的
taobao.item.get是做商品同步、比价、铺货系统的核心接口,用来根据 num_iid(淘宝/天猫商品ID)获取标题、价格、SKU、库存、主图、详情HTML等结构化数据。一、接口关键信息
项目 | 说明 |
|---|---|
API名 | taobao.item.get |
网关 | 生产 https://gw.api.taobao.com/router/rest沙箱 https://gw.api.tbsandbox.com/router/rest |
必传参数 | num_iid(商品数字ID)、fields(指定返回字段) |
可选 | session(某些敏感字段需卖家授权,基础展示可不传) |
权限 | 需在开放平台应用勾选「商品详情查询(taobao.item.get)」 |
⚠️ 淘宝商品ID(num_iid)可从商品URL中提取:https://item.taobao.com/item.htm?id=654321098765→num_iid=654321098765
二、Python完整调用封装(复用TOP签名Client)
# top_item_get.py
"""
淘宝商品详情 taobao.item.get 调用示例
依赖: top_api_client.py (TaobaoTopClient from 上文)
"""
from top_api_client import TaobaoTopClient
# 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex
def get_tb_item_detail(num_iid: str, fields: str = None,
app_key=None, app_secret=None,
session=None, sandbox=True):
"""
获取淘宝/天猫商品详情
Args:
num_iid: 商品ID (num_iid)
fields: 返回字段,逗号分隔;
推荐: "num_iid,title,price,org_price,pic_url,item_imgs,skus,"
"props_name,desc,approve_status,num,outer_id"
session: 卖家授权token(取SKU库存等需传)
sandbox: True=沙箱 False=生产
Returns:
item 字典
"""
client = TaobaoTopClient(
app_key=app_key,
app_secret=app_secret,
sandbox=sandbox
)
fields = fields or (
"num_iid,title,price,org_price,pic_url,item_imgs,"
"skus,props_name,desc,approve_status,num,outer_id,"
"seller_nick,cid,input_str"
)
result = client.call(
"taobao.item.get",
biz_params={"num_iid": num_iid, "fields": fields},
session=session
)
return result.get("item", result)
# ======================= 使用示例 =======================
if __name__ == "__main__":
ITEM_ID = "654321098765" # ← 替换真实商品ID(自己的店铺商品或公开商品)
try:
item = get_tb_item_detail(
num_iid=ITEM_ID,
app_key="YOUR_TOP_APP_KEY",
app_secret="YOUR_TOP_APP_SECRET",
sandbox=True # 生产切 False;公开商品沙箱返回mock
# session="SELLER_SESSION" # 查自己店铺商品SKU库存需传
)
print("✅ 商品标题:", item.get("title"))
print(" 一口价:", item.get("price"))
print(" 主图:", item.get("pic_url"))
print(" 库存:", item.get("num"))
print(" SKU数:", len(item.get("skus") or []))
# 解析SKU
for sku in (item.get("skus") or [])[:3]:
print(f" SKU {sku.get('properties_name')} → 价:{sku.get('price')} 库:{sku.get('quantity')}")
if not item.get("skus"):
print(" ℹ️ skus为空 → 若是自己店铺商品需传 seller session 再查")
except Exception as e:
print("❌", e)三、核心返回字段解析(B2B/B2C铺货重点)
TOP返回字段 | 类型 | 含义 | 铺货用途 |
|---|---|---|---|
num_iid | long | 商品唯一ID | 外部单号关联 |
title | string | 商品标题(含营销词) | 截取适配目标平台长度 |
price | string | 一口价(元) | 零售价比价基准 |
org_price | string | 原价(划线价) | 促销展示 |
pic_url | string | 主图URL | 首图 |
item_imgs[].url | list | 所有商品图片 | 副图/详情图 |
skus[].price | string | SKU价格 | 多规格定价 |
skus[].quantity | int | SKU库存(需seller session) | 采购/超卖判断 |
skus[].properties_name | string | SKU规格描述(颜色:红;尺码:M) | SKU映射 |
skus[].outer_id | string | 商家编码 | 内部SKU匹配 |
props_name | string | 关键属性(品牌/材质等) | 补充信息 |
desc | string | 详情HTML(可能截断) | 详情页 |
approve_status | string | onsale/instock/deleted | 过滤下架 |
cid | long | 后台类目ID | 类目映射 |
SKU 典型结构
{
"sku_id": "1234567890",
"properties": "1627207:28335;20509:28381",
"properties_name": "颜色:红色;尺码:M",
"price": "199.00",
"quantity": 50,
"outer_id": "SKU-RED-M"
}四、Java调用核心片段(TOP Java SDK)
// TaobaoClient + JsonParser 由 top-sdk-java 提供
TaobaoClient client = new DefaultTaobaoClient(
"https://gw.api.taobao.com/router/rest",
"APP_KEY", "APP_SECRET"
);
ItemGetRequest req = new ItemGetRequest();
req.setNumIid(654321098765L);
req.setFields("num_iid,title,price,pic_url,skus,desc,num");
ItemGetResponse rsp = client.execute(req); // session传null查公开字段
Item item = rsp.getItem();
System.out.println(item.getTitle());
System.out.println(item.getPrice());五、高频避坑
问题 | 原因 | 解决 |
|---|---|---|
skus返回空 | 公开查询不返回库存SKU | 用卖家账号OAuth授权得 session 再查 |
desc为空/截断 | 部分类目详情在独立接口 taobao.item.desc.get | 补调 desc 接口 |
第三方商品403 | 未申请权限或AppKey无权限 | 控制台申请 taobao.item.get |
天猫商品拿不到 | num_iid正确但仍无数据 | 确认商品未删除 + 应用有权限(天猫多需额外审核) |
价格字段类型 | price是字符串不是数字 | Decimal(price)转再运算 |
六、面试/方案一句话
taobao.item.get按num_iid+fields获取商品结构化数据;公开字段(标题/价格/主图)可不传session,SKU库存和商家编码需卖家AccessToken;返回SKU用properties_name做规格映射,图片需转存目标平台图床再上架。
需要我补
taoboba.item.desc.get详情HTML获取 + 图片本地化转存脚本 或 淘宝→1688/抖音/Shopify铺货字段映射模板 吗?