-
电商小程序开发要注意什么问题呢?
电商小程序开发要注意什么问题呢?今天我们一起来了解一下。电商小程序开发要注意什么问题呢?1、个人账户建立在电商小程序进行实际开发的时候,同样要建立个人账户,要让每一个用户清楚了解到自己的积分以及优惠卡券,从而在短时间内激发自己的购买欲望。2、产品展示电商小程序在进行开发的时候,一定要考虑一下产品展示情况,电商小程序的核心部分也就在于产品展示,不管是什么类型的商城,他们的产品都是需要通过各种不同的展示方式向消费群体展示,同样也需要配备各种商品搜索功能,要结合实际情况对所有商城进行分类筛选。电商小程序开发要注意什么问题呢?3、物流配送电商小程序在进行实际开发的时候,一定要实现这方面功能,在进行开发的过程中,大家一定要记住简单来实现,对于促销推送的这种营销手法,相对来说可以在公众号中进行,只有这样才更加有利于每一个用户做体验。4、快捷支付电商小程序本身也都是相信在微信中的,在短时间内需要做快捷支付,所有的支付都会让整个微信小程序变得更加便捷,同时也会帮助他的多数用户节约时间。电商小程序开发的时候,以上的几个问题都是要注意的。目前来看不同的电商小程序所涉及的功能会有所不同,因此在开发的时候要满足多种开发需求。
-
电商小程序商城开发的模式有哪些?
伴随着电商小程序的诞生,移动互联网行业也迎来了新一波浪潮,各行各业纷纷涌进了微信小程序当中,其中电商购物小程序分成的多种盈利模式,就让小编来给大家详细介绍下吧。拼团模式使用拼团方式是在用户体验角度提供各种各样拼团场景,如单独购买、单品拼团、多产品拼团等。商家可以考虑在保证实现销售利益的前提下,在电商小程序拼团系统的后台合理设置各种拼团条件,比如拼团人数、拼团有效时间、拼团价格等等。只有用户体验度增加,消费者便会更加容易购买商品了。分享砍价模式熟悉电商小程序知道,一般小程序商城只能够完成基础交易环节,并不能够做到人人分享、人人传播。但借助拼团玩法、分享砍价等小程序电商模式,是可以在很大程度上能够提升品牌曝光率,这对于用户分享传播和流量裂变而言都是大有益处的。社交立减金已开通电商小程序商家可以考虑“社交立减金”方式,使得自身品牌获取到更多用户认同感和体验度。并且在购物支付成功之后,会自动生成一个相应的小程序立减金页面,用户可以自行领取立减金,也可以邀请好友领取。当用户再次光顾商家打开电商小程序时就可以使用积累的立减金了。礼券模式使用礼券裂变方式的好处在于,它充分利用了用户“面子消费”的心理,把券赠送给好友之后自己会感觉很有面子,站在用户的角度思考,非常愿意接受这样的方式并很有可能会分享给另外好友,以此实现更多用户交互传播,然而用户裂变同时也可提升品牌知名度,青睐于赠送优惠券电商小程序卖家可以考虑做这种形式
-
单车电商小程序平台开发
共享单车火了不久,小程序就正式上线了,在小程序和手机APP软件的结合发展下,单车电商行业的发展也是十分迅速。对于单车电商APP软件,我们已经很熟悉了,所以就跟大家介绍下单车共享微信小程序平台,看看具体给消费者带来了哪些新的服务。在功能服务上,单车电商小程序也有会员管理、优惠劵、积分等功能,具体情况如下:1、微信小程序优惠劵,买车更优惠。因为小程序功能简单,如果企业想要以低成本转型,那就可以选择这个方式。用户只需扫码进入小程序,然后领取优惠券,支付的时候就能直接使用优惠劵了。2、售后服务,因为对任何一个互联网平台来说,售后服务都是十分重要的,这也是对用户的一种负责任的表现,可以大大提高用户对平台的信心。有了小程序平台,消费者就不用担心自己的售后卡不见了,因为在小程序平台上就有保持保修卡之类的服务。3、扩大分享传播的范围,特别是将微信用户平台的作用发挥到恰到好处。所以通过小程序不仅可以满足消费者线上选车买车的需求,而且还能将小程序转发到朋友圈,很多人也就直接分享给要买车的好友了,直接帮助店铺带去很多客户。总之,单车电商微信小程序平台,已经成为各个电商企业发展的主要渠道之一,而对很多用户来说,这样简便的消费方式也跟现在的消费习惯十分吻合。
-
服装电商小程序开发
能够选择小程序定制,切入服装电商市场,因为相比于开发APP软件来说,定制小程序价格会更低,对于创业初期的企业来说,是一个很好的选择。服装电商小程序给传统行业发展带来了新的曙光,那么具有改变的是什么?流量来源改变了,服装电商小程序主要的流量来自于微信,流量更加精准化了,,实现了内容到应用的转变。所以对服装电商企业来说,小程序就是一个自带流量的互联网切入口,通过公众号,好友圈便能轻松实现引流,开发成本低,所以跟APP相比,小程序的发展优势也是很大的,除了小程序的基本特点外,在运营商,更是具有能节省了高额的开店费用和广告曝光费用的发展优势。另外服装电商小程序还优化了交易流程,不管是用户、生产商、批发商还是商户,只需要在微信上增加小程序就可以了,不需要下载就能使用,节省了两者直接对接的过程,简化了流程,提高了效率。小程序的到来无疑给服饰行业提供一种更好地联系线上线下的新模式,这样的服务,大大提高了消费者购物的体验。电商市场竞争那么激烈,其实不管是电商APP、电商小程序还是微商,都不好做,再加上传统线下服饰行业和实体店面临着种种发展难题,现在的电商市场急需要一种新的发展模式来打破僵局,服装电商小程序给传统行业发展带来了新的曙光,那么在接下来的发展中,哪种发展模式会是行业的发展的风口呢?会是无人电商?新零售电商?还是小程序呢?大家一起期待吧。
-
电商小程序登录模块设计
constfaker=require('faker')functionuserLogin(req,res){//获取前端传递过来的code//然后根据小程序appid,appsecret,code访问微信服务器api获取session_key,openid,这一步骤,无需模拟//根据session_key,openid关联自定义登录态,生成token,并创建匿名用户const{code}=req.bodyres.status(200).json({code:'success',message:'登录成功',//token已经利用express启动时设置于locals中,这里只需获取即可token:req.app.locals.token,})}module.exports={'POST/v1/user/login':userLogin,}接下来我们需要实现登录拦截器,新增effect拦截器(app.js)//利用taro全局事件机制,等待登录事件触发functionwaitLogin(){returnnewPromise(resolve=>{Taro.eventCenter.on('login',resolve)})}/***由于后台绝大部分接口都需要用户预先登录才可以获取数据*并且前端所有的接口调用都发生在页面中,难以在页面中统一控制接口必须在登录完成后才触发调用*因此在这里设置登录拦截器,拦截所有需要预先登录的接口,等待登录完成后返回*/app.intercept.effect(asyncaction=>{//我们通过action.meta字段来标记是否需要进行授权if(action.meta&&action.meta.noAuth)returnactiontry{//检测本地是否存在token,存在则无需等待登录consttoken=Taro.getStorageSync(TOKEN_KEY)if(!token){awaitwaitLogin()}}catch(error){awaitwaitLogin()}})登录请求实现(src/requests/user.js)importrequestfrom'../utils/request'exportfunctionuserLogin(data){returnrequest({url:'/v1/user/login',data,header:{noAuth:true,},method:'POST',})}usermodel实现(src/models/user.js)importTarofrom'@tarojs/taro'import{userLogin}from'../requests/user'import{TOKEN_KEY}from'../constants/common'import{getAuthorize}from'../utils/tools'exportdefault{namespace:'user',mixins:['common'],state:{memberId:'',memberInfo:{},},//该函数会在model初始化的时候调用setupasyncsetup({put}){try{//首先检测微信登录是否过期,过期则重新登录//也因此我们在设计后台token有效期时,应大于微信登录态有效期awaitTaro.checkSession()//微信登录未过期,尝试获取本地tokenconsttoken=awaitTaro.getStorage({key:TOKEN_KEY})if(!token){//本地无token存在时重新发起登录,并在登录完成后触发login全局事件,打通拦截器awaitput({type:'login',meta:{noAuth:true}})Taro.eventCenter.trigger('login')}else{//存在则直接触发login全局事件Taro.eventCenter.trigger('login')}}catch(error){//调用失败时重新发起登录,并在登录完成后触发login全局事件,打通拦截器awaitput({type:'login',meta:{noAuth:true}})Taro.eventCenter.trigger('login')}},effects:{asynclogin(){const{code}=awaitTaro.login()const{token}=awaituserLogin({code})awaitTaro.setStorage({key:TOKEN_KEY,data:token})},}注册usermodel即可(src/models/index.js)importuserfrom'./user'exportdefault[user]修改request带上token(src/utils/request.js)exportdefaultfunctionrequest(options){const{url}=optionsTaro.showNavigationBarLoading()//获取tokenconsttoken=Taro.getStorageSync(TOKEN_KEY)returnTaro.request(resolveParams({...options,url:`${CONFIG.SERVER}${url}`,mode:'cors',header:{'content-type':'application/json',//给每一个请求带上token字段Authorization:`Bearer${token}`,...options.header,},}),).then(checkHttpStatus).then(checkSuccess).catch(throwError)}登录兜底登录主流程已完成,但是我们还没有处理异常情况,当本地存储的token过期时,我们需要重新登录小程序,这只是极少数情况下会发生,因为我们判断了微信session,并且服务器的token有效期设置大于微信有效期,这个异常处理只是一个兜底首先我们需要屏蔽所有的因授权失败的报出的错误(app.js)constapp=zoro({onError(error){//屏蔽用户登录过期信息,因为当用户登录过期时会跳转自动登录if(error.response&&error.response.statusCode===401)returnif(error.message){Taro.showToast({icon:'none',title:error.message,duration:2000,})}},})接下来需要拦截接口401状态(src/utils/request.js)//通过截流函数,确保1秒内仅触发一次constredirectToRelogin=throttle(asyncfunction(){//这里的轮询是为了确保,页面已经ready,然后进行跳转//因为登录检测发生在apponLaunch,此时页面并没有真正ready,调用跳转会失败while(true){const{url,isTabbar}=getCurrentPageTypeAndUrlWithArgs()constredirectUrl=encodeURIComponent(`/${url}`)if(url){Taro.redirectTo({url:`/pages/relogin/relogin?isTabbar=${isTabbar}&redirectUrl=${redirectUrl}`,})break}awaitdelay(500)}},1000)functioncheckHttpStatus(response){if(response.statusCode>=200&&response.statusCode<300){Taro.hideNavigationBarLoading()returnresponse.data}//新增拦截401状态进行跳转登录if(response.statusCode===401){redirectToRelogin()}constmessage=HTTP_ERROR[response.statusCode]||`ERRORCODE:${response.statusCode}`consterror=newError(message)error.response=responsethrowerror}最后编写我们的relogin页面(src/pages/relogin/relogin.js)页面样式直接查看源码,在此不列出,仅列出关键函数classPageReloginextendsComponent{state={error:false,}componentWillMount(){this.handleLogin()}handleLogin=()=>{this.setState({error:false})//获取登录完成回跳地址const{params:{redirectUrl,isTabbar}={}}=this.$routerconsturl=decodeURIComponent(redirectUrl)dispatcher.user.login().then(()=>{//登录完成后回跳if(isTabbar){Taro.switchTab({url})}else{Taro.redirectTo({url})}}).catch(()=>{this.setState({error:true})})}}用户实名上面我们仅仅是实现了登录,但是并未获取到用户信息,也就是登录仅仅是个匿名用户而已微信获取用户信息授权wx.getUserInfo接口已经逐步在放弃,取而代之的是通过button开放能力来实现,因此我们需要实现一个通用授权组件,引入在必要用户信息的页面中明确了目标,我们依旧按照功能模块三步骤:编写上传用户信息的接口模拟(mocks/user.js)constfaker=require('faker')functionuserUploadInfo(req,res){//前端传递rawData,signature,encryptedData,iv校验和解析用户信息//详见https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.htmlconst{rawData,signature,encryptedData,iv}=req.bodyres.status(200).json({code:'success',message:'上传成功',})}functionuserGetInfo(req,res){res.status(200).json({code:'success',message:'获取用户信息成功',memberInfo:{memberId:faker.random.uuid(),nickName:'Faure',avatarUrl:'https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJS8AiaqOQqE1j3qHCbiaNKF9D9BgtQuE6gFXoXPKUibRMeWvTO55TSeblaMIzFfp3lGdJt3qUPCibBTQ/132',city:'成都',province:'四川',country:'中国',gender:1,}})}module.exports={'POST/v1/user/info':userUploadInfo,'GET/v1/user/info':userGetInfo,}编写上传用户信息的request请求(src/requests/user.js)importrequestfrom'../utils/request'exportfunctionuserUploadInfo(data){returnrequest({url:'/v1/user/info',data,method:'POST',})}exportfunctionuserGetInfo(){returnrequest({url:'/v1/user/info',method:'GET',})}编写usermodel中的上传用户信息部分(src/models/user.js)importTarofrom'@tarojs/taro'import{userUploadInfo,userGetInfo}from'../requests/user'import{getAuthorize}from'../utils/tools'exportdefault{namespace:'user',mixins:['common'],state:{authorize:true,//新增授权字段,默认初始化为已授权memberInfo:{},//新增用户信息},asyncsetup({put}){try{//检测用户是否授权constauthorize=awaitgetAuthorize('userInfo')if(!authorize){Taro.hideTabBar()}else{//已授权,则调用获取用户数据put({type:'getInfo'})}put({type:'update',payload:{authorize}})}catch(error){Taro.hideTabBar()put({type:'update',payload:{authorize:false}})}//省略之前的登录部分},effects:{//上传用户信息asyncuploadInfo({payload:{rawData,signature,encryptedData,iv},},{put},){awaituserUploadInfo({rawData,signature,encryptedData,iv})put({type:'getInfo'})},//获取用户信息asyncgetInfo(action,{put}){const{memberInfo}=awaituserGetInfo()put({type:'update',payload:{memberInfo}})},},}编写界面,仅列出关键代码,样式及界面请查看仓库源码(src/components/login/login.js)importTaro,{Component}from'@tarojs/taro'import{View,Text,Button}from'@tarojs/components'import{connect}from'@tarojs/redux'import{dispatcher}from'@opcjs/zoro'importComponentCommonModalfrom'../modal/modal'import{weappApiFail}from'../../../utils/tools'import'./login.scss'@connect(({user})=>({authorize:user.authorize,}))classComponentCommonLoginextendsComponent{handleUploadUserInfo=({detail:{errMsg,rawData,signature,encryptedData,iv},})=>{if(!weappApiFail(errMsg)){dispatcher.user.uploadInfo({rawData,signature,encryptedData,iv})dispatcher.user.update({authorize:true})Taro.showTabBar()}}render(){const{authorize}=this.propsreturn(欢迎加入四叶草庄园微信登录)}}exportdefaultComponentCommonLogin最后只需将login组件引入到页面中(src/pages/home/home.js)importTaro,{Component}from'@tarojs/taro'import{View,Text}from'@tarojs/components'importComponentCommonLoginfrom'../../components/common/login/login'import'./home.scss'classPageHomeextendsComponent{config={navigationBarTitleText:'四叶草庄园',}state={//请到README.md中查看此参数说明__TAB_PAGE__:true,//eslint-disable-line}componentDidMount(){}render(){return(首页)}}exportdefaultPageHome最后来看看最终效果吧
-
2018年比较火的营销新玩法,直播+电商小程序
2016年以来,在互联网科技的推动下直播行业迅速发展,直播逐渐作为一种商业工具深入人们生活和工作中。直播在垂直领域深耕或成为头部直播平台的发展方向,例如“直播+电商”,“直播+视频交友”,“直播+游戏”,“直播+音乐”,“直播+学习”等“直播+X”的扩展场景。凭借其强大的互动性、实时性、传播性,直播与各行各业碰撞出营销新高度,开始驱动着商业的运转。