KK货源平台 开放API

📅 文档更新:2026-06-13 v5 · Base URL: https://kk.h-sh.com/api · 完整规范 · 字段速查

供 AI Agent、ERP、爬虫通过 API Key 批量管理商品、SKU 库存与图片。请先读层级约定,避免 400。

请求体层级(POST 创建)

根层级与 product 并列: product + main_images + skus + source

禁止把 main_images / skus / source 放进 product 内

禁止 "url | 货号" 拼接 — 货号用 product.art_no,来源用根层级 source

{
  "product": {"name":"...", "category":"women_shoes", "price":89, "art_no":"厂家款号"},
  "main_images": ["https://cf.h-sh.com/kk_HSH/..."],
  "source": "https://来源页可选",
  "skus": [{"color":"黑色","size":"38","stock":50}]
}

PATCH /open/products/{id} 为扁平 JSON(无 product 包装),可含 art_no、source、is_active 等。

商品标识

字段来源说明
id平台API 唯一标识,路径 /open/products/{id}
art_no商户/API厂家款号,≤19 字,选填

平台内部另有前台编码(如 W0、K10),开放 API 不返回,对接请以 id 为准。

认证方式

所有请求需在 HTTP Header 中携带 API Key:

X-API-Key: kk_your_api_key

✅ 已完成实名认证的商户 → 商户后台 → API密钥 → 生成Key(明文仅显示一次)

🔒 商品读写均限定为 本 Key 所属商户;浏览全平台公开商品请用 GET /api/public/products(无需 Key)

端点总览

方法端点说明
POST/open/upload-image上传图片:bulk 不传 product_id;单张追加可传 product_id(P2 UUID 路径)
POST/open/upload-video上传主图视频 mp4/mov/webm/m4v(product_id 可选)
POST/open/products创建商品(含SKU+主图)
GET/open/products查询本商户商品列表(分页;可选 category is_active
GET/open/products/:id查询商品详情含所有SKU
GET/open/categories平台类目树(大类+子类 slug)
GET/open/merchant-categories查询我的自定义分类(slug 列表)
POST/open/merchant-categories创建自定义分类(批跑推荐)
PATCH/open/merchant-categories/:id更新自定义分类 name/slug/sort_order
DELETE/open/merchant-categories/:id删除自定义分类(软删)
PATCH/open/products/:id更新商品信息/上下架
PATCH/open/products/:id/skus批量更新SKU库存/价格/白底图
POST/open/keys生成新API Key
GET/open/keys列出我的API Key
DELETE/open/keys/:id吊销API Key

快速开始

1. 上传图片(bulk/创建:不传 product_id)

curl -X POST https://kk.h-sh.com/api/open/upload-image \
  -H "X-API-Key: $KK_API_KEY" \
  -F "file=@product.jpg"
# 单张追加(非 bulk):?product_id=123,写入 {merchant_id}/products/{product_id}/{uuid}.jpg
# bulk 禁止 product_id,须 temp upload → 立刻 PATCH

2. 创建商品

product / main_images / source / skus 在根层级并列

curl -X POST https://kk.h-sh.com/api/open/products \
  -H "X-API-Key: $KK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product":{"name":"夏季凉鞋","category":"women_shoes","price":89.0,"art_no":"X001","tags":["夏季","新款"]},"main_images":["https://cf.h-sh.com/kk_HSH/..."],"source":"https://example.com/item","skus":[{"color":"黑色","size":"38","stock":50,"white_image_url":"https://cf.h-sh.com/kk_HSH/..."}]}'

2b. 上传主图视频(选填)

curl -X POST https://kk.h-sh.com/api/open/upload-video \
  -H "X-API-Key: $KK_API_KEY" \
  -F "file=@main.mp4"
# 将返回 url 写入创建 JSON 根层级 main_video_url(勿放入 main_images)

3. 更新SKU库存/价格/白底图

curl -X PATCH https://kk.h-sh.com/api/open/products/{id}/skus \
  -H "X-API-Key: $KK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[{"color":"黑色","size":"38","stock":20,"white_image_url":"https://cf.h-sh.com/kk_HSH/white.jpg"}]'

4. 更新商品信息/上下架/货号/来源

curl -X PATCH https://kk.h-sh.com/api/open/products/{id} \
  -H "X-API-Key: $KK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"新名称","price":99,"art_no":"新货号","source":"https://...","is_active":false}'

创建商品字段

字段位置必填类型说明
nameproduct必填string商品名,1~200字
categoryproduct必填string平台类目 slug;先 GET /open/categories,有 subs 时传子类 slug
priceproduct必填float价格,必须 > 0
art_noproduct选填string厂家款号,≤19字(非 code)
merchant_category_slugproduct选填string商户自定义分类 slug,须先创建
descriptionproduct选填string商品描述,≤100字
materialproduct选填string材质
brandproduct选填string品牌
origin_placeproduct选填string产地
unitproduct选填string单位,默认「双」
min_order_qtyproduct选填int起订量,默认 1
tagsproduct选填string[]标签,每项 ≤4 汉字
detail_images选填string[]详情图 URL;也可放 product 内
detail_content选填string块级 HTML ≤5000 字(如 <p>);纯文本自动包 <p>
main_images必填string[]主图 URL,≥1,须 KK CDN
main_video_url选填string主图视频 URL;先 upload-video,勿放入 main_images
source选填string来源页 URL;纯 URL,勿与货号拼接
skus选填SkuItem[]SKU 列表;库存只写此处

SKU字段

字段必填类型说明
color必填string颜色
size必填string尺码
stock选填int库存,默认0
price选填floatSKU价格
white_image_url选填string白底图 URL;创建时可传,响应含 canonical 后 URL

标签规则

"夏季" — 2个汉字

"新款上市" — 4个汉字

"2024夏季新款" — 超过4个汉字,返回422

分类体系(必读)

两套分类,互不影响:

平台类目 category自定义分类 merchant_category_slug
位置product.categoryproduct.merchant_category_slug(创建)/ 根层级(PATCH)
必填必填选填
取值平台类目 slug(大类或子类,见 /open/categories商户 slug;POST /open/merchant-categories 或后台创建
作用编码前缀 W/K/H/B、全站筛选商户主页 Tab(?cat=slug)

勿把自定义分类名填入 category

GET /open/categories:大类有 subs 时须传子类 slug,不可传大类

自定义分类:POST /open/merchant-categories 创建,或后台「商品分类」页;上传前 GET 核对 slug

平台类目示例

GET /open/categories
{
  "data": [
    {"slug":"women_shoes","name":"女鞋","requires_subcategory":true,
     "subs":[{"slug":"sandals","name":"凉鞋"}, {"slug":"boots","name":"靴子"}]},
    {"slug":"hats","name":"帽子","requires_subcategory":false,"subs":[]}
  ]
}
# 女鞋有子类 → product.category 传 "sandals",不能传 "women_shoes"
# 帽子无子类 → product.category 传 "hats"

类目

大类 slug名称编码前缀
women_shoes女鞋W
kids_shoes童鞋K
hatsH
bagsB

子类 slug 以 /open/categories 返回为准;编码前缀按所属大类 W/K/H/B 生成。

图片 URL 归属(Bulk 必读)

2026-06-12 起校验归属,防止并发撞图:

错误码

HTTP含义
401API Key无效或已吊销
403商户未通过实名认证
400参数错误、图片/视频 URL 归属不符
422校验失败(标签过长等)
404商品不存在

创建响应

POST 创建成功返回 product + skus + status

注意事项