18673179777
获取免费方案
电话咨询
QQ咨询
微信咨询
返回顶部
×

小白必看!手把手教你用微信小程序送外卖,轻松解决订单少、接单乱、成本高的痛点!

想做外卖小程序,但一搜教程全是“注册账号、上传代码、发布上线”这种三句话就能说完的流程。真正卡住人的地方,根本没人讲。今天这篇内容,我会把做外卖小程序从0到能接单的整个过程拆开,重点放在那些网上搜不到、但实际操作中一定会遇到的坑和解决办法上。

先明确一个核心问题:你做的这个小程序,是给谁用的?如果是给自家餐厅用,那重点在“接单流程”和“打印小票”;如果是想做平台,把周边小餐饮店拉进来,那重点在“商户入驻”和“分账逻辑”。这两件事的代码逻辑完全不同,千万别搞混。

假设你是开面馆的,想自己弄个小程序让顾客点餐。那我建议你别用微信官方那个“小程序云开发”里的外卖模板,那个模板太通用,缺了很多本地化功能。比如它默认配送费是固定的,但实际你店里3公里内免费、3-5公里收5块、5公里以上不送,这种阶梯式规则模板里没有,得自己改。改法其实不复杂:在订单页的“配送费计算”函数里,用if语句判断用户地址到店的距离。你先在微信小程序后台开通“腾讯位置服务”,拿到接口权限,然后用getDistance方法算经纬度差值。举个例子,你的店在西安雁塔区,用户地址在高新区,距离大概4.2公里,那就走第二个收费档。代码大概长这样:

```javascript
const distance = getDistance(userLat, userLng, shopLat, shopLng);
if (distance <= 3) {
deliveryFee = 0;
} else if (distance <= 5) {
deliveryFee = 5;
} else {
wx.showToast({ title: '超出配送范围' });
}
```

这段逻辑看起来简单,但栽在“用户拒绝授权位置”上。如果用户点餐时没开定位,小程序会直接报错。你必须在调用getDistance之前,先判断用户是否授权,没授权就弹窗引导手动输入地址。很多教程不写这个,结果上线后一半订单没法算配送费。

再说一个更实际的痛点:出票。你接单后,后厨怎么知道有人点了餐?最省钱的办法是用“飞鹅”或“易联云”这种云打印机,它们都有现成的接口。你需要在订单生成后,把订单数据通过HTTP请求发给打印机的API。注意,这里有个细节:打印机每次只能打印80个字符宽的内容,菜品名称太长会自动换行,很难看。解决办法是在发送前,把菜品名裁切一下。比如“招牌牛肉拉面加鸡蛋加豆腐皮”这个菜名,你可以在后台设置一个别名,打印时只显示“牛肉拉面+蛋+豆皮”,这样一行就能放下。很多做外卖小程序的教材不会教这个,因为他们默认你用的是标准模板,但实际运营中,小票格式直接影响后厨效率。

如果你是想做聚合平台,把周边十几家小饭馆放上去,那技术难点就变了。核心不再是“点餐”,而是“分账”。比如用户从你的小程序点了一份黄焖鸡,钱是先到你的账户,然后你再扣掉抽成转给商家。这里有个合规问题:微信支付从2023年开始严查“二清”行为,你如果没有支付牌照,不能直接让钱进你账户再转出去。正确做法是用微信支付的“服务商模式”,让资金直接结算到商家子商户号,你只收手续费。具体操作是:先申请成为微信支付服务商,然后给每个入驻的商家创建子商户号。用户下单时,调用“jsapi下单”接口,参数里带上sub_mchid(子商户号)。这样钱不过你的手,合规。代码段里关键的一行是:

```javascript
wx.requestPayment({
timeStamp: ...,
nonceStr: ...,
package: 'prepay_id=' + prepayId,
signType: 'MD5',
paySign: ...,
success: function(res) {
// 这里不要写“钱到平台账户”的逻辑,钱直接到商家了
}
});
```

很多教程会跳过这个,直接让你用普通商户号收款,那样早晚会出问题。尤其是你在小城市做,比如河北廊坊或者湖南岳阳这种地方,微信支付的风控可能没那么快查到,但一旦被冻结资金,所有商家都会找你麻烦。

还有一个常见问题:用户点完餐想催单,或者想备注“不要香菜”,这些信息怎么处理?最简单的办法是在订单页面加一个“备注”输入框,但很多商家反馈说,后厨根本不看备注。解决方案是:把备注内容直接拼接到打印小票的菜品名称后面。比如用户点了一份“蛋炒饭”,备注“加辣”,小票上打印出来就是“蛋炒饭(加辣)”。这样后厨在炒菜时一眼就能看到,不用再翻手机。这个改动虽然小,但能减少至少30%的客诉。

另外,配送环节也容易出问题。如果你的店是自己配送,没有接入美团跑腿,那你得在小程序里加一个“配送员端”。最简单的方式不是开发APP,而是用微信小程序的“订阅消息”。顾客下单后,你手动点一下“分配配送员”,然后给配送员发一条模板消息,告诉他取餐地址和送餐地址。配送员点开消息,自动跳转到导航页面。这个功能不需要写太多代码,主要是在微信公众平台里配置好模板消息的模板ID,然后在订单状态变更时调用wx.requestSubscribeMessage。注意,这个接口需要用户(配送员)主动点击同意订阅,否则发不出去。所以你要在配送员注册时,就引导他勾选“允许接收新订单通知”。

还有一个容易被忽略的点:图片加载速度。外卖小程序里菜品图片多,如果图片太大,加载慢,用户等几秒没反应就关掉了。解决办法是用微信的“云开发”存储图片时,自动压缩成640像素宽,或者用第三方图床如又拍云、七牛云,开启图片缩放功能。我见过一个做重庆小面的老板,他的小程序里每张图片都是手机原图直传,一张3MB,结果打开菜单要等5秒,转化率特别低。后来改成压缩到200KB,首屏加载速度从5秒降到1.2秒,订单量涨了40%。

最后说一个关于“留存”的技巧。很多外卖小程序做完,用户用完即走,根本留不住。你可以加一个“积分抵扣”功能,但不要搞复杂的积分规则。简单点:每消费10元积1分,1分抵1毛钱。这个功能在微信小程序里实现起来不复杂,用云数据库存用户的积分字段,下单时读出来,让用户选择是否使用积分抵扣。关键点是:积分抵扣的金额不能算入商家的结算金额里。比如用户点了20元的东西,用了10积分抵扣1元,实际支付19元,但商家收到的还是20元,那1元由你平台补贴。这个补贴成本其实很低,因为积分本质上是用户消费产生的,你只是把未来的一部分利润提前让利了。很多平台不愿意做,觉得麻烦,但实际上这个功能能让用户的次月复购率提升20%以上。

这些内容,大部分教程不会写,因为写教程的人往往只做过demo,没真正运营过。你自己做的时候,一定要先想清楚:你是在解决“点餐”这个动作,还是在解决“让用户持续在你这里点餐”这件事。后者才是赚钱的关键。

上一篇
租客问一句“能短租吗”,房东直接血压飙升——这份微信小程序房东避坑指南请收好
下一篇
3步教你快速取消快递小程序寄件订单