1688获得店铺所有商品的API接口

电子说

1.4w人已加入

描述

 在1688平台(阿里巴巴旗下的B2B批发平台)上,开发者可以通过开放API获取指定店铺的所有商品信息。这常用于数据集成、库存管理或电商分析场景。以下是一篇技术贴,我将逐步介绍实现方法,包括注册、API调用和代码示例。内容基于1688开放平台的真实API文档,确保可靠性和实用性。

一、准备工作

在调用API前,需完成以下步骤:

注册1688开放平台账号

访问1688开放平台官网,注册开发者账号。

创建应用(Application),获取App Key和App Secret。这些是API认证的关键凭证。

注意:应用需审核通过才能正式使用API。

获取店铺ID

目标店铺的ID(shop_id)是必需的。可通过以下方式获取:

在1688店铺主页URL中提取(如:https://shop12345678.1688.com,则shop_id=12345678)。

使用1688搜索API查询店铺名称。

阅读官方文档

参考商品列表API文档。

核心API端点:/param2/1/com.alibaba.product/alibaba.product.getList,支持分页获取商品数据。

二、API调用步骤

以下是获取店铺所有商品的核心流程:

认证授权

使用OAuth 2.0获取access_token(令牌)。

发送POST请求到https://gw.open.1688.com/openapi/http/1/system.oauth2/getToken,参数包括:

grant_type=client_credentials

client_id={App Key}

client_secret={App Secret}

响应中提取access_token,有效期通常为1天。

调用商品列表API

请求方法:GET

端点:https://gw.open.1688.com/openapi/param2/1/com.alibaba.product/alibaba.product.getList

必需参数:

shop_id:目标店铺ID

page_no:页码(从1开始)

page_size:每页商品数量(建议设为20-100)

access_token:上一步获取的令牌

示例请求URL:

 

https://gw.open.1688.com/openapi/param2/1/com.alibaba.product/alibaba.product.getList?shop_id=12345678&page_no=1&page_size=50&access_token=your_access_token  
API接口

 

处理响应数据

响应格式为JSON,包含:

success:布尔值,表示请求是否成功。

result:商品列表数组,每个商品包含product_id、subject(标题)、price等字段。

total_count:店铺商品总数,用于分页控制。

错误处理:检查error_code和error_message,常见错误如认证失败或参数无效。

三、完整代码示例(Python)

以下Python代码演示如何获取店铺所有商品(需安装requests库):

 

import requests

# 替换为你的凭证和店铺ID
app_key = "your_app_key"
app_secret = "your_app_secret"
shop_id = "target_shop_id"  # 例如:"12345678"

# 步骤1:获取access_token
def get_access_token(app_key, app_secret):
    token_url = "https://gw.open.1688.com/openapi/http/1/system.oauth2/getToken"
    params = {
        "grant_type": "client_credentials",
        "client_id": app_key,
        "client_secret": app_secret
    }
    response = requests.post(token_url, params=params)
    data = response.json()
    if "access_token" in data:
        return data["access_token"]
    else:
        raise Exception(f"获取token失败: {data.get('error_message', '未知错误')}")

# 步骤2:分页获取所有商品
def get_all_products(shop_id, access_token):
    base_url = "https://gw.open.1688.com/openapi/param2/1/com.alibaba.product/alibaba.product.getList"
    page_no = 1
    page_size = 50  # 每页数量
    all_products = []
    
    while True:
        params = {
            "shop_id": shop_id,
            "page_no": page_no,
            "page_size": page_size,
            "access_token": access_token
        }
        response = requests.get(base_url, params=params)
        data = response.json()
        
        if data.get("success"):
            products = data["result"].get("product_list", [])
            all_products.extend(products)
            total_count = data["result"].get("total_count", 0)
            # 判断是否还有下一页
            if page_no * page_size >= total_count:
                break
            page_no += 1
        else:
            error_msg = data.get("error_message", "API调用失败")
            raise Exception(f"错误: {error_msg}, 错误码: {data.get('error_code')}")
    
    return all_products

# 主函数
try:
    access_token = get_access_token(app_key, app_secret)
    products = get_all_products(shop_id, access_token)
    print(f"成功获取店铺 {shop_id} 的所有商品,共 {len(products)} 个")
    for idx, product in enumerate(products[:3]):  # 示例:打印前3个商品
        print(f"商品 {idx+1}: ID={product['product_id']}, 标题={product['subject']}, 价格={product['price']}")
except Exception as e:
    print(f"程序出错: {str(e)}")
API接口

 

四、注意事项

频率限制

1688 API有调用频率限制(如每分钟100次)。超出会导致错误,建议添加延时(如time.sleep(1))。

分页处理

店铺商品可能成千上万,务必使用分页(page_no和page_size)。代码中已实现自动遍历所有页。

数据字段

响应中的商品字段参考文档,常用包括product_id、subject、price、image_url等。可根据需求筛选。

错误排查

认证失败:检查App Key/Secret是否有效或过期。

无效shop_id:确认店铺是否存在或未授权。

响应延迟:添加重试机制(如retry库)。

五、总结

通过1688的alibaba.product.getList API,开发者可以高效获取店铺所有商品数据。核心步骤包括:注册开放平台、获取店铺ID、认证授权、分页调用API和处理响应。以上代码可直接集成到电商系统中,用于自动化数据同步或分析。建议在实际使用前测试沙箱环境,并遵守1688的API使用协议。

如需进一步优化(如异步请求或数据存储),欢迎在评论区讨论!

​审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分