如何通过商品详情 API 和商品列表 API 获取数据(含实战代码)


作者:鲨鱼 | 时间:2025年7月10日
原创文章,首发于优快云,如需转载,请注明出处。


一、前言

随着电商平台的不断发展,越来越多的企业和个人开发者希望通过调用平台提供的开放接口(Open API)来实现自动化运营、数据分析、ERP系统对接等功能。其中,商品详情 API商品列表 API 是最常用、也最容易上手的两个接口。

本文将带你了解这两个API的基本概念,并通过一个完整的 Python 示例展示如何调用它们,获取商品信息并解析返回结果。


二、什么是商品详情 API 和商品列表 API?

✅ 商品列表 API(Goods List API)

用于批量获取商品基础信息,例如商品ID、名称、价格、库存等。常用于同步店铺商品、分析竞品、构建商品库等场景。

  • 示例接口名(以拼多多为例):
    pdd.goods.list.get
    

✅ 商品详情 API(Goods Detail API)

用于获取单个商品的详细信息,包括图文描述、规格参数、SKU详情等。适用于做精细化运营、数据分析、商品详情页展示等场景。

  • 示例接口名(以拼多多为例):
    pdd.goods.detail.get
    

三、API 调用流程概述

通常,调用电商平台的 API 需要以下几个步骤:

  1. 注册开放平台账号,创建应用,获取 App Key 和 App Secret。
  2. 根据文档构造请求参数(如时间戳、签名、业务参数等)。
  3. 使用 HTTP 请求发送 API 调用。
  4. 解析返回 JSON 数据,提取所需字段。

四、实战代码:Python 调用商品列表 API + 商品详情 API(以拼多多为例)

⚠️ 注意:以下示例基于你已获得拼多多开放平台的应用授权(App Key、App Secret),并且具备相应的接口权限。

🧩 安装依赖

pip install requests pycryptodome

📌 示例代码

import time
import hashlib
import json
import requests
from urllib.parse import urlencode

# 替换为你自己的 AppKey 和 AppSecret
APP_KEY = "your_app_key"
APP_SECRET = "your_app_secret"

# 构建公共请求参数
def build_common_params(method):
    params = {
        'client_id': APP_KEY,
        'timestamp': str(int(time.time())),
        'sign_method': 'hmac',
        'version': '1.0',
        'format': 'json',
        'method': method
    }
    return params

# 生成签名
def generate_sign(params, app_secret):
    sorted_params = sorted(params.items())
    param_str = ''.join([k + v for k, v in sorted_params])
    sign = hmac.new(app_secret.encode('utf-8'), param_str.encode('utf-8'),
                    hashlib.sha256).hexdigest()
    return sign.upper()

# 发送请求
def send_api_request(url, params):
    headers = {'Content-Type': 'application/json'}
    response = requests.post(url, data=params, headers=headers)
    return response.json()

# 获取商品列表
def get_goods_list():
    api_url = "https://open-api.pinduoduo.com/router/rest"
    method = "pdd.goods.list.get"

    params = build_common_params(method)
    params['page'] = "1"
    params['page_size'] = "10"
    params['status'] = "1"  # 上架状态商品

    params['sign'] = generate_sign(params, APP_SECRET)

    print("请求参数:", params)
    result = send_api_request(api_url, urlencode(params))
    print("商品列表返回结果:")
    print(json.dumps(result, indent=2))

# 获取商品详情
def get_goods_detail(goods_id):
    api_url = "https://open-api.pinduoduo.com/router/rest"
    method = "pdd.goods.detail.get"

    params = build_common_params(method)
    params['goods_id'] = goods_id

    params['sign'] = generate_sign(params, APP_SECRET)

    print("请求参数:", params)
    result = send_api_request(api_url, urlencode(params))
    print("商品详情返回结果:")
    print(json.dumps(result, indent=2))

if __name__ == "__main__":
    # 第一步:获取商品列表
    get_goods_list()

    # 第二步:假设从列表中获取了某个商品 ID,调用详情接口
    # 示例商品 ID(请替换为真实 ID)
    example_goods_id = "1234567890"
    get_goods_detail(example_goods_id)

五、返回结果示例(简化版)

📦 商品列表返回(部分)

{
  "goods_list": [
    {
      "goods_id": "1234567890",
      "goods_name": "夏季新款韩版宽松T恤",
      "group_price": 2990,
      "sales": 1500
    },
    ...
  ]
}

📦 商品详情返回(部分)

{
  "goods_detail": {
    "goods_id": "1234567890",
    "goods_name": "夏季新款韩版宽松T恤",
    "desc": "精选纯棉面料,透气舒适...",
    "sku_list": [
      {
        "sku_id": "1001",
        "price": 2990,
        "stock_num": 500
      },
      ...
    ]
  }
}

六、避坑指南

问题常见原因解决方案
sign invalid签名错误检查参数顺序、加密方式是否与官方一致
redirect_uri is invalid回调地址未备案确保域名已备案且使用HTTPS协议
access_token expiredtoken过期及时刷新token,或重新授权
接口无权限接口未申请/审核未通过登录平台申请对应接口权限

七、结语

掌握商品列表和商品详情API的调用方法,是每个电商开发者入门的第一步。无论是做数据分析、商品管理,还是搭建ERP系统,这些API都将成为你的“基础设施”。

如果你对电商API开发感兴趣,欢迎扫码加我微信,我会持续分享各大平台的调用技巧、避坑经验、SDK封装等内容!


📌 点赞 + 收藏 + 关注,不错过更多实战干货!


作者简介:
鲨鱼,电商开放平台老司机,从业15年横跨京东、淘宝、拼多多等多个平台,熟悉每一个接口、每一套审核规则。无论是API签名、Token管理,还是应用上线避坑,都能手把手带你走通,电商圈里摸爬滚打了15年的老伙计,从京东到淘宝、从拼多多到唯品会,几乎所有平台都玩过一遍。想少踩坑?找我就对了!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值