# 更新货品
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南。
接口英文名:updatesupplyproduct
请求方式:POST
该接口用于对微信小店内货品信息的更新
相关事件推送:
- 货品审核事件通知
- 货品上下架事件通知
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/channels/ec/supplier/product/update?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用。
# 第三方调用
本接口支持第三方平台代供货商调用。第三方服务商调用模式介绍
该接口所属的权限集 id 为:192
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代供货商进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String Parameters
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 access_token(供货商)、authorizer_access_token(服务商代调用) |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| product_id | string | 是 | 货品ID |
| title | string | 是 | 货品标题,至少3个字符,最长120个字符 |
| short_title | string | 否 | 货品短标题 |
| aftersale_desc | string | 否 | 售后描述 |
| head_imgs | array | 是 | 货品头图,至少3张,最多9张(部分类目至少4张)。图片url需以mmecimage.cn/p/开头 |
| head_videos | objarray | 否 | 视频头图,目前仅支持一个 |
| desc_info | object | 否 | 货品详情 |
| cats | objarray | 是 | 三级类目信息,必须选到第三级类目 |
| attrs | objarray | 否 | 货品参数属性 |
| spu_code | string | 否 | 货品编码 |
| brand_id | number | 否 | 品牌ID,无品牌则不填 |
| product_qua_infos | objarray | 否 | 货品资质信息 |
| skus | objarray | 是 | SKU列表,长度最少为1,最大为500 |
| deliver_method | number | 否 | 发货方式。0=快递发货(默认),1=无需快递 |
| express_info | object | 否 | 运费信息 |
| extra_service | object | 否 | 额外的售后服务 |
| after_sale_info | object | 否 | 售后/退货地址 |
| size_chart | object | 否 | 尺码表信息 |
| listing | number | 否 | 更新完成后是否立即上架。0=否(默认),1=是 |
# Body.head_videos(Array) Object Payload
视频头图,目前仅支持一个
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| video_url | string | 否 | 原始视频url |
# Body.desc_info Object Payload
货品详情
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| imgs | array | 否 | 详情图片(至少1张,最多20张),url需以mmecimage.cn/p/开头 |
| desc | string | 否 | 详情文本描述 |
# Body.cats(Array) Object Payload
三级类目信息,必须选到第三级类目
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cat_id | number | 是 | 类目ID,需要先通过获取类目接口拿到可用的cat_id;这里的cat_id顺序与一,二,三级类目严格一致 |
# Body.attrs(Array) Object Payload
货品参数属性
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| attr_key | string | 是 | 属性键名(同一个货品不能重复) |
| attr_value | string | 是 | 属性值 |
# Body.product_qua_infos(Array) Object Payload
货品资质信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| qua_id | number | 否 | 资质ID |
| qua_url | array | 否 | 资质图片url列表 |
# Body.skus(Array) Object Payload
SKU列表,长度最少为1,最大为500
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sku_id | number | 否 | 若填了已存在sku_id,则进行更新sku操作,否则新增sku |
| thumb_img | string | 否 | sku缩略图 |
| price_info | object | 是 | 价格信息 |
| stock_num | number | 是 | 库存数量 |
| stock_diff | object | 否 | 库存增减信息 |
| sku_code | string | 否 | sku编码 |
| bar_code | string | 否 | 条形码 |
| sku_attrs | objarray | 否 | sku规格属性列表 |
# Body.express_info Object Payload
运费信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| template_id | number | 否 | 运费模板ID(deliver_method=1时不用填写) |
| weight | number | 否 | 货品重量(单位:克),若运费模版按重量计价则必填 |
# Body.extra_service Object Payload
额外的售后服务
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seven_day_return | number | 否 | 是否支持七天无理由退货。0=不支持,1=支持,2=支持(定制商品除外),3=支持(使用后不支持) |
# Body.after_sale_info Object Payload
售后/退货地址
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| after_sale_address_id | number | 否 | 售后/退货地址id,使用地址管理相关接口进行添加或获取 |
# Body.size_chart Object Payload
尺码表信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| enable | boolean | 否 | 是否启用尺码表 |
| specification_list | objarray | 否 | 具体的尺码规格列表 |
# Body.skus(Array).price_info Object Payload
价格信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cost_price | number | 是 | 成本价(分) |
| suggest_retail_price | number | 否 | 建议零售价(分) |
| lowest_retail_price | number | 否 | 最低零售价(分) |
# Body.skus(Array).stock_diff Object Payload
库存增减信息
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| diff_type | number | 否 | 库存变更类型。1=增加,2=减少,3=设置 |
| num | number | 否 | 增减数量 |
# Body.skus(Array).sku_attrsObject Payload
Object Payloadsku规格属性列表
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| attr_key | string | 是 | 规格属性键,最终展示为商详页sku规格的名称,最多40字符 |
| attr_value | string | 是 | 规格属性值,最多40字符 |
# Body.size_chart.specification_list(Array) Object Payload
具体的尺码规格列表
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 尺码规格名称 |
| unit | string | 否 | 规格单位 |
| is_range | boolean | 否 | 是否为区间 |
| value_list | objarray | 否 | 尺码与规格值的映射列表 |
# Body.size_chart.specification_list(Array).value_listObject Payload
Object Payload尺码与规格值的映射列表
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 否 | 规格项对应的尺码值 |
| value | string | 否 | 规格为非区间时的值 |
| left | string | 否 | 规格为区间时的左边界 |
| right | string | 否 | 规格为区间时的右边界 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | string | 错误信息 |
| data | object | 返回数据 |
# Res.data Object Payload
返回数据
| 参数名 | 类型 | 说明 |
|---|---|---|
| product_id | number | 货品ID |
| update_time | string | 更新时间 |
# 4. 注意事项
货品有2份数据,草稿和线上数据,调用接口新增和修改货品数据后,影响的只是草稿数据,要调用上架货品接口(或本接口参数listing设置为1),并审核通过,草稿数据才会覆盖线上数据正式生效;
该接口请求方式和添加货品接口基本一致,区别在于请求该接口时需要带上已存在的product_id;
该接口是覆盖写操作,每次提交后,草稿数据会被整体替换为本次请求上传的数据:
若sku列表中带上已存在的sku_id,则会用新上传的内容更新对应的sku草稿;
若列表中某个的sku没有传入sku_id,则视为新增的sku,分配新的sku_id并插入到货品草稿中;
若原本存在于货品信息中的某个sku_id,在本次更新没有上传,则视为删除,货品草稿将移除该sku,在货品审核通过后,以上变动将作用于线上数据。
图片相关参数(如head_imgs、desc_info.imgs、skus[].thumb_img等),请务必使用接口上传图片(参数resp_type=1),并将返回的img_url填入此处,不接受其他任何格式的图片url。若url曾经做过转换(url前缀为mmecimage.cn/p/),则可以直接提交。
每个小店调用接口新增、更新货品次数会合并计算,有频次限制。
# 5. 代码示例
请求示例
{
"product_id": "10000000089215",
"title": "示例货品标题",
"head_imgs": [
"https://mmecimage.cn/p/xxx1",
"https://mmecimage.cn/p/xxx2",
"https://mmecimage.cn/p/xxx3"
],
"desc_info": {
"imgs": [
"https://mmecimage.cn/p/yyy1"
]
},
"cats": [
{"cat_id": 6031},
{"cat_id": 6032},
{"cat_id": 6033}
],
"skus": [
{
"sku_id": 462966903,
"sale_price": 1300,
"stock_info": {
"stock_num": 100
},
"sku_attrs": [
{
"attr_key": "颜色",
"attr_value": "白色"
}
]
}
],
"express_info": {
"template_id": 123456
}
}
返回示例
{
"errcode": 0,
"errmsg": "ok",
"data": {
"product_id": 10000000089215,
"update_time": "2025-06-20 10:00:00"
}
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 10020011 | 货品的类目长度不对 | 确认已选到三级类目 |
| 10020012 | 规格不合法 | 确认规格属于所选三级类目 |
| 10020013 | 货品sku数量不合理 | sku数量必须在1-500之间 |
| 10020017 | 类目非法 | 确认类目正确 |
| 10020018 | 商家不具备当前类目资质 | 先申请类目资质 |
| 10020019 | 运费模版非法 | 确认运费模板ID正确 |
| 10020020 | 货品标题为空 | 填写标题 |
| 10020021 | 货品标题过长 | 标题不超过120字符 |
| 10020022 | 货品头图为空 | 至少上传3张头图 |
| 10020023 | 货品头图过多 | 最多9张头图 |
| 10020024 | 货品描述过长 | 缩短描述内容 |
| 10020025 | 货品详情图片过多 | 最多20张详情图 |
| 10020028 | sku价格过高 | 不超过1000万元 |
| 10020034 | 该货品的sku_id填写有误 | 确认sku_id正确 |
| 10020035 | 图片/视频url非法 | url前缀应为mmecimage.cn/p/ |
| 10020038 | 上架的货品缺少sku | 至少提供1个sku |
| 10020039 | SKU价格为0 | 设置有效价格 |
| 10020042 | 货品标题过短 | 至少3个字符 |
| 10020049 | 货品正在审核中,无法编辑 | 先调用撤回审核接口 |
| 10020051 | 参数错误 | 按文档传参 |
| 10020052 | 货品不存在 | 确认货品ID正确 |
| 10020083 | 该货品所需类目保证金高于当前保证金余额 | 前往商家网页端补缴保证金 |
| 10020088 | 当前类目不支持当前品牌 | 确认品牌与类目匹配 |
| 10020106 | 请上传至少3张货品头图 | 补充头图 |
| 10020107 | 请上传至少1张货品详情图 | 补充详情图 |
| 10020110 | 货品信息检查不通过 | 检查货品完整性 |
# 7. 适用范围
本接口支持「小店供货商」账号类型调用。其他账号类型如无特殊说明,均不可调用。