码点餐小程序 - 助力餐饮数字化升级

项目背景

一个开连锁餐厅的朋友找到我,说店里用餐高峰期服务员忙不过来,顾客点餐要等很久,下单后还要人工传菜到后厨,效率很低。他想做一个扫码点餐的系统,顾客自己扫码点餐,后厨自动接单。

听完需求我觉得这个项目挺有挑战性,涉及前端、后端、数据库、微信支付等多个技术点,但也是一个很好的学习机会。

     

系统设计

整个系统分为三个端:

顾客端:微信小程序,顾客扫码后直接进入点餐页面

商家端:管理后台,用于管理菜单、查看订单

后厨端:一个简单的订单看板,新订单会有语音提醒

技术栈方面,小程序端用uni-app,后端用ThinkPHP,数据库用MySQL,支付对接了微信支付。

核心功能

一、桌位扫码

每个餐桌贴上对应的二维码,二维码内容是小程序路径加上桌位参数。顾客扫码后,小程序获取桌位号,整个点餐过程都知道是哪个桌的订单。

二、菜单浏览

菜单按分类展示,比如热销推荐、招牌菜、主食、饮品等。每个菜品都有图片、价格、简介。顾客可以搜索菜品,也可以按销量或价格排序。

三、购物车管理

顾客可以把菜品加入购物车,可以修改数量、删除菜品。购物车会实时计算总价。如果点了已售罄的菜品,会提示并无法加入。

四、订单提交

顾客确认菜品后填写用餐人数和备注,然后提交订单。订单提交后会生成一个待支付的订单,跳转到支付页面。

五、微信支付

对接微信支付JSAPI,顾客输入支付密码完成付款。支付成功后,小程序跳转到订单详情页,同时后厨自动打印订单小票。

六、订单管理

商家后台可以查看所有订单,支持按状态筛选(待接单、制作中、已完成、已取消)。订单可以手动接单或拒绝,拒绝时需要填写原因。

后厨端有一个简单的看板,新订单会有语音播报和弹窗提醒,避免漏单。

技术难点

开发过程中有几个技术难点值得记录:

第一是购物车的状态管理。购物车数据需要跨页面共享,我用了Vuex来管理全局状态,顾客在菜单页加菜,购物车图标会实时更新数量。

第二是微信支付对接。支付流程比较繁琐,需要先调用统一下单接口获取prepay_id,然后再调起支付。签名验证容易出错,调试了很久。

第三是后厨的实时提醒。一开始用的是轮询,每隔几秒请求一次新订单,但这样对服务器压力大。后来改用了WebSocket,新订单实时推送。

第四是菜品库存管理。如果顾客加菜时还有库存,提交时可能卖完了。需要在下单时再次校验库存,如果不足就提示顾客修改订单。

上线效果

小程序上线后运行了一个月,效果很明显:

顾客平均点餐时间从原来的10分钟降到了3分钟

服务员不用再站在桌边等点餐了,可以专心送餐和收拾桌子

后厨接单更有序,漏单错单的情况基本没有了

餐厅翻台率提升了大约百分之二十

后续规划

目前小程序已经稳定运行,后续还计划增加一些功能:

会员积分系统,消费攒积分兑换菜品

优惠券功能,满减券和折扣券

预约订座功能,顾客可以提前预约

数据统计看板,给老板看经营数据

这个项目让我深入了解了小程序开发的完整流程,尤其是微信支付和WebSocket实时通信这两块,技术上收获很大。

 

共 1 页 1 条数据