淘宝获取商品SKU详情API接口操作指南
一、前置准备
1. 注册与认证
- 注册开发者账号:访问淘宝开放平台,使用淘宝账号注册并完成企业实名认证(需提交营业执照、法人身份证等材料)。
- 创建应用:
- 登录开发者中心,进入控制台 > 应用管理 > 创建应用。
- 填写应用名称(如“商品SKU管理工具”)、描述,选择类型为“电商服务”或“自用型”。
- 提交后获取App Key和App Secret,作为调用API的身份凭证。
- 申请API权限:
- 在应用管理页面,勾选所需权限:
taobao.item.sku.get
(获取SKU详情)taobao.skus.quantity.update
(更新库存,可选)
- 提交申请并等待审核(1-3个工作日)。
- 在应用管理页面,勾选所需权限:
2. 环境配置
- 开发语言:推荐使用Python、Java等支持HTTP请求的语言。
- 依赖库:安装
requests
库(Python)用于发送HTTP请求。
二、API调用流程
1. 接口选择
- 获取单个SKU详情:使用
taobao.item.sku.get
接口。 - 批量获取SKU:
- 调用
taobao.items.onsale.get
获取在售商品列表。 - 遍历商品ID,逐个调用
taobao.item.sku.get
获取SKU信息。
- 调用
2. 请求构造
接口地址
- 正式环境:
https://gw.api.taobao.com/router/rest
请求参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
method | String | 是 | 接口名称,如taobao.item.sku.get |
app_key | String | 是 | 淘宝分配的App Key |
timestamp | String | 是 | 时间戳,格式YYYY-MM-DD HH:mm:ss (GMT+8) |
format | String | 是 | 响应格式,推荐json |
v | String | 是 | API协议版本,填2.0 |
sign_method | String | 是 | 签名算法,填md5 或hmac-sha256 |
num_iid | Number | 是 | 商品ID(如652874751412 ) |
sku_id | Number | 否 | SKU ID(获取特定SKU时必填) |
fields | String | 否 | 指定返回字段,如sku.price,sku.properties,sku.quantity (不填则返回全部) |
签名生成
- 将所有参数按字母顺序排序,拼接为字符串(如
app_keyxxxmethodxxx...
)。 - 使用
App Secret
对拼接后的字符串进行加密:python
import hashlib
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
query = "".join([f"{k}{v}" for k, v in sorted_params])
sign = hashlib.md5((query + app_secret).encode()).hexdigest().upper()
return sign
3. 发送请求
- 示例代码(Python):
python
import requests
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
num_iid = "652874751412" # 替换为实际商品ID
# 构造请求参数
params = {
"method": "taobao.item.sku.get",
"app_key": app_key,
"timestamp": "2025-07-24 09:30:00",
"format": "json",
"v": "2.0",
"sign_method": "md5",
"num_iid": num_iid,
"fields": "sku.price,sku.properties,sku.quantity"
}
# 生成签名
sign = generate_sign(params, app_secret)
params["sign"] = sign
# 发送请求
response = requests.get("https://gw.api.taobao.com/router/rest", params=params)
print(response.json())
三、响应处理
1. 响应解析
- 成功响应:
json
{
"taobao_item_sku_get_response": {
"skus": {
"sku": [
{
"sku_id": "3880971359554",
"properties": "颜色:红色;尺码:M",
"price": "135.00",
"quantity": 200,
"img": "http://img.alicdn.com/xxx.jpg"
}
]
}
}
}
- 字段说明:
sku_id
:SKU唯一标识。properties
:属性组合(如“颜色:红色;尺码:M”)。price
:当前价格。quantity
:库存数量。img
:SKU图片URL。
2. 错误处理
- 常见错误码:
10001
:参数错误(检查参数格式)。20002
:商品不存在(确认商品ID是否正确)。30001
:权限不足(检查API权限申请状态)。
四、进阶实践
1. 流量控制
- 调用限制:
- 免费版:每日500次,企业认证可提升至10万次。
- 单IP限制:50QPS,建议分布式部署。
- 优化策略:
- 使用Redis缓存商品数据(如缓存1小时)。
- 合并请求,减少重复调用。
2. 数据存储
- 保存为CSV:
python
import csv
skus = response.json()["taobao_item_sku_get_response"]["skus"]["sku"]
with open("skus.csv", "w", newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(["SKU ID", "属性", "价格", "库存"])
for sku in skus:
writer.writerow([sku["sku_id"], sku["properties"], sku["price"], sku["quantity"]])
3. 实时更新
- 库存同步:调用
taobao.skus.quantity.update
接口实时更新库存。 - 价格监控:结合
is_promotion=1
参数获取活动价。
五、注意事项
- 合规性:
- 禁止存储用户敏感信息(如手机号、地址)。
- 图片URL需通过阿里OSS中转,避免直接使用淘宝源链接。
- 更新频率:商品信息每5分钟更新一次,高频场景建议加缓存
通过以上步骤,您可高效集成淘宝SKU接口,实现商品数据自动化管理。