一、引言
在电商数据驱动的时代,精准且高效地获取商品信息是众多业务场景的关键需求。1688,作为国内知名的 B2B 电商平台,拥有海量丰富的商品资源。其开放的商品详情 API 接口,为开发者、数据分析师以及电商从业者搭建了一座通向这些宝贵数据的桥梁。通过该接口,能够自动化、批量地获取商品的详细信息,涵盖从基础属性到销售数据、商家详情等多维度内容。无论是构建电商选品工具、进行市场价格分析。
二、接口概述
1.接口功能
- 基础信息获取:可获取商品的标题、品牌、型号等基础属性,例如一款 “小米 13 手机”,接口能精准返回其品牌为 “小米”,型号是 “13”,以及详细的商品标题如 “小米 13 骁龙 8 Gen2 处理器 徕卡影像 120Hz 高刷屏幕 手机”。
- 价格体系展示:提供商品的价格详情,包括单买价格、不同起订量下的批发价格,以及可能存在的价格区间波动情况。以某款文具批发为例,接口会返回购买 1 - 10 件时单价为 5 元,11 - 50 件时单价 4.5 元等价格信息。
- 库存状况查询:实时呈现商品的库存数量,便于商家和采购者及时了解商品的可售情况,避免超卖或缺货情况的发生。如显示某款运动器材 “库存:300 件”。
- 图片与描述:返回商品多角度高清图片链接,帮助用户全面了解商品外观;同时,获取详细的商品描述信息,涵盖产品特点、使用方法、材质等内容,辅助用户做出购买决策。像一款家具商品,接口会提供多张不同角度展示其外观的图片链接,以及详细描述其材质为实木、风格为北欧风、尺寸规格等文字信息。
- 商家信息呈现:展示商品所属商家在 1688 平台的注册名称、联系方式(如旺旺 ID、联系电话)、店铺等级等信息,增加商家透明度,方便供需双方进一步沟通合作。
2.请求参数
- 商品 ID(必填) :这是 1688 平台为每个商品赋予的唯一标识符,类似于商品的 “身份证号”。通过准确传入商品 ID,接口能够精准定位目标商品,返回与之对应的详细信息。例如,商品 ID 为 “123456”,接口会针对该 ID 对应的商品进行数据查询与返回。
- 语言参数(可选) :用于指定返回数据的语言类型,在全球化业务拓展背景下极为重要。设置 “language = zh_CN”,将获取中文简体版本的商品详情信息;设置 “language = en_US”,则返回英文版本详情,满足不同语言背景用户的需求。
响应数据
接口返回的数据通常为 JSON 格式,方便解析与处理,主要包含以下内容:
- 商品基本信息:包括商品名称、所属类目(如 “数码产品 - 手机”)、品牌、型号等。
- 价格与库存:价格区间、不同规格对应的价格、当前库存数量等。
- 图片列表:以数组形式呈现商品的多角度图片链接,用户可通过点击链接查看高清图片,了解商品细节。
- 商品描述:详细的商品介绍,包含产品特点、使用方法、材质等文字内容。
- 商家详情:商家名称、旺旺 ID、联系电话、店铺等级、商家地址等信息。
三、Python 请求示例
使用Python请求1688商品详情API接口请求示例代码:
import requests
import hashlib
import urllib.parse
import time
# 假设 API 封装接口地址
API url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014
# 商品ID
item_id = "1234567890" # 替换为实际商品ID
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 构建请求参数
params = {
"app_key": app_key,
"method": "com.alibaba.product.getProductDetailInfo", # 接口方法名,根据实际接口文档调整
"timestamp": timestamp,
"format": "json",
"v": "2.0",
"item_id": item_id
}
# 生成签名
sign = create_sign_string(params, app_secret)
params["sign"] = sign
# 发送请求
response = requests.get('https://gw.open.1688.com/openapi/param2/2/xxxxx/xxxxx', params=params)
# 检查响应状态码
if response.status_code == 200:
result = response.json()
# 提取并处理所需数据
if result.get("product"):
product = result["product"]
title = product.get("title")
price = product.get("price")
stock = product.get("stock")
print(f"商品标题: {title}")
print(f"商品价格: {price}")
print(f"商品库存: {stock}")
else:
print(f"请求失败,状态码: {response.status_code}")
在实际应用中,务必将代码中的item_id替换为真实有效的信息,同时根据 1688 开放平台最新的接口文档,对接口地址、接口方法名、参数名称及签名算法等进行准确调整与适配。