选择创建商家应用,选择类目[营销导购]-[交易定制]-[C2B定制-自研]或[C2B模板],商家选择C2B定制-自研,服务商选择C2B模板
应用开发的前提:
商家应用代码开发需要在官方IDE上进行。大致的开发过程,请参考开发说明。
高级定制主要逻辑如下
在app.json文件配置交易开放插件
{ "pages": [ "pages/index/index" ], "plugins": { "openTrade": { //交易开放插件 "version": "*", "provider": "3000000003647041" } }, "window": { "defaultTitle": "My App" } }
在app.js文件获取初始化参数,例如商品id
import {Cloud} from '@tbmp/mp-cloud-sdk'; const cloud = new Cloud(); cloud.init({ env: 'test' }); App({ cloud, globalData: { itemId: "", // 商品ID skuId: "" // SKU ID tradeToken: "" // 交易token }, onLaunch(options) { // 第一次打开 console.info('App onLaunch'); const { query = {} } = options; const { params = {} } = query; const paramJson = JSON.parse(params); this.globalData.itemId = paramJson.itemId; this.globalData.skuId = paramJson.skuId; this.globalData.tradeToken = paramJson.tradeToken; }, onShow(options) { // 从后台被 scheme 重新打开 // options.query == {number:1} }, });
从小程序跳转到下单页(升级:若命中sku3.0,不会跳转到下单页,会回到sku面板)
接口名称:saveAdvancedServiceOrderV2
接口入参
参数名称 |
是否必填 |
说明 |
itemId |
Y |
商品ID,初始化应用时获取 |
skuId |
N |
商品SKU信息 |
quantity |
N |
商品数量 |
priceKey |
N |
商品价格key 涉及商品改价,参考后面部分 |
tradeToken |
N |
交易token |
extProperty |
Y |
商品定制信息,格式参照下文描述 |
定制信息extProperty格式
{ "pic":[ // 图片相关的定制信息 {"id":1,"url":"https://gw.alicdn.com/tfs/TB1T6PfBFzqK1RjSZSgXXcpAVXa-96-96.jpg"} ], "text":[ // 文本相关的定制信息 {"id":1,"key":"手镯颜色","content":"黑色纯银开口手镯"}, {"id":2,"key":"图案颜色","content":"测试"} ] }
示例代码
const {globalData} = getApp(); var plugin = requirePlugin("openTrade") plugin.saveAdvancedServiceOrderV2({ itemId:globalData.itemId, skuId:globalData.skuId, priceKey: '6F728A798C7B12C47162506B2D0B5C18', tradeToken:globalData.tradeToken, extProperty:{ "pic":[ // 图片相关的定制信息 {"id":1,"url":"https://gw.alicdn.com/tfs/TB1T6PfBFzqK1RjSZSgXXcpAVXa-96-96.jpg"} ], "text":[ // 文本相关的定制信息 {"id":1,"key":"手镯颜色","content":"黑色纯银开口手镯"}, {"id":2,"key":"图案颜色","content":"测试"} ] }, success(v){ console.log('suc', v) }, fail(v){ console.log('fail', v) } })
将定制商品加入购物车(升级:若命中sku3.0,不会跳转到购物车,会回到sku面板)
接口名称:saveAdvancedServiceCartV2
接口入参
参数名称 |
是否必填 |
说明 |
itemId |
Y |
商品ID,初始化应用时获取 |
skuId |
N |
商品SKU信息 |
quantity |
N |
商品数量 |
priceKey |
N |
商品价格key 涉及商品改价,参考后面部分 |
tradeToken |
N |
交易token |
extProperty |
Y |
商品定制信息 |
示例代码
plugin.saveAdvancedServiceCartV2({ itemId:globalData.itemId, skuId:globalData.skuId, priceKey: '6F728A798C7B12C47162506B2D0B5C18', quantity:2, tradeToken:globalData.tradeToken, extProperty:{ "pic":[ // 图片相关的定制信息 {"id":1,"url":"https://gw.alicdn.com/tfs/TB1T6PfBFzqK1RjSZSgXXcpAVXa-96-96.jpg"} ], "text":[ // 文本相关的定制信息 {"id":1,"key":"手镯颜色","content":"黑色纯银开口手镯"}, {"id":2,"key":"图案颜色","content":"测试"} ] }, success(v){ console.log('suc', v) }, fail(v){ console.log('fail', v) } })
查询消费者在小程序的商品已定制信息。调用时机:每次进入小程序时调用查询(手淘SKU面板升级后,消费者存在多次进入小程序的情况。若消费者在小程序保存了定制信息,再进入该小程序时,需要获取对应定制数据,复原消费者的商品定制状态,若查询不到相应的定制数据或查询为空,则不用对应还原定制状态)
接口名称:getSavedCustomization
接口入参:
参数名称 |
是否必填 |
说明 |
success |
N |
成功回调函数 |
fail |
N |
失败回调函数 |
示例代码
plugin.getSavedCustomization({ success(v){ console.log('suc', v) }, fail(v){ console.log('fail', v) } })
定制服务有额外服务费用增加,可以使用改价能力。如果无需改价的,可以忽略此部分。
TOP平台设置权限包【交易开放-高级定制动态改价(定向开放)】 https://api.alibaba-inc.com/rule/detail?apiGroupId=27510
API taobao.miniapp.advanced.tradeinfo.price.modify https://open.taobao.com/api.htm?docId=63776&docType=2
请求参数
注意有open_id要传,是当前请求appkey对应的用户id。会校验后续前端插件发起请求拿到的用户id,做匹配。防止返回的priceKey值泄露被他人恶意盗用。
出参price_key(对应前端API入参的priceKey),一串字符串,ISV前端发起请求时带到前端API入参里。
应用开发完成后,可以利用测试商品进行测试。在控制台消费者端应用的菜单上会提供[测试商品]的入口
测试商品可以选择当前应用的不同版本进行关联
开发版本:选择通过IDE上传的版本,以及具体的页面
真机预览:填写IDE预览时所生成的URL地址
点击[扫码测试],可以得到测试商品的二维码,用手淘或者手猫扫码可以进行测试,注意测试商品请勿付款购买
在商品详情页中点击立即购买,呼起下拉框,提示买家商品绑定了高级定制服务,再次点击立即购买将会跳转到应用中。
测试完成以后,小程序提交上线即可,运营小二也将看到这个测试商品以及绑定的商家应用版本&页面。审核通过后,即完成了整个开发环节,可以交由商家进行后续的配置环节
应用上线后,商家访问个性化定制平台,就可以看到用来实现高级定制的商家应用。商家可以导入商品,将商品与应用进行绑定,注意只有未上架的商品才可以导入。
点击导入商品,输入商品id即可导入商品
导入商品成功之后,点击修改商品,配置高级定制信息。注意,若强制定制购买,那么定制费用必须为0
其中导购文案以及导购信息的配置,会在商品详情页提供一个区块用以展示导购信息,如下图
确认配置信息无误之后,对商品进行上架操作,此时消费者就能按照高级定制的流程进行购买了