速卖通商品API接口全解析与实战指南
一、速卖通开放平台接入准备
1. 注册开发者账号
- 访问速卖通开放平台
- 企业账号需提供营业执照、法人身份证
- 个人账号权限受限(仅能访问部分API)
2. 申请API权限
接口类型 | 权限标识 | 适用场景 |
---|---|---|
商品详情查询 | aliexpress.item.get | 单品数据获取 |
商品搜索 | aliexpress.item.search | 关键词/类目搜索 |
店铺商品列表 | aliexpress.item.list | 店铺商品抓取 |
订单数据获取 | aliexpress.order.list | 交易数据分析 |
3. 获取密钥
- App Key:应用唯一标识(如12345678)
- App Secret:签名加密密钥(如a1b2c3d4e5f6)
- Access Token:通过OAuth 2.0授权获取(有效期1年)
二、核心API接口详解与调用示例
1. 商品详情接口 aliexpress.item.get
import requests
import hashlib
import time
def get_item_detail(item_id, app_key, app_secret):
url = "https://api.aliababa.com/aliexpress.openapi/item.get"
timestamp = str(int(time.time()*1000))
# 公共参数
params = {
"method": "aliexpress.item.get",
"app_key": app_key,
"item_id": item_id,
"timestamp": timestamp,
"sign_method": "md5"
}
# 生成签名
sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted(params.items())])
sign = hashlib.md5(sign_str.encode()).hexdigest().upper()
params['sign'] = sign
response = requests.get(url, params=params)
return response.json()
# 调用示例
# 封装好的速卖通商品详情供应商demo url=o0b.cn/ibrad,复制链接获取测试
item_data = get_item_detail("100000123456", "your_app_key", "your_app_secret")
响应数据结构:
{
"item": {
"item_id": "100000123456",
"title": "Wireless Bluetooth Headphones",
"price": "29.99",
"currency": "USD",
"sku": [
{
"sku_id": "789012",
"price": "25.99",
"specs": "Color:Black;Size:L",
"stock": 100
}
],
"main_images": ["https://ae01.alicdn.com/img1.jpg"],
"detail_html": "<div>Product Description...</div>",
"store_info": {
"store_id": "shop123456",
"store_name": "TechGadgets Store"
}
}
}
三、高级搜索接口 aliexpress.item.search
1. 请求参数优化
def search_items(keyword, app_key, app_secret, page=1):
params = {
"method": "aliexpress.item.search",
"app_key": app_key,
"q": keyword,
"page_no": page,
"sort": "volume_desc", # 按销量排序
"min_price": "10",
"max_price": "50",
"ship_to": "US", # 目标国家
"timestamp": str(int(time.time()*1000))
}
# 签名生成同上...
# 封装好的速卖通商品详情供应商demo url=o0b.cn/ibrad,复制链接获取测试
response = requests.get(url, params=params)
return response.json()
2. 搜索结果字段
- total_results:总商品数
- items:商品列表(标题、价格、销量、店铺评分)
- filters:类目/属性筛选条件
四、数据清洗与存储方案
1. 价格数据清洗
def clean_price(price_str):
return float(price_str.replace('US $', '').strip())
2. 图片URL处理
def process_images(image_urls):
return [url if url.startswith('http') else f'https:{url}' for url in image_urls]
3. 存储到MySQL
CREATE TABLE aliexpress_items (
item_id VARCHAR(20) PRIMARY KEY,
title VARCHAR(255),
price DECIMAL(10,2),
currency CHAR(3),
store_id VARCHAR(20),
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_store (store_id)
);
CREATE TABLE item_skus (
sku_id VARCHAR(20) PRIMARY KEY,
item_id VARCHAR(20),
specs JSON,
price DECIMAL(10,2),
stock INT,
FOREIGN KEY (item_id) REFERENCES aliexpress_items(item_id)
);
五、商业应用场景
1. 价格监控系统
- 实时追踪TOP竞品价格波动
- 自动触发调价策略(保持比竞品低5%)
2. 选品分析工具
- 基于热搜词生成选品报告(如“夏季女装流行元素”)
- 计算商品竞争力指数:python复制def competitiveness_score(item): return (item['sales'] * 0.6 + item['store_rating'] * 0.3 + (1/item['price']) * 0.1)
3. 供应链优化
- 分析爆款商品发货地分布(如深圳3C、义乌小商品)
- 预测热门类目库存需求
六、错误处理与性能优化
1. 常见错误码处理
错误码 | 含义 | 解决方案 |
---|---|---|
20010000 | 无效签名 | 检查签名生成逻辑 |
20020000 | 参数缺失 | 验证必填参数 |
20030000 | 频率超限 | 降低请求频率(≤5次/秒) |
20040000 | 商品不存在 | 校验item_id有效性 |
2. 高并发优化策略
- 使用连接池(如requests.Session)
- 分布式爬虫架构(Scrapy-Redis)
- 异步请求(aiohttp + asyncio)
七、合规与法律注意事项
- 数据使用限制不得存储用户隐私数据(如买家手机号)遵守GDPR(欧盟)和CCPA(加州)数据保护法规
- API调用规范禁止恶意爬取(频率需≤官方限制)商品数据需标注来源:“Data from AliExpress OpenAPI”
总结
通过速卖通商品API接口,开发者可快速构建价格监控、智能选品、供应链管理等工具。关键步骤包括:
- 申请API权限并妥善管理密钥
- 遵循签名规则与频率限制
- 设计健壮的数据清洗与存储方案
- 建立异常监控与自动恢复机制
建议结合业务需求选择接口组合,例如:
- 铺货型卖家:item.list + item.get 实现全店商品同步
- 数据服务商:item.search + 用户行为分析生成市场报告