速卖通(AliExpress)作为覆盖全球 200 多个国家和地区的跨境电商平台,其商品数据是跨境卖家、导购平台、Dropshipping 工具最核心的生产资料。与亚马逊类似,速卖通的商品详情能力也分散在联盟推广接口(Affiliate API)和开放平台卖家接口两大体系中。本文将系统梳理速卖通商品详情接口的全貌,并附可直接落地的代码示例。
一、速卖通详情接口的两大体系
速卖通的商品详情能力分散在两个不同的开放平台中,定位、权限、数据维度差异明显:
| 维度 | AliExpress Affiliate API(联盟接口) | AliExpress Open Platform(开放平台) |
|---|---|---|
| 面向对象 | 联盟推广者(Affiliate) | 速卖通卖家 / 授权开发者 |
| 核心接口 | aliexpress.affiliate.productdetail.get | aliexpress.solution.product.detail.get |
| 数据侧重 | 商品标题、价格、图片、佣金比例、优惠券、推广链接 | 完整商品目录、SKU 属性、库存、物流模板、店铺信息 |
| 权限要求 | 注册联盟账号,获取 AppKey | 卖家账户 / 企业开发者资质 + 应用审核 |
| 费用 | 免费,有调用配额限制 | 免费,部分高级接口需申请 |
| 适用场景 | 导购返利、比价网站、Dropshipping | ERP 同步、铺货工具、店铺运营 关键认知: 联盟接口虽然能拿到商品基础信息和佣金数据,但不含完整 SKU 规格属性、真实库存和物流模板详情,且价格字段是推广价视角,不能替代开放平台接口用于供应链或卖家运营场景。 |
二、联盟商品详情接口:aliexpress.affiliate.productdetail.get
这是速卖通联盟开放平台提供的接口,适合不需要卖家权限、只做商品展示和导购推广的场景。
2.1 接口基础信息
| 项目 | 说明 |
|---|---|
| 接口地址 | https://api-sg.aliexpress.com/sync |
| 协议 | HTTPS |
| 请求方式 | GET / POST |
| 数据格式 | JSON / XML |
| 认证方式 | AppKey + AppSecret + Access Token + HMAC-SHA256 签名 |
| 权限门槛 | 速卖通联盟账号 + 应用审核通过 |
2.2 核心请求参数
公共参数(所有调用必传):
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
app_key | String | 是 | 应用唯一标识 |
sign_method | String | 是 | 签名方法,固定 sha256 |
timestamp | String | 是 | 毫秒级时间戳 |
access_token | String | 是 | OAuth2.0 授权令牌 |
v | String | 是 | API 版本,固定 2.0 |
sign | String | 是 | HMAC-SHA256 大写签名 业务参数: 表格 |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
product_ids | String | 是 | 商品 ID 列表,多个用英文逗号分隔 |
target_currency | String | 否 | 目标币种,如 USD、EUR |
target_language | String | 否 | 目标语言,如 en、ru、es |
country | String | 否 | 目标国家,用于计算运费和本地化价格 |
2.3 HMAC-SHA256 签名生成(Python 完整示例)
速卖通联盟 API 采用 HMAC-SHA256 签名机制,签名规则为:
sign = HMAC-SHA256( app_secret, 所有参数按 key 升序拼接 ).upper()
Python 完整调用示例 :
Python
import requests
import hashlib
import hmac
import time
from urllib.parse import urlencode
APP_KEY = 'your_app_key'
APP_SECRET = 'your_app_secret'
ACCESS_TOKEN = 'your_access_token'
def generate_sign(params, app_secret):
# 按 key 升序排序
sorted_params = sorted(params.items(), key=lambda x: x[0])
# 拼接成 key=value 字符串(无分隔符)
query_str = ''.join([f"{k}{v}" for k, v in sorted_params])
# HMAC-SHA256 签名
signature = hmac.new(
app_secret.encode('utf-8'),
query_str.encode('utf-8'),
digestmod=hashlib.sha256
).hexdigest().upper()
return signature
def get_affiliate_product_detail(product_ids, target_currency='USD', target_language='en'):
"""
获取联盟商品详情
product_ids: 商品ID列表,如 ['33006951782', '32979201404']
"""
timestamp = str(int(time.time() * 1000))
# 公共参数
public_params = {
"app_key": APP_KEY,
"sign_method": "sha256",
"timestamp": timestamp,
"access_token": ACCESS_TOKEN,
"v": "2.0"
}
# 业务参数
business_params = {
"product_ids": ','.join(product_ids),
"target_currency": target_currency,
"target_language": target_language
}
# 合并参数并生成签名
all_params = {**public_params, **business_params}
all_params["sign"] = generate_sign(all_params, APP_SECRET)
# 发送请求
api_url = "https://api-sg.aliexpress.com/sync"
response = requests.get(f"{api_url}?{urlencode(all_params)}", timeout=30)
if response.status_code == 200:
return response.json()
else:
print(f"请求失败: {response.status_code}, {response.text}")
return None
# 调用示例
result = get_affiliate_product_detail(['33006951782'])
print(result)
2.4 返回数据结构解析
联盟商品详情接口返回结构如下 :
{
"aliexpress_affiliate_productdetail_get_response": {
"resp_result": {
"resp_code": 200,
"resp_msg": "success",
"result": {
"current_record_count": 1,
"products": {
"product": [
{
"product_id": "33006951782",
"product_title": "Spring Autumn mother daughter dress matching family outfits...",
"product_small_image_urls": {
"string": ["https://ae01.alicdn.com/..."]
},
"sale_price": 15.9,
"sale_price_currency": "USD",
"app_sale_price": 14.5,
"app_sale_price_currency": "USD",
"original_price": 30.0,
"original_price_currency": "USD",
"discount": "50%",
"commission_rate": "3.5%",
"evaluate_rate": "89.22%",
"lastest_volume": 300,
"shop_id": "111111",
"first_level_category_name": "dress",
"second_level_category_name": "Women's Clothing",
"promo_code_info": {
"promo_code": "GMG20207",
"code_value": "On order over USD 10, get USD 7 off",
"code_availabletime_start": "2020-04-01 00:00:00",
"code_availabletime_end": "2020-04-30 23:59:59"
},
"target_sale_price": 320.2,
"target_sale_price_currency": "USD"
}
]
}
}
}
}
}
| 字段路径 | 说明 |
|---|---|
product_title | 商品标题 |
sale_price | 当前售价 |
original_price | 原价/划线价 |
app_sale_price | App 端专享价 |
discount | 折扣比例 |
commission_rate | 佣金比例 |
evaluate_rate | 好评率 |
lastest_volume | 近 30 天销量 |
promo_code_info | 优惠券/促销码信息 |
target_sale_price | 目标市场本地化价格 ⚠️ 重要限制: |
- 单次最多查询 50 个商品 ID
- 不含完整 SKU 规格属性(颜色、尺码等变体详情)
- 不含真实库存数量
- 不含商品详情描述 HTML
三、开放平台卖家接口:aliexpress.solution.product.detail.get
如果你的业务是速卖通卖家运营、ERP 同步、铺货工具,必须使用开放平台接口。这是速卖通面向卖家的官方开发者接口,数据最全。
3.1 接口基础信息
| 项目 | 说明 |
|---|---|
| 接口地址 | https://api-sg.aliexpress.com/sync |
| 协议 | HTTPS |
| 请求方式 | GET / POST |
| 认证方式 | AppKey + AppSecret + Access Token + 签名 |
| 权限要求 | 速卖通卖家账户 + 企业开发者资质 + 应用审核 |
3.2 核心请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
method | String | 是 | 固定值:aliexpress.solution.product.detail.get |
product_id | String | 是 | 速卖通商品 ID |
language | String | 否 | 返回语言,如 en_US、ru_RU |
currency | String | 否 | 返回币种,如 USD |
3.3 返回数据结构解析
开放平台接口返回的商品数据比联盟接口丰富得多 :
{
"aliexpress_solution_product_detail_get_response": {
"result": {
"product_id": "32979201404",
"subject": "Smart Watch Men Women Blood Pressure Heart Rate Monitor...",
"language": "en",
"category_id": 200000705,
"product_status_type": "onSelling",
"ws_display": "110000",
"product_price": "25.99",
"product_unit": 1,
"delivery_time": 15,
"store_info": {
"store_id": 243686854,
"store_name": "Smart Watch Store",
"store_rating": 4.8
},
"sku_infos": {
"sku_info": [
{
"sku_id": "12000027123456789",
"sku_price": "25.99",
"sku_stock": 326,
"sku_property": [
{
"property_name": "Color",
"property_value": "Black"
},
{
"property_name": "Size",
"property_value": "44mm"
}
],
"sku_code": "SW-BLK-44",
"sku_image": "https://ae01.alicdn.com/...",
"ipm_sku_stock": 326
}
]
},
"image_urls": {
"string": [
"https://ae01.alicdn.com/...",
"https://ae01.alicdn.com/..."
]
},
"detail": "<html>商品详情富文本...</html>",
"properties": {
"property": [
{
"attr_name": "Language",
"attr_value": "English,Spanish,French"
},
{
"attr_name": "Band Material",
"attr_value": "Silica"
}
]
},
"freight_template_id": 123456,
"package_info": {
"package_length": 10,
"package_width": 8,
"package_height": 5,
"gross_weight": 0.3
},
"evaluation": {
"star_rating": 4.7,
"total_evaluations": 1523
}
}
}
}
关键字段说明:| 字段路径 | 说明 |
|---|---|
subject | 商品标题 |
product_price | 商品售价 |
product_status_type | 商品状态:onSelling(在售)/ offline(下架) |
sku_infos.sku_info[].sku_price | SKU 独立定价 |
sku_infos.sku_info[].sku_stock | SKU 实时库存 |
sku_infos.sku_info[].sku_property | SKU 规格属性(颜色、尺码等) |
image_urls.string[] | 商品主图列表 |
detail | 商品详情页富文本 HTML |
properties.property[] | 商品属性列表 |
freight_template_id | 物流模板 ID |
package_info | 包装尺寸和重量 |
evaluation.star_rating | 商品评分 |
四、商品搜索接口:aliexpress.item.search
在获取商品详情之前,通常需要先通过搜索接口找到目标商品。
4.1 接口基础信息
| 项目 | 说明 |
|---|---|
| 接口方法 | aliexpress.item.search |
| 功能 | 关键词搜索商品列表 |
| 请求方式 | GET / POST |
4.2 核心请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
keywords | String | 是 | 搜索关键词 |
page_no | Integer | 否 | 页码,默认 1 |
page_size | Integer | 否 | 每页数量,默认 10,最大 50 |
sort | String | 否 | 排序:priceAsc、priceDesc、saleDesc |
min_price | String | 否 | 最低价格 |
max_price | String | 否 | 最高价格 |
target_currency | String | 否 | 目标币种 |
target_language | String | 否 | 目标语言 |
4.3 搜索 + 详情联动示例
def search_and_get_detail(keyword, page_size=10):
"""
先搜索商品,再获取详情
"""
# 1. 搜索商品
search_params = {
"app_key": APP_KEY,
"sign_method": "sha256",
"timestamp": str(int(time.time() * 1000)),
"access_token": ACCESS_TOKEN,
"v": "2.0",
"method": "aliexpress.item.search",
"keywords": keyword,
"page_size": page_size,
"sort": "saleDesc",
"target_currency": "USD",
"target_language": "en"
}
search_params["sign"] = generate_sign(search_params, APP_SECRET)
api_url = "https://api-sg.aliexpress.com/sync"
search_resp = requests.get(f"{api_url}?{urlencode(search_params)}")
search_data = search_resp.json()
# 2. 提取商品ID列表
items = search_data.get("result", {}).get("items", [])
product_ids = [item.get("product_id") for item in items]
# 3. 批量获取详情
if product_ids:
detail = get_affiliate_product_detail(product_ids[:50])
return detail
return None
五、第三方数据服务商与替代方案
速卖通官方 API 有严格的权限门槛,很多场景下需要借助第三方方案 :
| 方案 | 核心能力 | 适用场景 | 注意点 |
|---|---|---|---|
| 速卖通联盟 API | 商品基础信息、佣金、优惠券 | 导购、返利、比价 | 需联盟账号,数据维度有限 |
| 店小秘 / 芒果店长 | 封装好的商品管理、铺货接口 | 多平台卖家 ERP | SaaS 付费,功能开箱即用 |
| 网页爬虫 | 可获取详情页完整 HTML | 个人学习、小规模采集 | 违反 robots.txt,易被风控封 IP,不推荐生产环境使用 选择建议: |
- 有技术团队 + 长期业务需求 → 申请官方 API
- 中小卖家快速启动 → 使用店小秘等第三方 ERP
- 只做导购展示 → 联盟 API 足够
六、六大业务场景落地指南
场景 1:Dropshipping 一键铺货
- 接口: 联盟 API productdetail.get + 开放平台 product.detail.get
- 核心字段: product_title、image_urls、sku_infos、detail
- 逻辑: 采集速卖通商品数据 → 清洗属性 → 映射到 Shopify / WooCommerce 类目 → 自动上架
- 注意: 图片需下载转存自有 CDN,详情 HTML 需清洗标签适配目标平台
场景 2:跨境选品与竞品监控
- 接口: aliexpress.item.search + productdetail.get
- 逻辑: 按关键词/类目搜索 → 筛选高销量低竞争商品 → 监控价格、销量、评价变化
- 频率: 价格监控建议每 2~4 小时一次,销量监控每日一次
场景 3:导购返利与内容电商
- 接口: 联盟 API productdetail.get
- 核心字段: commission_rate、promo_code_info、product_small_image_urls
- 逻辑: 展示商品 + 生成含追踪参数的联盟推广链接 → 用户点击购买 → 赚取佣金
- 注意: 必须使用官方推广链接,否则无法追踪佣金
场景 4:ERP 商品中台同步
- 接口: 开放平台 product.detail.get
- 核心字段: sku_infos、properties、freight_template_id、package_info
- 逻辑: 将速卖通商品数据标准化为内部 SKU 模型,统一供给多平台
场景 5:多语言多币种比价
- 接口: 联盟 API(带 target_language 和 target_currency 参数)
- 逻辑: 同一商品查询不同语言/币种版本,构建全球比价矩阵
- 支持语言: 英语、俄语、西班牙语、葡萄牙语、法语、德语、意大利语、日语等
场景 6:价格监控与预警系统
- 接口: 联盟 API productdetail.get(批量)
- 逻辑: 建立价格基线,促销价低于阈值时触发告警
- 注意: 联盟接口价格不含运费,如需"落地价"需额外计算物流成本
七、踩坑清单与最佳实践
1. 权限申请是最大门槛
- 联盟 API: 需注册速卖通联盟账号并创建应用,审核周期 1~3 个工作日
- 开放平台 API: 必须拥有速卖通卖家账户(企业资质更全),应用需通过平台审核
- 个人开发者权限有限,建议以企业身份申请
2. 签名生成是最容易出错的环节
- 必须使用 毫秒级时间戳
- 参数拼接时不要包含 sign 字段本身
- HMAC-SHA256 的 key 是 app_secret,不是 app_key
- 签名结果必须转大写
- 建议先用官方沙箱环境测试签名逻辑
3. Token 管理
- access_token 有有效期,需实现自动刷新机制
- 刷新接口:https://api.aliexpress.com/system/oauth2/token,grant_type=refresh_token
4. 图片处理
- 速卖通图片域名 ae01.alicdn.com 等,部分场景有防盗链
- Dropshipping / 铺货场景必须下载图片到自有对象存储
- 注意图片版权,避免侵权风险
5. 缓存与限流策略
- 联盟 API 有调用配额限制,高频场景必须做缓存
- 价格/库存建议缓存 15~30 分钟,商品基础信息可缓存 2~24 小时
- 批量查询优先用 productdetail.get(单次最多 50 个 ID),减少请求次数
6. 多站点适配
- 不同国家的用户看到的价格和运费不同,需通过 country 参数指定目标市场
- 欧盟国家需注意 VAT 和本地化合规要求
7. 异常处理
- 商品下架或 ID 无效时,接口可能返回空数据或错误码
- 必须做好降级策略:接口异常时读取缓存数据
- 429 限流时,增加请求间隔,建议最低 1 秒/次
8. 合规红线
- 禁止爬虫: 速卖通 robots.txt 明确禁止商业爬虫,且平台反爬机制严格
- 数据使用限制: 联盟 API 数据仅可用于推广场景,禁止转售或用于竞品恶意攻击
- 推广链接规范: 必须使用含联盟追踪参数的官方链接
八、总结:如何选择适合你的接口?
| 你的场景 | 推荐方案 | 关键注意点 |
|---|---|---|
| Dropshipping / 导购返利 | 联盟 Affiliate API | 需联盟账号,关注佣金比例和优惠券 |
| 速卖通卖家 ERP 同步 | 开放平台 product.detail.get | 需卖家账户 + 企业资质 |
| 跨境选品分析 | 联盟 API + item.search | 利用多语言/多币种参数做全球比价 |
| 多平台铺货 | 开放平台 API + 图片下载转存 | SKU 属性映射、详情 HTML 清洗 |
| 价格监控预警 | 联盟 API(批量) | 做好缓存和限流,注意不含运费 |
| 无技术团队快速启动 | 店小秘 / 芒果店长等 SaaS | 付费但开箱即用,合规有保障 速卖通的接口体系相比亚马逊更为"集中"——联盟 API 和开放平台 API 共享相似的认证和网关体系,但数据维度和权限门槛差异明显。理解你的业务场景属于"联盟推广"还是"卖家运营",是选对接口的第一步。 如果你正在规划一个需要对接速卖通商品数据的系统,建议先用联盟 API 做 POC 验证业务逻辑(门槛相对较低,无需卖家账户),确认模式跑通后,再以企业卖家身份申请开放平台权限,完成从"数据展示"到"深度运营"的升级。 |
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。

