2026-09-24 · 原文发布日
n8n流程:从供应商发票追踪食材涨价,每周给出调价建议
该n8n模板面向餐饮经营者:Google Drive文件夹一出现新的供应商发票图片,就用GPT-4o视觉能力提取供应商信息和每种食材的公斤、升或件单价,逐行写入Google Sheets的食材价格表。每周一早上流程汇总价格历史、配方成本和POS销售三张表,对比近三十天基线计算每道菜的毛利变化,毛利下滑超过两个百分点的菜会被标记,找出涨价的元凶食材并估算近期利润损失,生成涨幅封顶的调价建议,最后由AI起草简短说明邮件发给店主。
原文要点
原模板由Rahul Joshi发布,面向餐饮经营者:Google Drive指定文件夹出现新发票图片即触发,下载后交给GPT-4o视觉能力提取供应商、发票元数据和每种食材的公斤/升/件单价,解析成一行一条写入Google Sheets的Ingredient Prices页;每周一早上8点汇总POS Sales、Recipe Costing、Ingredient Prices三张表,对比近30天基线算每道菜盘成本与毛利变化,毛利下滑≥2个百分点的菜被标记,找出驱动涨价的食材并估算近7天利润流失,生成封顶+10%且取整的调价建议,记入Margin Alerts页,再用gpt-4o-mini起草简短邮件经Gmail发给店主。
这次做成什么
在本站练习中用合成数据复现整条链路的核心计算:发票行→价格表→周度毛利对比→标记菜品→调价建议→邮件草稿,并给出可直接粘贴的发票抽取提示词。不下载原工作流,节点参数需在n8n实际版本核对,本站未实测。
准备什么
- n8n账号与Google Drive、Google Sheets、Gmail三个OAuth2凭证
- OpenAI API密钥,练习阶段可用gpt-4o-mini代替视觉模型读文字版发票
- 含Ingredient Prices、Recipe Costing、POS Sales、Margin Alerts四页的Google Sheets
- 合成发票文本与销售数据,不使用真实供应商或顾客信息
具体怎么做
建四张数据表
按下方CSV建Ingredient Prices(date、supplier、ingredient、unit、unitPrice)、Recipe Costing(dish、ingredient、qtyPerDish、menuPrice)、POS Sales(date、dish、qty)与Margin Alerts(date、dish、marginDrop、driver、suggestedPrice),填入合成数据。
模拟发票入库流程
练习阶段用手动触发代替Drive触发器:把合成发票文本交给OpenAI节点,用下方抽取提示词输出JSON数组,Code节点把每行展平成一条记录追加到Ingredient Prices页;正式使用时改回Google Drive Trigger监听发票图片文件夹并用GPT-4o视觉读图。
计算毛利变化
Code节点对每个dish汇总:当前食材成本取最新单价×qtyPerDish之和,基线成本取30天前单价,毛利率=(menuPrice-成本)/menuPrice;当前毛利率比基线低≥2个百分点则标记。
找元凶并生成调价建议
对被标记菜品,比较各食材新旧单价涨幅,涨幅最大者记为driver;利润流失≈近7天销量×单位成本增加额;建议价=min(menuPrice×1.10, 按0.5元取整的成本回收价)。
起草并发送周报
把标记清单交给OpenAI(gpt-4o-mini)用下方邮件提示词生成给店主的简短说明,Gmail节点发给店主邮箱,同时把每道菜写入Margin Alerts页。
可直接复制的材料
合成练习数据(四表合一CSV片段)
本站虚构数据,供应商与菜名均为编造,正式使用替换为真实发票与销售导出
# Ingredient Prices
date,supplier,ingredient,unit,unitPrice
2026-08-20,绿源农场,鸡腿肉,kg,24.00
2026-09-20,绿源农场,鸡腿肉,kg,30.00
2026-08-20,海天粮油,橄榄油,l,68.00
2026-09-20,海天粮油,橄榄油,l,70.00
# Recipe Costing
dish,ingredient,qtyPerDish,menuPrice
香草烤鸡腿,鸡腿肉,0.25,58.00
香草烤鸡腿,橄榄油,0.03,58.00
# POS Sales
date,dish,qty
2026-09-14至2026-09-20合计,香草烤鸡腿,120发票抽取提示词
本站独立编写;原模板用GPT-4o视觉直接读图片,练习时把图片发票替换为文字
你是发票结构化助手。阅读下面的供应商发票内容,只输出JSON数组,不要任何额外文字。每个食材一条对象,字段为supplier(字符串)、invoiceDate(YYYY-MM-DD)、ingredient(字符串)、unit(只能是kg、l或each)、unitPrice(数字,折算为该单位单价)。若某行数量或金额看不清就跳过,不要猜测补值。发票内容:{{invoiceText}}周报邮件起草提示词
本站独立编写,原模板用gpt-4o-mini起草,占位符在n8n中用表达式替换
你是餐厅经营顾问。根据以下毛利告警清单,给店主写一封不超过150字的中文邮件:先一句话说本周有几道菜毛利下滑,再逐条给出菜名、毛利下滑点数、主要涨价食材和建议新价格,最后提醒建议价已按不超过+10%封顶。语气直接、口语化,不用专业术语。告警清单:{{alertsJson}}输入与输出示例
本站虚构演示,数字由上述合成输入计算得出,非原作者运行结果
输入
鸡腿肉单价由24.00元/kg涨到30.00元/kg(+25%),橄榄油68.00涨到70.00;香草烤鸡腿每份用0.25kg鸡腿肉和0.03l橄榄油,售价58.00元,近7天卖出120份对应输出
单份成本由8.04元涨到9.60元,毛利率由86.1%降到83.4%,下滑2.7个百分点≥2,菜品被标记;driver=鸡腿肉;近7天利润流失≈120×1.56≈187.20元;建议新价=min(58.00×1.10, 取整回收价)≈60.00元;Margin Alerts新增一行,邮件正文为“本周1道菜毛利下滑:香草烤鸡腿降2.7点,主因鸡腿肉涨价,建议调至60.00元(已封顶10%)……”做完检查这些
- 发票抽取输出为合法JSON数组,unit只出现kg、l、each三种值
- 香草烤鸡腿的毛利下滑计算结果为2.7个百分点并被标记,低于2点的菜不进告警
- 建议价不超过原价的110%且按设定步长取整
- Margin Alerts每行含date、dish、marginDrop、driver、suggestedPrice五个字段
- 邮件正文含每道标记菜的菜名、下滑点数与建议价
容易卡住的地方
- 发票拍照模糊或手写时视觉抽取容易漏行,需人工抽查首批结果
- unitPrice必须折算成统一单位单价,按箱报价的发票不折算会把成本算错
- 基线取30天前最近一次单价,期间无记录的食材会被跳过导致成本失真
- Google三个凭证任何一个过期都会让入库或发信静默失败
- 毛利阈值、封顶比例、取整步长都写在计算代码里,改参数需同步更新说明
- GPT-4o视觉与gpt-4o-mini均按用量计费,发票量大时留意成本
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Optimize restaurant menu margins with Google Drive, Sheets and GPT-4o
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-09-24T07:48:57.976Z
- 来源
- https://n8n.io/workflows/19886