1. 商品模块API

API URL

post {HTTP(S)地址}/api/{version}/sku

商品分类主数据(树查询/创建/更新/删除)见下文 商品分类,请求 URL 为 /api/{version}/sku_category。商品新增/编辑仍用 categoryName1 / categoryName2 / categoryName3 按名称挂分类。普通属性、SPU 属性见下文 普通属性、SPU属性。

1.1. 商品列表查询接口

1.1.1. SERVICE_TYPE

QUERY_SIMPLE_LIST_SKU

1.1.2. 请求参数

参数 是否必须 类型 示例 备注
page Y Number 1 页码,默认1
pageSize Y Number 50 每页条数.不超过200条; 默认100
categoryName1 N String 一级商品分类
categoryName2 N String 二级商品分类
categoryName3 N String 三级商品分类
updateTimeFrom N String 2022-09-26 更新开始时间
updateTimeTo N String 2022-09-26 更新结束时间
skus N List <String> ["123","456"] 商品编码
titles N List <String> ["商品名称"] 商品名称
skuCustomFieldValueSOList N List<SkuCustomFieldValueSO> 自定义栏位搜索条件
developerUserNameList N List<String> ["username"] 开发员用户名

SkuCustomFieldValueSO(自定义栏位搜索)

参数 是否必须 类型 示例 备注
customFieldId Y Long 3 SERVICE_TYPE中的CUSTOMER_FIELD_QUERY接口返回的id
value N String “张三” 自定义栏位对应的值 STRING:字符串; SELECT:下拉框格式支持。
from N String "1970/01/01" 范围查询左区间 NUMBER:数字; DATE:日期格式支持。
to N String "1971/01/01" 范围查询右区间 NUMBER:数字; DATE:日期格式支持。

1.1.3. 返回参数

参数 是否必须 类型 示例 备注
errorCode Y String “DATA_INPUT_ERROR” 错误码
errorMsg Y String “输入参数不对” 业务错误信息
state Y String success 请求结果
total Y Number 100 总条数
result Y List<Sku> 商品列表信息,详情查看下表

Sku(商品)

参数 是否必须 类型 示例 备注
sku Y String “sku1” 商品SKU,最大255字符
title Y String “abc” 商品名称,最大255字符
barcode N String 商品条码,最大255字符
type Y String “SINGLE” 商品类型
isAssembly N Int 0或者1 是否组装品
1:是
0:否
picUrl N String 图片地址,最大255字符
saleStatus N String 销售状态,最大50字符
weight Y Decimal 毛重
netWeight Y Decimal 净重
weightUnit Y String 重量单位
abbrTitle N String 简称,最大255字符
brand N String 商品品牌,最大50字符
unit N String 商品单位,最大128字符
color N String 颜色,最大255字符
size N String 尺码,最大255字符
length Y Decimal 长
width Y Decimal 宽
height Y Decimal 高
dimensionUnit Y String 长度单位
itemPackage N Number 包装数量
description N String 商品描述,最大2048字符
descriptionEn N String 商品描述英文,最大2048字符
functionDescription N String 性能描述,最大2048字符
enable Y Number 商品状态(0:禁用;1:有效)
shelfLife Y Number 90 保质期(默认单位天)
categoryName1 N String 一级商品分类
categoryName2 N String 二级商品分类
categoryName3 N String 三级商品分类
singleBoxCode N String 单箱条码
singleItemVolume N Decimal 单品体积
cartonVolumeUnit N String 体积单位
customProp1 N String 自定义字段1
customProp2 N String 自定义字段2
customProp3 N String 自定义字段3
price N Decimal 默认售价
remarkName N String 备注名
singleSkuList N List <SubSkuDTO> 如果是组合品,返回子品信息
parts N List <SubSkuDTO> 组装品子品信息
1. sku:子品编码
2. quantity:子品数量
skuCustomFieldValueVOList N SkuCustomFieldValueVO 自定义栏位信息
packingRate N Number 单箱数量
purchaseCost N Decimal 采购成本
purchaseCostUnit N String 采购成本币种(CNY、USD、CAD、GBP、 EUR、JRY等)
skuSupplierList N List <SkuSupplierDTO> 供应商信息
isRelatedSingleCost N Boolean 是否关联单品成本
developerUserNameList N List <String> 开发员姓名
isIssueInvoice N Int 是否开票
1: 是
2:否
ncm N String NCM
taxGoodsName N String 商品税务名称
cest N String CEST
placeOrigin N String 原产地

SubSkuDTO(子品信息)

参数 是否必须 类型 示例 备注
sku Y String “sku1” 商品SKU,最大255字符
quantity Y Integer 1 数量

SkuCustomFieldValueVO(自定义栏位信息)

参数 是否必须 类型 示例 备注
tableName Y String SYS_ITEM SYS_ITEM:系统商品自定义栏位; SYS_ORDER:订单自定义栏位; SYS_ODO:出库单自定义栏位; SYS_ASN:入库单自定义栏位。
columType Y String NUMBER 筛选不同填入类型的自定义栏位 NUMBER:数字; DATE:日期; STRING:字符串; SELECT:下拉框。
columName Y String 生产日期 用户自己定义的栏位名称
defaultValue N String "1970/01/01"(无双引号) 自定义栏位默认值
candidateValue N String ["1970/01/01","1970/01/02"] 下拉框的候选值
remark N String 上架日期区分于出厂日期 备注
required N Integer 1 是否只查询必填栏位 1:true;0:false
isQuery N Integer 1 是否只查询支持查询的栏位 1:true;0:false
isShow N Integer 1 是否只查询支持列配置的栏位 1:true;0:false

SkuSupplierDTO(供应商信息)

参数 是否必须 类型 示例 备注
name Y String 供应商名称
isDefault Y Boolean 是否默认供应商
purchaserList Y List <String> 采购员,用户名非姓名
deliveryCycle Y Number 预计交期(天)
purchasePrice N Decimal 采购单价,小数点后2位有效,多余部分四舍五入
purchasePriceUnit N String 采购单价币种(CNY、USD、CAD、GBP、 EUR、JRY等)
minimumPurchaseQuantity N Number 最小采购量,正整数
purchaseTaxRate N Decimal 采购税率,单位:%
drawbackRate N Decimal 退税税率,单位:%
purchaseUrl N String 采购链接

请求示例:

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/sku' \
--form 'appId="TEST"' \
--form 'serviceType="QUERY_SIMPLE_LIST_SKU"' \
--form 'bizParam="{
    \"page\":1,
    \"pageSize\":1
}"' \
--form 'timestamp="1731742317"' \
--form 'sign="a9837b4485a8e427f584933267dc4ea4"'

返回示例:

{
    "state": "success",
    "errorCode": "",
    "errorMsg": "",
    "bizContent": "{\"notSuccess\":false,\"result\":[{\"cartonVolumeUnit\":\"cm3\",\"ccPriceUnit\":\"USD\",\"customsDeclarationPriceUnit\":\"USD\",\"dangerousTransportGoodsType\":\"NONE\",\"dimensionUnit\":\"cm\",\"enable\":1,\"exportTax\":0.0,\"height\":33.3,\"isDeleted\":0,\"length\":33.3,\"needQualityInspection\":false,\"netWeight\":33.0,\"picUrl\":\"https://test-logo.pomogo.co/STORE/1902244893482377216/default/ced190dda0e74aa0ba25879dffb8b9bc.png\",\"price\":0.0000,\"priceUnit\":\"USD\",\"sku\":\"3WkC2QzAnXPTsGO4vCNUgm\",\"skuCustomFieldValueVOList\":[{\"candidateValue\":[],\"columCode\":1,\"columName\":\"商品有效期\",\"columType\":\"DATE\",\"customFieldId\":17,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":17,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":2,\"columName\":\"商品产地\",\"columType\":\"STRING\",\"customFieldId\":16,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":16,\"isQuery\":1,\"isShow\":1,\"required\":0},{\"candidateValue\":[\"1\",\"2\",\"3\",\"123\"],\"columCode\":3,\"columName\":\"测试单选栏位\",\"columType\":\"SELECT\",\"customFieldId\":47,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":47,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":5,\"columName\":\"货值\",\"columType\":\"DATE\",\"customFieldId\":26,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"id\":26,\"isQuery\":0,\"isShow\":1,\"required\":0},{\"candidateValue\":[],\"columCode\":6,\"columName\":\"产品编码\",\"columType\":\"STRING\",\"customFieldId\":33,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":33,\"isQuery\":1,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":7,\"columName\":\"123\",\"columType\":\"STRING\",\"customFieldId\":40,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":40,\"isQuery\":1,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":10,\"columName\":\"地区账套\",\"columType\":\"STRING\",\"customFieldId\":27,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":27,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":11,\"columName\":\"单箱条码\",\"columType\":\"STRING\",\"customFieldId\":28,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":28,\"isQuery\":0,\"isShow\":0,\"required\":0},{\"candidateValue\":[],\"columCode\":12,\"columName\":\"规格型号\",\"columType\":\"STRING\",\"customFieldId\":29,\"customFieldValueVOList\":[],\"customerId\":3,\"customerIdForUser\":3,\"defaultValue\":\"\",\"id\":29,\"isQuery\":0,\"isShow\":0,\"required\":0}],\"title\":\"yhx母婴商品测试001自营 33\",\"type\":\"SINGLE\",\"weight\":33.0,\"weightUnit\":\"KG\",\"width\":33.3}],\"state\":\"success\",\"total\":3960}",
    "requestId": "afac1414-8397-4657-bd57-ed2c90bdc9b7"
}

1.2. 商品新增接口

1.2.1. SERVICE_TYPE

INSERT_SKU_INFO

1.2.2. 请求参数

参数 是否必须 类型 示例 备注
sku Y String “sku1” 商品SKU,最大255字符
title Y String “abc” 商品名称,最大255字符
barcode N String 商品条码,最大255字符
type Y String “SINGLE” 商品类型
isAssembly N Int 0或者1 是否组装品
1:是,需填写parts字段
0:否
picUrl N String 图片地址,最大255字符,建议使用picUrlList
picUrlList N List<String> 多张图片地址
saleStatus N String 销售状态,最大50字符
weight Y Decimal 毛重
netWeight Y Decimal 净重
weightUnit Y String 重量单位
abbrTitle N String 简称,最大255字符
brand N String 商品品牌,最大50字符
unit N String 商品单位,最大128字符
color N String 颜色,最大255字符
size N String 尺码,最大255字符
length Y Decimal 长
width Y Decimal 宽
height Y Decimal 高
dimensionUnit Y String 长度单位
itemPackage N Number 包装数量
description N String 商品描述,最大2048字符
descriptionEn N String 商品描述英文,最大2048字符
functionDescription N String 性能描述,最大2048字符
enable Y Number 商品状态(0:禁用;1:有效)
serialEnable N Number 0 是否启用序列号管理(0:否;1:是)
shelfLife Y Number 90 保质期(默认单位天)
packingRate N Number 装箱率,若未填写则不保存外箱尺寸、外箱毛重、外箱净重等值
cartonLength N Decimal 外箱长度,装箱率填写时此字段必填
cartonWidth N Decimal 外箱宽度,装箱率填写时此字段必填
cartonHeight N Decimal 外箱高度,装箱率填写时此字段必填
cartonWeight N Decimal 外箱毛重,装箱率填写时此字段必填
cartonNetWeight N Decimal 外箱净重,装箱率填写时此字段必填
cartonDimensionUnit N String 外箱尺寸单位(cm; m),装箱率填写时此字段必填
cartonWeightUnit N String 外箱重量单位(KG; G),装箱率填写时此字段必填
chineseCustomsDeclarationName N String 中文报关品名
englishCustomsDeclarationName N String 英文报关品名
cdPriceMethod N String 报关价格计算方式(RATE:按比例; CONSTANT:按固定值)
cdPriceRate N Decimal 报关价格比例
cdPriceMaximum N Decimal 报关价格最大值
customsDeclarationPrice N Decimal 报关价格
customsDeclarationPriceUnit N String 报关价格单位(CNY; USD; CAD; GBP; EUR; JRY)
customsCode N String 海关编码
exportTax N Decimal 出口税率
declaration N String 申报说明
dangerousTransportGoodsType N String 危险品类型(NONE, LIQUID, POWDER, CONTAIN_ELECTRIC, ELECTRIC)
batteryType N Integer 电池类型(0:不带电; 1:配套锂离子电池; 2:内置锂离子电池; 3:配套锂金属电池; 4:内置锂金属电池; 5:配套干电池)
ccPriceMethod N String 清关价格计算方式(RATE:按比例; CONSTANT:按固定值)
ccPriceRate N Decimal 清关价格比例
ccPriceMaximum N Decimal 清关价格最大值
ccPrice N Decimal 清关价格
ccPriceUnit N String 清关价格币种(CNY; USD; CAD; GBP; EUR; JRY)
needQualityInspection N Boolean 是否需要质检
price N Decimal 默认售价
priceUnit N String 默认售价单位(大写三位币种代码)
asin N String ASIN
customProp1 N String 自定义属性1
customProp2 N String 自定义属性2
customProp3 N String 自定义属性3
categoryName1 N String 一级商品分类
categoryName2 N String 二级商品分类
categoryName3 N String 三级商品分类
remarkName N String 备注名
singleSkuList N List <SubSkuDTO> 子品信息
parts N List <SubSkuDTO> 组装品子品信息,需填写信息
1. sku:子品编码
2. quantity:子品数量
singleBoxCode N String 单箱条码
singleItemVolume N Decimal 单品体积
skuCustomFieldValueVOList N List <SkuCustomFieldValueVO> 自定义栏位信息
purchaseCost N Decimal 采购成本
purchaseCostUnit N String 采购成本币种(CNY、USD、CAD、GBP、 EUR、JRY等)
skuSupplierList N List <SkuSupplierDTO> 供应商信息
isRelatedSingleCost N Boolean 是否关联单品成本,仅组合品生效
warehouseNameList N List ["warehouseName1"] type=SINGLE时,可填该字段,自动创建仓库商品并异步下发仓库
createAllWarehouseItems N Boolean false 默认false,type=SINGLE时,自动创建全部三方仓库商品并异步下发仓库;与warehouseNameList二选一
developerUserNameList N List 开发员账号
isIssueInvoice N Int 是否开票
1: 是
2:否
ncm N String NCM,isIssueInvoice=1时必填
taxGoodsName N String 商品税务名称:isIssueInvoice=1时必填
cest N String CEST,非必填,isIssueInvoice=1时填写
placeOrigin N String 原产地,非必填,isIssueInvoice=1时填写

SubSkuDTO(组合品子品信息)

参数 是否必须 类型 示例 备注
sku Y String “sku1” 子品SKU
quantity Y Number 3 组合品中该子品数量

SkuCustomFieldValueVO(自定义栏位)

参数 是否必须 类型 示例 备注
customFieldId Y Long 3 SERVICE_TYPE中的CUSTOMER_FIELD_QUERY接口返回的id
value Y String “张三” 自定义栏位对应的值

SkuSupplierDTO(供应商信息)

参数 是否必须 类型 示例 备注
name Y String 供应商名称
isDefault Y Boolean 是否默认供应商
purchaserList Y List <String> 采购员,用户名非姓名
deliveryCycle Y Number 预计交期(天)
purchasePrice N Decimal 采购单价,小数点后2位有效,多余部分四舍五入
purchasePriceUnit N String 采购单价币种(CNY、USD、CAD、GBP、 EUR、JRY等)
minimumPurchaseQuantity N Number 最小采购量,正整数
purchaseTaxRate N Decimal 采购税率,单位:%
drawbackRate N Decimal 退税税率,单位:%
purchaseUrl N String 采购链接

1.2.3. 返回参数

参数 是否必须 类型 示例 备注
errorCode Y String “DATA_INPUT_ERROR” 错误码
errorMsg Y String “输入参数不对” 业务错误信息
state Y String success 请求结果

请求示例:

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/sku' \
--form 'appId="TEST"' \
--form 'serviceType="INSERT_SKU_INFO"' \
--form 'bizParam="{
\"sku\":\"ckfsku\",
\"title\":\"ckfsku\",
\"type\":\"SINGLE\",
\"weight\":1,
\"netWeight\":1,
\"weightUnit\":\"KG\",
\"length\":1,
\"width\":1,
\"height\":1,
\"dimensionUnit\":\"cm\",
\"enable\":1,
\"serialEnable\":1,
\"shelfLife\":90,

}"' \
--form 'timestamp="1731742317"' \
--form 'sign="bb8a4a78ebd8b43d6bc71f81e83ae900"'

返回示例:

{
    "state": "success",
    "errorCode": "",
    "errorMsg": "",
    "bizContent": "{\"notSuccess\":false,\"state\":\"success\"}",
    "requestId": "223f998d-b0d6-43e4-95cb-5c691572417d"
}

1.3. 商品编辑接口

1.3.1. SERVICE_TYPE

UPDATE_SKU_INFO

1.3.2. 请求参数

参数 是否必须 类型 示例 备注
sku Y String “sku1” 新增商品时填写的SKU
title Y String “abc” 商品名称,最大255字符
barcode N String 商品条码,最大255字符
type Y String “SINGLE” 商品类型
isAssembly N Int 0或者1 是否组装品
1:是,需填写parts字段
0:否
picUrl N String 图片地址,最大255字符,建议使用picUrlList
picUrlList N List<String> 多张图片地址
saleStatus N String 销售状态,最大50字符
weight Y Decimal 毛重
netWeight Y Decimal 净重
weightUnit Y String 重量单位
abbrTitle N String 简称,最大255字符
brand N String 商品品牌,最大50字符
unit N String 商品单位,最大128字符
color N String 颜色,最大255字符
size N String 尺码,最大255字符
length Y Decimal 长
width Y Decimal 宽
height Y Decimal 高
dimensionUnit Y String 长度单位
itemPackage N Number 包装数量
description N String 商品描述,最大2048字符
descriptionEn N String 商品描述英文,最大2048字符
functionDescription N String 性能描述,最大2048字符
enable Y Number 商品状态(0:禁用;1:有效)
serialEnable N Number 0 是否启用序列号管理(0:否;1:是)
shelfLife Y Number 90 保质期(默认单位天)
packingRate N Number 装箱率,若未填写则不保存外箱尺寸、外箱毛重、外箱净重等值
cartonLength N Decimal 外箱长度,装箱率填写时此字段必填
cartonWidth N Decimal 外箱宽度,装箱率填写时此字段必填
cartonHeight N Decimal 外箱高度,装箱率填写时此字段必填
cartonWeight N Decimal 外箱毛重,装箱率填写时此字段必填
cartonNetWeight N Decimal 外箱净重,装箱率填写时此字段必填
cartonDimensionUnit N String 外箱尺寸单位(cm; m),装箱率填写时此字段必填
cartonWeightUnit N String 外箱重量单位(KG; G),装箱率填写时此字段必填
chineseCustomsDeclarationName N String 中文报关品名
englishCustomsDeclarationName N String 英文报关品名
cdPriceMethod N String 报关价格计算方式(RATE:按比例; CONSTANT:按固定值)
cdPriceRate N Decimal 报关价格比例
cdPriceMaximum N Decimal 报关价格最大值
customsDeclarationPrice N Decimal 报关价格
customsDeclarationPriceUnit N String 报关价格单位(CNY; USD; CAD; GBP; EUR; JRY)
customsCode N String 海关编码
exportTax N Decimal 出口税率
declaration N String 申报说明
dangerousTransportGoodsType N String 危险品类型(NONE, LIQUID, POWDER, CONTAIN_ELECTRIC, ELECTRIC)
batteryType N Integer 电池类型(0:不带电; 1:配套锂离子电池; 2:内置锂离子电池; 3:配套锂金属电池; 4:内置锂金属电池; 5:配套干电池)
ccPriceMethod N String 清关价格计算方式(RATE:按比例; CONSTANT:按固定值)
ccPriceRate N Decimal 清关价格比例
ccPriceMaximum N Decimal 清关价格最大值
ccPrice N Decimal 清关价格
ccPriceUnit N String 清关价格币种(CNY; USD; CAD; GBP; EUR; JRY)
price N Decimal 默认售价
priceUnit N String 默认售价单位(大写三位币种代码)
asin N String ASIN
customProp1 N String 自定义属性1
customProp2 N String 自定义属性2
customProp3 N String 自定义属性3
categoryName1 N String 一级商品分类
categoryName2 N String 二级商品分类
categoryName3 N String 三级商品分类
singleBoxCode N String 单箱条码
singleItemVolume N Decimal 单品体积
remarkName N String 备注名
singleSkuList N List <SubSkuDTO> 子品信息
parts N List <SubSkuDTO> 组装品子品信息,需填写信息
1. sku:子品编码
2. quantity:子品数量
skuCustomFieldValueVOList N List <SkuCustomFieldValueVO> 自定义栏位信息
purchaseCost N Decimal 采购成本
purchaseCostUnit N String 采购成本币种(CNY、USD、CAD、GBP、 EUR、JRY等)
skuSupplierList N List <SkuSupplierDTO> 供应商信息
isRelatedSingleCost N Boolean 是否关联单品成本,仅组合品生效
developerUserNameList N List 开发员账号
isIssueInvoice N Int 是否开票
1: 是
2:否
ncm N String NCM,isIssueInvoice=1时必填
taxGoodsName N String 商品税务名称:isIssueInvoice=1时必填
cest N String CEST,非必填,isIssueInvoice=1时填写
placeOrigin N String 原产地,非必填,isIssueInvoice=1时填写

SubSkuDTO(组合品子品信息)

参数 是否必须 类型 示例 备注
sku Y String “sku1” 子品SKU
quantity Y Number 3 组合品中该子品数量

SkuCustomFieldValueVO(自定义栏位)

参数 是否必须 类型 示例 备注
customFieldId Y Long 3 SERVICE_TYPE中的CUSTOMER_FIELD_QUERY接口返回的id
value Y String “张三” 自定义栏位对应的值

SkuSupplierDTO(供应商信息)

参数 是否必须 类型 示例 备注
name Y String 供应商名称
isDefault Y Boolean 是否默认供应商
purchaserList Y List <String> 采购员,用户名非姓名
deliveryCycle Y Number 预计交期(天)
purchasePrice N Decimal 采购单价,小数点后2位有效,多余部分四舍五入
purchasePriceUnit N String 采购单价币种(CNY、USD、CAD、GBP、 EUR、JRY等)
minimumPurchaseQuantity N Number 最小采购量,正整数
purchaseTaxRate N Decimal 采购税率,单位:%
drawbackRate N Decimal 退税税率,单位:%
purchaseUrl N String 采购链接

1.3.3. 返回参数

参数 是否必须 类型 示例 备注
errorCode Y String “DATA_INPUT_ERROR” 错误码
errorMsg Y String “输入参数不对” 业务错误信息
state Y String success 请求结果

请求示例:

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/sku' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--form 'appId="TEST"' \
--form 'serviceType="UPDATE_SKU_INFO"' \
--form 'bizParam="{
\"sku\":\"ckfsku\",
\"title\":\"ckfsku\",
\"type\":\"SINGLE\",
\"weight\":1,
\"netWeight\":1,
\"weightUnit\":\"KG\",
\"length\":1,
\"width\":1,
\"height\":1,
\"dimensionUnit\":\"cm\",
\"enable\":1,
\"serialEnable\":1,
\"shelfLife\":90,

}"' \
--form 'timestamp="1731742317"' \
--form 'sign="f843a75cdb3cf14f403fa423108bc410"'

返回示例:

{
    "state": "success",
    "errorCode": "",
    "errorMsg": "",
    "bizContent": "{\"notSuccess\":false,\"state\":\"success\"}",
    "requestId": "223f998d-b0d6-43e4-95cb-5c691572417d"
}

1.4. 商品启用/停用接口

1.4.1. SERVICE_TYPE

UPDATE_SKU_STATUS

1.4.2. 请求参数

参数 是否必须 类型 示例 备注
sku Y String “sku1” 新增商品时填写的SKU
enable Y Number 商品状态(0:禁用;1:有效)

1.4.3. 返回参数

参数 是否必须 类型 示例 备注
errorCode Y String “DATA_INPUT_ERROR” 错误码
errorMsg Y String “输入参数不对” 业务错误信息
state Y String success 请求结果

请求示例:

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/sku' \
--form 'appId="TEST"' \
--form 'serviceType="UPDATE_SKU_STATUS"' \
--form 'bizParam="{
\"sku\":\"ckfsku\",
\"enable\":1

}"' \
--form 'timestamp="1731742317"' \
--form 'sign="b5400443bf960060453cacf9c351b6a4"'

返回示例:

{
    "state": "success",
    "errorCode": "",
    "errorMsg": "",
    "bizContent": "{\"notSuccess\":false,\"state\":\"success\"}",
    "requestId": "758f16da-dea5-4f1d-a36a-054bd581f0c8"
}

1.5. 查询系统商品

1.5.1. SERVICE_TYPE

QUERY_SYS_SKU_LIST_SKU

1.5.2. 请求参数

参数 是否必须 类型 示例 备注
platform Y String “sku1” 平台Code 例:AMAZON,ALIEXPRESS,EBAY,WALMART,WISH, LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL, TEMU,SHOPLINE,SHEIN ...
shopName Y Number 店铺名称
skuExtDTOList Y List<SkuExtDTO> 单次最多5个

SkuExtDTO(SKU查询条件)

参数 是否必须 类型 示例 备注
onlineSkuId N String "online-sku-id" 线上skuId,其他(LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL等)用id查询
onlineSku N String “online-sku-code” 线上skuCode,(AMAZON,ALIEXPRESS,EBAY,WALMART,WISH)用code查询

1.5.3. 返回参数

参数 是否必须 类型 示例 备注
platform Y String “sku1” 平台Code 例:AMAZON,ALIEXPRESS,EBAY,WALMART,WISH, LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL, TEMU,SHOPLINE ...
shopName Y Number 店铺名称
skuExtDTOList Y List<ReturnSkuExtDTO>

ReturnSkuExtDTO

参数 是否必须 类型 示例 备注
onlineSkuId N String "online-sku-id" 线上skuId,其他(LAZADA,SHOPEE_CNSC,SHOPEE,TIKTOK,TIKTOK_GLOBAL等)
onlineSku N String “online-sku-code” 线上skuCode,AMAZON,ALIEXPRESS,EBAY,WALMART,WISH
onlineSpuId N String 线上spuId, 若有
onlineSpu N String 线上spuCode, 若有
skuId Y String 系统商品skuId
sku Y String 系统商品skuCode
skuName Y String 系统商品SkuName
singleSkuList N List<SubSkuDTO> 子品信息,如果系统商品是组合品则返回

SubSkuDTO

参数 是否必须 类型 示例 备注
sku N String 子品skuCode
skuName N String 子品skuName
quantity N String 子品数量

1.6. 商品分类

API URL

post {HTTP(S)地址}/api/{version}/sku_category

业务限制与报错与页面「商品 - 分类管理」/biz/sku_category/ 一致:最多三级;同父级下名称不可重复;更新不改上级;删除时若被系统商品或供应商占用则失败,并级联删除子分类。更新/删除必须传 id 与 version。

开放平台授权:四个接口均不自动授权。客户需在开放平台为应用勾选 QUERY_SKU_CATEGORY_LIST / CREATE_SKU_CATEGORY / UPDATE_SKU_CATEGORY / DELETE_SKU_CATEGORY 后才能调用,否则返回 SERVICE_TYPE_NOT_ALLOW。

1.6.1. 商品分类树查询接口

SERVICE_TYPE

QUERY_SKU_CATEGORY_LIST

请求参数

对齐页面 /biz/sku_category/get_all:返回当前客户下全部商品分类树(一级节点及其 childList),不是分页查询。无需 page / pageSize,无业务过滤参数,无条数上限。bizParam 可为空或 {}。

返回参数

参数 是否必须 类型 示例 备注
errorCode Y String
errorMsg Y String
state Y String success
result Y List<SkuCategory> 一级分类列表,子级在 childList

SkuCategory

参数 是否必须 类型 示例 备注
id Y Long 1001 分类主键
name Y String 水果(A类) 分类名称
hsCode N String 3 海关编码
level Y Number 1 1/2/3
parentId Y Long 0 一级为 0
parentName N String 上级名称
version Y Long 0 乐观锁,更新/删除必传
childList N List<SkuCategory> 子分类

1.6.2. 商品分类创建接口

SERVICE_TYPE

CREATE_SKU_CATEGORY

请求参数

参数 是否必须 类型 示例 备注
name Y String 普通水果 分类名称
parentId Y Long 0 上级 ID,一级传 0
hsCode N String 0801 海关编码

返回参数

成功时 result.id 为新建分类主键。失败错误码与页面一致,例如 SKU_CATEGORY_NAME_EXISTS、SKU_CATEGORY_PARENT_NOT_EXISTS、DATA_INPUT_ERROR(不可超过三级)。

1.6.3. 商品分类更新接口

SERVICE_TYPE

UPDATE_SKU_CATEGORY

请求参数

参数 是否必须 类型 备注
id Y Long 分类主键
version Y Long 乐观锁
name N String 分类名称
hsCode N String 海关编码

不可修改 parentId。version 不一致返回 VERSION_DIFF。

1.6.4. 商品分类删除接口

SERVICE_TYPE

DELETE_SKU_CATEGORY

请求参数

参数 是否必须 类型 备注
id Y Long 分类主键
version Y Long 乐观锁

被 SKU 占用:CATEGORY_USED_BY_SKU。被供应商占用:CATEGORY_USED_BY_SUPPLIER。删除时会同时删除其子分类。

1.7. 普通属性

API URL

post {HTTP(S)地址}/api/{version}/skuProperty

普通属性包括单位、品牌、销售状态和自定义分类,不含 SPU 属性。name/nameEN 最长 50,remark 最长 128。

1.7.1. 创建普通属性

SERVICE_TYPE

CREATE_SKU_PROPERTY

请求参数

参数 是否必须 类型 示例 备注
type Y String BRAND UNIT、BRAND、SALE_STATUS、CUSTOM,不接受 SPU
name Y String 耐克 同类型唯一,最长 50
nameEN N String Nike 英文名称,最长 50
sequence N Number 0 排序,范围 0-100,缺省 0
remark N String 品牌备注 最长 128

返回参数

参数 是否必须 类型 示例 备注
errorCode Y String 错误码
errorMsg Y String 错误信息
state Y String success 请求结果
result.id Y Number 88 新建主键

请求示例:

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/skuProperty' \
--form 'appId="TEST"' \
--form 'serviceType="CREATE_SKU_PROPERTY"' \
--form 'bizParam="{\"type\":\"BRAND\",\"name\":\"耐克\",\"nameEN\":\"Nike\"}"' \
--form 'timestamp="1756865700001"' \
--form 'sign="sign"'

返回示例:

{
    "state": "success",
    "errorCode": "",
    "errorMsg": "",
    "bizContent": "{\"notSuccess\":false,\"result\":{\"id\":88,\"name\":\"耐克\",\"nameEN\":\"Nike\",\"sequence\":0,\"type\":\"BRAND\"},\"state\":\"success\"}"
}

1.7.2. 修改普通属性

SERVICE_TYPE

UPDATE_SKU_PROPERTY

请求参数

参数 是否必须 类型 示例 备注
id Y Number 88 属性 id
type Y String BRAND 必须与原记录一致,不允许改类型
name Y String 耐克 同类型唯一
nameEN N String Nike 不传则保持原值
sequence N Number 10 不传则保持原值
remark N String 不传则保持原值

成功时 bizContent 解码后为:

{"notSuccess":false,"state":"success"}

1.7.3. 删除普通属性

SERVICE_TYPE

DELETE_SKU_PROPERTY

请求参数

参数 是否必须 类型 示例 备注
id Y Number 88 属性 id
type Y String BRAND 必须与原记录一致

成功响应与修改接口相同;目标不存在或类型不匹配时返回业务错误。

1.7.4. 普通属性分页查询

SERVICE_TYPE

QUERY_SKU_PROPERTY_LIST

请求参数

参数 是否必须 类型 示例 备注
page N Number 1 页码,默认 1,必须 >= 1
pageSize N Number 20 默认 20,范围 1-200
type Y String BRAND UNIT、BRAND、SALE_STATUS、CUSTOM
name N String 耐克 精确匹配

返回参数

参数 是否必须 类型 示例 备注
total Y Number 1 总条数
result Y List<SkuProperty> 属性列表

SkuProperty

参数 是否必须 类型 示例 备注
id Y Number 88 主键
type Y String BRAND 类型
name Y String 耐克 名称
nameEN N String Nike 英文名
sequence Y Number 0 排序
remark N String 备注

空结果返回 result=[] 且 total=0。

分页返回示例:

{
  "state":"success",
  "errorCode":"",
  "errorMsg":"",
  "bizContent":"{\"notSuccess\":false,\"result\":[{\"id\":88,\"type\":\"BRAND\",\"name\":\"耐克\",\"nameEN\":\"Nike\",\"sequence\":0}],\"state\":\"success\",\"total\":1}"
}

1.7.5. 失败响应

参数校验、重名、目标不存在和类型不匹配等错误位于 bizContent。完整错误码见错误码。

{
  "state":"success",
  "errorCode":"",
  "errorMsg":"",
  "bizContent":"{\"errorCode\":\"sku.property.type.invalid\",\"errorMsg\":\"属性类型无效\",\"notSuccess\":true,\"state\":\"failure\"}"
}

1.8. SPU属性

API URL

post {HTTP(S)地址}/api/{version}/spuAttribute

管理 SPU 属性名和属性值。名称和值会去除首尾空格,最长 50;属性值最多 300 个。已被 SPU 引用的属性不可删除,已引用的属性名和属性值不可改掉。

1.8.1. 创建SPU属性

SERVICE_TYPE

CREATE_SPU_ATTRIBUTE

请求参数

参数 是否必须 类型 示例 备注
name Y String 颜色 属性名称唯一,最长 50
values Y List<String> ["红","蓝"] 完整列表,每项最长 50,最多 300

返回参数

参数 是否必须 类型 示例 备注
errorCode Y String 错误码
errorMsg Y String 错误信息
state Y String success 请求结果
result.id Y Number 88 新建主键

请求示例:

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/spuAttribute' \
--form 'appId="TEST"' \
--form 'serviceType="CREATE_SPU_ATTRIBUTE"' \
--form 'bizParam="{\"name\":\"颜色\",\"values\":[\"红\",\"蓝\"]}"' \
--form 'timestamp="1756865700001"' \
--form 'sign="sign"'

返回示例:

{
  "state":"success",
  "errorCode":"",
  "errorMsg":"",
  "bizContent":"{\"notSuccess\":false,\"result\":{\"id\":88,\"name\":\"颜色\",\"values\":[\"红\",\"蓝\"]},\"state\":\"success\"}"
}

1.8.2. 修改SPU属性

SERVICE_TYPE

UPDATE_SPU_ATTRIBUTE

请求参数

参数 是否必须 类型 示例 备注
id Y Number 88 属性 id,不存在不创建
name Y String 颜色 已被引用时不可改名
values Y List<String> ["红","蓝"] 完整目标列表,已引用值不可删除

成功时 bizContent 解码后为 {"notSuccess":false,"state":"success"}。

1.8.3. 删除SPU属性

SERVICE_TYPE

DELETE_SPU_ATTRIBUTE

请求参数

参数 是否必须 类型 示例 备注
id Y Number 88 被引用则失败

成功响应与修改接口相同;属性被引用时返回业务错误且不会删除。

1.8.4. 查询SPU属性详情

SERVICE_TYPE

GET_SPU_ATTRIBUTE

请求参数

参数 是否必须 类型 示例 备注
id Y Number 88 属性 id

返回参数

参数 是否必须 类型 示例 备注
id Y Number 88 主键
name Y String 颜色 名称
values Y List ["红"] 属性值
attributeValues Y List 含 related 引用标记

attributeValues 每项包含 name、value 和 related;related=true 表示该属性值已被 SPU 引用。

1.8.5. SPU属性分页查询

SERVICE_TYPE

QUERY_SPU_ATTRIBUTE_LIST

请求参数

参数 是否必须 类型 示例 备注
page N Number 1 默认 1,必须 >= 1
pageSize N Number 20 默认 20,范围 1-200
name N String 颜色 精确匹配

空结果返回 result=[] 且 total=0。列表不逐条返回引用标记,引用信息见详情。

列表成功响应的 bizContent 包含 result 和 total,result 每项包含 id、name、values;失败格式与普通属性接口一致。

1.9. SPU模块API

API URL

post {HTTP(S)地址}/api/{version}/spu

当前版本为 v1,请求地址为 /api/v1/spu。

1.9.1. 创建系统SPU接口

SERVICE_TYPE

CREATE_SPU

一次请求创建一个系统 SPU,支持在同一请求中新建 SKU 和关联已有 SKU。支持单规格、多规格商品。

应用须单独取得 CREATE_SPU 接口授权;已有 SKU 创建或 SPU 属性接口权限不能替代该授权。默认限流为每 60 秒 50 次,实际额度以应用配置为准。

请求参数

以下参数均位于 bizParam 中。

参数 是否必须 类型 示例 备注
spu Y String OPEN-SPU-001 SPU 编码,最长 255 字符,当前客户下不可重复
title Y String 基础款上衣 SPU 名称,最长 255 字符
isMultiAttribute Y Boolean true 是否多规格,默认 true;false 为单规格,多规格时需要填写:spuAttributes
brandName N String 示例品牌 已有品牌名称,按当前客户查询;不存在时报错,不自动创建
categoryName1 N String 服装 已有一级商品分类名称
categoryName2 N String 上衣 已有二级分类名称,须同时提供正确的一级分类
categoryName3 N String 短袖 已有三级分类名称,须同时提供正确的一、二级分类
picUrls N List<String> ["https://example.com/main.jpg"] SPU 图片地址列表,第一张为主图,其余为扩展图;不传、null 或空列表不设置图片
details N String 商品图文详情 富文本详情,HTML形式
video N Video 见下表 商品视频
priceUnit Y String USD 售价币种,例如 CNY、USD、EUR、JPY、VND;须为系统支持的币种枚举 货币枚举
purchaseCostUnit Y String CNY 采购成本币种,须为系统支持的币种枚举货币枚举
dimensionUnit Y String cm 尺寸单位:cm、In、m;区分大小写
weightUnit Y String KG 重量单位:KG、LBS、GRAM;区分大小写
spuAttributes N List<Attribute> 见下表 SPU 可选属性及属性值;多规格商品建议显式提供
skus 条件必填 List<SpuSku> 见下表 多规格至少 1 行;单规格允许不传或传 0~1 行

品牌和分类须已存在于当前应用所属客户下。分类名称为空白时按未传处理,指定分类后必须匹配层级和完整父子路径,不会自动创建分类。

priceUnit、purchaseCostUnit、dimensionUnit、weightUnit 不传或为 null 时按系统创建规则处理;空字符串属于非法枚举值。SPU 售价币种缺省为 USD;新建 SKU 的售价、采购成本币种缺省使用客户有效币种。关联已有 SKU 时也会应用顶层共享字段及默认规则,详见下文。

Video(商品视频)

参数 是否必须 类型 示例 备注
videoName N String 商品展示 视频名称
videoUrl N String https://example.com/product.mp4 视频地址

Attribute(SPU可选属性)

参数 是否必须 类型 示例 备注
name Y String 颜色 属性名称,同一 SPU 中不可重复
attributeValues 条件必填 List<AttributeValue> 见下表 需要属性值图片、排序时使用;与 values 同时非空时优先使用此字段

公共属性和属性值会按系统创建规则自动创建或补充,无需传入内部属性 ID。同一属性内的值不可重复。公共属性可能在 SPU 创建失败后仍保留。

AttributeValue(属性值)

参数 是否必须 类型 示例 备注
name Y String 颜色 属性名称
value Y String 红色 属性值
picUrl N String https://example.com/red.jpg 属性值图片地址
sort N Integer 1 排序

SpuSku(新建或关联SKU)

参数 是否必须 类型 示例 备注
skuBindMode Y String CREATE CREATE:新建 SKU 后关联;LINK:关联已有 SKU
sku Y String OPEN-SKU-RED 必填,按编码匹配当前客户已有 SKU,不区分大小写;
title Y String 基础款上衣-红色 必填,SKU名称
price N Decimal 19.90 默认售价;LINK 不传或 null 时使用原值
purchaseCost N Decimal 10.00 采购成本;LINK 不传或 null 时使用原值
width N Decimal 20 宽,单位取顶层 dimensionUnit;LINK 不传或 null 时使用原值
height N Decimal 2 高,单位取顶层 dimensionUnit;LINK 不传或 null 时使用原值
length N Decimal 30 长,单位取顶层 dimensionUnit;LINK 不传或 null 时使用原值
weight N Decimal 0.2 重量,单位取顶层 weightUnit;LINK 不传或 null 时使用原值
attributeValues 条件必填 List<AttributeValue> [{"name":"颜色","value":"红色"}] 本次 SPU 关系中的规格取值,多规格时须提供规格信息
attributeValueList N List<String> ["红色","M"] 兼容的规格值数组,按 spuAttributes 的顺序对应属性名;attributeValues 非空时优先使用 attributeValues
sort N Integer 1 SKU 行排序
priceControlConfig N PriceControl 见下表 SKU 控价配置;sku的控价类型必须保持一致,例如enabled全为true,priceMode全是统一控价

新建 SKU 时,长、宽、高、重量未传均按 1 补齐。新增 SKU 类型为单品(SINGLE)。

规格及关联规则:

  • 单规格:isMultiAttribute=false,最多一行 SKU;不传 SKU 时仅创建 SPU,不自动创建 SKU。单规格不保存规格属性关系。
  • 多规格:isMultiAttribute=true 或不传,至少一行 SKU,每行必须具有规格信息;不同 SKU 的规格组合不可重复,同一行内属性名不可重复。
  • SKU 使用了已在 SPU 中定义可选值的属性时,其取值必须位于该属性的可选值范围内。
  • 每个 SKU 行必须明确指定 skuBindMode;LINK 查询不到时失败,不会转为新建。同一已有 SKU 不可重复关联。
  • LINK 目标必须有效、未关联其他 SPU,类型须为单品(SINGLE)或组装品(ASSEMBLY);关联单品采购成本的组装品不能绑定 SPU。
  • LINK 行的名称、图片、售价、采购成本、长宽高、重量,未传或 null 时补齐原值,非 null 值参与更新;0 和空字符串也会进入业务处理。
  • 品牌、分类、售价币种、采购成本币种、尺寸及重量单位统一取顶层参数并应用系统规则;即使省略,也不能据此认定已有 SKU 对应字段保持不变。关联时省略售价币种按 USD 处理,省略尺寸和重量单位按 cm、KG 处理。需要保留共享字段时请显式传入目标值。
  • 规格取值、排序来自本次请求,不从已有 SKU 的旧规格关系补齐。

仅上述业务字段参与创建。内部主键、租户、登录身份、校验开关等字段不能由调用方指定;品牌、分类按名称传入,已有 SKU 按编码传入。

PriceControl(SKU控价配置)

参数 是否必须 类型 备注
selfConfig N RuleConfig 自营控价配置
distributionConfig N RuleConfig 分销控价配置

RuleConfig(控价规则)

参数 是否必须 类型 示例 备注
enabled Y Boolean true 是否启用;关闭规则使用 false
priceMode 条件必填 String UNIFIED 启用时必填:UNIFIED(统一控价)、BY_COUNTRY(分国家控价)
defaultMinPrice N Decimal 15.00 统一最低限价,选填;填写时须非负并同时提供币种
defaultCurrency 条件必填 String USD 填写统一最低限价时必填
countryRules N CountryRuleSet 见下表 分国家控价规则,分国家控价时必填

CountryRuleSet(国家规则集合)

参数 是否必须 类型 备注
countries N List<CountryRule> 各国家规则,国家编码不可重复
defaultCountryRule N DefaultCountryRule 其他国家的默认规则

CountryRule(国家规则)

参数 是否必须 类型 示例 备注
countryCode Y String US 国家编码,国家枚举
minPrice Y Decimal 15.00 最低限价,不得为负数
currency Y String USD 限价币种,货币枚举

DefaultCountryRule(其他国家默认规则)

参数 是否必须 类型 示例 备注
enabled N Boolean true 是否启用
minPrice 条件必填 Decimal 15.00 启用时必填,不得为负数
currency 条件必填 String USD 启用时必填,货币枚举

控价按规则对象处理,不作为任意深层字段的部分更新接口。无需传入 skuId。

返回参数

接口采用两层响应,bizContent 为 JSON 字符串,需再次解析。外层成功仅表示协议处理成功;判断创建是否成功还需检查 bizContent.state。

外层响应

参数 是否必须 类型 示例 备注
state Y String success success / failure
errorCode Y String SIGNATURE_ERROR 协议错误码,成功时为空字符串
errorMsg Y String 签名错误 协议错误信息,成功时为空字符串
bizContent N String 见返回示例 业务响应 JSON 字符串;协议失败时可能不返回
requestId N String 请求标识,以实际响应为准

业务响应(解析 bizContent 后)

参数 是否必须 类型 示例 备注
state Y String success 创建结果:success / failure
notSuccess Y Boolean false 是否失败
errorCode N String spu.number.repeat 业务错误码,失败时返回
errorMsg N String SPU编码重复 业务错误信息,失败时返回,文案随语言设置变化
args N List 错误参数,按实际响应返回
extraData N List 部分业务失败的附加信息
traceId N String 排障标识

成功时不返回 result、SPU ID 或 SKU 列表。重复调用相同 SPU 编码不会更新原商品,也不保证幂等成功。

请求示例

多规格:新建SKU并关联已有SKU

以下 bizParam 示例中,品牌、分类和须预先存在,已有 SKU 须满足上述关联条件:

{
    "spu": "YF_20261026_01",
    "title": "YF_20261026_01",
    "picUrls":
    [
        "https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/image/NmJiYmY2MGIxNTAyZWE2YjRhODk5YTYwNzE4MzY0NDU.png",
        "https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/image/MjU5YjMyODMxNTE1MjJmNDUwOTc5YzkxZmI1ZmU4MWI.jpg"
    ],
    "video":
    {
        "videoUrl": "https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/video/ZjMyNWMxZmRhNmYwZmI0NDg5ZmYwODk4Y2Q2Y2RmM2M.mp4",
        "videoName": "NzVkMTE0NDNhYzc5YTQ2OTY1NTMxODlmMmZhMzc4MWU=.mp4"
    },
    "priceUnit": "BZD",
    "purchaseCostUnit": "BZD",
    "weightUnit": "KG",
    "dimensionUnit": "cm",
    "details": "%3Cp%3E%E5%9B%BE%E6%96%87%E8%AF%A6%E6%83%85%3C%2Fp%3E",
    "description": "",
    "isMultiAttribute": true,
    "brandName": "brand",
    "categoryName1": "111",
    "categoryName2": "222",
    "categoryName3": "333",
    "spuAttributes":
    [
        {
            "name": "YF_TEST",
            "attributeValues":
            [
                {
                    "value": "测试1",
                    "name": "YF_TEST",
                    "sort": 1
                },
                {
                    "value": "测试2",
                    "name": "YF_TEST",
                    "picUrl": null,
                    "sort": 2
                }
            ]
        },
        {
            "name": "口味",
            "attributeValues":
            [
                {
                    "value": "柠檬味",
                    "sort": 1
                },
                {
                    "value": "蓝莓味",
                    "picUrl": null,
                    "sort": 2
                }
            ]
        }
    ],
    "skus":
    [
        {
            "skuBindMode": "LINK",
            "attributeValueList":
            [
                "测试1",
                "柠檬味"
            ],
            "sku": "YF_20261026_02",
            "title": "YF_20261026_02",
            "sort": 1,
            "priceControlConfig":
            {
                "selfConfig":
                {
                    "enabled": true,
                    "priceMode": "BY_COUNTRY",
                    "countryRules":
                    {
                        "countries":
                        [
                            {
                                "countryCode": "US",
                                "currency": "USD",
                                "minPrice": 100
                            }
                        ],
                        "defaultCountryRule":
                        {
                            "enabled": true,
                            "minPrice": 11,
                            "currency": "BZD"
                        }
                    }
                },
                "distributionConfig":
                {
                    "enabled": true,
                    "priceMode": "UNIFIED",
                    "defaultMinPrice": 200,
                    "defaultCurrency": "BZD"
                }
            }
        },
        {
            "skuBindMode": "LINK",
            "picUrl": null,
            "attributeValueList":
            [
                "测试2",
                "蓝莓味"
            ],
            "sku": "YF_20261026_04",
            "purchaseCost": 2,
            "price": 3,
            "weight": 4,
            "length": 3,
            "width": 4,
            "height": 100,
            "title": "YF_20261026_04",
            "sort": 2
        }
    ]
}

单规格:新建SPU和一个SKU

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/spu' \
--form-string 'appId=TEST' \
--form-string 'serviceType=CREATE_SPU' \
--form-string 'bizParam={"spu":"OPEN-SPU-002","title":"基础款水杯","isMultiAttribute":false,"priceUnit":"USD","purchaseCostUnit":"CNY","dimensionUnit":"cm","weightUnit":"KG","skus":[{"skuBindMode":"CREATE","sku":"OPEN-SKU-CUP","title":"基础款水杯","price":19.90,"purchaseCost":10.00,"length":10,"width":10,"height":20,"weight":0.3}]}' \
--form-string 'timestamp=1793059200000' \
--form-string 'sign=替换为按本次完整参数计算的签名'

示例时间戳和签名须替换为实际值。--form-string 的值就是服务端收到的表单字符串,不要额外给 JSON 增加包裹双引号。

单规格:仅创建SPU

bizParam:

{
  "spu": "OPEN-SPU-003",
  "title": "待关联商品",
  "isMultiAttribute": false
}

返回示例

成功:

{
  "state": "success",
  "errorCode": "",
  "errorMsg": "",
  "bizContent": "{\"notSuccess\":false,\"state\":\"success\"}"
}

业务失败(SPU编码重复):

{
  "state": "success",
  "errorCode": "",
  "errorMsg": "",
  "bizContent": "{\"errorCode\":\"spu.number.repeat\",\"errorMsg\":\"SPU编码重复\",\"notSuccess\":true,\"state\":\"failure\"}"
}

协议失败(签名错误):

{
  "state": "failure",
  "errorCode": "SIGNATURE_ERROR",
  "errorMsg": "签名错误"
}

以上示例省略可选的排障字段,错误文案仅作示意。

常见错误码

业务错误码区分大小写,以下列出实际返回的错误码值。

错误码 说明
data.input.error 业务参数为空、SKU 行为空、未指定绑定方式,或单规格传入多行 SKU 等
data.input.error.msg 顶层币种或单位非法,错误信息包含对应字段名
spu.number.blank SPU 编码为空
spu.title.blank SPU 名称为空
spu.title.length.more.then.number SPU 编码或名称超过 255 字符
spu.number.repeat SPU 编码已存在
spu.multi.attribute.sku.required 多规格商品未提供 SKU
sku.not.exist LINK 指定的 SKU 不存在或不属于当前客户
spu.sku.repeat 重复关联同一 SKU
sku.exist 新建 SKU 编码已存在
sku.duplicate 请求中的新建 SKU 编码重复
sku.related.other.spu SKU 已关联其他 SPU
sku.can.not.be.disabled SKU 已禁用,不能关联
unsupport.sku.type SKU 类型不支持关联
invalid.attribute 多规格 SKU 未提供规格信息
spu.attribute.name.duplicate SPU 属性名或同一 SKU 行内属性名重复
spu.attribute.value.duplicate 同一 SPU 属性内的可选值重复
sku.attribute.value.duplicate 不同 SKU 使用相同的规格组合
sku.attribute.not.exist.spu SKU 属性取值超出 SPU 已定义的可选值范围
brand.not.exist 品牌不存在
sku.category.level1.not.exists 一级分类不存在或不匹配
sku.category.level2.not.exists 二级分类不存在或父子路径不匹配
sku.category.level3.not.exists 三级分类不存在或父子路径不匹配

签名、应用授权、IP 白名单及限流失败通常位于外层响应:

错误码 说明
APP_NOT_EXIST 应用不存在或无效
SIGNATURE_ERROR 签名不正确
SERVICE_TYPE_NOT_EXIST 服务类型不支持
SERVICE_TYPE_NOT_ALLOW 应用未获得该接口权限
SERVICE_IP_NOT_ALLOW 调用 IP 不在白名单内
REQUEST_IS_THROTTLED 超出调用额度
SYSTEM_ERROR JSON 反序列化失败或其他未预期异常

应用所属客户的主账号不存在或无效时,业务响应返回 user.not.exist。其他商品、图片和控价错误沿用系统现有错误码;完整错误定义参见错误码。

1.9.2. 修改系统SPU接口

SERVICE_TYPE

UPDATE_SPU

一次请求编辑一个系统 SPU,支持在同一请求中新建 SKU 和关联已有 SKU。支持单规格、多规格商品。

应用须单独取得 UPDATE_SPU 接口授权;已有 SKU 创建或 SPU 属性接口权限不能替代该授权。默认限流为每 60 秒 50 次,实际额度以应用配置为准。

请求参数

以下参数均位于 bizParam 中。

参数 是否必须 类型 示例 备注
spu Y String OPEN-SPU-001 SPU 编码,ERP系统中已经存在的编码
title Y String 基础款上衣 SPU 名称,最长 255 字符
isMultiAttribute Y Boolean true 是否多规格,默认 true;false 为单规格,多规格时需要填写:spuAttributes
brandName N String 示例品牌 已有品牌名称,按当前客户查询;不存在时报错,不自动创建
categoryName1 N String 服装 已有一级商品分类名称
categoryName2 N String 上衣 已有二级分类名称,须同时提供正确的一级分类
categoryName3 N String 短袖 已有三级分类名称,须同时提供正确的一、二级分类
picUrls N List<String> ["https://example.com/main.jpg"] SPU 图片地址列表,第一张为主图,其余为扩展图;不传、null 或空列表不设置图片
details N String 商品图文详情 富文本详情,HTML形式
video N Video 见下表 商品视频
priceUnit Y String USD 售价币种,例如 CNY、USD、EUR、JPY、VND;须为系统支持的币种枚举 货币枚举
purchaseCostUnit Y String CNY 采购成本币种,须为系统支持的币种枚举货币枚举
dimensionUnit Y String cm 尺寸单位:cm、In、m;区分大小写
weightUnit Y String KG 重量单位:KG、LBS、GRAM;区分大小写
spuAttributes N List<Attribute> 见下表 SPU 可选属性及属性值;多规格商品必须提供
skus 条件必填 List<SpuSku> 见下表 多规格至少 1 行;单规格允许不传或传 0~1 行

品牌和分类须已存在于当前应用所属客户下。分类名称为空白时按未传处理,指定分类后必须匹配层级和完整父子路径,不会自动创建分类。

priceUnit、purchaseCostUnit、dimensionUnit、weightUnit 不传或为 null 时按系统创建规则处理;空字符串属于非法枚举值。SPU 售价币种缺省为 USD;新建 SKU 的售价、采购成本币种缺省使用客户有效币种。关联已有 SKU 时也会应用顶层共享字段及默认规则,详见下文。

Video(商品视频)

参数 是否必须 类型 示例 备注
videoName N String 商品展示 视频名称
videoUrl N String https://example.com/product.mp4 视频地址

Attribute(SPU可选属性)

参数 是否必须 类型 示例 备注
name Y String 颜色 属性名称,同一 SPU 中不可重复
attributeValues 条件必填 List<AttributeValue> 见下表 需要属性值图片、排序时使用;与 values 同时非空时优先使用此字段

公共属性和属性值会按系统创建规则自动创建或补充,无需传入内部属性 ID。同一属性内的值不可重复。公共属性可能在 SPU 创建失败后仍保留。

AttributeValue(属性值)

参数 是否必须 类型 示例 备注
name Y String 颜色 属性名称
value Y String 红色 属性值
picUrl N String https://example.com/red.jpg 属性值图片地址
sort N Integer 1 排序

SpuSku(新建或关联SKU)

参数 是否必须 类型 示例 备注
skuBindMode Y String CREATE CREATE:新建 SKU 后关联;LINK:关联已有 SKU
sku Y String OPEN-SKU-RED 必填,按编码匹配当前客户已有 SKU,不区分大小写;
title Y String 基础款上衣-红色 必填,SKU名称
price N Decimal 19.90 默认售价;LINK 不传或 null 时使用原值
purchaseCost N Decimal 10.00 采购成本;LINK 不传或 null 时使用原值
width N Decimal 20 宽,单位取顶层 dimensionUnit;LINK 不传或 null 时使用原值
height N Decimal 2 高,单位取顶层 dimensionUnit;LINK 不传或 null 时使用原值
length N Decimal 30 长,单位取顶层 dimensionUnit;LINK 不传或 null 时使用原值
weight N Decimal 0.2 重量,单位取顶层 weightUnit;LINK 不传或 null 时使用原值
attributeValues 条件必填 List<AttributeValue> [{"name":"颜色","value":"红色"}] 本次 SPU 关系中的规格取值,多规格时须提供规格信息
attributeValueList N List<String> ["红色","M"] 兼容的规格值数组,按 spuAttributes 的顺序对应属性名;attributeValues 非空时优先使用 attributeValues
sort N Integer 1 SKU 行排序
priceControlConfig N PriceControl 见下表 SKU 控价配置;sku的控价类型必须保持一致,例如enabled全为true,priceMode全是统一控价

新建 SKU 时,长、宽、高、重量未传均按 1 补齐。新增 SKU 类型为单品(SINGLE)。

规格及关联规则:

  • 单规格:isMultiAttribute=false,最多一行 SKU;不传 SKU 时仅创建 SPU,不自动创建 SKU。单规格不保存规格属性关系。
  • 多规格:isMultiAttribute=true 或不传,至少一行 SKU,每行必须具有规格信息;不同 SKU 的规格组合不可重复,同一行内属性名不可重复。
  • SKU 使用了已在 SPU 中定义可选值的属性时,其取值必须位于该属性的可选值范围内。
  • 每个 SKU 行必须明确指定 skuBindMode;LINK 查询不到时失败,不会转为新建。同一已有 SKU 不可重复关联。
  • LINK 目标必须有效、未关联其他 SPU,类型须为单品(SINGLE)或组装品(ASSEMBLY);关联单品采购成本的组装品不能绑定 SPU。
  • 品牌、分类、售价币种、采购成本币种、尺寸及重量单位统一取顶层参数并应用系统规则;即使省略,也不能据此认定已有 SKU 对应字段保持不变。关联时省略售价币种按 USD 处理,省略尺寸和重量单位按 cm、KG 处理。需要保留共享字段时请显式传入目标值。
  • 规格取值、排序来自本次请求,不从已有 SKU 的旧规格关系补齐。

仅上述业务字段参与创建。内部主键、租户、登录身份、校验开关等字段不能由调用方指定;品牌、分类按名称传入,已有 SKU 按编码传入。

PriceControl(SKU控价配置)

参数 是否必须 类型 备注
selfConfig N RuleConfig 自营控价配置
distributionConfig N RuleConfig 分销控价配置

RuleConfig(控价规则)

参数 是否必须 类型 示例 备注
enabled Y Boolean true 是否启用;关闭规则使用 false
priceMode 条件必填 String UNIFIED 启用时必填:UNIFIED(统一控价)、BY_COUNTRY(分国家控价)
defaultMinPrice N Decimal 15.00 统一最低限价,选填;填写时须非负并同时提供币种
defaultCurrency 条件必填 String USD 填写统一最低限价时必填
countryRules N CountryRuleSet 见下表 分国家控价规则,分国家控价时必填

CountryRuleSet(国家规则集合)

参数 是否必须 类型 备注
countries N List<CountryRule> 各国家规则,国家编码不可重复
defaultCountryRule N DefaultCountryRule 其他国家的默认规则

CountryRule(国家规则)

参数 是否必须 类型 示例 备注
countryCode Y String US 国家编码,国家枚举
minPrice Y Decimal 15.00 最低限价,不得为负数
currency Y String USD 限价币种,货币枚举

DefaultCountryRule(其他国家默认规则)

参数 是否必须 类型 示例 备注
enabled N Boolean true 是否启用
minPrice 条件必填 Decimal 15.00 启用时必填,不得为负数
currency 条件必填 String USD 启用时必填,货币枚举

控价按规则对象处理,不作为任意深层字段的部分更新接口。无需传入 skuId。

返回参数

接口采用两层响应,bizContent 为 JSON 字符串,需再次解析。外层成功仅表示协议处理成功;判断创建是否成功还需检查 bizContent.state。

外层响应

参数 是否必须 类型 示例 备注
state Y String success success / failure
errorCode Y String SIGNATURE_ERROR 协议错误码,成功时为空字符串
errorMsg Y String 签名错误 协议错误信息,成功时为空字符串
bizContent N String 见返回示例 业务响应 JSON 字符串;协议失败时可能不返回
requestId N String 请求标识,以实际响应为准

业务响应(解析 bizContent 后)

参数 是否必须 类型 示例 备注
state Y String success 创建结果:success / failure
notSuccess Y Boolean false 是否失败
errorCode N String spu.number.repeat 业务错误码,失败时返回
errorMsg N String SPU编码重复 业务错误信息,失败时返回,文案随语言设置变化
args N List 错误参数,按实际响应返回
extraData N List 部分业务失败的附加信息
traceId N String 排障标识

成功时不返回 result、SPU ID 或 SKU 列表。重复调用相同 SPU 编码不会更新原商品,也不保证幂等成功。

请求示例

多规格:新建SKU并关联已有SKU

以下 bizParam 示例中,品牌、分类须预先存在,已有 SKU 须满足上述关联条件:

{
    "spu": "YF_20261026_01",
    "title": "YF_20261026_011",
    "picUrls":
    [
        "https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/image/NmJiYmY2MGIxNTAyZWE2YjRhODk5YTYwNzE4MzY0NDU.png"
    ],
    "video":
    {
        "videoUrl": "https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/video/ZjMyNWMxZmRhNmYwZmI0NDg5ZmYwODk4Y2Q2Y2RmM2M.mp4",
        "videoName": "NzVkMTE0NDNhYzc5YTQ2OTY1NTMxODlmMmZhMzc4MWU=.mp4"
    },
    "priceUnit": "BZD",
    "purchaseCostUnit": "BZD",
    "weightUnit": "KG",
    "dimensionUnit": "cm",
    "details": "%3Cp%3E%E5%9B%BE%E6%96%87%E8%AF%A6%E6%83%85%3C%2Fp%3E",
    "isMultiAttribute": true,
    "brandName": "南极人",
    "categoryName1": "2",
    "spuAttributes":
    [
        {
            "name": "YF_TEST",
            "attributeValues":
            [
                {
                    "value": "测试1",
                    "name": "YF_TEST",
                    "sort": 1
                },
                {
                    "value": "测试3",
                    "sort": 2
                }
            ]
        },
        {
            "name": "口味",
            "attributeValues":
            [
                {
                    "value": "柠檬味",
                    "sort": 1
                },
                {
                    "value": "蓝莓味",
                    "picUrl": null,
                    "sort": 2
                }
            ]
        }
    ],
    "skus":
    [
        {
            "skuBindMode": "CREATE",
            "attributeValueList":
            [
                "测试1",
                "柠檬味"
            ],
            "sku": "YF_20261029_02",
            "title": "YF_20261029_02",
            "sort": 1,
            "priceControlConfig":
            {
                "selfConfig":
                {
                    "enabled": true,
                    "priceMode": "UNIFIED",
                    "defaultMinPrice": 100,
                    "defaultCurrency": "USD",
                    "countryRules":
                    {
                        "countries":
                        [
                            {
                                "countryCode": "US",
                                "currency": "USD",
                                "minPrice": 100
                            }
                        ],
                        "defaultCountryRule":
                        {
                            "enabled": true,
                            "minPrice": 11,
                            "currency": "BZD"
                        }
                    }
                },
                "distributionConfig":
                {
                    "enabled": true,
                    "priceMode": "UNIFIED",
                    "defaultMinPrice": 200,
                    "defaultCurrency": "BZD"
                }
            }
        },
        {
            "skuBindMode": "LINK",
            "picUrl": null,
            "attributeValueList":
            [
                "测试3",
                "蓝莓味"
            ],
            "sku": "YF_20261026_04",
            "purchaseCost": 2,
            "price": 3,
            "weight": 4,
            "length": 3,
            "width": 4,
            "height": 100,
            "title": "YF_20261026_04",
            "sort": 2,
            "priceControlConfig":
            {
                "selfConfig":
                {
                    "enabled": true,
                    "priceMode": "UNIFIED",
                    "defaultMinPrice": 200,
                    "defaultCurrency": "USD",
                    "countryRules":
                    {
                        "countries":
                        [
                            {
                                "countryCode": "US",
                                "currency": "USD",
                                "minPrice": 100
                            }
                        ],
                        "defaultCountryRule":
                        {
                            "enabled": true,
                            "minPrice": 11,
                            "currency": "BZD"
                        }
                    }
                },
                "distributionConfig":
                {
                    "enabled": true,
                    "priceMode": "UNIFIED",
                    "defaultMinPrice": 200,
                    "defaultCurrency": "BZD"
                }
            }
        }
    ]
}

返回示例

成功:

{
  "state": "success",
  "errorCode": "",
  "errorMsg": "",
  "bizContent": "{\"notSuccess\":false,\"state\":\"success\"}"
}

业务失败(SPU编码必填):

{
  "state": "success",
  "errorCode": "",
  "errorMsg": "",
  "bizContent": "{\"errorCode\":\"spu.number.repeat\",\"errorMsg\":\"SPU编码必填\",\"notSuccess\":true,\"state\":\"failure\"}"
}

协议失败(签名错误):

{
  "state": "failure",
  "errorCode": "SIGNATURE_ERROR",
  "errorMsg": "签名错误"
}

以上示例省略可选的排障字段,错误文案仅作示意。

1.9.3. 查询系统SPU编码接口

SERVICE_TYPE

QUERY_SPU_CODE

根据查询查询条件查询SPU编码列表,如需要SPU详情,则需调用SPU详情接口查询

请求参数

以下参数均位于 bizParam 中。

参数 是否必须 类型 示例 备注
page Y int 1 页码,从1开始
pageSize Y int 100 每页返回数据量大小,最大200
titleList N List ["spu名称"] SPU的名称列表
updateTimeFrom N String 2026-01-01 00:00:00 更新时间开始,开始时间和结束时间同时传入时,区间为左闭右开,如果只传入开始时间或者只传入结束时间,那么则是闭区间
updateTimeTo N String 2026-02-01 00:00:00 更新时间结束,开始时间和结束时间同时传入时,区间为左闭右开,如果只传入开始时间或者只传入结束时间,那么则是闭区间

返回参数

接口采用两层响应,bizContent 为 JSON 字符串,需再次解析。外层成功仅表示协议处理成功;判断创建是否成功还需检查 bizContent.state。

外层响应

参数 是否必须 类型 示例 备注
state Y String success success / failure
errorCode Y String SIGNATURE_ERROR 协议错误码,成功时为空字符串
errorMsg Y String 签名错误 协议错误信息,成功时为空字符串
bizContent N String 见返回示例 业务响应 JSON 字符串;协议失败时可能不返回
requestId N String 请求标识,以实际响应为准

业务响应(解析 bizContent 后)

参数 是否必须 类型 示例 备注
state Y String success 创建结果:success / failure
notSuccess Y Boolean false 是否失败
errorCode N String spu.number.repeat 业务错误码,失败时返回
errorMsg N String SPU编码重复 业务错误信息,失败时返回,文案随语言设置变化
args N List 错误参数,按实际响应返回
extraData N List 部分业务失败的附加信息
traceId N String 排障标识
result Y List 只返回spu编码,具体结看看返回示例

成功时不返回 result、SPU ID 或 SKU 列表。重复调用相同 SPU 编码不会更新原商品,也不保证幂等成功。

请求示例

以下 bizParam 示例中,品牌、分类须预先存在,已有 SKU 须满足上述关联条件:

{"page":1,"pageSize":10,"updateTimeFrom":"2026-10-29 00:00:00","updateTimeTo":"2026-10-30 23:59:00","titleList":["YF_20261026_011"]}

返回示例

成功:

{
    "state": "success",
    "errorCode": "",
    "errorMsg": "",
    "bizContent": "{\"notSuccess\":false,\"result\":[{\"spu\":\"YF_20261026_01\"}],\"state\":\"success\",\"total\":1,\"traceId\":\"a92f7e5ef3a142af946ac72ae6dca7cc\"}",
    "requestId": "f1c3fcd9-9dce-4e5e-a46b-856c55fe6152"
}

1.9.4. 查询系统SPU详情接口

SERVICE_TYPE

QUERY_SPU_INFO

请求方式为 POST,请求地址为 /api/v1/spu。按 SPU 编码批量查询应用所属客户的 SPU 详情,同时返回品牌、分类、规格属性、关联 SKU 及 SKU 控价配置。

请求参数

以下参数位于 bizParam 中;公共表单参数沿用 appId、serviceType、bizParam、timestamp、sign。

参数 是否必须 类型 示例 备注
spuList Y List<String> ["OPEN-SPU-001","OPEN-SPU-002"] SPU 编码列表,不能为空,单次传入 1~200 项
  • 本接口不分页,无需传入 page、pageSize;超过 200 项时请分批调用。
  • 仅返回当前应用所属客户下查询到的 SPU,不存在或不属于当前客户的编码不返回占位数据;全部未命中时成功返回空列表。
  • 返回顺序不保证与传入编码顺序一致,请通过 spu 字段匹配结果。

返回参数

接口采用两层响应,bizContent 为 JSON 字符串,需再次解析。外层成功表示协议处理成功;查询是否成功还需检查 bizContent.state。

外层响应

参数 是否必须 类型 示例 备注
state Y String success success / failure
errorCode Y String 协议错误码,成功时为空字符串
errorMsg Y String 协议错误信息,成功时为空字符串
bizContent N String 见返回示例 业务响应 JSON 字符串;协议失败时可能不返回
requestId N String 请求标识,以实际响应为准

业务响应(解析 bizContent 后)

参数 是否必须 类型 示例 备注
state Y String success 查询结果:success / failure
notSuccess Y Boolean false 是否失败
result 成功时 List<SpuInfo> 见下表 SPU 详情列表,未命中时为 []
errorCode N String data.input.error.msg 业务错误码,失败时返回
errorMsg N String 业务错误信息,文案随语言设置变化
args N List 错误参数,按实际响应返回
extraData N List 部分业务失败的附加信息
traceId N String 排障标识

本接口不返回分页总数 total 或 hasMore。以下可选字段未设置时可能不返回。

SpuInfo(SPU详情)

参数 是否必须 类型 示例 备注
spu Y String OPEN-SPU-001 SPU 编码
title Y String 基础款上衣 SPU 名称
picUrls Y List<String> [] 图片链接列表
brandName N String 示例品牌 品牌名称
categoryName1 N String 服装 一级分类名称
categoryName2 N String 上衣 二级分类名称
categoryName3 N String T恤 三级分类名称
details N String 商品图文详情
isMultiAttribute N Boolean true 是否多规格商品
priceUnit N String USD 默认售价币种
purchaseCostUnit N String CNY 采购成本币种
dimensionUnit N String cm 尺寸单位
weightUnit N String KG 重量单位
video N VideoInfo 见下表 商品视频
spuAttributes Y List<AttributeInfo> 见下表 SPU 属性及可选值,无数据时为 []
skus Y List<SkuInfo> 见下表 关联 SKU 信息,无关联 SKU 时为 []

VideoInfo(商品视频)

参数 是否必须 类型 备注
videoName N String 视频名称
videoUrl N String 视频链接

AttributeInfo(SPU属性)

参数 是否必须 类型 示例 备注
name N String 颜色 属性名称
values N List<String> ["红色","蓝色"] 可选属性值
attributeValues Y List<AttributeValueInfo> 见下表 属性值详情,无数据时为 []

AttributeValueInfo(SPU属性值)

参数 是否必须 类型 示例 备注
name N String 颜色 属性名称
value N String 红色 属性值
related N Boolean true 是否已关联 SKU
picUrl N String 属性值图片链接
sort N Integer 1 属性值排序

SkuInfo(关联SKU信息)

参数 是否必须 类型 示例 备注
sku Y String OPEN-SKU-RED SKU 编码
title Y String 基础款上衣-红色 SKU 名称
picUrl N String SKU 图片链接
categoryName1 N String 服装 一级分类名称
categoryName2 N String 上衣 二级分类名称
categoryName3 N String T恤 三级分类名称
description N String 商品描述
descriptionEn N String 英文商品描述
price N Decimal 19.90 默认售价
priceUnit N String USD 默认售价币种
purchaseCost N Decimal 10.00 采购成本
purchaseCostUnit N String CNY 采购成本币种
length N Decimal 30 长度,单位取本行 dimensionUnit
width N Decimal 20 宽度,单位取本行 dimensionUnit
height N Decimal 2 高度,单位取本行 dimensionUnit
dimensionUnit N String cm 尺寸单位
weight N Decimal 0.2 重量,单位取本行 weightUnit
weightUnit N String KG 重量单位
attributeValues Y List<SkuAttributeInfo> 见下表 SKU 规格属性,无数据时为 []
priceControlConfig N PriceControlInfo 见下表 自营及分销控价配置

SkuAttributeInfo(SKU规格属性)

参数 是否必须 类型 示例 备注
name N String 颜色 属性名称
value N String 红色 属性值

PriceControlInfo(SKU控价配置)

参数 是否必须 类型 备注
selfConfig N RuleConfig 自营控价配置
distributionConfig N RuleConfig 分销控价配置

RuleConfig、CountryRuleSet、CountryRule、DefaultCountryRule 的字段结构与本章“创建系统SPU接口”中的同名结构一致。查询返回已保存的配置:enabled 表示是否启用,priceMode 为 UNIFIED(统一控价)或 BY_COUNTRY(分国家控价),defaultMinPrice / defaultCurrency 为统一最低限价及币种,countryRules 为国家规则及其他国家的默认规则;未设置的字段可能不返回。

请求示例

bizParam:

{
  "spuList": ["OPEN-SPU-001", "OPEN-SPU-002"]
}

完整表单请求:

curl --location --request POST 'https://gerp-test1.800best.com/api/v1/spu' \
--form-string 'appId=TEST' \
--form-string 'serviceType=QUERY_SPU_INFO' \
--form-string 'bizParam={"spuList":["OPEN-SPU-001","OPEN-SPU-002"]}' \
--form-string 'timestamp=1793059200000' \
--form-string 'sign=替换为按本次完整参数计算的签名'

示例时间戳和签名须替换为实际值。bizParam 是 JSON 字符串,不要额外增加包裹双引号。

返回示例

成功(示例中仅命中一个SPU):

{
    "state": "success",
    "errorCode": "",
    "errorMsg": "",
    "bizContent": "{\"notSuccess\":false,\"result\":[{\"brandName\":\"JJ专属品牌\",\"categoryName1\":\"111\",\"categoryName2\":\"222\",\"categoryName3\":\"333\",\"details\":\"%3Cp%3E%E5%9B%BE%E6%96%87%E8%AF%A6%E6%83%85%3C/p%3E%20%0A%3Cfigure%20class=%22image%22%3E%20%0A%20%3Cimg%20src=%22https://qianyierp-test.oss.aliyuncs.com/attachment/20261103/image/NjU4ZjU5MzFhN2NmYmM5ZTE4OGQ0YTdiZjZjYjI5MmU.jpg%22%20width=%22432%22%20height=%22268%22%3E%20%0A%3C/figure%3E\",\"dimensionUnit\":\"cm\",\"isMultiAttribute\":true,\"picUrls\":[\"https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/image/NmJiYmY2MGIxNTAyZWE2YjRhODk5YTYwNzE4MzY0NDU.png\"],\"priceUnit\":\"BZD\",\"purchaseCostUnit\":\"BZD\",\"skus\":[{\"attributeValues\":[{\"name\":\"YF_TEST\",\"value\":\"测试3\"},{\"name\":\"口味\",\"value\":\"蓝莓味\"}],\"categoryName1\":\"111\",\"categoryName2\":\"222\",\"categoryName3\":\"333\",\"dimensionUnit\":\"cm\",\"height\":100.0,\"length\":3.0,\"picUrl\":\"https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/image/NmJiYmY2MGIxNTAyZWE2YjRhODk5YTYwNzE4MzY0NDU.png\",\"price\":3.0000,\"priceControlConfig\":{\"distributionConfig\":{\"countryRules\":{\"countries\":[],\"defaultCountryRule\":{\"enabled\":false}},\"defaultCurrency\":\"BZD\",\"defaultMinPrice\":200.0000,\"enabled\":true,\"priceMode\":\"UNIFIED\"},\"selfConfig\":{\"countryRules\":{\"countries\":[],\"defaultCountryRule\":{\"enabled\":false}},\"defaultCurrency\":\"USD\",\"defaultMinPrice\":200.0000,\"enabled\":true,\"priceMode\":\"UNIFIED\"}},\"priceUnit\":\"BZD\",\"purchaseCost\":2.0000,\"purchaseCostUnit\":\"BZD\",\"sku\":\"YF_20261026_04\",\"title\":\"YF_20261026_04\",\"weight\":4.0,\"weightUnit\":\"KG\",\"width\":4.0}],\"spu\":\"YF_20261026_01\",\"spuAttributes\":[{\"attributeValues\":[{\"name\":\"YF_TEST\",\"picUrl\":\"https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/image/NmJiYmY2MGIxNTAyZWE2YjRhODk5YTYwNzE4MzY0NDU.png\",\"sort\":1,\"value\":\"测试1\"},{\"name\":\"YF_TEST\",\"picUrl\":\"https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/image/NmJiYmY2MGIxNTAyZWE2YjRhODk5YTYwNzE4MzY0NDU.png\",\"sort\":2,\"value\":\"测试3\"}],\"name\":\"YF_TEST\",\"values\":[\"测试1\",\"测试3\"]},{\"attributeValues\":[{\"name\":\"口味\",\"sort\":1,\"value\":\"柠檬味\"},{\"name\":\"口味\",\"sort\":2,\"value\":\"蓝莓味\"}],\"name\":\"口味\",\"values\":[\"柠檬味\",\"蓝莓味\"]}],\"title\":\"YF_20261026_011\",\"video\":{\"videoName\":\"NzVkMTE0NDNhYzc5YTQ2OTY1NTMxODlmMmZhMzc4MWU=.mp4\",\"videoUrl\":\"https://qianyierp-test.oss.aliyuncs.com/attachment/20261026/video/ZjMyNWMxZmRhNmYwZmI0NDg5ZmYwODk4Y2Q2Y2RmM2M.mp4\"},\"weightUnit\":\"KG\"}],\"state\":\"success\",\"traceId\":\"c920de9db71e42adb0f3950b58b9eb7c\"}",
    "requestId": "edc11513-1f1c-462c-8844-2eaab89e8a07"
}

全部未命中:

{
  "state": "success",
  "errorCode": "",
  "errorMsg": "",
  "bizContent": "{\"notSuccess\":false,\"state\":\"success\",\"result\":[]}"
}

业务失败(编码列表为空或超过200项):

{
  "state": "success",
  "errorCode": "",
  "errorMsg": "",
  "bizContent": "{\"errorCode\":\"data.input.error.msg\",\"errorMsg\":\"输入参数不正确:spuList.size: 1-200\",\"notSuccess\":true,\"state\":\"failure\"}"
}

以上示例省略可选排障字段,错误文案仅作示意。签名、授权及限流等协议失败沿用本章“创建系统SPU接口”的错误码说明。

© Copyright QianYi Team 2025 All Rights Reserved            Updated 2026-11-06 08:56:45

results matching ""

    No results matching ""