一、接口定位
alibaba.item.get(或 com.alibaba.product:alibaba.agent.product.get-1)是官方提供的“单商品详情”接口,可一次性拿到商品标题、价格、SKU、主图、详情图、属性、店铺名等全量字段,适用于选品、铺货、比价、ERP 同步等场景 。
二、调用前置条件
注册 1688 开放平台账号,完成企业实名认证。
创建“自用型”或“第三方”应用,审核通过后获得 AppKey / AppSecret。
在“API 列表”中申请 alibaba.item.get 权限(1-3 个工作日)。
如访问非自有商品,需再申请“非授权商品”权限,否则只能取到公开字段 。
服务器出口配置 HTTPS,准备固定 IP 白名单。
三、核心参数
字段 类型 必须 说明
method String 是 固定值:alibaba.item.get
app_key String 是 应用唯一标识
timestamp String 是 毫秒级时间戳,有效期 10 min
item_id Long 是 1688 商品数字 ID(URL 中截取)
fields String 否 指定返回字段,逗号分隔,如 “item_id,title,price,sku_list,pics”
sign String 是 签名(见下方规则)
四、签名算法(MD5 版)
除 sign 外所有业务+系统参数按参数名 ASCII 升序排序。
拼接成 key1value1key2value2… 的字符串,首尾各拼一次 AppSecret。
对整串做 MD5 并转大写,得到 32 位 sign。
Python 示例:
Python
复制
def generate_sign(params, app_secret):
s = app_secret
for k, v in sorted(params.items()):
if v is not None and v != "":
s += f"{k}{v}"
s += app_secret
return hashlib.md5(s.encode()).hexdigest().upper()
五、完整请求示例(Python)
import time, requests, hashlib, urllib.parse
APP_KEY = "你的AppKey"
APP_SECRET = "你的AppSecret"
ITEM_ID = "699788888888"
params = {
"method" : "alibaba.item.get",
"app_key" : APP_KEY,
"timestamp" : str(int(time.time()*1000)),
"format" : "json",
"v" : "2.0",
"item_id" : ITEM_ID,
"fields" : "item_id,title,price,sku_list,pics,spec_info,shop_name"
}
params["sign"] = generate_sign(params, APP_SECRET)
url = "https://gw.open.1688.com/openapi/param2/1/alibaba.item.get"
r = requests.get(url, params=params, timeout=10)
data = r.json()
if "error_response" in data:
print("失败:", data["error_response"]["msg"])
else:
item = data["alibaba_item_get_response"]["item"]
print("标题:", item["title"])
print("价格:", item["price"])
print("SKU:", item["sku_list"])
六、返回字段速览(部分)
JSON 路径 含义 类型
item_id 商品数字 ID Long
title 商品标题 String
price 单价(元) String
sku_list[] SKU 数组 Array
sku_list[].spec_attributes 销售属性键值对 Object
sku_list[].price SKU 单价 String
sku_list[].amount_on_sale 可售库存 Integer
pics[] 主图+详情图 URL Array
spec_info 商品属性文本 String
shop_name 所属店铺名称 String
七、频率与配额
• 默认 5 次/秒,单日 5 000 次;高级套餐可扩容至 50 次/秒、50 万次/天 。
• 超出返回 429 错误,需指数退避重试。
八、常见错误码
代码 含义 处理建议
401 签名错误或令牌失效 检查 sign / token 是否过期
403 无接口权限 重新申请 alibaba.item.get
429 频率超限 降速、加队列、升级套餐
1001 商品不存在或已下架 跳过或标记失效
九、最佳实践
字段过滤:只拿业务所需字段,响应体积可缩小 70%+。
本地缓存:对类目、属性等静态数据缓存 24 h,减少无效调用。
Token 自动刷新:OAuth2 的 access_token 有效期 24 h,提前 10 min 刷新。
异步队列:把高频调用放入 Redis + Celery,平滑流量。
日志追踪:记录 request_id、耗时、返回码,方便与阿里工单对接。