商品-创建

接口信息

  • 接口地址: {your-site-url}/api/skill/product/create
  • 基础 URL: {your-site-url} 需替换为你自己的独立站 URL 地址,如 https://your-domain.com/apimanager666
  • 请求方式: POST
  • Content-Type: application/json
  • 说明: 此接口用于新增商品。

认证

请求头中需要携带 skill-access-token

Header
skill-access-token {your-skill-access-token} (请替换为你自己的 token)

请求参数 (Body - JSON)

顶层字段

字段 类型 必填 说明
product Object ✅ 必填 产品主体数据
productattr_info Array 选填 商品附加属性信息。使用前需先判断插件是否存在,详见下文说明
images Array ✅ 必填 产品图片
videos Array 选填 产品视频列表
addition_group_id int 选填 商品自定义属性组 ID
variantremark_id string/int 选填 变体备注 ID
groupbuy_id string/int 选填 组合购买 ID
collection_ids Array[int] 选填 产品对应的专辑 ID 数组(多对多关系)
label_ids Array 选填 角标 ID 数组
options Array 选填 产品规格定义。单规格为空,多规格必填
variants Array ✅ 必填 产品变体(规格)。单规格产品数组只有一个子项
glasses Object 选填 眼镜类商品属性
mergeimages Array 选填 合并图片列表
tags Array 选填 商品 tag 数组

groupbuy_id 说明

groupbuy_id 是商品搭配组合购买(插件 prodattr)提供的数据。使用前需要:

  1. 通过 商品组合购买-下拉条列表 获取下拉条列表
  2. 在该 API 返回的参数 groups 中,选择一个子项的 id,作为 groupbuy_id 的值
  3. 商品搭配组合购买是插件功能,使用前需要先判断插件是否存在:通过 获取店铺基本信息 返回的字段 addons,查看 prodattr 是否在 addons 数组中存在,如果存在则说明店铺存在插件:商品搭配组合购买

productattr_info 说明

productattr_info 是商品附加属性(插件 prodattr)提供的数据。使用前需要:

  1. 通过 获取店铺基本信息 获取 addons 字段,检查 prodattr 是否在 addons 数组中存在
  2. 如果存在,则通过 商品附加属性-所有属性以及子项列表 获取所有属性及其子项
  3. 根据业务需要勾选属性和子项,构建 productattr_info 数组

示例格式:

[
    {"attr_id": 29, "item_ids": [52]},
    {"attr_id": 30, "item_ids": [55]},
    {"attr_id": 31, "item_ids": [56, 63]},
    {"attr_id": 32, "item_ids": [57]},
    {"attr_id": 33, "item_ids": [58, 61]}
]
参数 类型 必填 说明
attr_id int ✅ 必填 属性 ID
item_ids Array[int] ✅ 必填 属性值 ID 数组
id string 选填 记录 ID(新增时为空字符串)

addition_group_id 说明

addition_group_id 是自定义属性 ID,对应自定义属性插件。该字段是商品自定义属性 id 字段,需要先查看插件:商品自定义属性,店铺是否存在这个插件,并且,插件状态是否为开启。

该字段赋值条件:

  1. 店铺存在插件:商品自定义属性

  2. 店铺是否存在插件:商品自定义属性,是插件功能,因此,使用前需要先判断商品自定义属性插件:additionattr,是否存在插件:additionattr,可以通过 api:获取店铺基本信息 返回的字段:addons,查看:additionattr 是否在 addons 数组中存在,如果存在则说明店铺存在插件:商品自定义属性

  3. 通过 api:商品自定义属性-下拉条列表,得到商品自定义属性下拉条列表,进行选择。因此,下拉条内容不为空,则可以选择商品自定义属性 id 的值,作为商品创建 api:addition_group_id 的值

collection_ids 说明

collection_ids 是商品专辑 ID 数组,可通过 商品专辑-列表 获取商品专辑 ID。


google_product_category 说明

google_product_category 是商品对应在 google category 的 ID,通过 商品-google categorys 获取数据。


product 字段详表

字段 类型 必填 说明
spu string 选填 产品 SPU
title string ✅ 必填 产品标题
sub_title string 选填 产品副标题
body_html string ✅ 必填 产品描述(HTML)
handle string 选填 商品 URL handle。不填写则用 title 自动生成
status int 选填 产品状态。1 上架,2 下架。默认上架
type int ✅ 必填 产品规格类型。1 单规格,2 多规格
vendor string 选填 产品厂家/品牌名称
virtual_sales_count int 选填 产品虚拟销量
is_tax int 选填 是否收税。1 收税,2 不收税
payafteruse int 选填 先用后付。1 先用后付商品,2 普通商品
variant_need_image int 选填 规格是否需要图片。1 需要,2 不需要。默认 1
variant_show_image int 选填 前台商城规格显示方式。1 显示文字,2 显示图片,3 使用插件默认配置
variant_need_note int 选填 变体是否需要备注。1 需要,2 不需要
inventory_police int 选填 是否跟踪库存。1 跟踪,2 不跟踪。默认 1
inventory_police_type int 选填 库存策略。1 库存为0允许购买,2 库存为0不允许购买,3 库存为0自动下架。默认 1
meta_is_edit int 选填 SEO 信息是否独立编辑。1 非独立编辑,2 独立编辑
meta_title string 选填 SEO 标题(meta title)
meta_keywords string 选填 SEO 关键字(meta keywords)
meta_description string 选填 SEO 描述(meta description)
feed_title string 选填 Feed 自定义 title
feed_description string 选填 Feed 自定义 description
translate_type int 选填 翻译类型。1 强制翻译,2 只翻译多语言为空的部分,3 不翻译
source_type int/string 选填 source 类型。1 代表 1688
template_type string 选填 模版装修的 template key
google_product_category int 选填 Google 商品分类 ID
google_product_type_id string 选填 Google 产品类型
description_json Object 选填 JSON 描述内容(模板装修数据)
description_json_status int 选填 描述是否使用 JSON 字段。1 开启,2 关闭
params_json Array 选填 参数 JSON 内容
params_json_status int 选填 参数是否使用 JSON。1 开启,2 关闭
short_description_json Array[Object] 选填 商品列表描述,简短描述(JSON 格式数组,支持多语言)。每项含 text(默认文本)和 lang_params(多语言翻译对象)
collection_ids Array[int] 选填 产品对应的专辑 ID 数组
label_ids Array 选填 角标 ID 数组
variant_show_image 说明

variant_show_image 该字段对应的是插件:商品规格图片,本来该字段是通过:商品规格图片-保存配置 的字段:default_show 进行,如果某个商品,不想通过统一配置,想要单独配置,那么就可以设置这个字段。

| variant_show_image | int | 选填 | 前台商城规格显示方式。1 显示文字,2 显示图片,3 使用插件默认配置 |

默认的值为:3,一般都是使用 3,也就是,使用插件默认配置,该值代表的意思是,以 api:商品规格图片-保存配置 的字段:default_show,这个字段为准。

对于值 1 和 2,代表自定义值,譬如某个商品的规格全部使用文字,那么就可以在这里自定义某个商品的规格的显示方式。

short_description_json 结构说明

每项格式:

{
    "text": "默认文本",
    "lang_params": {
        "text": {
            "cn": "中文翻译"
        }
    }
}

short_description_json 插件判断说明

short_description_json(商品列表描述)是插件:商品列表描述对应的字段。该字段进行编辑后,通过 api:商品列表描述-获取配置,来查看 status 是否开启,如果开启,则前台商城,商品详情页,将会显示商品的列表属性。

商品列表属性,是为了将商品的简要描述,在商品详情页更好地展示。简单来说,商品列表属性就是在前台商城的商品详情页,展示的一列商品属性文字——一行一段文字,多行显示

使用前需要同时满足以下 2 个条件:

  1. 店铺存在插件:商品列表描述。这是插件功能,使用前需要先判断商品列表描述插件:prodlistattr 是否存在。可以通过 api:获取店铺基本信息 返回的字段:addons,查看:prodlistattr 是否在 addons 数组中存在,如果存在则说明店铺存在插件:商品列表描述
  2. 插件状态开启。通过 api:商品列表描述-获取配置 获取状态值 status 为 1 开启,则代表插件状态开启
template_type 说明

template_type 是模版装修的 template key。取值方式:

  1. 通过 得到模版layout布局列表,传递 get 参数 page_type=product,即可获得 Template Types 列表
  2. 从返回数据中的 template_types 中选择一个值,作为 template_type 的值
  3. 一般来说,该值留空即可,除非用户进行指定
  4. 如果用户提交了值,那么该值必须在该 API 返回的数据 template_types 中存在;如果不存在,则留空即可

images 字段详表

新增时不需要传 id,系统会自动生成。

字段 类型 必填 说明
src string ✅ 必填 产品图片路径
alt string 选填 图片 alt 文本
position int ✅ 必填 图片排序位置,从 1 开始依次递增。标识为 1 的将作为主图
width int 选填 图片宽度(像素)
height int 选填 图片高度(像素)
ratio string 选填 宽高比
key float 选填 前端唯一标识 key

videos 字段详表

新增时不需要传 id

字段 类型 必填 说明
src string ✅ 必填 视频 URL 路径
alt string 选填 视频 alt 文本
position int ✅ 必填 排序位置
key float 选填 前端唯一标识 key


videos 插件判断说明

videos 是商品视频字段,需要先查看插件:商品视频,店铺是否存在这个插件,并且,插件状态是否为开启。

该字段赋值条件:这 2 个条件必须同时成立

  1. 店铺存在插件:商品视频
  2. 插件状态开启

  3. 店铺是否存在插件:商品视频,是插件功能,因此,使用前需要先判断商品视频插件:prodvideo,是否存在插件:prodvideo。可以通过 api:获取店铺基本信息 返回的字段:addons,查看:prodvideo 是否在 addons 数组中存在,如果存在则说明店铺存在插件:商品视频

  4. 通过 api:商品视频-获取配置,得到状态 status 为 1 开启,则代表插件状态开启

options 字段详表

单规格产品为空,多规格产品必填。新增时不需要传 id

字段 类型 必填 说明
name string ✅ 必填 规格名称(如 "Color"、"Size")
position int ✅ 必填 规格排序,值只能为 123 中的一个,且每个 option 的 position 不可重复
items Array[string] ✅ 必填 规格子项数组(如 ["White", "Black"]

variants 字段详表

单规格产品数组只有一个子项。新增时不需要传 id

字段 类型 必填 说明
price float ✅ 必填 售卖价格
qty int ✅ 必填 变体库存,默认 0
weight string ✅ 必填 变体重量
weight_unit string ✅ 必填 重量单位。可选值:g(克)、kg(千克)、lb(磅)、oz(盎司)
option1 string 选填 规格值 1。其值必须存在于 optionsposition=1 所在行的 items 数组中
option2 string 选填 规格值 2。其值必须存在于 optionsposition=2 所在行的 items 数组中
option3 string 选填 规格值 3。其值必须存在于 optionsposition=3 所在行的 items 数组中
cost_price float 选填 成本价格
compare_at_price float 选填 划线价格
wholesale_price Array[Object] 选填 批发价格。每项含 qty(批发个数,int)和 price(批发价格,float)
sku string ✅/选填 产品 SKU。根据配置项决定必填唯一、选填唯一或选填非唯一
barcode string 选填 条形码
image string 选填 变体图片路径。注意:此图片必须存在于 images 数组中,否则无法保存
note string 选填 变体备注
buy_min_count int 选填 最小起购数量。这是商品最低购买的个数,需要插件:cartlimit(商品加购限制)存在且状态开启才生效,详见下方「buy_min_count 插件判断说明」
customervip Array[Object] 选填 VIP 会员价格。每项含 customervip_id(VIP等级ID,int)和 price(VIP价格,float)
images Array 选填 变体图片列表

variants 子项 image(变体图片)必填说明

variants 子项的 image 字段(变体图片路径)是否必填,由 productvariant_need_image 字段决定:

  1. product.variant_need_image 值为 1,则 variants 子项的字段:image(变体图片路径),必填,而且:注意:此图片必须存在于 images 数组中,否则无法保存
  2. product.variant_need_image 值不为 1,则 variants 子项的字段:image,不需要填写


variants 子项 images(商品规格多图)说明

商品规格多图,对应的是 variants 的子项的 images 字段。variants 字段是商品的规格字段,它的子项的 images 字段,保存的就是规格多图。

这个字段是商品规格多图,需要先判断插件:商品规格多图,店铺是否存在这个插件,并且,插件状态是否为开启。

该字段赋值条件:这 2 个条件必须同时成立

  1. 店铺存在插件:商品规格多图
  2. 插件状态开启

  3. 店铺是否存在插件:商品规格多图,是插件功能,因此,使用前需要先判断商品规格多图插件:variantmutilimage,是否存在插件:variantmutilimage。可以通过 api:获取店铺基本信息 返回的字段:addons,查看:variantmutilimage 是否在 addons 数组中存在,如果存在则说明店铺存在插件:商品规格多图

  4. 通过 api:商品规格多图-获取配置,得到状态 status 为 1 开启,则代表插件状态开启

variants 子项 images 示例(即规格多图):

"images": [
    {
        "id": "",
        "product_id": 7143,
        "variant_id": 50400,
        "position": 1,
        "src": "https://sc04.alicdn.com/kf/Hd4e2987843a8423ebe6dfced71a6128df.jpg",
        "width": "",
        "height": "",
        "ratio": "0.00"
    },
    {
        "id": "",
        "product_id": 7143,
        "variant_id": 50400,
        "position": 2,
        "src": "https://sc04.alicdn.com/kf/H8e2257c0fcf34dec8240ba8e647e710bP.jpg",
        "width": "",
        "height": "",
        "ratio": "0.00"
    }
]

images 说明:

  • images 的子项的 src 字段,是图片的路径,对于值,可以是 http 开头的完整 url,也可以是只有 path 的图片路径(通过图片基础 url 拼接得到完整图片 url)
  • images 的子项的 src 字段,是图片的路径,必须在 post 的参数:images 中存在,post 参数 images 指的是最外层的商品所有图片的字段 images

images 子项说明:

字段 类型 说明
id string 子项 id
product_id string/int 商品 id
variant_id string/int 规格变体 id
position int 图片位置,用于前台商城,商品详情页,图片的排序
src string 图片的路径,可以是 http 开头的完整 url,也可以是只有 path 的图片路径(通过图片基础 url 拼接得到完整图片 url),该子项必须在最外层的 post 参数 images 中存在
ratio string 图片宽高比

wholesale_price 插件判断说明

wholesale_price(商品批发价格)是商品批发价格插件提供的数据。注意:商品设置了批发价格数据后,店铺必须存在插件:商品批发价格,并且插件状态已开启,前台商品详情页才会显示商品的批发价格,顾客购买多个才会享受批发价格。

使用前需要同时满足以下 2 个条件:

  1. 店铺存在插件:商品批发价格。这是插件功能,使用前需要先判断商品批发价格插件:wholesale_price 是否存在。可以通过 api:获取店铺基本信息 返回的字段:addons,查看:wholesale_price 是否在 addons 数组中存在,如果存在则说明店铺存在插件:商品批发价格
  2. 插件状态开启。通过 api:商品批发价格-获取配置 获取状态值,判断插件是否开启

buy_min_count 插件判断说明

variants 子项的 buy_min_count(最小起购数量),是商品最低购买的个数。需要插件:cartlimit(商品加购限制)存在,并且插件状态为开启状态,前台商城,商品购买个数限制才会生效。

使用前需要同时满足以下 2 个条件:

  1. 店铺存在插件:商品加购限制。这是插件功能,使用前需要先判断商品加购限制插件:cartlimit 是否存在。可以通过 api:获取店铺基本信息 返回的字段:addons,查看:cartlimit 是否在 addons 数组中存在,如果存在则说明店铺存在插件:商品加购限制
  2. 插件状态开启。通过 api:商品加购限制-获取配置 返回的 status,状态为开启状态,前台商城,商品购买个数限制才会生效

如果店铺不存在插件:cartlimit,或者状态不开启,则前台商城,商品购买个数限制不会生效。

tags 字段详表

新增时传 id: ""(空字符串)。

字段 类型 必填 说明
id string 选填 Tag ID(新增时传空字符串 "",已有 tag 传实际 ID)
title string ✅ 必填 Tag 标题

值格式为:

[
    {
        "title": "beginner",
        "id": 199
    },
    {
        "title": "baby closthes",
        "id": 53
    },
    {
        "title": "4343",
        "id": ""
    }
]

对于 tags 的值:

  • 可以从 tag 列表中进行选择:商品Tag-列表,这种方式可以填写 idtitle
  • 也可以直接填写 tags 的值,只填写 titleid 为空。保存商品的时候,会通过 tag title 去查询 tag:如果找到则直接返回 tag id,找不到则会创建 tag,然后返回 tag id

glasses 字段详表

字段 类型 必填 说明
button_type int 选填 按钮类型
distance_min string 选填 最小距离
distance_max string 选填 最大距离
sex Object 选填 适用性别。含 value(默认值)和 language(多语言对象,如 {"cn": "性别"}
lens_type Object 选填 镜片类型。含 value(默认值)和 language(多语言对象,如 {"cn": "类型"}
material Object 选填 材质。含 value(默认值)和 language(多语言对象,如 {"cn": "材料"}

mergeimages 字段详表

字段 类型 必填 说明
src string ✅ 必填 图片路径
position int ✅ 必填 图片位置排序
alt string 选填 图片 alt 文字
width int 选填 图片宽度(像素)
height int 选填 图片高度(像素)
ratio string 选填 宽高比

请求示例

cURL

curl --location --request POST '{your-site-url}/api/skill/product/create' \
--header 'skill-access-token: {your-skill-access-token}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "product": {
        "spu": "3232323",
        "title": "Morden Lighting Nordic Fabric Shade Black White Floor Lamp",
        "sub_title": "Morden Lighting Nordic Fabric Shade Black White Floor Lamp subtitle",
        "body_html": "...(HTML 模板装修内容,详见下方 body_html 说明)...",
        "status": 1,
        "is_tax": 1,
        "payafteruse": 1,
        "virtual_sales_count": "33",
        "type": 2,
        "vendor": "Lighting Made",
        "variant_need_image": "1",
        "variant_show_image": 3,
        "inventory_police": "1",
        "inventory_police_type": 1,
        "meta_is_edit": "2",
        "meta_title": "Morden Lighting Nordic Fabric Shade Black White Floor Lamp",
        "meta_keywords": "Morden Lighting",
        "meta_description": "Morden Lighting Nordic Fabric Shade Black White Floor Lamp, ...",
        "feed_description": "google feed description",
        "feed_title": "google feed title",
        "handle": "morden-lighting-nordic-fabric-shade-black-white-floor-lamp",
        "translate_type": 3,
        "google_product_category": 111,
        "google_product_type_id": "light",
        "description_json": "(Object,模板装修 JSON 数据,包含 collage-tabs 和 brand-list 两个 section)",
        "description_json_status": 1,
        "params_json": [],
        "params_json_status": 2,
        "short_description_json": [
            {
                "text": "Morden Lighting Nordic Fabric Shade Black White Floor Lamp",
                "lang_params": {
                    "text": {
                        "cn": "摩登照明北欧布艺灯罩黑白落地灯"
                    }
                }
            },
            {
                "text": "Nordic Fabric Shade Black White Floor Lamp",
                "lang_params": {
                    "text": {
                        "cn": "北欧风格黑白布艺灯罩落地灯"
                    }
                }
            }
        ],
        "template_type": "product",
        "variant_need_note": "1"
    },
    "productattr_info": [
      {
        "attr_id": 33,
        "item_ids": [
          61
        ]
      },
      {
        "attr_id": 31,
        "item_ids": [
          56,
          63
        ]
      }
    ],
    "images": [
        {
            "src": "/product/15/image/2026/04/28/3fb5620f4acf97bdf9d056a6220b87e0.jpg",
            "position": 1,
            "alt": "",
            "width": 600,
            "height": 600,
            "ratio": "1.00"
        },
        {
            "src": "/product/15/image/2026/04/28/f6d04b41c743455948ed5dfea357a53e.jpg",
            "position": 2,
            "alt": "",
            "width": 600,
            "height": 600,
            "ratio": "1.00"
        },
        {
            "src": "/product/15/image/2026/04/28/858278fe4f6d493ece46810169a4df21.jpg",
            "position": 3,
            "alt": "",
            "width": 600,
            "height": 600,
            "ratio": "1.00"
        }
    ],
    "videos": [
        {
            "src": "https://cloud.video.taobao.com/play/u/2206786293671/p/1/e/6/t/1/453995116363.mp4",
            "position": 1,
            "alt": ""
        }
    ],
    "addition_group_id": 73,
    "variantremark_id": 9,
    "groupbuy_id": 12,
    "collection_ids": [342, 343],
    "label_ids": [],
    "options": [
        {
            "name": "Color",
            "position": 1,
            "items": ["grey", "white"]
        },
        {
            "name": "Size",
            "position": 2,
            "items": ["L", "M"]
        }
    ],
    "variants": [
        {
            "price": "59.99",
            "compare_at_price": "69.99",
            "cost_price": "29.99",
            "sku": "3232323-grey-L-1010805",
            "barcode": "1111",
            "image": "/product/15/image/2026/04/28/3fb5620f4acf97bdf9d056a6220b87e0.jpg",
            "qty": 8999,
            "option1": "grey",
            "option2": "L",
            "option3": "",
            "weight": "11",
            "weight_unit": "kg",
            "note": "grey l",
            "buy_min_count": 1,
            "wholesale_price": [
                {"qty": 2, "price": "45.88"},
                {"qty": 5, "price": "41.88"}
            ],
            "customervip": [
                {"customervip_id": 11, "price": 44},
                {"customervip_id": 10, "price": 45},
                {"customervip_id": 8, "price": 46},
                {"customervip_id": 7, "price": 47}
            ],
            "images": [
                {
                    "src": "/product/15/image/2026/04/28/3fb5620f4acf97bdf9d056a6220b87e0.jpg",
                    "position": 1
                },
                {
                    "src": "/product/15/image/2026/04/28/f6d04b41c743455948ed5dfea357a53e.jpg",
                    "position": 2
                }
            ]
        },
        {
            "price": "59.99",
            "compare_at_price": "69.99",
            "cost_price": "29.99",
            "sku": "3232323-grey-M-1010806",
            "barcode": "2222",
            "image": "/product/15/image/2026/04/28/3fb5620f4acf97bdf9d056a6220b87e0.jpg",
            "qty": 8999,
            "option1": "grey",
            "option2": "M",
            "option3": "",
            "weight": "11",
            "weight_unit": "kg",
            "note": "grey m",
            "buy_min_count": 1,
            "wholesale_price": [
                {"qty": 2, "price": "45.88"},
                {"qty": 5, "price": "41.88"}
            ],
            "customervip": [
                {"customervip_id": 11, "price": 44},
                {"customervip_id": 10, "price": 45},
                {"customervip_id": 8, "price": 46},
                {"customervip_id": 7, "price": 47}
            ],
            "images": [
                {
                    "src": "/product/15/image/2026/04/28/3fb5620f4acf97bdf9d056a6220b87e0.jpg",
                    "position": 1
                },
                {
                    "src": "/product/15/image/2026/04/28/f6d04b41c743455948ed5dfea357a53e.jpg",
                    "position": 2
                }
            ]
        },
        {
            "price": "59.99",
            "compare_at_price": "69.99",
            "cost_price": "29.99",
            "sku": "3232323-white-L-1010807",
            "barcode": "3333",
            "image": "/product/15/image/2026/04/28/858278fe4f6d493ece46810169a4df21.jpg",
            "qty": 8999,
            "option1": "white",
            "option2": "L",
            "option3": "",
            "weight": "11",
            "weight_unit": "kg",
            "note": "white l",
            "buy_min_count": 1,
            "wholesale_price": [
                {"qty": 2, "price": "45.88"},
                {"qty": 5, "price": "41.88"}
            ],
            "customervip": [
                {"customervip_id": 11, "price": 44},
                {"customervip_id": 10, "price": 45},
                {"customervip_id": 8, "price": 46},
                {"customervip_id": 7, "price": 47}
            ],
            "images": [
                {
                    "src": "/product/15/image/2026/04/28/858278fe4f6d493ece46810169a4df21.jpg",
                    "position": 1
                },
                {
                    "src": "/product/15/image/2026/04/28/f6d04b41c743455948ed5dfea357a53e.jpg",
                    "position": 2
                }
            ]
        },
        {
            "price": "59.99",
            "compare_at_price": "69.99",
            "cost_price": "29.99",
            "sku": "3232323-white-M-1010808",
            "barcode": "4444",
            "image": "/product/15/image/2026/04/28/858278fe4f6d493ece46810169a4df21.jpg",
            "qty": 8999,
            "option1": "white",
            "option2": "M",
            "option3": "",
            "weight": "11",
            "weight_unit": "kg",
            "note": "white m",
            "buy_min_count": 1,
            "wholesale_price": [
                {"qty": 2, "price": "45.88"},
                {"qty": 5, "price": "41.88"}
            ],
            "customervip": [
                {"customervip_id": 11, "price": 44},
                {"customervip_id": 10, "price": 45},
                {"customervip_id": 8, "price": 46},
                {"customervip_id": 7, "price": 47}
            ],
            "images": [
                {
                    "src": "/product/15/image/2026/04/28/858278fe4f6d493ece46810169a4df21.jpg",
                    "position": 1
                },
                {
                    "src": "/product/15/image/2026/04/28/f6d04b41c743455948ed5dfea357a53e.jpg",
                    "position": 2
                }
            ]
        }
    ],
    "glasses": {
        "button_type": 1,
        "distance_min": "11",
        "distance_max": "99",
        "sex": {
            "value": "sex",
            "language": {"cn": "性别"}
        },
        "lens_type": {
            "value": "style",
            "language": {"cn": "类型"}
        },
        "material": {
            "value": "type",
            "language": {"cn": "材料"}
        }
    },
    "mergeimages": [],
    "tags": [
        {"title": "white", "id": ""},
        {"title": "black", "id": ""}
    ]
}'

返回结果

code200 表示调用成功;code 不为 200 表示调用失败。

成功响应

{
    "code": 200,
    "data": {
        "product_id": 4693
    },
    "message": "success"
}

返回字段说明

字段 类型 说明
code Number 状态码,200 表示成功
message String 执行结果的文字描述
data.product_id int 创建成功后返回的新产品 ID

错误响应

{
    "code": 100701001,
    "message": "error message"
}

错误码说明

错误码 说明
100701003 商品id为空
100701001 商品保存报错
其他错误码 商品保存报错

Create vs Update 区别

/api/skill/product/update/api/skill/product/create 参数结构几乎一致,主要区别:

区别点 Create(新增) Update(更新)
接口地址 /api/skill/product/create /api/skill/product/update
product.id 不需要传 ✅ 必填
images[].id 不需要传 选填(更新已有图片时传入)
videos[].id 不需要传 选填(更新已有视频时传入)
options[].id 不需要传 选填(更新已有规格时传入)
variants[].id 不需要传 选填(更新已有变体时传入)
tags[].id 传空字符串 ""(新建 tag) 传已有 tag 的 ID

注意事项

  1. productattr_info 插件判断:使用前先通过 获取店铺基本信息 检查 addons 中是否包含 prodattr。如果存在,则通过 商品附加属性-所有属性以及子项列表 获取所有属性及其子项后构建此字段。
  2. body_html 为商品详情页的 HTML 模板装修内容,与 description_json 对应。
  3. 变体的 image 字段必须已存在于 images 数组中,否则无法保存。
  4. images[].position 必须从 1 开始连续递增,position=1 的图片为主图。
  5. options[].position 只能为 123,且每个 option 的 position 不可重复。
  6. variants 中的 option1/2/3 值必须与对应 positionoptions[].items 中的值匹配。
  7. wholesale_price 为变体的批发价格数组,每个元素包含 qty(起批数量)和 price(批发单价)。
  8. weight_unit 支持 gkglboz 四种单位。
  9. description_json 为模板装修数据(Object),非数组;description_json_status1 时才生效。
  10. short_description_json 每项包含 text(默认文本)和 lang_params.text.{语言}(多语言翻译)。
  11. 新增时所有实体的 id 字段均不需要传(或传空),系统会自动生成。
  12. videos 插件判断videos 是商品视频字段,赋值条件:① 通过 获取店铺基本信息 检查 addons 中是否包含 prodvideo(店铺存在插件:商品视频);② 通过 商品视频-获取配置 得到状态 status1 开启(插件状态开启)。2 个条件必须同时成立。
  13. variants 子项 images 插件判断variants 子项的 images 字段(商品规格多图),赋值条件:① 通过 获取店铺基本信息 检查 addons 中是否包含 variantmutilimage(店铺存在插件:商品规格多图);② 通过 商品规格多图-获取配置 得到状态 status1 开启(插件状态开启)。2 个条件必须同时成立。
  14. variants 子项 images 中的 src 必须是 http 开头的完整 url,或者只有 path 的图片路径(通过图片基础 url 拼接得到完整图片 url),且该 src 必须存在于最外层的 post 参数 images 中。
  15. wholesale_price 插件判断wholesale_price(商品批发价格)是插件功能,赋值条件:① 通过 获取店铺基本信息 检查 addons 中是否包含 wholesale_price(店铺存在插件:商品批发价格);② 通过 商品批发价格-获取配置 获取状态值(插件状态开启)。2 个条件必须同时成立,前台商品详情页才会显示批发价格,购买多个才会享受批发价格。
  16. short_description_json 插件判断short_description_json(商品列表描述)是插件功能,赋值条件:① 通过 获取店铺基本信息 检查 addons 中是否包含 prodlistattr(店铺存在插件:商品列表描述);② 通过 商品列表描述-获取配置 得到状态 status1 开启(插件状态开启)。2 个条件必须同时成立,前台商品详情页才会显示商品的列表属性。
  17. buy_min_count 插件判断variants 子项的 buy_min_count(最小起购数量)是商品最低购买的个数,赋值条件:① 通过 获取店铺基本信息 检查 addons 中是否包含 cartlimit(店铺存在插件:商品加购限制);② 通过 商品加购限制-获取配置 返回的 status 为开启状态(插件状态开启)。2 个条件必须同时成立,前台商城商品购买个数限制才会生效;如果店铺不存在插件:cartlimit,或者状态不开启,则前台商城商品购买个数限制不会生效。
Copyright © fecify.com 2025 all right reserved,powered by Gitbook该文件修订时间: 2026-08-06 15:52:28

results matching ""

    No results matching ""