返回日志
案例研究Nº 0112026年7月17日14 分钟

Ramen Joe:一个平台,管住五家门店的预订

一家餐饮集团如何摆脱 Excel 表格和电话预订,走向统一系统,把五家门店的预订、员工和会员都装进一处。

Ramen Joe 起步于里斯本的一家店。今天已经是五家门店、一个上架 App Store 的 iOS 应用、一个上架 Google Play 的 Android 应用、一个整合 Apple Wallet 和 Google Wallet 的会员计划,以及一个支撑集团运营的后台系统。全部跑在同一个平台上。

这篇文章讲清楚这个平台解决了什么,为什么选择自建而不是采购现成 SaaS,以及大多数餐饮集团在做同样尝试时是从哪里翻车的。

要点速览

任何一个开出两家以上门店的餐饮集团,通常都会撞上三个技术问题,而这三个问题在最开始几乎没人认真估算。预订被门店割裂。会员计划无法跟着顾客跨店走。运营数据散落在本地文件和 WhatsApp 群里。

Ramen Joe 把运营整合进一个系统。共享预订、单一顾客档案、会员体系、数字菜单、员工管理和集中式数据分析。落到实处就是:一位顾客在里斯本盖了章,到波尔图看到的是同一个积分余额;团队在同一个后台管理五家门店,也能随时增加新的门店。

这个选择的代价不低。但不做的代价会在后面出现,只是换了副面孔——客户流失、员工重复劳动、扩张决策靠拍脑袋。

业务问题

当一家餐厅长成一个集团,原本够用的软件就开始崩。不是因为它烂,而是因为它当初是为另一种场景设计的,而那种场景已经不是你的现实。

典型症状是这样:每家门店最后都用上自己那套预订模块,往往接的是 Google 或者某个特定 SaaS 工具。会员数据分散在每家店各自的数据库里,或者更糟,一本纸质本子。当你想知道集团层面到底有多少回头客时,没人答得上来。只有估算。

关键在这里。单店时,CRM 就是店长本人。他认得熟客,知道谁喜欢里面那张桌,知道谁周日会带全家人来。到了五家店,这种分散在人脑里的记忆就失效了。顾客感受得到。

为什么这件事重要

餐饮业的会员体系不是运营层面的小细节,它是商业模式的脊梁。获取一个新客的成本,是把老客拉回来的好几倍。这条规律几乎适用于所有行业,餐饮业也不例外。

如果你的会员计划无法跟着顾客跨店,那你等于把每一次到店都当成第一次。事实并非如此。顾客记得,只是系统不记得。

第二个角度是运营。一个开五家店的集团,产生的数据量足够支撑有依据的决策。哪些时段最先坐满。哪些工作日需要做活动。哪家店的失约率最高。没有统一平台,这些数据其实都在,只是没人读得出来。

这个平台做了什么

Ramen Joe 的架构建立在三块相互通信的模块之上。一个基于 Express 和关系型数据库的后端,一个面向终端顾客的 Next.js 公共前端,以及一套原生 App(iOS 用 SwiftUI,Android 原生),把网站体验搬到手机场景。

选择做原生 App 而不是 PWA,需要解释一下。这不是技术上的虚荣,是产品决策,理由具体,有三个。

  • Apple Wallet 和 Google Wallet 只在原生 App 里能干净地接入——会员卡直接进手机钱包,积分变动时自动更新。
  • iOS 的推送通知有些限制,Web 端绕不过去,绕了也会伤害体验。
  • 门店员工的扫码要求相机自动对焦快、延迟接近零。这方面 Web 还是差一截。

在预订这块,系统按门店拆分排班日历。顾客在里斯本预订,只锁里斯本的桌位。但顾客档案、消费记录、座位偏好——这些都是全局的。

数字菜单和不依赖开发的扩张

平台也把五家店的数字菜单统一起来了。团队在同一个后台里管理商品、门店信息和各家门店的配置,网站和 App 上的体验保持一致,不需要按渠道重复维护。

多门店管理的设计目标是:集团要开新店时,不必再去找技术团队。团队自己就能录入新门店、设营业时间、联系方式、菜单、桌位、预订规则以及其他运营设置。

配置一完成,新门店就会通过同一份数据源出现在网站和 App 上。不需要为了多一家门店去发布一个新版本的网站或 App。这压缩了成本,也缩短了从决定扩张到新门店真正上线的时间。

跨店会员:一个决定改变全局

餐饮集团里最常见的摩擦点就在这里。每家店都想有自己的会员计划。每个店长都想看到自己维护的忠实顾客。每次营销活动往往被绑死在一家门店里。

Ramen Joe 走的是反方向。一个计划,一份积分,一位顾客。这在财务上有些不简单的问题——里斯本盖的章、波尔图兑换掉了,谁来"付账"?——但这些用内部结算规则就能处理,不必把系统拆碎。

顾客不应该被迫思考这些。事实上他们也没在想。App 装一次,把卡加到 Wallet 里,走到集团任何一家店体验都一样。这就是会员计划意义上的 product-market fit。

员工的角色

数字会员系统只有在员工配合的情况下才跑得起来。如果盖章流程比过去在纸卡上盖一戳还慢,员工会想办法绕过——不是恶意,是高峰时段撑不住。

Ramen Joe 的扫码器就是围绕这个约束设计的。登录后的员工打开 App,把相机对准顾客的二维码,两秒内积分就到账。没有菜单,没有中间确认,没有手动输入。

发放积分的权限和访问后台的权限是分开的。服务员负责盖章。店长看报表。集团管理员改规则。这种分层在企业级 SaaS 里稀松平常,但在餐饮软件里经常被忽略——然后大家就纳闷为什么会出现内部积分舞弊。

预订:少一点自动化,多一点掌控

任何一套现代预订系统都存在同一种诱惑:把一切自动化。自动确认、自动提醒、自动应答变更。大多数场景下这套做法工作良好。

但在讲究品质的餐饮里,效果就没那么好。周六晚上十二人的一张预订,不应该在没人看过大堂情况的前提下就自动确认。指定桌位的请求应该经过一个懂这家店的人。临时的例外情况需要人来判断。

Ramen Joe 的平台按门店支持两种模式并存。常规预订走自动。人数多或者带特殊要求的预订进入审批队列。同时还有一条基于 Telnyx 的短信通道,会在预订前一小时发送提醒,这一项就把失约率压下来了,也没有变成骚扰。

短信设计得很短。姓名、时间、门店。一个取消链接。别的都没有。商务套餐一开始按每年 1500 条短信估算,是根据预期预订量算出来的。这不是技术上限:运营量增长,配额可以跟着调。

两个 App:iOS 和 Android 同时启动

iOS 和 Android 版本是同时启动的。Android 上架晚一些,是因为 Google Play 的审核周期更长,并不是产品上有意分阶段发布,也不是偏袒某个平台。

两个应用是并行开发的,价值主张一致:预订、会员,以及在两个平台之间保持一致的体验。它们在商店里出现的时间差,仅仅来自各家应用市场审核节奏的不同。

代价很明显:两套原生代码,而不是像 React Native 或 Flutter 这类跨平台方案的一套代码。这是一个清醒的权衡。回报是 App 表现符合平台自身的调性,而不是所有平台的最小公约数。

这类项目通常在哪里翻车

大多数试图搭建同类平台的餐饮集团,会犯同样的三个错。值得点名。

  1. 从 App 开始动手。没有成熟的后端,也没有清晰的业务规则,App 只会变成一层好看的壳,把运营上的混乱搬到手机屏幕上重现一遍。
  2. 依赖 WordPress 插件做预订和会员。单店能撑住,五家店就散架。
  3. 找按项目结算的外包团队,交付完就消失。软件不是在上线那天结束,而是在上线那天开始。

这三点的解药是同一个。把软件当成基础设施,不是一次营销活动。先在地基上花钱——后端、数据库、认证、权限、持续部署——然后才轮到看得见的表面。

值得的一些工程实践

有些决策看似小事,但在生产环境里带来的效果远超预期。

第一:git 作为唯一事实来源。每一次改动都走 commit,每一次上线都通过 GitHub Actions 自动完成。这种做法直接消灭了"在我电脑上是好的"这一整类 bug,也让生产环境出问题时能在几分钟内回滚。GitHub 官方关于持续部署的文档把原则讲得很到位。

第二:认真做国际化。网站支持葡语和英语,所有文案集中在翻译文件里。这对里斯本的一家餐厅听起来像过度设计,直到你意识到旅游区里有 30% 的顾客不说葡语。而且,将来开一家新城市的店时,系统已经支持多语言就轻松得多。

第三:把 sandbox 和生产严格区分,规则明确。Ramen Joe 有一套 sandbox 环境,镜像生产,但只用测试数据。任何改动都先在那里跑一遍。这样做,测试新功能时把真实预订搞坏的概率就小得多。

这种模式适用于哪些场景

Ramen Joe 的架构和拉面没有关系。它适用于任何多门店、且有回头客基础的零售或服务业。餐饮集团、连锁咖啡、连锁理发、多个院区的诊所、多间馆的健身房,都能套用。

共同点在于:顾客是一个,运营却是分布式的。如果软件没能反映这一点,你就在用运营摩擦,去偿还本来该以会员留存赚回来的那笔账。

关键要点

  • 多门店的餐饮集团必须要有统一平台——分散的预订所带来的成本,远超整合它们的软件成本。
  • 真正意义上的多门店平台,让团队自己就能录入新门店、菜单和运营规则,不必要求技术团队改网站或 App。
  • 跨店会员不是可选项,如果你在乎真正的顾客留存。顾客不会在意钱花在哪家店。
  • 当 Wallet、推送通知和快速相机是体验核心时,做原生 App 才说得过去。
  • 员工和顾客一样是系统的用户。流程比原来还慢,系统就会被高峰期的压力压垮而遭到绕过。
  • git 作为唯一事实来源、sandbox 与生产严格分离、第一天就上 i18n。这些都是地基决策,能省下后期昂贵的重构。
  • 最贵的错误是后端还没成熟就先做 App。

处于这个阶段的集团,下一步不是再堆功能,而是去做度量。哪些盖章带来了第二次到店。哪家店留客率更好。哪些活动真正拨动了指针。有了统一平台,这种分析才有可能。剩下的,就是愿意去看。

参考
  1. 01GitHub 文档 — 持续部署简介
  2. 02Apple Developer — Wallet
  3. 03Google Wallet API — 会员卡
  4. 04web.dev — 渐进式 Web 应用与原生对比
  5. 05Next.js — 国际化
另见:
中小企业网站Nº 010

为什么你的联系表单在提交前就流失了一半潜在客户

表单不是细节。它是意向转化为生意或放弃的关键节点。而大多数人在点击提交之前就已经放弃了。

安全Nº 009

没人注意的攻击,从你网站的联系表单进来

联系表单看着人畜无害。它其实是你敞得最开的一扇门,几乎没人上锁。

返回日志