1688 是中国制造业的"数字底座",平台上超过 60 万家工厂和批发商,覆盖了从义乌小商品到深圳 3C 的几乎所有品类。对于跨境电商卖家而言,1688 不仅是货源池,更是选品决策的"数据矿场"。用 API 驱动 1688 跨境业务,意味着将"人工逛市场"升级为"程序化寻源、自动化比价、一键化代采",构建从发现货源到完成采购的闭环系统。
一、1688 开放平台:跨境电商的"官方数据管道"
1688 开放平台(open.1688.com)为跨境场景提供了专门的接口体系,核心定位是让海外分销商、代采平台、跨境 ERP 能够程序化地访问 1688 的商品、供应商和交易数据。
1.1 接入门槛
表格
| 项目 | 要求 |
|---|---|
| 账号类型 | 企业开发者账号(个人开发者权限受限) |
| 资质审核 | 需提交应用场景说明,跨境/代采类应用需单独申请 |
| 认证方式 | AppKey + AppSecret + OAuth 2.0 access_token + MD5 签名 |
| 费用 | 基础接口免费,高频调用或高级功能需购买资源包 |
1.2 接口权限的分层逻辑
1688 的接口权限按数据范围分为三层,直接影响你能做什么:
表格
| 层级 | 数据范围 | 典型接口 | 跨境电商可用性 |
|---|---|---|---|
| 公开数据层 | 全站商品可见 | alibaba.product.get(他人商品)、item_search |
✅ 选品、比价、监控 |
| 授权数据层 | 需店铺 OAuth 授权 | alibaba.trade.get(订单详情) |
✅ 代采下单后查询自己订单 |
| 解决方案层 | 需业务审批 | 寻源通、跨境 ERP 对接方案 | ✅ 批量寻源、一键代采 |
关键认知: 1688 的商品详情接口可以查全站商品 (不仅是自己的),这是与淘宝最大的区别------淘宝 taobao.item.get 只能查公开字段,而 1688 的 alibaba.product.get 可以获取更完整的批发视角数据。
二、跨境电商核心接口体系
2.1 商品详情接口:alibaba.product.get
这是跨境选品最基础、最核心的接口,用于获取单个商品的完整结构化数据。
请求地址:
plain
POST https://gw.open.1688.com/openapi/param2/1/com.alibaba.product/alibaba.product.get
核心请求参数:
表格
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
access_token |
String | 是 | OAuth 2.0 授权令牌 |
productID |
Long | 是 | 1688 商品 ID(offer ID) |
fields |
String | 否 | 字段过滤,如 subject,priceRanges,imageUrl,skuInfo |
返回的跨境关键字段:
JSON
{
"result": {
"productID": 123456789012345,
"subject": "2026新款 磁吸无线充电宝 10000mAh",
"priceRanges": [
{"startQuantity": 1, "price": 45.00},
{"startQuantity": 50, "price": 38.50},
{"startQuantity": 200, "price": 32.00}
],
"imageUrl": "https://cbu01.alicdn.com/...",
"detailPage": "https://detail.1688.com/offer/123456789012345.html",
"skuInfo": {
"skuMap": {
"颜色:黑色;容量:10000mAh": {
"skuId": "sku123",
"price": 45.00,
"stock": 3260
}
},
"specs": [
{"specId": "spec123", "name": "颜色", "values": [{"valueId": "v1", "name": "黑色"}]},
{"specId": "spec456", "name": "容量", "values": [{"valueId": "v2", "name": "10000mAh"}]}
]
},
"amountOnSale": 5000,
"status": "published",
"shippingInfo": {
"sendGoodsAddress": "广东省深圳市",
"unitWeight": 0.25
}
},
"success": true
}
1688 特有的批发视角字段:
表格
| 字段 | 跨境电商含义 |
|---|---|
priceRanges |
阶梯批发价,1 件/50 件/200 件价格不同,决定你的囤货策略 |
amountOnSale |
可售库存总量,判断供应商产能 |
skuInfo.skuMap |
多规格 SKU 的独立定价和库存 |
shippingInfo.sendGoodsAddress |
发货地,影响头程物流成本 |
shippingInfo.unitWeight |
单件重量,计算跨境运费的基础 |
2.2 商品搜索接口:item_search / 寻源通
关键词搜索:
Python
# 按关键词搜索商品列表
params = {
"method": "item_search",
"q": "磁吸充电宝",
"start_price": "20",
"end_price": "50",
"page": 1,
"sort": "_sale" # 按销量排序
}
寻源通(Wholesale Sourcing) 是 1688 专门为采购商提供的商品/供应商搜索与匹配服务:
表格
| 接口 | 功能 |
|---|---|
alibaba.wholesale.goods.search |
商品关键词搜索 + 供应商资质筛选 |
alibaba.wholesale.supplier.get |
供应商详情查询 |
寻源通申请流程:
-
注册 1688 开放平台企业开发者账号
-
创建应用并勾选"寻源通"API 权限
-
提交审核(需提供应用场景说明)
2.3 CPS/分销商品接口:alibaba.cpsMedia.productInfo
面向跨境分销场景,返回包含分销价、佣金、营销活动的视角数据:
表格
| 价格字段 | 说明 | 优先级 |
|---|---|---|
channelPrice |
一件代发包邮价(跨境最常用) | 最高 |
promotionPrice |
营销活动价 | 中 |
consignPrice |
分销基准价 | 基础 |
注意: 单独调用商品详情接口无法获取完整营销活动(如满减、折扣),需结合 alibaba.cps.queryOfferDetailActivity 接口获取活动价格和包邮条件。
2.4 订单接口
跨境代采场景下,创建采购单后需要查询订单状态和物流:
表格
| 接口 | 功能 |
|---|---|
alibaba.trade.get |
获取订单详情(状态、商品、金额、物流) |
alibaba.trade.orderList.get |
批量查询订单列表 |
alibaba.trade.refund.get |
退款信息查询 |
订单详情返回结构:
JSON
{
"result": [{
"baseInfo": {
"id": "196965465451498520",
"status": "cancel",
"totalAmount": 0.01,
"buyerID": "b2b-1623492085",
"sellerID": "b2b-1624747073"
},
"productItems": [{
"productID": 574273466269,
"name": "夏季亚麻九分裤...",
"price": 39.9,
"quantity": 1,
"skuInfos": [
{"name": "颜色", "value": "深灰色"},
{"name": "尺码", "value": "3XL"}
]
}],
"receiverInfo": {
"toFullName": "洪帮",
"toArea": "浙江省 金华市 义乌市"
}
}]
}
三、认证与签名:MD5 完整实现
1688 开放平台采用与淘宝类似的 MD5 签名机制。
3.1 签名规则
plain
sign = MD5( app_secret + 所有参数按 key 升序拼接 + app_secret ).upper()
3.2 完整调用示例(Python)
Python
import requests
import hashlib
import time
from urllib.parse import quote
APP_KEY = 'your_app_key'
APP_SECRET = 'your_app_secret'
ACCESS_TOKEN = 'your_access_token'
def generate_1688_sign(params, app_secret):
"""生成1688开放平台 MD5 签名"""
# 过滤空值和 sign 字段
filtered = {k: v for k, v in params.items() if v is not None and k != 'sign'}
# 按 key 字典序升序排序
sorted_params = sorted(filtered.items(), key=lambda x: x[0])
# 拼接成 key+value 字符串
param_str = ''.join([f"{k}{v}" for k, v in sorted_params])
# 首尾拼接 app_secret
sign_str = f"{app_secret}{param_str}{app_secret}"
# MD5 大写
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
def get_product_detail(product_id):
"""获取1688商品详情"""
timestamp = str(int(time.time() * 1000))
params = {
"access_token": ACCESS_TOKEN,
"productID": product_id,
"timestamp": timestamp,
# 可选:字段过滤,减少返回体积
# "fields": "subject,priceRanges,imageUrl,skuInfo,amountOnSale,status"
}
params["sign"] = generate_1688_sign(params, APP_SECRET)
url = "https://gw.open.1688.com/openapi/param2/1/com.alibaba.product/alibaba.product.get"
# URL 编码参数
encoded_params = {k: quote(str(v)) for k, v in params.items()}
response = requests.post(url, data=encoded_params, timeout=30)
return response.json()
# 调用示例
result = get_product_detail(123456789012345)
print(result)
四、跨境电商四大核心场景
场景一:跨境选品与货源发现
目标: 在亚马逊/速卖通发现潜力商品后,快速在 1688 找到源头工厂。
技术方案:
-
用
item_search按关键词搜索(如"磁吸充电宝") -
按
priceRanges和amountOnSale筛选有价格优势和库存深度的供应商 -
用
item_search_img(以图搜款)上传跨境平台热销图,找到同款货源
决策逻辑:
plain
if 供应商.isFactory == True and 供应商.years >= 3:
优先合作(工厂直供,价格谈判空间大)
if 商品.priceRanges[200件价] < 目标售价 * 0.3:
毛利空间充足,可纳入备选
if 商品.amountOnSale > 5000:
库存充足,短期断货风险低
场景二:多供应商比价矩阵
目标: 同一 SKU 对比多家供应商,找到最优采购方案。
比价维度:
表格
| 维度 | 接口字段 | 权重 |
|---|---|---|
| 阶梯价 | priceRanges |
30% |
| 库存深度 | amountOnSale |
20% |
| 发货地 | sendGoodsAddress |
15% |
| 单件重量 | unitWeight |
15% |
| SKU 丰富度 | skuInfo.specs 数量 |
10% |
| 商品状态 | status |
10% |
场景三:海外代采系统(一键下单)
目标: 海外买家在你的平台下单后,系统自动向 1688 供应商采购。
流程架构:
plain
海外用户下单 → 你的平台接收订单 → 调用1688接口创建采购单
→ 1688供应商发货到国内集货仓 → 你的仓库打包 → 跨境物流发往海外
关键接口:
-
alibaba.product.get:确认商品信息、价格、库存 -
alibaba.trade.get:查询采购单状态 -
物流接口:追踪国内段物流轨迹
场景四:价格监控与库存预警
目标: 监控核心供应商的价格和库存变化,防止断货或被涨价。
技术实现:
-
定时任务(每 2~4 小时)调用
alibaba.product.get -
将
priceRanges和amountOnSale存入时序数据库(InfluxDB) -
价格变动 > 5% 或库存 < 安全线时触发告警
Python
def monitor_product(product_id, baseline_price, stock_threshold):
"""监控商品价格与库存"""
data = get_product_detail(product_id)
result = data.get('result', {})
current_price = result.get('priceRanges', [{}])[0].get('price')
current_stock = result.get('amountOnSale', 0)
alerts = []
if current_price and abs(current_price - baseline_price) / baseline_price > 0.05:
alerts.append(f"价格变动超过5%!当前:{current_price},基线:{baseline_price}")
if current_stock < stock_threshold:
alerts.append(f"库存低于安全线!当前:{current_stock},阈值:{stock_threshold}")
return alerts
五、踩坑清单与最佳实践
5.1 价格体系陷阱
表格
| 坑 | 现象 | 解决方案 |
|---|---|---|
| 只看单价不看阶梯 | 接口返回 1 件价 45 元,实际采购 50 件只需 38 元 | 按实际采购量读取对应阶梯价 |
| 忽略营销活动价 | 单独调商品接口显示 45 元,实际有满减活动后 40 元 | 必须结合 queryOfferDetailActivity 接口 |
| 一件代发价混淆 | 批发价和代发价不同,跨境代采需用 channelPrice |
明确价格优先级:channelPrice > promotionPrice > consignPrice |
5.2 数据质量陷阱
表格
| 坑 | 现象 | 解决方案 |
|---|---|---|
| 图片 404 | 返回的 imageUrl 无法访问 |
接口返回的 picUrl 需先校验有效性,无效则使用默认占位图 |
| 库存非实时 | amountOnSale 显示 5000,实际已断货 |
结合 30 天成交数据判断,大促前务必人工确认 |
| SKU 规格映射 | 1688 的规格名是中文,跨境平台需英文 | 建立规格映射表,如"黑色"→"Black" |
5.3 技术实现陷阱
表格
| 坑 | 现象 | 解决方案 |
|---|---|---|
| 签名失败 | 返回 "sign invalid" | 确认参数按 key 升序、空值过滤、MD5 大写 |
| Token 过期 | 返回 "access_token expired" | 实现自动刷新机制,Token 有效期通常为 7~30 天 |
| 频率限制 | 返回 "isv.freq-limit" | 基础 QPS 约 2~5,需本地缓存 + 分布式限流 |
5.4 合规红线
-
禁止爬虫:必须使用官方 API,禁止用 Selenium/Playwright 大规模抓取 1688 页面
-
数据缓存限制:部分接口要求缓存数据不超过 24 小时,需遵守平台协议
-
供应商隐私:不得将供应商联系方式、底价等敏感数据转售或公开
六、总结:1688 跨境 API 的核心价值
| 运营环节 | 接口能力 | 业务价值 |
|---|---|---|
| 选品寻源 | 关键词搜索 + 以图搜款 + 寻源通 | 从"人工逛市场"到"程序化发现爆款货源" |
| 比价决策 | 阶梯价 + 库存 + 发货地 + 重量 | 计算真实落地成本,找到最优供应商 |
| 一键代采 | 商品查询 → 订单创建 → 物流跟踪 | 海外用户下单后自动完成国内采购 |
| 供应链监控 | 定时价格/库存监控 + 告警 | 防止断货、防止供应商突然涨价 |
| 多平台铺货 | 商品详情 + SKU + 图片 + 属性 | 一键采集刊登到亚马逊/速卖通/Shopee |
1688 的跨境电商 API,本质上是把"中国最大的批发市场"变成了一套可查询、可比较、可自动化交易的数据接口。对于做跨境代采、Dropshipping、或自有品牌供应链的卖家和技术团队而言,掌握这套接口能力,等于拿到了中国制造业的"数字钥匙"。