速賣通商品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授權獲?。ㄓ行?年)
二、核心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 + 用戶行為分析生成市場報告