news 2026/8/22 14:20:01

CoopCycle餐厅配置实战:5步搞定菜单、商品与在线点餐的完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CoopCycle餐厅配置实战:5步搞定菜单、商品与在线点餐的完整教程

CoopCycle餐厅配置实战:5步搞定菜单、商品与在线点餐的完整教程

【免费下载链接】coopcycle-webLogistics & marketplace platform. Only for worker-owned business.项目地址: https://gitcode.com/gh_mirrors/co/coopcycle-web

CoopCycle 是一个面向工人合作社的自托管外卖配送平台,让本地餐厅提供在线点餐,由自行车骑手完成配送。本教程带你完成CoopCycle 餐厅配置:从创建餐厅、设置营业时间,到搭建菜单商品、开通在线点餐与支付,5 个步骤即可让一家餐厅在平台上开张营业 🚴

一、先认识餐厅模块:代码在哪里?

CoopCycle 的餐厅相关功能集中在以下目录,配置界面与逻辑一一对应,方便你按图索骥:

功能关键文件说明
餐厅页面路由src/Controller/RestaurantController.php餐厅展示、购物车、下单入口
餐厅配置表单src/Form/RestaurantType.php后台所有餐厅配置字段的定义
餐厅前台页面templates/restaurant/index.html.twig顾客看到的餐厅主页
菜单分区渲染templates/restaurant/_partials/menu_content.html.twig按分类展示菜品
功能验收用例features/foodtech.feature点餐流程的自动化测试场景

💡 小提示:餐厅(Restaurant)与商店(Store)在 CoopCycle 中是同一套"本地商户"模型的两种形态,后台配置方式基本一致。

二、第 1 步:创建餐厅并填写基础信息

进入后台「商户 → 餐厅」页面,点击新建。核心字段如下(定义见 src/Form/RestaurantType.php):

  • 餐厅类型(type):普通餐厅或商店形态;
  • 描述(description):会展示在餐厅主页,是吸引顾客的第一段文案;
  • 经营地址(businessAddress):支持"不同营业时间使用不同地址"(useDifferentBusinessAddress),适合周末市集这类场景;
  • 主打标签featured(平台推荐位)与exclusive(平台独家)可提升曝光;
  • 菜系(cuisines):用于"按菜系找餐厅"的筛选页面。

配置完成后,餐厅主页会自动生成SEO 结构化数据(Schema.org 微数据),帮助餐厅被搜索引擎准确识别——这一逻辑就在 templates/restaurant/index.html.twig 中实现。

三、第 2 步:设置营业时间与配送方式

在线点餐的体验核心在于"什么时候能点、送到哪里"。

营业时间

餐厅的营业时段支持细到每一天的开闭店时间,前台会展示"现在营业中/休息中"状态,模板见 templates/restaurant/_partials/opening_hours.html.twig。

配送方式与预订延迟

fulfillmentMethods(配送方式集合)中可为餐厅单独配置:

  • 外卖配送:开启后可设置orderingDelayMinutes(预订延迟分钟数),例如"提前 30 分钟接单",前台会自动显示温馨提示;
  • 到店自取:骑手不参与的纯自提场景;
  • 每日配送范围dayOfWeekDeliveryPerimeterExpressions支持按星期几绘制不同配送多边形区域。

四、第 3 步:搭建菜单——先分类,后商品

CoopCycle 菜单是"分区(Taxon)→ 商品(Product)"两级结构:

  1. 创建菜单分区:如"前菜""主食""饮品",入口为后台餐厅详情下的菜单分类管理(templates/restaurant/menu_taxons.html.twig),每个分区可写一句介绍语;
  2. 添加商品:在分区下创建商品(templates/restaurant/products.html.twig),填写名称、价格、描述,并可上传图片;
  3. 商品选项:通过商品选项(product options)实现"加一份芝士""去冰"这类定制项;
  4. 上架控制:商品可独立启用/停用,下架即从菜单消失,无需删除数据。

前台菜单会按分区渲染成响应式卡片网格,超过 10 个商品后自动懒加载,保证页面秒开(见 templates/restaurant/_partials/menu_content.html.twig):

五、第 4 步:开通在线点餐与支付

菜单就绪后,剩下两步让餐厅真正"开张":

结账与购物车

顾客点选商品后进入购物车(基于 Sylius 订单组件实现),系统会实时计算最早可送达时间。下单逻辑入口在 src/Controller/RestaurantController.php 的 JSON 结账接口中,购物车、送达时间、订单凭证一次返回。

支付方式

在餐厅配置表单的支付区块(src/Form/RestaurantType.php)可按需开启:

支付方式配置项适用场景
货到付款cashOnDeliveryEnabled无需任何支付集成,最快上手
Stripe 分账allowStripeConnect线上信用卡收款,平台抽佣
Paygreen 企业支付usePaygreen面向企业客户
Swile 餐券支付组件支持企业餐券结算

新手推荐路径:先开"货到付款"验证流程,再接 Stripe 实现线上收款。

六、第 5 步:营销与运营加分项

开张之后,这些配置能让生意更好:

  • 促销活动:创建限时优惠并设为"主打推广",餐厅主页顶部会自动展示优惠横幅;
  • 自动接单:开启autoAcceptOrdersEnabled后订单直接进入配送队列,适合成熟商户;
  • 可复用包装押金depositRefundEnabled支持押金退还流程,呼应 CoopCycle 的环保理念 🌱;
  • 数据统计:后台餐厅统计页可查看订单量与收入趋势。

平台整体由 Web API、前端与配送算法三部分组成,完整架构可参考 docs/img/technical-overview.png 对应的技术概览文档 docs/img/:

七、本地部署快速开始

想亲手试一遍?克隆仓库并用 Docker 一键启动:

git clone https://gitcode.com/gh_mirrors/co/coopcycle-web cd coopcycle-web cp .env.dist .env docker compose up

详细说明见项目根目录的 README.md。启动后用管理员账号登录,按上面 5 个步骤配置你的第一家餐厅即可 🎉

常见问题 FAQ

Q1:餐厅和商店有什么区别?两者共用同一套商户模型与配置界面,主要差异是菜系、菜单分区等"餐饮专属"字段仅餐厅可见。

Q2:可以只开自取不开配送吗?可以。在配送方式集合中仅保留"到店自取"即可,前台会自动隐藏配送相关选项。

Q3:配置错了能回滚吗?商品、分区均支持停用而非删除,误操作时先"下架"排查,数据不会丢失。

总结

本文带你完成了CoopCycle 餐厅配置的全流程:创建餐厅 → 营业时间与配送区域 → 菜单分区与商品 → 在线点餐与支付 → 营销运营。掌握这 5 步,你就能在自托管的 CoopCycle 平台上开出第一家线上餐厅,把外卖业务交还给社区与骑手 🚴‍♂️

【免费下载链接】coopcycle-webLogistics & marketplace platform. Only for worker-owned business.项目地址: https://gitcode.com/gh_mirrors/co/coopcycle-web

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 14:17:06

题解:洛谷 P3076 [USACO13FEB] Taxi G

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…

作者头像 李华
网站建设 2026/8/22 14:15:48

NCM 转 MP3 完整攻略:用 ncmdump 免费转换,拖拽 4 步上手

NCM 转 MP3 完整攻略:用 ncmdump 免费转换,拖拽 4 步上手 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 网易云下载的 NCM 文件,普通播放器一律打不开,想拿来剪视频也不行。要做 NCM …

作者头像 李华