ARTICLE · 1161538
微信小程序大赛-AI囤货有数-转企业版咯
为什么要有两个“号”
小程序的个人主体和企业主体,差别比大多数人想象的大。我整理了一张表:
我的情况踩中了第一行和第二行的交叉点:囤货日历的 AI 问答(能读懂你家的物品库、回答“什么快过期了”)属于深度合成类目——个人主体连申请算法备案的资格都没有,只有企业/个体户主体才能申请。而老用户都在「囤货日历」里——数据、使用习惯、订阅提醒,说搬就搬太伤感情。
于是做了个决定:不是搬家,是分家。个人版「囤货日历」继续作为轻量版服务,名字都不改;企业版「AI囤货有数」以完整形态承载 AI 能力。
一套代码,两个身份
两本账不可能写两遍代码。方案的核心是一句话:代码只写一遍,“我是谁”运行时才知道。
一份代码库
小程序启动时识别运行时 appid,自动选择身份
囤货日历 · 个人主体
旧云环境 · 旧订阅模板
轻量版 · 现已上线
AI囤货有数 · 企业主体
新云环境 · 新订阅模板
完整版 · 已上线
具体来说:小程序启动时读取运行时的 appid,自动选择对应的云环境和订阅消息模板;云函数则按调用来源的 appid 自动选择密钥。任何功能只写一遍,编译哪个工程,就是哪个小程序——界面一致、体验一致,数据各自独立(各记各的账,互不干扰,也互不丢失)。

新三分栏首页:同一个功能,两个号同时上线
迁移踩坑实录:四个印象最深的坑
坑一:开发者工具的“路径洁癖”。两个小程序共用一份代码,最直觉的做法是旧号工程直接引用主工程的目录。开发者工具不同意:项目必须自包含,工程外路径直接报“找不到 app.json”。解法是给旧号一个独立目录,加一个十行的同步脚本——改完主工程双击一下,代码镜像过去。顺带还靠它定位过一个诡异 bug:编译产物新旧交替会导致整页样式报错,同步完记得重新编译。
坑二:订阅消息的“张冠李戴”。到期提醒用的订阅消息,模板和密钥在每个主体下完全独立。测试推送时一直报 40003 invalid openid——openid 明明是从数据库里读的,怎么会无效?排查半天才发现:手动触发云函数时,微信不会告诉函数“你属于哪个小程序”,代码默默回退到默认的新号配置——拿新号的身份,给旧号的用户发消息,当然被拒。解法:云函数运行时自带“我跑在哪个云环境”的信息,环境唯一、归属就唯一,按环境反查主体即可。一行修复,测试通过,每天早八点的定时推送也恢复了正常。

修好后的真实推送:内容按“总量+最紧急一件”编排,不再漏掉重点
坑三:113 条记录,撞上超时。数据迁移要逐条写数据库,113 条记录写了二十多秒,云函数超时被杀,前端只收到一句“云函数执行失败”。解法:批量写入——一次 20 条,113 条只需 6 次数据库操作,1 秒多完成;批内冲突(重复导入)自动退化为逐条写入,新增和跳过依然分得清。
坑四:拿不到的头像和昵称。登录后只显示“微信用户”和灰色头像——2022 年起微信收回了静默获取用户信息的能力,现在任何小程序都拿不到,这不是代码能绕过的。解法是官方的“头像昵称填写能力”:点头像直接带出微信头像、点昵称键盘一键填入微信昵称,两下点击完成,自动存进云端给家人列表用。配合一句引导文案,设置率明显上升。

「我的」页:微信头像昵称自动带出,点一下可自定义
数据大迁徙:一张备份文件搞定
迁移最大的顾虑是数据:几十件物品、上百条留痕、还有一堆照片。
做法是做了一套自包含备份:导出时把物品、留痕连同图片的压缩副本一起打进一个 JSON 文件(约 10MB),通过微信聊天把文件发给另一个小程序,导入时自动把图片上传到新环境。重复导入自动去重,换手机同理——一张备份文件,两条小程序通用。
顺手还做了两个配套工具:保鲜期规则升级后,在库的老物品可以一键按最新规则重算(只延不缩,手动改过的日期不会被覆盖);每天的到期提醒也升级为早间概览 + 傍晚紧急提醒两次,没有紧急事项的傍晚不会打扰。

「我的 → 数据」:导出 / 导入 / 重算,备份迁移一站式
新三分栏里我最喜欢的是「快捷录入」:拍一张药盒或食材,AI 自动判断它属于哪个模块、提取名称和保质期,你核对一下就入库——不用再想“这该放进哪个本子”。这套能力同样是一套代码两边同时上线的例证。

快捷录入:拍照或相册导入,AI 自动归类到四大模块
现在的「AI囤货有数」能做什么
借着上线,把完整版功能一次说清。一句话概括:把家里四类囤货记成一本账——AI 帮你省事,账本帮你看清。
🥬 食材 小票批量入库 · 保鲜期推算 | 💊 药箱 效期 + 开封后有效期 · 成分重复警示 |
👟 衣鞋 吊牌识别尺码面料 · 季节筛选 | 🧴 洗漱 开封后可用期(PAO)· 囤货余量 |
四大模块同一套骨架:入库、临期提醒、消耗记录、留痕可撤销、确定性统计
AI 只在真正有用的地方出力(全部有显著 AI 标识,识别结果都由你核对后才入库):
① 拍照即录——药盒、食材、吊牌、护肤品拍一张,名称、规格、日期、成分、功能主治、用法用量、尺码面料自动提取;药盒背面的小字也能读。
② 自动归类——拍一张就知道属于哪个模块,表单自动切换,不用先想"这该放进哪个本子"。
③ 长小票切片识别——又长又密的小票自动切段、逐段识别再合并去重,全程原图不压缩,不漏一行。
④ AI 问答(即将上线)——算法备案申请中(个体户主体具备申请资格);上线后它能读懂你家的物品库,问"家里有什么快过期了""今晚吃什么",多轮对话、回复带表格重点。了解到当前GLM是预充制,需要先充2个W,等等吧,让我再找找更便宜的厂家再来分享。
⑤ 采购建议(即将上线)——按你常买和常浪费的,给出搭配、采购与防浪费对策。这个也需要深度合成的能力。
提醒不打扰,账本全留痕。每天早 8 点一份临期概览;傍晚 6:30 只推"今天到期 / 已过期"的紧急项——没有紧急事项的傍晚不打扰。品类各有各的紧迫感:食材 3 天算临期,药品 30 天才算。每一次吃掉、扔掉、入库都有记录、随时可撤销;消耗分析给构成环图、Top5 排行、报废率和近 4 周趋势,全部确定性计算,不掺 AI 猜测。
家里的账,是一家人的账。6 位家庭码最多 3 人共享,物品可标归属、可设"仅自己可见"。数据握在自己手里:一键导出 JSON 备份(连图片一起打包),换手机、跨小程序都能导入恢复。
好消息:正式上线了
上一篇里说过:“AI 问答暂时下线,等资质。”最新进展:「AI囤货有数」已经正式上线!关于 AI 问答——分家之后,个体户主体的身份让它具备了申请「深度合成」算法备案的资格(这正是分家的意义:个人主体连申请资格都没有),备案目前正在申请中,走完流程后 AI 问答就会与大家见面:能读懂你家的物品库、支持多轮对话、回复带表格和重点。先扫码把家里的囤货管起来,等它上线直接就能用。
个人版「囤货日历」可能会慢慢放弃更新,AI囤货有数将持续更新,会慢慢增加一些有意思的功能,也希望能提出你最宝贵的建议,让我为你服务的更好。
写在最后
一套代码、两个主体、一本不断生长的账。这次“分家”最大的收获,不是搬了多少数据,而是把双账号并行做成了基础设施——以后每个新功能,写一遍,两边同时有。
如果你也想把家里的囤货理明白:两个版本现在都能用——「囤货日历」更轻、免费、无需登录;「AI囤货有数」是完整版——拍照识别、自动归类、小票切片、双时段提醒等全部就位,AI 问答在等算法备案走完流程后上线。长按下方小程序码直接进入「AI囤货有数」。
也欢迎在评论区聊聊:你的小程序有没有遇到过主体迁移的需求?踩过什么坑?

长按识别小程序码 · 直接进入「AI囤货有数」
轻量版请在微信搜索「囤货日历」
· END ·