技术文档

微信商品库导入/更新/查看接口文档

目录

一、概述

二、权限获取

三、导入商品接口

四、更新商品说明

五、导入或更新结果查询接口

六、单个商品信息查询接口

七、全量商品信息查询接口

八、商品信息错误码

九、API错误码

十、附录

十一、常见问题


更新记录

V1.3:新增说明,接口每天调用次数不得超过100万次

V1.2更新了总库存的描述,注明了商品总库存为空或为0时将无法在流量主选品端展现的特性

V1.1调整导入接口每分钟全局调用次数不得超过200次

V1.02018-08-08 通用商品接口初始发布

重要须知(请务必仔细阅读)

1、请务必确保商品的导入、更新等服务都已通过下述接口完成商品信息系统化自动实时同步,方可启动相应的商品推广,若仅完成导入,后续无法及时更新信息,将严重影响用户端体验,一经发现平台将采取全面下线商品,停止功能等措施

2、当商品的导入、更新服务搭建完成后,请在公众号返佣商品推广后台,配置流量主白名单,并登录该白名单公众号,在图文编辑页面,找到添加商品的入口,筛选自己品牌的商品,并插入文章,测试体验完整流程,便于发现问题,及时修正

3、有其他疑问请仔细参阅文档及文档末的常见问题

  

一、概述

微信商品库接口文档,商家通过本接口,可将商品信息更新到微信后台,可应用于微信公众号图文及其他场景内的商品推广。


二、权限获取

开通返佣商品推广后,自动获取权限。(审核通过后,需要在线签署协议,才算开通成功)


三、导入商品接口


1、接口简介:

请使用开通返佣商品推广的公众号(不是小程序),调用本接口,导入商品至微信(仅支持导入小程序落地页的商品)。
每次调用支持批量导入不超过1000条的商品信息。每分钟单个商户全局调用次数不得超过200次。每天调用次数不得超过100万次。每次请求包大小不超过2M。

更新商品也请使用本接口,支持增量更新。


2、请求示例:

HTTP请求方式:POST
https://api.weixin.qq.com/scan/product/v2/add?access_token=ACCESS_TOKEN


3、请求参数说明:

参数 是否必须 说明
access_token 公众号的全局凭据,用于接口调用。详细可参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183


4、请求示例:

POST的JSON请求如下:
{
"product": [
{
"pid": "pid001",
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/a.jpg"
},
{
"url": "http://www.google.com/b.jpg"
}
]
},
"category_info": {
"category_item": [
{
"category_name": "图书"
},
{
"category_name": "少儿图书"
}
]
},
"official_category_info": {
"category_item": [
{
"category_name": "图书"
}
]
},

"link_info": {
"url": "pages/index/index",
"wxa_appid": "wxa0x01adx3423566",
"link_type": "wxa"
},
"title": "test title",
"sub_title": "test sub_title",
"brand": "test brand",
"shop_info": {
"source": 2
},
"desc": "test desc",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 1000
},

"custom_info": {
"custom_list": [
{
"key": "book_desc",
"value": "“熊猫先生”通过4个富有节律性、带有因果关系、幽默风趣,又有正反对比的故事,让小朋友明白礼仪的重要性。"
},
{
"key": "author",
"value": "史蒂夫•安东尼"
},
{
"key": "publisher",
"value": "中信出版社"
}
]
},
"sku_info": {
"sku_item": [
{
"sku_id": "sku001",
"barcode_type": "ean13",
"barcode": 2018032105140,
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/c.jpg"
},
{
"url": "http://www.google.com/d.jpg"
}
]
},
"link_url": "pages/index/index?a=b",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 500
},
"shop_info": {
"source": 2
}
},
{
"sku_id": "sku002",
"barcode_type": "ean13",
"barcode": 2018032105140,
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/c.jpg"
},
{
"url": "http://www.google.com/d.jpg"
}
]
},
"link_url": "pages/index/index?a=b",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 500
},
"shop_info": {
"source": 2
}
}
]
},

"partial_update": 1
},
{
"pid": "pid002",
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/a.jpg"
},
{
"url": "http://www.google.com/b.jpg"
}
]
},
"category_info": {
"category_item": [
{
"category_name": "女装"
},
{
"category_name": "连衣裙"
}
]
},
"official_category_info": {
"category_item": [
{
"category_name": "女装"
}
]
},

"link_info": {
"url": "pages/index/index",
"wxa_appid": "wxa0x01adx3423566",
"link_type": "wxa"
},
"title": "test title",
"sub_title": "test sub_title",
"brand": "test brand",
"shop_info": {
"source": 2
},
"desc": "test desc",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 1000
},
"sku_info": {
"sku_item": [
{
"sku_id": "sku001",
"barcode_type": "ean13",
"barcode": 2018032105140,
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/c.jpg"
},
{
"url": "http://www.google.com/d.jpg"
}
]
},
"link_url": "pages/index/index?a=b",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 500
},
"shop_info": {
"source": 2
}
},
{
"sku_id": "sku002",
"barcode_type": "ean13",
"barcode": 2018032105140,
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/c.jpg"
},
{
"url": "http://www.google.com/d.jpg"
}
]
},
"link_url": "pages/index/index?a=b",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 500
},
"shop_info": {
"source": 2
}
}
]
},

"partial_update": 1
}
]
}

将上述json内容放入/tmp/scanproduct_import.json文件(自定义路径及文件名,文件请使用utf8编码)中,使用curl进行请求
curl命令测试用例:
curl -X POST -d @/tmp/scanproduct_import.json ' https://api.weixin.qq.com/scan/product/v2/add?access_token=ACCESS_TOKEN'


5、字段说明:

sku相关字段作为选填项,当上传sku字段后,对应的相关参数为必填。

字段 参数 子参数 含义 是否必填 说明
Pid相关基础字段product pid 商品id 商品全局唯一标识,只能用字母、数字、部分字符及其组合表示,不超过32个字符。本id代表商品信息聚合的单位(一般称作spu),下面可以有更细的sku(若商户只有sku体系,请指定某个sku的id作为商品pid)
Pid相关基础字段product partial_update 是否增量更新 不填默认为1。填0代表全量更新,填1代表增量更新(即更新某些字段)
Pid相关基础字段product image_info 商品图片 用于商品展示,至少上传一张,请确保首图清晰完整,宽高比要求1:1,大小不超过5M
Pid相关基础字段product category_info 商户原始类目 多级类目多个category_item分隔(参加示例),写在后的为下一级,每级不超过30个汉字,最多5级。填写商户原本的类目树即可
Pid相关基础字段product official_category_info 微信指定类目 只有一级,例如图书商品需要填写一级类目”图书”,目前开放一级类目有图书,女装,男装,美妆个护,母婴,食品生鲜,数码家电,珠宝配饰,鞋靴箱包,运动户外,家居百货,汽车用品,请准确填写商品所属类目(不属于上述类目的商品请勿导入)
Pid相关基础字段product link_type 商品详情链接跳转类型 必须为小程序类型,请填wxa
Pid相关基础字段product wxa_appid 小程序appid 推广商品所属的小程序appid
Pid相关基础字段product url 商品详情的小程序path路径 填写该商品跳转的小程序页面路径
Pid相关基础字段product title 商品标题 商品名称,建议11汉字以内,最长不超过30个汉字(大小超出900字节,后台将截断超出部分后存储)
Pid相关基础字段product sub_title 商品副标题 商品特性、简短描述等,建议最长不超过30个汉字(大小超出900字节,后台将截断超出部分后存储)
Pid相关基础字段product brand 品牌名称 商品所属品牌
Pid相关基础字段product source 商品来源 1代表平台自营,2代表非平台自营
Pid相关基础字段product desc 商品描述 商品的详情描述,最长不超过300个汉字(大小超出900字节,后台将截断超出部分后存储)
Pid相关基础字段product 价格信息 price_info min_price 现价最低价 若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
Pid相关基础字段product 价格信息 price_info max_price 现价最高价 若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
Pid相关基础字段product 价格信息 price_info min_ori_price 原价最低价 若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
Pid相关基础字段product 价格信息 price_info max_ ori_price 原价最高价 若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
Pid相关基础字段product 售卖信息sale_info sale_status 商品上下架状态 上架“on”,下架“off”,该商品总的上下架状态(状态有变更时,务必实时更新至微信)
Pid相关基础字段product 售卖信息sale_info stock 库存 该商品的总库存(sku库存累加),整数,不可为负。商品若需在选品端被发现,则该字段必填,该字段为空或者为0时,则商品无法在选品端出现(库存有变更时,务必实时更新至微信)
sku相关字段sku_item sku_id 商品最小单元的id 商品最小单元(如红色40码鞋子)的标识,全局唯一,只能用字母、数字、部分字符及其组合表示,不超过32个字符。
sku相关字段sku_item barcode_type 条码类型 标品必填,非标品为空。枚举值:ean13、ean8
sku相关字段sku_item barcode 商品条码 标品必填,非标品为空
sku相关字段sku_item source 商品来源 1代表平台自营,2代表非平台自营
sku相关字段sku_item image_info 商品图片 sku_id非空时,必填 sku相应的图片,可以多张,宽高比要求1:1,大小不超过5M
sku相关字段sku_item link_url 商品详情的小程序path路径 sku_id非空时,必填 填写该商品sku跳转的小程序页面路径
sku相关字段sku_item 价格信息price_info min_price 现价最低价 sku_id非空时,必填 sku的价格,若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
sku相关字段sku_item 价格信息price_info max_price 现价最高价 sku_id非空时,必填 sku的价格,若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
sku相关字段sku_item 价格信息price_info min_ori_price 原价最低价 sku的价格,若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
sku相关字段sku_item 价格信息price_info max_ ori_price 原价最高价 sku的价格,若只有一个价格,最低价=最高价,单位元,保留小数点后两位(价格有变更时,务必实时更新至微信)
sku相关字段sku_item 售卖信息sale_info sale_status 商品上下架状态 sku_id非空时,必填 sku的上下架状态,上架“on”,下架“off”,(状态有变更时,务必实时更新至微信)
sku相关字段sku_item 售卖信息sale_info stock 库存 sku的库存,整数,不可为负(库存有变更时,务必实时更新至微信)
custom_info中相关字段(以key/value形式存在) book_desc 图书简介 类目为图书时,必填 图书的一段简短介绍或者推荐语,用于商品展示,建议30汉字以内(大小超出900字节,后台将截断超出部分后存储)
custom_info中相关字段(以key/value形式存在) author 作者 类目为图书时,必填 如果有多个,请使用分号(英文状态)隔开,建议30汉字以内(大小超出900字节,后台将截断超出部分后存储)
custom_info中相关字段(以key/value形式存在) publisher 出版社 类目为图书时,必填 如果有多个,请使用分号(英文状态)隔开,建议30汉字以内(大小超出900字节,后台将截断超出部分后存储)


6、返回参数说明:

参数 说明
errcode 0为调用成功,否则返回相关错误码。
errmsg ok为调用成功,否则返回错误提示。
status_ticket 用于获取此次导入的详细结果

示例如下

{
"errcode": 0,
"errmsg": "ok",
"status_ticket": "115141102647330200"
}


四、 更新商品说明

支持使用商品导入接口,只更新部分字段内容。更新时,字段不填代表不更新该字段(此处的字段不填,代表无此字段,而不是把字段的值设为空,设为空即代表更新该字段为空 );

对于字符串类型的选填字段,如副标题,若清空不展示,则可设置为空;对于数字类型的选填字段,如原价,若清空不展示,则需设置为0。

注:为了确保用户端数据一致性体验及正常购买,请确保商品信息的变动,实时更新至微信。

下面详细给出支持增量更新的字段及更新示例:

1、基本字段

基本字段更新中pid为必填字段,且无法修改

1) image_info

图片相关更新,只保留最后一次传入的图片信息,每次更新均覆盖之前的图片信息。

{
"product": [
{
"pid": "pid001",
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/a.jpg"
},
{
"url": "http://www.google.com/b.jpg"
}
]
}
}
]
}
2) category_info

类目相关更新,只保留最后一次传入的类目信息,每次更新均覆盖之前的类目信息。

{
"product": [
{
"pid": "pid001",
"category_info": {
"category_item": [
{
"category_name": "一级类目"
},
{
"category_name": "二级类目"
}
]
}
}
]
}

每个字段可单独更新

{
"product": [
{
"pid": "pid001",
"link_info": {
"url": "pages/index/index",
"wxa_appid": "wxa0x01adx3423566",
"link_type": "wxa"
}
}
]
}
4) title, sub_title, brand, desc

每个字段可单独更新

{
"product": [
{
"pid": "pid001",
"title": "test title",
"sub_title": "test sub_title",
"brand": "test brand",
"desc": "test desc"

}
]
}
5) max_price, min_price, max_ori_price, min_ori_price

每个字段可单独更新

{
"product": [
{
"pid": "pid001",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
}
}
]
}
6) sale_status, stock

每个字段可单独更新

{
"product": [
{
"pid": "pid001",
"sale_info": {
"sale_status": "off",
"stock": 100
}
}
]
}
7) custom_info

这里custom_info在进行增量更新时会根据key去更新value

 {
"product": [
{
"pid": "test_book_001",
"custom_info": {
"custom_list": [
{
"key": "book_desc",
"value": "“熊猫先生”通过4个富有节律性、带有因果关系、幽默风趣,又有正反对比的故事,让小朋友明白礼仪的重要性。"
},
{
"key": "author",
"value": "史蒂夫•安东尼"
},
{
"key": "publisher",
"value": "中信出版社"
}

]
}
}
]
}
8) shop_info
{
"product": [
{
"pid": "pid001",
"shop_info": {
"source": 2
}
}
]
}


2、sku相关字段

更新sku相关字段时pid和sku_id为必填字段,且无法修改

1) 新增sku

新增sku只需填入sku的信息即可完成增量导入,注意sku_id必须唯一

{
"product": [
{
"pid": "pid001",
"sku_info": {
"sku_item": [
{
"sku_id": "sku003",
"barcode_type": "ean13",
"barcode": 2018032105160,
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/c.jpg"
},
{
"url": "http://www.google.com/d.jpg"
}
]
},
"link_url": "pages/index/index?a=b",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 500
},
"shop_info": {
"source": 2
}
}
]
}
}
]
}
2) barcode_type, barcode

每个字段可单独更新

{
"product": [
{
"pid": "pid001",
"sku_info": {
"sku_item": [
{
"sku_id": "sku003",
"barcode_type": "ean13",
"barcode": 2018032205160
}
]
}
}
]
}
3) image_info
{
"product": [
{
"pid": "pid001",
"sku_info": {
"sku_item": [
{
"sku_id": "sku003",
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/c.jpg"
},
{
"url": "http://www.google.com/d.jpg"
}
]
}
}
]
}
}
]
}
{
"product": [
{
"pid": "pid001",
"sku_info": {
"sku_item": [
{
"sku_id": "sku003",
"link_url": "pages/index/index?a=b"
}
]
}
}
]
}
5) max_price, min_price, max_ori_price, min_ori_price

每个字段可单独更新

{
"product": [
{
"pid": "pid001",
"sku_info": {
"sku_item": [
{
"sku_id": "sku003",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
}
}
]
}
}
]
}
6) sale_status, stock

每个字段可单独更新

{
"product": [
{
"pid": "pid001",
"sku_info": {
"sku_item": [
{
"sku_id": "sku003",
"sale_info": {
"sale_status": "on",
"stock": 500
}
}
]
}
}
]
}
7) shop_info
{
"product": [
{
"pid": "pid001",
"sku_info": {
"sku_item": [
{
"sku_id": "sku003,
"shop_info": {
"source": 2
}
}
]
}
}
]
}

最后,下面是一个多个字段同时增量更新的case

{
"product": [
{
"pid": "pid001",
"image_info": {
"main_image_list": [
{
"url": "http://www.google.com/a.jpg"
},
{
"url": "http://www.google.com/b.jpg"
}
]
},
"category_info": {
"category_item": [
{
"category_name": "数码家电"
},
{
"category_name": "手机"
}
]
},
"official_category_info": {
"category_item": [
{
"category_name": "数码家电"
}
]
},
"link_info": {
"url": "pages/index/index",
"wxa_appid": "wxa0x01adx3423566",
"link_type": "wxa"
},
"title": "test title 2",
"sub_title": "test sub_title 2",
"brand": "test brand 2",
"shop_info": {
"source": 2
},
"desc": "test desc",
"price_info": {
"min_price": 250,
"max_price": 250.22,
"min_ori_price": 300.1,
"max_ori_price": 320.15
},
"sale_info": {
"sale_status": "on",
"stock": 200
}
}
]
}


五、 导入或更新结果查询接口

用于查询导入或更新商品的结果,当导入或更新商品失败时,若为系统错误可进行重试;若为其他错误,请排查解决后进行重试。

1、请求地址:

HTTP请求方式:POST
https://api.weixin.qq.com/scan/product/v2/status?access_token=ACCESS_TOKEN


2、请求示例:

需使用导入接口返回的status_ticket

{
"status_ticket": "115141102647330200"
}
将上述json内容放入/tmp/scanproduct_getimportstatus.json文件(自定义路径及文件名,文件请使用utf8编码)中,使用curl进行请求

curl命令测试用例:
curl -X POST -d @/tmp/scanproduct_getimportstatus.json ' https://api.weixin.qq.com /scan/product/v2/status?access_token=ACCESS_TOKEN'


3、返回参数说明

参数 说明
errcode 0为调用成功,否则返回相关错误码。
errmsg ok为调用成功,否则返回错误提示。
total_cnt 总共导入的数量
succ_cnt 成功导入的数量
fail_cnt 导入失败的数量
progress 整体导入的进度
statuses 展示每个商品的导入结果,并给出相关提示
ret 每个商品的导入结果,0为成功,否则返回相关错误码,详细参照文档最后的错误码表

返回结果示例如下:

{
"errcode": 0,
"errmsg": "ok",
"result": {
"succ_cnt": 2,
"fail_cnt": 0,
"total_cnt": 2,
"progress": "100.00%",
"statuses": [
{
"pid": "pid001",
"ret": 0,
"err_msg": "success",
"err_msg_zh_cn": "成功"
},
{
"pid": "pid002",
"ret": 0,
"err_msg": "success",
"err_msg_zh_cn": "成功"
}
]
}
}


六、 单个商品信息查询接口

1、接口简介:

使用该接口,商户可获取已导入的商品信息,供验证信息及抽查导入情况使用。


2、请求示例:

HTTP请求方式:POST
https://api.weixin.qq.com/scan/product/v2/getinfo?access_token=ACCESS_TOKEN


3、请求参数说明:

参数 是否必须 说明
access_token 公众号的全局凭据,用于接口调用。详细可参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183


4、请求示例:

POST的JSON请求如下:
{
"product": {
"pid": "pid001"
}
}
将上述json内容放入/tmp/scanproduct_getproduct.json文件(自定义路径及文件名,文件请使用utf8编码)中,使用curl进行请求

curl命令测试用例:
curl -X POST -d @/tmp/scanproduct_getproduct.json ' https://api.weixin.qq.com /scan/product/v2/getinfo?access_token=ACCESS_TOKEN'


5、字段说明:

参数 含义 是否必须 说明
pid 商品id 商品编号


6、返回参数说明:

参数 说明
errcode 0为调用成功,否则返回相关错误码。
errmsg ok为调用成功,否则返回错误提示。
product 商品详情,与“导入商品接口”字段一致,导入时未设置的值有可能获取时仍会返回,但显示为空


七、 全量商品信息查询接口

1、接口简介:

使用该接口,商户可获取已导入的全量商品信息,供全量验证信息使用。


2、请求示例:

HTTP请求方式:POST
https://api.weixin.qq.com/scan/product/v2/getinfobypage?access_token=ACCESS_TOKEN


3、请求参数说明:

参数 是否必须 说明
access_token 公众号的全局凭据,用于接口调用。详细可参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183


4、请求示例:

POST的JSON请求如下:
{
"page_context": "Uuls-grxWGsHmCGPcUQbtK0Da",
"page_size": 10,
"page_num": 1
}
将上述json内容放入/tmp/scanproduct_getproductbypage.json(自定义路径及文件名,文件请使用utf8编码)文件中,使用curl进行请求

curl命令测试用例:
curl -X POST -d @/tmp/scanproduct_getproductbypage.json ' https://api.weixin.qq.com /scan/product/v2/getinfobypage?access_token=ACCESS_TOKEN'


5、字段说明:

参数 含义 是否必须 说明
page_context 上下文 当page_num大于1时必填,填入上一次访问本接口返回的page_context。page_num为1时无需填写。
page_size 分页的大小 每一页的大小,目前限制为100以内,注意一次全量验证过程中该参数的值需保持不变
page_num 分页的编号 从1开始


6、返回参数说明:

参数 说明
errcode 0为调用成功,否则返回相关错误码。
errmsg ok为调用成功,否则返回错误提示。
product 商品详情列表,列表中的每个元素均与“导入商品接口”字段一致,导入时未设置的值有可能获取时仍会返回,但显示为空
page_context 上下文,用于访问下一页数据时使用

在一次全量验证过程中,需从一开始便指定固定的page_size,每次请求中page_size的值便不可再发生变化,而page_num的值需从1开始,严格按照1、2、3、4……的顺序进行访问,除第1页外,每次请求均需带上上一页请求返回的page_context。
当请求返回的结果中,errcode为0且返回的商品详情列表为空时,即可视为商品全量查询完毕。


八、商品信息错误码

错误码 说明
0 成功
-1 系统失败,请稍后重新上传
-2 参数错误
12 spu或sku图片转存失败
13 商品id格式不合法
14 url格式不合法
15 小程序appid填写错误或者未关联到本公众号
16 spu或sku跳转的页面路径不属于该小程序appid
17 类目不合法(微信指定类目没填写或不在要求范围内,或商家原始类目单个类目字数大于30汉字或超出5个层级)
19 长度大小超出限制,不得超过10000个字节
30 缺少pid
31 spu缺少图片信息
32 spu缺少商家原始类目
33 spu缺少跳转类型
34 spu缺少跳转链接
35 spu缺少跳转小程序appid
36 spu缺少标题
37 spu缺少现价最低价
38 spu缺少现价最高价
39 sku缺少sku_id
40 sku缺少图片信息
41 sku缺少现价最低价
42 sku缺少现价最高价
43 sku缺少跳转链接
60 缺少图书简介
61 缺少图书作者信息
62 缺少图书出版社信息
80 pid超出最长限制
81 sku_id超出最长限制
82 图片超出5M最大限制
83 库存超出合理范围
84 当前推广佣金设置低于该类目的基准佣金比例,请修改佣金后导入,基准佣金比例要求见商品api附录
100 信息审核中,请稍后查询
101 请求过期,请重试
102 审核失败,商品存在敏感信息

注:如遇其他错误码,可进行重试


九、API错误码

错误码 说明
-1 system error
45002 content size out of limit(单次请求包内容大小超出限制,目前是2M)
45009 reach max api daily quota limit(当天调用次数超出上限,目前是每天最多100万次)
61351 input data exceed max size(单次导入的商品数超出最大限制,目前是1000个)
95104 import product frequence out of limit(导入商品命中频率限制,目前是每分钟1000次)
95105 mp is importing products, api is rejected to import(商品推广后台正在更新佣金或开启结束推广,api拒绝导入)
95106 api is rejected to import, need to set commission ratio on mp first(api拒绝导入,需要先到商品推广后台设置佣金比例)

其他常见返回码详见:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433747234


十、附录

返佣商品推广后台设置的佣金,若低于官方类目基准佣金比例,则该类目商品无法导入,详细佣金要求见下表:


十一、常见问题

1、以下情况,导入的商品将无法在流量主选品端出现

1)商品上下架状态为“下架状态”(特殊的,当所有sku_id状态全都为下架时,系统将自动将pid置为下架状态);

2)商品总库存为0(总库存由sku库存累计。部分商家有地域库存的问题,则库存设置相对合理的值即可,此时商品是否可售,建议通过上下架状态控制)

3)未真正成功导入,须注意商品是否成功导入,请使用查询结果接口内的status_ticket,查询商品的导入情况


2、关于pid价格的问题

当同时设置pid的价格、sku的价格时,最高价,最低价将以sku内的最高,最低价为准


3、以下情况,api导入或更新会暂时失败,期间失败的商品请开发者重试导入

1)当商家在返佣商品推广后台,更新了佣金,佣金刷新期间(更新时间取决于商品总量,量级越大,时间越长)会拒绝api导入;

2)当商家在返佣商品推广后台,进行开始推广或结束推广的操作,商品从选品端上线或下线期间(上下线时间取决于商品总量,量级越大,时间越长)会拒绝api导入


4、关于商品更新的问题

1)增量更新的时候,不需要更新的字段可以无此字段,而不是设置字段为空( 如果设置为空,表示清空该字段的内容,如果该字段是必填字段,系统会报错,提示该字段错误)详见前文的更新商品说明。

2)商品信息要求系统化实时更新,是为了确保数据一致性及用户体验,这里的实时性要求,针对不同字段有不同程度的要求,诸如上下架状态,价格要求实时更新,即发生改变就得立即同步;库存,由于变动频繁,可做到准实时更新,几分钟内更新一次即可;图片,标题等其他字段,变动相对较少,有变更时,再请及时更新。

3)商品的导入和更新都有频率和上限的限制,请开发者尽可能优化调用接口的方式,避免过渡重复无效的调用,防止因为命中上限,而导致重要商品信息无法更新


5、商品的页面路径问题

1)开发者经常遇到spu或sku跳转的页面路径不属于该小程序appid这个报错,首先请确认自己当前传的小程序appid和path路径是不是一起的,其次请填入开发小程序时给页面创建的路径,具体可参见小程序页面路径的文档