速卖通(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 签名机制,签名规则为:
plain
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 返回数据结构解析
联盟商品详情接口返回结构如下
:
JSON
{ "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 返回数据结构解析
开放平台接口返回的商品数据比联盟接口丰富得多
:
JSON
{ "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 搜索 + 详情联动示例
Python
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. 权限申请是最大门槛
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 共享相似的认证和网关体系,但数据维度和权限门槛差异明显。理解你的业务场景属于"联盟推广"还是"卖家运营",是选对接口的第一步。