item_search_shop是1688开放平台提供的核心API接口之一,它允许开发者通过店铺ID或店铺昵称,一键获取该店铺下的所有商品信息,包括商品标题、价格、库存、销量、图片链接等。这一接口在电商数据分析、竞品调研、供应链管理等领域具有广泛应用价值。
一、接口功能概述
- 获取商品信息:支持获取商品的基础信息(如标题、价格、库存、销量)、多媒体信息(如主图URL、详情页图片)以及用户互动数据(如点赞数、评论数、收藏数,需申请权限)。
- 店铺信息获取:可获取店铺的基本信息,如店铺ID、名称、链接等。
- 灵活搜索与排序:支持按关键词搜索店铺内商品,并设定搜索结果的排序方式(如按销量、价格等排序)。
- 数据整合与应用:便于与其他电商平台数据共享,提升运营效率。
二、请求参数详解
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
app_key | String | 是 | 开发者在1688开放平台申请的App Key。 |
timestamp | String | 是 | 请求时间戳,格式为yyyy-MM-dd HH:mm:ss,防止请求被缓存或重复执行。 |
sign_method | String | 是 | 签名方法,固定为md5。 |
sign | String | 是 | 请求签名,确保安全性(生成方法见下文)。 |
v | String | 是 | API版本号,固定为2.0。 |
format | String | 是 | 返回数据格式,固定为json。 |
seller_nick | String | 是 | 店铺昵称或店铺ID。 |
start_price | Number | 否 | 价格下限(单位:元),用于筛选商品。 |
end_price | Number | 否 | 价格上限(单位:元),用于筛选商品。 |
q | String | 否 | 搜索关键词,用于在店铺内搜索特定商品。 |
page | Number | 否 | 当前页码,默认为1。 |
page_size | Number | 否 | 每页显示商品数量,默认为40,最大支持100。 |
sort | String | 否 | 排序方式,如price(价格从低到高)、_price(价格从高到低)、sale(销量从高到低)。 |
三、签名生成方法
签名是API调用的关键,确保请求未被篡改。签名生成步骤如下:
- 参数排序:将所有参数(除
sign外)按字母顺序排序。 - 拼接字符串:将参数名和值用
=连接,再用&拼接成字符串。 - 添加密钥:在字符串首尾加上App Secret。
- MD5加密:对字符串进行MD5加密,生成签名。
示例代码(Python) :
python
import hashlib
import time
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
param_str = '&'.join([f'{k}={v}' for k, v in sorted_params])
sign_str = f'{param_str}{app_secret}{app_secret}'
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
# 示例参数
params = {
'app_key': 'your_app_key',
'timestamp': '2025-07-28 17:00:00',
'v': '2.0',
'format': 'json',
'seller_nick': 'b2b-2200733087881719de',
'page': '1',
'page_size': '40'
}
# 生成签名
app_secret = 'your_app_secret'
params['sign'] = generate_sign(params, app_secret)
四、响应数据解析
成功响应为JSON格式,结构如下:
json
{
"items": {
"page": "1",
"real_total_results": 1900,
"total_results": 1900,
"page_size": 40,
"pagecount": 48,
"item": [
{
"num_iid": "628675986215",
"title": "圆形服装店吊牌定做女装衣服吊卡订制800g加厚烘培礼品花卉卡片",
"pic_url": "https://cbu01.alicdn.com/img/ibank/2020/386/208/22202802683_1873238575.search.jpg",
"price": 138.00,
"detail_url": "https://item.1688.com/item.htm?id=628675986215",
"shop_name": "圆形服装店",
"shop_url": "https://shop.1688.com/?num_iid"
}
// 更多商品...
]
}
}
五、调用示例(Python)
python
import requests
url = "https://api.1688.com/router/rest"
params = {
'app_key': 'your_app_key',
'method': 'item_search_shop',
'format': 'json',
'v': '2.0',
'timestamp': '2025-07-28 17:00:00',
'seller_nick': 'b2b-2200733087881719de',
'page': '1',
'page_size': '40'
}
# 生成签名(略,见上文)
params['sign'] = generate_sign(params, 'your_app_secret')
response = requests.get(url, params=params)
result = response.json()
if result.get('status') == 0:
for item in result.get('result', {}).get('item_list', []):
print(item.get('title'), item.get('price'))
else:
print('API请求失败:', result.get('message'))
六、注意事项
- 权限申请:使用前需在1688开放平台申请API权限。
- 频率限制:遵守API调用频率限制,避免触发限流。
- 错误处理:妥善处理网络异常、API限流、参数错误等情况。
- 数据安全:采用HTTPS协议传输数据,对关键数据进行加密存储。