有连锁门店的老板来谈小程序,十个里有八个会提同一个需求:“顾客打开就能看到离他最近的店。”听起来就是一个功能点,真做起来,小程序定位牵扯到授权弹窗、隐私说明、门店坐标、距离计算、配送范围判断,哪一环没想清楚,上线后都会出问题。

这篇不讲代码细节,讲讲我们做门店类、外卖类、上门服务类项目时,小程序定位这块一般怎么规划,以及哪些坑是可以提前绕开的。

先想清楚:你要的是哪种定位

同样叫小程序定位,业务需求可能完全不同。动手前先把需求分类,后面的设计会清楚很多。

第一种,只需要大概位置。比如按城市切换门店列表、显示本地活动。这种情况用户选城市就行,甚至可以不调用精确定位。

第二种,要做附近门店排序。顾客打开首页,门店按距离从近到远排。这是最常见的需求,要拿到用户当前坐标,再和门店坐标算距离。

第三种,要判断配送范围。外卖、生鲜、上门维修这类业务,下单时要判断用户填的地址在不在服务范围内。这里关心的其实是收货地址,而不只是用户此刻站在哪。

很多项目一开始把三种混在一起,结果首页一打开就弹授权,顾客还没看到商品先被吓走一半。

小程序附近门店怎么做

做小程序附近门店,后台第一件事是把每家门店的坐标录准。我们见过不少后台只填了文字地址,靠程序自动转坐标,结果有几家店被定位到隔壁街区,排序全乱。建议门店录入时在地图上手动点选位置,店员自己确认一次。

前端拿到用户坐标后,把坐标传给服务端,由服务端按距离排序后返回列表。门店少的时候前端算也可以,门店多了还是放服务端,顺便还能做分页和筛选,比如“只看营业中”“只看支持自提”。

列表页可以显示大概距离,点进门店详情再给“导航到店”和“拨打电话”两个按钮。导航直接调起手机上的地图应用,比自己在小程序里画路线省事得多,也更符合顾客习惯。

配送范围怎么判断

配送范围常见有两种画法,各有适用场景:

方式 做法 适合
按半径 以门店为圆心,设定一个距离 城区门店、范围要求不严
按区域 在地图上画多边形服务区 有河流、高架隔开,或按小区划片

按半径简单,但现实里经常不准:直线距离很近,中间隔条河,骑手要绕很远。所以对配送体验要求高的商家,我们更推荐按区域画,后台给门店店长一个画区域的界面,他们比谁都清楚哪些小区好送。

判断时用的是用户填写的收货地址坐标,不是他打开小程序时的位置。顾客在公司下单送到家里,这再正常不过。

小程序定位的授权和隐私说明

小程序定位的授权,是审核和用户体验的重灾区,单独拿出来说。

微信对位置信息管得比较严。小程序定位相关的接口,需要在后台配置里声明用途,并在隐私保护指引里写清楚:收集位置信息用来干什么,比如“用于展示附近门店和判断配送范围”。用途写得含糊,或者实际功能用不到定位却去申请,审核很可能被驳回。

调用时机也有讲究。不要一进小程序就弹定位授权,最好在用户点“附近门店”或“选择收货地址”时再申请,并且在弹窗之前用一句话告诉他为什么要定位。用户知道原因,同意的意愿会高很多。

用户拒绝了怎么办?这是必须设计的兜底:

  1. 门店列表照样展示,改为按城市或默认顺序排列;
  2. 给一个“手动选择城市/输入地址”的入口;
  3. 页面上留一个“开启定位”的按钮,用户想通了可以再授权。

千万别做成拒绝授权就白屏或者反复弹窗,这种体验投诉最多。

上线前要测的几个情况

小程序定位功能写完,建议真机上至少测这几种:首次授权同意、首次拒绝、拒绝后到设置里重新打开;手机系统层面关闭了定位服务;室内信号差、定位偏差大的情况。还有一个容易忘的:用户在外地打开,附近一家门店都没有,页面要给出“当前城市暂无门店”的提示,而不是空列表。

结论

小程序定位要先按业务分清楚:只要城市、要附近门店排序,还是要判断配送范围。门店坐标录准,排序放服务端,配送范围按实际路况画区域;授权放在用户真正需要时再申请,写清隐私用途,拒绝后有兜底。蔚岚科技做小程序开发时会把这些一起规划进需求,想做附近门店或配送功能的,可以打 18720919319 先聊聊方案。

常见问题

小程序定位一定要用户授权吗?

要。获取用户位置属于个人信息,必须经用户同意,并在隐私保护指引里说明用途。用户不同意时,要提供手动选择城市等替代方式。

小程序附近门店能显示多远的店?

技术上没有硬性限制,一般按业务需要设定,比如只显示同城门店。门店太远的放进列表意义不大,反而干扰顾客选择。

定位不准是什么原因?

常见原因是室内信号弱、手机关闭了精确定位,或者门店坐标本身录错了。排查时先核对门店坐标,再看用户端定位情况。

配送范围能按小区来设吗?

可以,用多边形区域把小区圈进去就行。按区域划片比按半径更贴近实际配送路线,适合生鲜和上门服务。

没有门店的线上商家需要小程序定位吗?

多数情况不需要。纯线上发货的商家用收货地址就够了,没必要申请位置权限,还能减少审核和隐私上的麻烦。