淘宝店铺所有商品API接口概述(2025年最新版)

34 阅读3分钟

一、核心功能

淘宝开放平台提供的店铺商品API接口,允许开发者通过编程方式获取指定店铺内所有商品的详细信息,包括但不限于:

  • 基础信息:商品ID、标题、价格、原价、库存、销量、商品描述、图片URL等。
  • 动态数据:实时库存、销量、促销状态(如限时折扣、满减活动)。
  • SKU信息:颜色、尺寸、价格等规格组合及对应库存。
  • 分类与筛选:支持按商品分类、价格区间、销量排序等条件筛选商品。
  • 分页查询:通过page_nopage_size参数实现分页,单页最多返回100条数据。

二、主要API接口

  1. taobao.shop.items.get

    • 功能:获取店铺内所有商品的基础信息列表。

    • 请求参数

      json
      {
        "app_key": "你的AppKey",
        "method": "taobao.shop.items.get",
        "timestamp": "2025-08-14 17:00:00",
        "format": "json",
        "v": "2.0",
        "shop_id": "123456789",  // 店铺ID
        "page_no": 1,           // 页码
        "page_size": 50,         // 每页商品数
        "fields": "num_iid,title,price,stock,image_url"  // 返回字段
      }
      
    • 响应示例

      json
      {
        "items": {
          "item": [
            {
              "num_iid": 112233445566,
              "title": "夏季新款纯棉T恤",
              "price": "59.90",
              "stock": 100,
              "image_url": "https://img01.taobao.com/xxx.jpg"
            },
            {
              "num_iid": 223344556677,
              "title": "休闲牛仔裤",
              "price": "89.00",
              "stock": 50,
              "image_url": "https://img02.taobao.com/yyy.jpg"
            }
          ]
        },
        "total_results": 200,  // 总商品数
        "page_no": 1,
        "page_size": 50
      }
      
  2. taobao.item.get

    • 功能:根据商品ID获取单个商品的完整信息(如描述、规格、属性等)。

    • 请求参数

      json
      {
        "app_key": "你的AppKey",
        "method": "taobao.item.get",
        "timestamp": "2025-08-14 17:00:00",
        "format": "json",
        "v": "2.0",
        "num_iid": "112233445566",  // 商品ID
        "fields": "num_iid,title,price,desc,props,sku_info"
      }
      
    • 响应示例

      json
      {
        "item": {
          "num_iid": 112233445566,
          "title": "夏季新款纯棉T恤",
          "price": "59.90",
          "desc": "<html>商品详情HTML描述...</html>",
          "props": [
            { "name": "品牌", "value": "豆包服饰" },
            { "name": "材质", "value": "100%棉" }
          ],
          "sku_info": {
            "skus": [
              {
                "sku_id": "111222",
                "properties": "颜色:白色;尺码:S",
                "price": "59.90",
                "stock": 30
              }
            ]
          }
        }
      }
      
  3. item_search_shop第三方服务接口

    • 功能:部分第三方数据平台提供扩展接口,支持更灵活的查询条件(如按分类筛选、排序方式)。

    • 请求参数

      json
      {
        "shop_id": "123456789",
        "page": 1,
        "sort": "price_asc",  // 按价格升序
        "category_id": "123"  // 商品分类ID
      }
      
    • 响应示例

      json
      {
        "status": "success",
        "data": {
          "shop_name": "时尚潮流店铺",
          "products": [
            {
              "product_id": "11111",
              "title": "时尚连衣裙",
              "price": "199.00",
              "images": ["https://example.com/dress1.jpg"]
            }
          ]
        }
      }
      

三、调用流程

  1. 注册与认证

    • 在[淘宝开放平台]注册开发者账号,完成实名认证。
    • 创建应用,获取App KeyApp Secret
  2. 申请接口权限

    • 在应用管理界面申请shop_items_getitem_get等接口权限,审核通过后生效。
  3. 生成签名

    • 使用App Secret对请求参数进行MD5签名,防止数据篡改。

    • 签名示例(Python):

      python
      import hashlib
      def generate_sign(params, app_secret):
          sorted_params = sorted(params.items(), key=lambda x: x[0])
          sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
          return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
      
  4. 发送请求

    • 通过HTTP GET/POST请求调用接口,附上签名和必要参数。

    • Python示例

      python
      import requests
      def get_shop_items(shop_id, page_no=1, page_size=50):
          url = "https://eco.taobao.com/router/rest"
          params = {
              "method": "taobao.shop.items.get",
              "app_key": "你的AppKey",
              "timestamp": "2025-08-14 17:00:00",
              "format": "json",
              "v": "2.0",
              "shop_id": shop_id,
              "page_no": page_no,
              "page_size": page_size,
              "fields": "num_iid,title,price,stock,image_url"
          }
          params["sign"] = generate_sign(params, "你的AppSecret")
          response = requests.get(url, params=params)
          return response.json()