Skip to content

V1 Categories API

类目与商品分类模块提供平台类目查询,以及当前店铺的露天商品分类创建、列表和删除能力。

概述

  • 所有接口需要 Access Token,通过 Authorization: Bearer <access_token> 传递。
  • 平台类目是 Sugumart 维护的商品类目树,用于商品 class_id
  • 商品分类是当前店铺在露天维护的自定义分组,用于商品 store_class_id
  • V1 不开放平台类目的创建、更新或删除。
  • 商品分类按 Access Token 绑定的店铺隔离。

获取类目列表

GET /openapi/v1/categories

Authentication: Required (Access Token)

逐级获取可用于创建商品的启用类目。未传 parent 时返回一级类目;传入任意层级类目的 g_class 时,只返回该类目的下一层直接子节点。调用方应在用户选择父类目后继续请求下一层,直到选择 selectable=true 的类目。

Query Parameters

字段类型必填说明
parentstring父类目的 g_class;省略时返回一级类目,传入时只返回其下一层直接子节点

Response

字段类型说明
categoriesCategory[]可用的同层类目列表,按 g_class 升序排列;有效父类目没有子节点时返回空数组

Response Example

json
{
  "success": true,
  "data": {
    "categories": [
      {
        "id": "cat_bags",
        "g_class": "00110001",
        "name": "背包",
        "level": 2,
        "parent": "0011",
        "color": true,
        "has_children": true,
        "selectable": false
      }
    ]
  }
}

逐级查询示例:

text
GET /openapi/v1/categories
GET /openapi/v1/categories?parent=0011
GET /openapi/v1/categories?parent=00110001

创建或更新商品时,class_id 必须使用 selectable=true 的类目 g_class。中间节点即使存在也不能直接用于商品发布。

Error Responses

Statusmessagecode说明
401Invalid or expired tokenunauthorizedAccess Token 无效或已过期
404Category not foundcategory_not_foundparent 对应类目不存在、已停用或不可用于当前店铺

创建商品分类

POST /openapi/v1/product-categories

Authentication: Required (Access Token)

在当前店铺创建一个露天商品分类。创建成功后服务端刷新当前店铺的完整商品分类缓存。

Request Body

字段类型必填说明
store_class_namestring分类名称,1-30 个 Unicode 字符且不超过 45 UTF-8 bytes
item_sort_modestring商品排序:new(最新)、price(价格)、sold(销量)
display_sortnumber分类显示顺序,1-100 的整数

Request Example

json
{
  "store_class_name": "通勤精选",
  "item_sort_mode": "new",
  "display_sort": 10
}

Response

字段类型说明
product_categoriesProductCategory[]创建后当前店铺的完整商品分类列表

Response Example

json
{
  "success": true,
  "data": {
    "product_categories": [
      {
        "store_class_id": "sc_1024",
        "store_class_name": "通勤精选",
        "item_sort_mode": "new",
        "display_sort": 10,
        "synced_at": "2026-08-04T08:15:00.000Z"
      }
    ]
  }
}

Error Responses

Statusmessagecode说明
400Invalid product categoryvalidation_error名称、排序模式或显示顺序校验失败
401Invalid or expired tokenunauthorizedAccess Token 无效或已过期
502Ruten product category request failedruten_store_class_mutation_failed露天拒绝创建或响应不可用

获取商品分类列表

GET /openapi/v1/product-categories

Authentication: Required (Access Token)

返回当前店铺的全部商品分类。存在本地缓存时直接返回缓存;首次查询且无缓存时,服务端从露天同步后返回。列表固定按 display_sort ASC, store_class_id ASC 排列;store_class_id 是显示顺序相同时的稳定第二排序键。

Response

字段类型说明
product_categoriesProductCategory[]当前店铺商品分类列表

Response Example

json
{
  "success": true,
  "data": {
    "product_categories": [
      {
        "store_class_id": "sc_1024",
        "store_class_name": "通勤精选",
        "item_sort_mode": "new",
        "display_sort": 10,
        "synced_at": "2026-08-04T08:15:00.000Z"
      }
    ]
  }
}

Error Responses

Statusmessagecode说明
401Invalid or expired tokenunauthorizedAccess Token 无效或已过期
502Invalid product category responseinvalid_ruten_store_class_response露天商品分类响应无法验证

删除商品分类

POST /openapi/v1/product-categories/{id}/delete

Authentication: Required (Access Token)

删除当前店铺的露天商品分类。成功后服务端刷新并返回完整商品分类列表。

Path Parameters

字段类型必填说明
idstring商品分类 ID,1-64 字符

Request Body

无。

Response

字段类型说明
product_categoriesProductCategory[]删除后当前店铺的完整商品分类列表

Response Example

json
{
  "success": true,
  "data": {
    "product_categories": []
  }
}

Error Responses

Statusmessagecode说明
400Invalid product category IDvalidation_error分类 ID 格式错误
401Invalid or expired tokenunauthorizedAccess Token 无效或已过期
404Product category not foundproduct_category_not_found商品分类不存在或不属于当前店铺
409Product category is in useproduct_category_in_use仍有商品使用该分类;应先移出或改设这些商品的 store_class_id
502Ruten product category request failedruten_store_class_mutation_failed露天拒绝删除或响应不可用

公共响应字段

Category

字段类型说明
idstring类目记录 ID
g_classstring平台类目代码;创建商品时作为 class_id
namestring类目显示名称,优先使用简体名称
levelnumber类目层级,正整数
parentstring | null父类目的 g_class;一级类目为 null
colorboolean该类目是否具有颜色分类语义
has_childrenboolean是否存在至少一个启用的直接子节点;为 true 时可继续使用 parent=g_class 查询下一层
selectableboolean是否可作为商品 class_id;V1 仅允许选择没有启用子节点的末级类目

hscode 属于平台内部类目映射,不在 V1 类目响应中返回。

ProductCategory

字段类型说明
store_class_idstring露天商品分类 ID,对应商品的 store_class_id
store_class_namestring商品分类名称
item_sort_modestring商品排序:newpricesold
display_sortnumber分类显示顺序,1-100
synced_atstring最近从露天同步时间,ISO 8601 UTC