2026-05-15
发货后台使用指南
写在前面:这篇文档是给两类人看的。
- 一类是村里帮我发货的师傅,每天看一下、点一下就能完成工作;
- 一类是我自己——主要是用来手动录入"微信直接转账"的那些线下订单。
不用懂技术,照着步骤走就行。
一、为什么要做这个东西
以前的状况:
- 客户在网站下单付款 → 我手机微信收到提醒
- 我得把订单的收件人、电话、地址、买了啥、买几个、有没有备注一条条念给村里师傅
- 师傅照着发,发完以后客户又来微信问我:"几时发的呀?"、"快递单号多少?"、"到哪儿了?"
- 一天问八次。我手忙脚乱,师傅也对不上信息。
新的做法:
- 师傅打开一个网页链接,所有要发的单都在上面,自己点
- 拍快递单照片、点"确认发货" → 系统自动通知客户
- 客户自己点链接就能看到"已发货 / 物流照片 / 快递单号",不会再来烦我
两条流程下面分开讲。
二、给仓库师傅的使用流程(每天用)
你的专属链接
https://w.knowuv.com/x/ship/<你的专属 token>
我会单独发给你。收到后第一件事:在微信里点右上角「⋯」→「收藏」。 以后每天从微信收藏夹点开就行,不用记网址。
⚠️ 别把这个链接给客户。客户进来能看到所有人的订单和地址,是大事故。
第 1 步 · 打开链接
最上面是两个按钮:
┌────────────────────────────────────────┐
│ 📦 待发货 5 │ ✅ 已发货 23 ➕ │
└────────────────────────────────────────┘
- 左边「待发货 5」:还有 5 个单子等着你发
- 右边「已发货 23」:之前已经发出去的
- 最右边那个圆形「➕」按钮不用你管,那是我(CJH)录单用的
每天就盯左边那个红色的数字——只要它还大于 0,就还有活。
第 2 步 · 点一个订单卡片
每张卡片长这样:
┌──────────────────────────────────┐
│ 👤 张三 139****5678 │
│ 📍 北京市朝阳区xxx路88号3单元 │
│ ──────────────────── │
│ 桃木镇宅 × 2 │
│ SKU: 直径8cm-300g │
│ 💬 客户备注:刻字"福" │
│ ¥99.80 05-14 14:30 下单 │
│ ┌──────────────────────┐ │
│ │ 📦 去发货 │ │
│ └──────────────────────┘ │
└──────────────────────────────────┘
要看的字段:
- 姓名、电话、地址:贴快递单用
- 商品 + 数量:从仓库里拿什么、拿几个
- 客户备注(黄色那一行):客户有特殊要求要注意
点底下蓝色大按钮 「📦 去发货」。
第 3 步 · 拍快递单号照片
进入发货页面,最关键的一步:拍照。
页面中间会出现 3 列照片格,最后一格是「+」号。底部有两个大按钮:
- 📷 拍照 — 直接调相机拍。建议拍:
- 快递单号正面(一定要拍清楚)
- 包好的包裹外观
- 外箱上写的姓名地址(确认没贴错)
- 🖼 相册 — 如果照片已经在手机相册里,从里面选
💡 至少要拍 1 张才能确认发货。系统会拦住你,不让你"空手"发货——这是为了万一有纠纷时能查证。
拍错了?点照片右上角的 ✕ 删掉重拍。
第 4 步 · 填备注(可不填)
下面有个文字框,可以手写一遍快递单号方便以后查询。例如:
SF1234567890 顺丰
或者:
今天这单挑了好的,注意保护包装
不写也行。
第 5 步 · 点「📦 确认发货」
页面底部的红色大按钮。点完之后:
- 这单从「待发货」消失,跑到「已发货」
- 客户自动收到微信"已发货"通知(线上单子)
- 你的活就完了 ✅
几个常见情况
| 情况 | 怎么办 |
|---|---|
| 拍错了照片发出去了 | 切到「已发货」tab,找到这单点进去,可以继续删除照片、加新照片、改文字。不会重复打扰客户——通知只发一次。 |
| 拍照按钮点了没反应 | 检查手机有没有给浏览器相机权限。微信里:设置 → 通用 → 照片与相册 → 允许 |
| 想看半个月前发的单子 | 「已发货」tab,往下滚就行 |
| 列表是空的 | 没有待发货订单了,可以休息 ☕ |
| 打开页面显示「页面不存在」 | 链接失效了,找 CJH 要新链接 |
| 拍照照片很大上传很慢 | 没事,等一下就好。网速差的话一张图可能 5-10 秒 |
三、给我自己 · 手动录入"线下转账"订单
这一部分只跟我(CJH)有关,村里师傅可以跳过。
场景
朋友/熟客直接在微信里联系我,说"给你转账买个 X,地址是 XXX"——这种没走网站下单流程的单子。
以前我得记小本子,发完货还得手动告诉客户"已经发了,单号 SF……"。现在用录单功能一气呵成。
录单步骤
1️⃣ 收到客户微信转账 + 地址
2️⃣ 手机打开发货后台 → 点右上角紫色圆形 ➕
弹出录入表单。
3️⃣ 填表
收件人 * 张三
手机号 * 13912345678
收件地址 * 北京市朝阳区xxx路88号
(省市区 + 详细地址,写一行就行)
商品名 * 桃木镇宅
SKU / 规格 直径8cm-300g (可不填)
数量 * 2
金额(元) 99.80 (可不填)
备注 刻字"福"
带 * 是必填,没填提交不了。
4️⃣ 点底部 「➕ 创建订单」
立刻弹出"订单已创建"对话框,里面有一段已经写好的微信话术:
您的订单已记录,张三 您好,可随时查看发货进度:
https://w.knowuv.com/o/track/88f7...ac
5️⃣ 点 「📋 复制完整消息」
直接切回微信,粘贴给客户。结束。
整个过程 30 秒搞定。
这之后发生什么
- 这单自动出现在仓库师傅的「待发货」列表里
- 师傅看到的卡片和正规线上单子完全一样,照常拍照发货
- 师傅点"确认发货"后,系统不会给客户发模板消息(因为客户不是微信公众号粉丝),客户自己点之前那个链接看进度
四、客户看到什么(追踪页)
客户点开 https://w.knowuv.com/o/track/xxxxx 这个链接,会看到一个简洁的页面:
⏳
商家正在备货
您的订单已记录,等待商家发货
● 订单已记录 2026-05-15 10:30
│
● 商家发货 待商家确认发货
┊ (这个点会闪烁,表示进行中)
📦 订单信息
收件人 张三
手机号 139****5678
收件地址 北京市朝阳区***
商品 桃木镇宅 · 直径8cm-300g
数量 × 2
金额 ¥99.80
备注 刻字"福"
订单号 M177877470891f985
发货之后状态变成:
📦
已发货
2026-05-15 14:30
📸 发货凭证
[快递单照片][包裹照片][外箱照片]
📝 备注:SF1234567890 顺丰
📦 订单信息
...
隐私保护(系统自动):
- 手机号脱敏:
139****5678 - 地址只显示省市区,门牌号隐去:
北京市朝阳区*** - 即使链接被转发,门牌号不会泄露
五、🚨 几个绝对不能做的事
- ❌ 别把仓库链接
/x/ship/...发给客户 客户能看到所有人的订单和地址,灾难性泄露。 - ❌ 别在朋友圈、群聊、公开渠道发任何链接 两种链接都是身份凭证。被别人捡到就麻烦。
- ❌ 别把仓库和客户的链接搞混
发链接前看一眼路径:
/x/ship/...→ 仓库师傅用/o/track/...→ 客户用
- ❌ 如果丢了手机,找 CJH 撤换 token,旧链接立刻失效。
六、附录 · 技术说明(CJH 自查用)
系统组成
| 部分 | 位置 | 干嘛的 |
|---|---|---|
| 发货后台页面 | mall/pages/x/ship/[token].vue | 仓库师傅看的列表页 |
| 录单弹层 | mall/components/ship/NewOrderSheet.vue | 我录线下单的表单 |
| 编辑弹层 | mall/components/ship/EditSheet.vue | 拍照 + 备注 + 确认发货 |
| 客户追踪页 | mall/pages/o/track/[hash].vue | 客户点链接进来看的 |
| 后端服务 | myweb-django/myweb/knowuv/services/order.py | 4 个新 RPC:ListPendingShipments / UpdateShipment / CreateManualOrder / GetTracking |
| 鉴权 | SHIPPING_TOKENS 环境变量 | 逗号分隔多个 token;多人发货时复制多份链接 |
几个不变量
- 状态机:
pending → shipped,单向,没有撤销发货按钮(但已发货后可以无限改照片/文字) - 模板消息:只在
pending → shipped这次跳转时发,再次保存修改不重发 - 手工订单(
type=manual_offline或openid=空):自动跳过模板消息,避免在没绑定公众号的客户那里报错 - 退款 / 失败订单:自动从发货列表隐藏
紧急情况处理
| 问题 | 怎么搞 |
|---|---|
| 客户说追踪链接打不开 | MongoDB wx_pay_order 集合按 out_trade_no 查到 doc,看 tracking_hash 字段,拼接成新链接重发 |
| 录单填错了 | 直接改 MongoDB 文档 order_info.delivery_to 子字段。客户点链接会看到改后的最新版 |
| 想给师傅换一个 token | env SHIPPING_TOKENS=hash1,hash2,hash3 加一个,重启 service,发新链接 |
| 想看谁发的货 | MongoDB 查 shipped_by 字段,是当时用的 token,根据 token 末尾 4 位认人 |
上线 checklist
# 1. proto 已经在 mall 和 myweb-django 之间分发
cd proto && PATH=/Users/chenjiahao/workspace/proj/mall/node_modules/.bin:$PATH buf generate ./
# 2. backend 打镜像 + 上线
cd myweb-django && make
cd docker-srcipts/cjh2/myweb-django && make
# 3. backfill 一次(旧订单加 shipping_status='pending')
python manage.py backfill_shipping_status
# 4. 前端打镜像 + 上线(约 10 分钟)
cd mall && make
# 5. 真机访问验证
# - https://w.knowuv.com/x/ship/<token> ← 仓库
# - 录一单线下订单,把追踪链接发给自己微信打开试一下
写在最后
这套东西做出来不是为了"看起来很高科技",而是为了:
- 村里师傅不用再听我念订单信息——他自己手机上看清清楚楚
- 客户不用再来微信问我——他自己点链接看
- 我自己不用再当人肉客服——录单 30 秒搞定,剩下时间干别的
如果用着哪里别扭,或者哪一步看不懂、点不动,直接微信告诉我,我改。
—— CJH,2026 年 5 月