淘宝获取商品sku详情API接口如何调用?
以下是调用淘宝开放平台/万邦开放平台获取商品SKU详情API接口的具体步骤和示例:
一、API名称及参数
- API名称:
taobao.item.sku.get
- 主要功能:获取指定商品SKU的详细信息,包括属性、价格、库存等。
- 关键参数:
num_iid
:商品ID(必填)sku_id
:SKU ID(可选,不填则返回所有SKU)fields
:指定返回的字段(如sku_id,price,quantity,properties
)is_promotion
:是否返回促销价(0或1)
二、调用步骤
1. 获取Access Token
通过OAuth 2.0流程获取访问令牌(需用户授权或客户端凭证):
python复制代码
import requests | |
def get_access_token(app_key, app_secret): | |
url = "https://oauth.taobao.com/token" | |
params = { | |
"grant_type": "client_credentials", | |
"client_id": app_key, | |
"client_secret": app_secret | |
} | |
response = requests.post(url, data=params) | |
return response.json().get("access_token") |
2. 构造请求
python复制代码
def get_sku_details(app_key, app_secret, item_id, sku_id=None): | |
access_token = get_access_token(app_key, app_secret) | |
url = "https://eco.taobao.com/router/rest" | |
params = { | |
"method": "taobao.item.sku.get", | |
"app_key": app_key, | |
"session": access_token, | |
"num_iid": item_id, | |
"fields": "sku_id,price,quantity,properties,status", | |
"timestamp": str(int(time.time())), | |
"format": "json", | |
"v": "2.0", | |
"sign_method": "md5" | |
} | |
if sku_id: | |
params["sku_id"] = sku_id | |
# 生成签名(按文档规则) | |
sorted_params = sorted(params.items()) | |
sign_str = "".join([f"{k}{v}" for k, v in sorted_params if k not in ["sign"]]) | |
sign_str += app_secret | |
params["sign"] = hashlib.md5(sign_str.encode()).hexdigest().upper() | |
response = requests.get(url, params=params) | |
return response.json() |
3. 解析响应
python复制代码
import json | |
# 示例:获取商品ID为123456的SKU详情 | |
app_key = "your_app_key" | |
app_secret = "your_app_secret" | |
item_id = "123456" | |
result = get_sku_details(app_key, app_secret, item_id) | |
if result.get("taobao_response") and result["taobao_response"].get("code") == 200: | |
skus = result["taobao_response"]["item_sku_get_response"]["skus"]["sku"] | |
for sku in skus: | |
print(f"SKU ID: {sku['sku_id']}, 价格: {sku['price']}, 库存: {sku['quantity']}, 属性: {sku['properties']}") | |
else: | |
print("请求失败:", result.get("error_response", {}).get("msg")) |
三、响应示例
json复制代码
{ | |
"taobao_response": { | |
"code": 200, | |
"item_sku_get_response": { | |
"skus": { | |
"sku": [ | |
{ | |
"sku_id": 123, | |
"price": "200.00", | |
"quantity": 50, | |
"properties": "颜色:红色;尺码:M", | |
"status": "normal" | |
}, | |
{ | |
"sku_id": 456, | |
"price": "220.00", | |
"quantity": 30, | |
"properties": "颜色:蓝色;尺码:L", | |
"status": "normal" | |
} | |
] | |
} | |
} | |
} | |
} |
四、注意事项
- 权限申请:
确保应用已申请taobao.item.sku.get
权限,部分接口需提交业务场景说明。 - 频率限制:
遵守淘宝API的调用频率规则(如每天100万次),避免触发限流。 - 错误处理:
添加异常捕获逻辑(如网络错误、签名错误),确保程序健壮性。 - 数据安全:
敏感信息(如App Secret)需加密存储,避免泄露。 - 文档更新:
定期查看万邦开放平台-文档中心,适应接口规则变化。
五、常见错误码
错误码 | 描述 |
---|---|
50 | 远程服务错误 |
11 | API权限不足 |
15 | 签名错误 |
26 | 参数缺失或格式错误 |
通过以上步骤,您可以成功调用淘宝API获取商品SKU详情。如需进一步开发,建议结合具体业务需求参考官方文档。