?
在電商開發這行摸爬滾打快十年,對接過不少平臺的 API,但若說最讓人頭疼的,1688商品詳情API絕對能排進前三。從批發場景特有的數據結構,到接口權限的嚴格管控,每一步都藏著 “驚喜”。今天就把這些年踩過的坑、攢下的實戰代碼分享出來,給同樣在 1688 開發路上掙扎的朋友搭個橋。
第一次對接 1688API 時,光是申請權限就卡了整整五天。1688 作為批發平臺,對開發者資質審核格外嚴格,不僅要提供企業營業執照,還要詳細說明用途 —— 是用于店鋪管理還是第三方工具開發,甚至連預期調用量都要報備。好不容易拿到app_key和secret,簽名驗證又給了我個下馬威。1688 的簽名算法要求把所有參數按 ASCII 排序,連時間戳格式都必須是yyyy-MM-dd HH:mm:ss,差個空格都會返回400錯誤。那段時間對著文檔反復調試,終于寫出能用的簽名函數:
運行
import hashlib import time import urllib.parse def generate_1688_sign(params, secret): # 按參數名ASCII排序 sorted_params = sorted(params.items(), key=lambda x: x[0]) # 拼接成key=value&key=value格式 query_str = "&".join([f"{k}={urllib.parse.quote(str(v), safe='')}" for k, v in sorted_params]) # 首尾加上secret sign_str = f"{secret}{query_str}{secret}" # SHA1加密后轉大寫 return hashlib.sha1(sign_str.encode()).hexdigest().upper() # 使用示例 params = { "method": "alibaba.item.get", "app_key": "your_app_key", "item_id": "6123456789", "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"), "format": "json", "v": "1.0" } params["sign"] = generate_1688_sign(params, "your_secret")

解決了簽名問題,又被 1688 特有的 “批發屬性” 坑了一把。普通電商 API 返回的價格通常是單售價,而 1688 會返回階梯價——1-10 件多少錢、10-50 件多少錢,甚至還有混批規則。有次給客戶做采購系統,直接取了第一個價格字段,結果導致小批量采購時報價出錯,被運營追著改了一下午。后來專門寫了個階梯價解析函數:
python
運行
def parse_wholesale_price(price_data):
"""解析1688階梯價格"""
try:
prices = []
# 1688返回的price字段是字符串格式,需要轉換
for range_price in price_data.get("price", "").split(";"):
if "-" in range_price:
quantity_range, price = range_price.split("-")
min_qty, max_qty = quantity_range.split(":")
prices.append({
"min_quantity": int(min_qty),
"max_quantity": int(max_qty),
"price": float(price)
})
# 按起訂量排序
return sorted(prices, key=lambda x: x["min_quantity"])
except Exception as e:
print(f"價格解析錯誤: {e}")
return []
# 示例調用
raw_price = {"price": "1:10:99;10:50:89;50:0:79"} # 1-10件99元,10-50件89元,50件以上79元
parsed_prices = parse_wholesale_price(raw_price)

python實例點擊獲取key和秘鑰
"description": {
"fields": {
"bigPromotionBanner": {
"bannerJumpUrl": "https://shop7586850002vz1.1688.com/page/activity.htm?offerId=724783106302#promotion",
"bannerUrl": "",
"hasBigPromotion": false
},
"detailUrl": "https://itemcdn.tmall.com/1688offer/icoss2932620515500292f66bc2481d",
"label": "詳情描述",
"uiType": "od_product_description"
},
"id": "description",
"meta": {
"scriptFileName": "pcOfferDetailDscDetailViewcomposer"
},
"position": "body",
"tag": "description",
"type": "od_product_description"
},
"discountCoupon": {
"fields": {
"bgColor": "#ff0e31",
"buttonName": "領券",
"couponInfoList": [
{
"buttonName": "領券",
"displayType": "coupon",
"extraInfo": {
"$ref": "$.result.data.discountCoupon.fields.promotionModel.promotionList[0].extraInfo"
},
"name": "優惠券",
"promotionItems": [
{
"actionName": "立即領取",
"applied": false,
"applyDisplayInfo": "僅限新客戶領取",
"availablePeriod": "有效期:2025.08.02 00:00:00-2025.08.31 23:59:59",
"canApply": true,
"couponId": 7567749995,
"couponType": 0,
"couponTypeName": "店鋪新寶專屬",
"detail": "滿2元減1元",
"displayContent": "1",
"extendDetail": "",
"label": "滿2減1券",
"onlySupportMobile": false,
"sellerId": 2215803758622,
"showDiscountFee": true,
"startTime": "Sat Aug 02 00:00:00 CST 2025",
"summary": "滿2元減1元"
}
],
"summary": "滿2元減1元",
"type": "COUPON",
"uiType": "COUPON"
}
],
"couponList": [
{
"couponContent": "滿2減1券",
"couponType": "COUPON"
}
],
"label": "折扣優惠",
"linkUrl": "https://cybert.m.1688.com/43ohz283.html?sceneName=chimera_16527",
"offerId": 724783106302,
"pageName": "Page_GetCoupon",
"promotionModel": {
"buttonName": "領券",
"promotionList": [
{
"buttonName": "領券",
"displayType": "coupon",
"extraInfo": {
"uiType": "COUPON"
},
"name": "優惠券",
"promotionItems": [
{
"actionName": "立即領取",
"applied": false,
"applyDisplayInfo": "僅限新客戶領取",
"availablePeriod": "有效期:2025.08.02 00:00:00-2025.08.31 23:59:59",
"canApply": true,
"couponId": 7567749995,
"couponType": 0,
"couponTypeName": "店鋪新寶專屬",
"detail": "滿2元減1元",
"displayContent": "1",
"extendDetail": "",
"label": "滿2減1券",
"onlySupportMobile": false,
"sellerId": 2215803758622,
"showDiscountFee": true,
"startTime": "Sat Aug 02 00:00:00 CST 2025",
"summary": "滿2元減1元"
}
],
"summary": "滿2元減1元",
"type": "COUPON",
"uiType": "COUPON"
}
]
},
"style": {
"arrowsImg": "https://img.alicdn.com/tfs/TB19FQtP4D1gK0jSZFsXXbldVXa-26-44.png",
"textColor": "#FF4000"
},
"trackInfo": [],
"uiType": "od_discount_coupon"
},
"id": "discountCoupon",
"meta": {
"scriptFileName": "pcOfferDetailDscPromotionViewcomposer"
},
"position": "body",
"tag": "discountCoupon",
"type": "od_discount_coupon"

1688 的庫存數據也很有特色,很多商家支持 “預售” 和 “現貨” 混合模式,API 返回的庫存字段會區分stock(現貨)和book_count(預售)。有次做庫存監控系統,只抓取了stock字段,導致預售商品顯示 “無貨”,被客戶投訴到老板那里。痛定思痛后,寫了個庫存整合函數:
python
運行
def parse_stock(stock_data):
"""整合1688現貨與預售庫存"""
try:
# 現貨庫存
spot_stock = int(stock_data.get("stock", 0))
# 預售庫存(部分商家可能不返回)
pre_stock = int(stock_data.get("book_count", 0))
# 總可售庫存
total_stock = spot_stock + pre_stock
return {
"spot_stock": spot_stock,
"pre_stock": pre_stock,
"total_stock": total_stock,
"is_pre_sale": pre_stock > 0
}
except Exception as e:
print(f"庫存解析錯誤: {e}")
return {"total_stock": 0}

調用頻率限制也是個大麻煩。1688 對免費開發者的限流很嚴格,每分鐘最多 20 次請求,超過就會觸發429錯誤。有次做批量商品采集,沒控制好節奏,直接被封了 3 小時接口權限。后來用隊列加定時任務實現了平滑調用:
python
運行
import time from queue import Queue from threading import Thread class APICaller: def __init__(self, max_calls_per_minute=20): self.queue = Queue() self.max_calls = max_calls_per_minute self.running = False self.thread = Thread(target=self._process_queue) def start(self): self.running = True self.thread.start() def stop(self): self.running = False self.thread.join() def add_task(self, func, *args, **kwargs): self.queue.put((func, args, kwargs)) def _process_queue(self): while self.running: if not self.queue.empty(): func, args, kwargs = self.queue.get() try: func(*args, **kwargs) finally: self.queue.task_done() # 控制頻率:每分鐘最多max_calls次 time.sleep(60 / self.max_calls) else: time.sleep(1) # 使用示例 caller = APICaller(max_calls_per_minute=20) caller.start() # 添加100個任務 for item_id in range(100): caller.add_task(fetch_product_detail, item_id) caller.queue.join() caller.stop()

這些年和 1688API 打交道,最大的感悟就是:批發場景的特殊性決定了它的數據結構比零售平臺復雜得多。從階梯價格到混合庫存,從起訂量到混批規則,每一個字段都藏著業務邏輯。
?審核編輯 黃宇
-
接口
+關注
關注
33文章
9519瀏覽量
157015 -
API
+關注
關注
2文章
2368瀏覽量
66752
發布評論請先 登錄
跨境電商 API 對接指南(亞馬遜 / 速賣通接口選型與調試)
1688商品詳情API接口使用指南
1688價格API:批發價實時比對,省錢利器!
1688店鋪所有商品API使用指南
1688店鋪詳情API使用指南
1688商品快遞費用API開發指南
1688商品列表API接口指南
全網最全面介紹1688API接口指南
電商API接口實錄對接:1688混批價格函數處理
評論