插件介绍
开发者可以将好物推荐插件添加到小程序中,在订单列表、商品详情页或其他合适的场景放置推荐按钮,用户可以直接在小程序内将物品推荐到好物圈。
申请插件
符合以下条件的小程序可以申请使用好物推荐插件:
- 开通微信支付;
- 不属于金融、游戏、医疗等类目。
使用插件
app.json
增加plugins
项。
"plugins": {
"goodsSharePlugin": {
"version": "3.1.1",
"provider": "wx56c8f077de74b07c"
}
}
调用插件的页面的json
文件,增加usingComponents["share-button"]
项。
"usingComponents": {
"share-button": "plugin://goodsSharePlugin/share-button"
}
调用方法
在声明了引入该插件的页面的wxml中,使用该插件。
<view class="test-container">
<share-button
product="{{product}}"
bind:error="on_error"
/>
</view>
share-button字段说明
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
product | Object | 是 | 详见下文解释,物品信息可以通过“物品更新”接口进行更新 |
type | Number | 否 | 默认值0 ,枚举值,0 -带边框无图标按钮;1 -无边框有图标按钮;2 -纯图标; 3 -自定义 |
size | Number | 否 | 默认值40 ,仅type 为2 时有效,控制图标大小 |
fore-color | String | 否 | 默认值#000000 ,前景色,影响边框、文字、图标颜色 |
back-color | String | 否 | 默认值rgba(255,255,255,0) ,背景色,仅type 为0 时候有效 |
btn-class | String | 否 | class选择器,可以连续指定多个 |
bind:error | Function | 否 | 失败回调 |
开发者可以从以下三种标准推荐按钮中选择其一或者完全自定义。
product字段说明
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
item_code | String | 是 | 物品的唯一标识 |
title | String | 是 | 物品的名称 |
desc | String | 否 | 物品描述 |
category_list | String Array | 是 | 类目列表 |
image_list | String Array | 是 | 物品图片url列表,图片宽度必须大于750px,宽高比建议4:3 - 1:1之间 |
src_mini_program_path | String | 是 | 物品的小程序落地页path |
brand_info | Object | 否 | 物品所属店铺信息,非平台型商家选填,具体见brand_info字段说明 |
sku_list | Object Array | 否 | 物品SKU列表,具体见sku_list字段说明 |
brand_info字段说明
属性 | 类型 | 必填 | 描述 |
---|---|---|---|
name | String | 否 | 商家名字 |
logo | String | 否 | 商家logo |
phone | String | 否 | 商家电话 |
sku_list字段说明
属性 | 类型 | 必填 | 描述 |
---|---|---|---|
sku_id | String | 是 | 商品的sku_id,需保证同个item_code下唯一 |
price | Number | 是 | 单位为分的物品现价。大于等于0的整数 |
original_price | Number | 是 | 单位为分的物品原价。大于等于0的整数 |
status | Number | 是 | 物品状态。数字枚举值:1:在售; 2:下架; 3:售罄 |
poi_list | Object Array | 否 | 门店的poi信息,具体见poi_list字段说明 |
sku_attr_list | Object Array | 否 | 物品属性列表,具体见sku_attr_list字段说明 |
sku_attr_list字段说明
属性 | 类型 | 必填 | 描述 |
---|---|---|---|
name | String | 是 | 物品属性值名 |
value | String | 是 | 物品属性值 |
poi_list字段说明
poi_list 数组字段 | 是否必填 | 说明 |
---|---|---|
longitude | 是 | 门店的经度,WGS84标准,取值范围为-180 到180 的数字 |
latitude | 是 | 门店的纬度,取值范围为-90 到90 的数字 |
radius | 否 | 门店可送达半径,单位km,大于等于0 的数字 |
business_name | 是 | 门店名称(仅为商户名,如:国美、麦当劳,不应包含地区、地址、分店名等信息,错误示例:北京国美),20个字符以内。非空白字符串 |
branch_name | 是 | 分店名称(不应包含地区信息,不应与门店名有重复,错误示例:北京王府井店),20个字符以内,20个字符以内。非空白字符串 |
address | 是 | 门店地址(不包含省市区信息,如:新港中路123号)。非空白字符串 |
参数示例
product: {
"item_code":"00003563372839_00000010154601",
"title":"product_name",
"desc":"product_description",
"category_list":[
"服装",
"上衣",
"短袖衬衫"
],
"image_list":[
"https://res.wx.qq.com/mpres/htmledition/images/xxxx.jpeg"
],
"src_mini_program_path":"/detail?item_code=00003563372839_00000010154601",
"sku_list":[
{
"sku_id":"SKU_ID",
"price":12345,
"original_price":67890,
"status":1,
"poi_list":[
{
"longitude":116.32676,
"latitude":40.003305,
"radius":5,
"business_name":"XXX",
"branch_name":"珠江新城店",
"address":"新港中路123号"
},
{
"longitude":117.32676,
"latitude":41.003305,
"radius":5,
"business_name":"CCC",
"branch_name":"客村店",
"address":"新港中路123号"
}
],
"sku_attr_list":[
{
"name":"颜色",
"value":"白色"
},
{
"name":"尺码",
"value":"XXL"
}
]
}
],
"brand_info":{
"name":"品牌名、小程序名",
"logo":"http://xxxxx"
}
}
回调返回码
on-error
回调中的返回码列表:
错误码(ret_code ) |
错误信息(ret_msg ) |
---|---|
10001 | 参数错误:具体错误根据ret_msg 信息提示进行处理 |
20063 | 小程序涉嫌违规,已被限制接入好物圈 |
20064 | 小程序类目不属于好物圈接入范围 |
20066 | 小程序未开通微信支付 |
20070 | 小程序不符合接入门槛 |
20080 | 插件版本号过低 |
20090 | 物品推荐失败 |
常见问题
- 点击分享按钮没反应。一般来说是入参错误。请开发者绑定并查看
error
回调函数中的第一个参数,内含的ret_msg
会详细列出参数错误的原因。 - 修改了全局变量
App
或Page
导致引用插件报错。建议开发者绕开占用变量名。
//一般而言,修改Page是为了对Page注入一些东西,例如:
const ORIGINAL_PAGE = Page; // 这个Page是原始的Page
Page = function(options){ //
//做点其他注入操作
//一顿修改后
return ORIGINAL_PAGE(options)
}
// 然后常规得初始化页面
Page({
data: {}
//...
})
//为了避免这个问题,可以换一个名字,不再占用变量名
XXXPage = function(options){ //
//做点其他注入操作
//一顿修改后
return Page(options)
}
// 然后常规得初始化页面
XXXPage({
data: {}
//...
})
//App这个变量名也是同理的

好物圈抱团交流QQ群
群号:868224432