Appearance
Release Notes (2026-10-13 ~ 2026-10-17)
✨ 重点 Feature
「手工单」(样品发货单)模块(QuoteGo / QuotePilot 联动)
新增一类不依赖 Shopify 订单的独立单据,用于给客户寄送样品或补寄商品。
- 入口位于订单管理页下的「手工单」子页(该子页按权限显示,所有者始终可见);页面顶部按状态分页签:全部 / 草稿 / 待发货 / 已发货 / 已签收 / 已取消,右上角为「新建手工单」,并支持按「单号 / 运单号 / 收件人」搜索。
- 新建分为三步:收件信息 → 物品明细 → 物流与备注。收件信息必填收件人、国家/地区、地址1,其余为选填;物品明细每行必填品名(中英文)、数量、重量、申报价,选填 SKU、属性、单价、销售链接、图片地址;第三步选择组织已配置的物流路线,并可填下单时间、买家备注、客服备注、拣货备注。
- 单据可走完整发货流程:申请运单 → 打印面单 → 发货 → 查看物流轨迹,签收后自动进入「已签收」;已申请运单可撤回后重打,草稿或待发货状态可取消。
- 单据号由系统自动生成。手工单独立于订单与客户:不参与计费、不进账单、不扣库存,也不归属到某个店铺。
- 后端新增该模块的单据与打单流程,前端新增订单管理下的「手工单」子页;两端需同版本发布。
订单管理 — 手工单
全部草稿待发货已发货已签收已取消 + 新建手工单
单号 / 运单号 / 收件人
| 单号 | 收件人 | 国家/地区 | 物流路线 | 运单号 | 状态 |
|---|---|---|---|---|---|
| SP-20261014-0001 | John | US | 云途 · 美国专线 | YT123 | 已发货 |
| SP-20261014-0002 | Amy | DE | - | - | 草稿 |
手工单独立于订单与客户:不参与计费、不进账单、不扣库存。
订单折扣新增跨订单「减免上限」,并改为确认时由后端结算(QuoteGo / QuotePilot 联动)
订单类折扣规则可以设置总减免额度,额度在所有订单之间累计使用,用完后不再继续减免。
- 可设置最多减免金额(对百分比、固定金额、每件减免三种方式都生效)与最多减免件数(仅「每件减免」生效);留空或填 0 表示不限。
- 规则列表与编辑弹窗会显示该规则的「已用 / 上限」进度。所有者可点击「重置已用量」把已用额度归零,普通成员只能查看。
- 折扣改为在确认订单那一刻由后端统一计算并落库:确认前订单的费用明细不显示订单折扣行(按折前价展示),确认后显示实际落库的折扣与折后金额(此时金额会发生变化)。
- 额度会自动归还:订单被撤回重排或退回待确认时,该单占用的额度自动退回,重新确认时重新结算。
- 折后的价格会写回订单,已确认订单列表按折后价展示;权益归还需前后端同版本配合。
折扣规则 — 减免上限
最多减免金额 (USD):100 跨订单累计,达到上限后不再减免
最多减免件数:50 仅「每件减免」生效;跨订单累计减免件数
留空或 0 表示不限
已用: 12 件 · $30 重置已用量
「重置已用量」仅所有者可见;普通成员只能查看已用量。
物流目的地可单独绑定运输方式代码(QuoteGo / QuotePilot 联动)
同一条运输线路下的不同目的国可以各自选择运输方式,不再只能共用线路的一个默认值。
- 在物流配置中编辑某个目的地时,新增「运输方式代码」选择项,从该物流公司已绑定的运输方式列表中选择。
- 打单时的取用顺序为:先取目的地的运输方式,未配置则回退该线路的默认运输方式,因此未单独配置的目的地行为不变。
- 更换物流公司时,会同时清空该公司下所有线路及目的地的运输方式代码,需要重新配置(更换前有明确提示)。
物流目的地 — 运输方式代码
目的地 US(美国)
运输方式代码:YT-EXP-US ▾
目的地级优先;未填写时回退该线路的默认运输方式。
「网页端入库」开关(QuoteGo / QuotePilot 联动)
组织设置中新增开关,用于控制是否允许在电脑网页端完成入库操作。
- 位置在设置 → 其他,默认关闭;开启后,采购记录抽屉可在电脑上完成签收 → 质检 → 入库三步操作,其中入库前需上传 1~5 张仓库库存照片。
- 关闭时(默认)行为与现状一致:仍引导到手机端「扫码入库」页面完成。
- 开关仅所有者可修改;后端只放行布尔值,并对该设置做类型校验。
设置 — 网页端入库
网页端入库 已关闭
启用后,采购记录抽屉中可在电脑网页端完成「签收→质检→入库」三步操作;关闭时入库仅在手机端扫码入库页完成。默认关闭。
确认已签收开始质检确认入库 入库前需上传 1~5 张照片
🚀 其他 Feature
物流渠道对比(QuotePilot)
侧边栏新增「渠道对比」入口(需物流模块权限)。选择一个目的国家,把各物流公司在同一国家、按「货物属性 × 重量段」的最低运费横向排成对比矩阵,并自动标出每个重量段最便宜的渠道。
- 顶部筛选:目的国家、渠道(可多选,不选即全部渠道)、仅看启用线路、仅有便宜命中、固定重量区间。
- 「显示价格」开关可隐藏运费,仅用符号表示:✓ 最便宜 / • 有覆盖 / — 无覆盖。
- 各物流公司列会显示「最便宜命中数」,并按命中数从多到少排序。
物流渠道对比
选择国家...:美国 ▾
全部渠道 ▾
仅看启用线路仅有便宜命中固定重量区间显示价格
| 货物属性 | 重量段 (KG) | 云途物流 · 命中 3 | 燕文物流 · 命中 1 |
|---|---|---|---|
| 一般货物 | 0.1 - 0.2 | ✓ ¥5.00 | ¥6.20 |
| 一般货物 | 0.201 - 0.45 | ¥7.50 | ✓ ¥7.10 |
每格标出该重量段最便宜的渠道;关闭「显示价格」后改用 ✓ / • / — 表示。
订单导出新增「发货时间」列(QuickPoint)
订单导出的 Excel 新增「发货时间」与「虚拟发货时间」两列,未发货时留空;同时「物流渠道」列改为展示为「渠道名 / 线路名」,不再出现无法识别的内部代码。
订单导出 — 新增列
| 订单号 | 物流渠道 | 发货时间 | 虚拟发货时间 |
|---|---|---|---|
| #1001 | 云途 / 美国专线 | 2026-10-17 10:30 | - |
「物流渠道」列展示为「渠道名 / 线路名」,不再显示内部代码。
🐛 重大 Bug Fix
含礼卡商品的订单发货回写失败
修复订单里包含礼品卡时,整包发货回写会因礼品卡被判定为「已履约」而永久失败的问题。现在礼品卡等无需配送的商品不再阻塞整包发货,只回写实物商品;配送方式未知时仍按原有规则保守处理。取消包裹时也不再取消礼品卡的履约记录。
同一商品拆成多行时减免被少算
修复同一个商品在同一订单被拆成多条明细时,按件减免的额度被错误封顶、实际减免偏少的问题。现在多行份额会正确累加,各商品的减免份额之和与整组金额一致。
列表表头滚动时不吸附
修复客户管理、库存管理、库存配对视图与历史报价详情在向下滚动时表头跟随滚走的问题,表头现在会吸附在内容区顶部。
♻️ 重构 / 移除
- 移除报关 HS Code:打单不再向物流公司下发 HS 编码,手工单的物品明细也不再要求填写该字段(新建与详情页均已移除)。
- 菜单文案调整:侧边栏「订单处理」改为「订单管理」;手工单不再有独立入口,改为订单管理页下的子页。
- 折扣规则写权限收紧:折扣规则的创建、修改、删除改为仅「所有者」可操作,普通成员不再能改动折扣规则。
🧱 数据库 Schema 变更(需执行迁移)
本版共 6 个迁移脚本,按时间戳顺序执行,命令:./quotepilot migrate
2026101501_add_channeldestination_route_code.js:物流目的地新增「运输方式代码」字段(选填,纯文本)。2026101600_add_discount_rules_caps.js:折扣规则新增 4 个额度字段——最多减免件数、最多减免金额、已用减免件数、已用减免金额(均为数字,默认不限 / 0)。2026101600_created_manual_shipments.js:新建「手工单」数据表,含单据、收件信息、物品明细、运单与面单状态、物流轨迹等字段,并建立组织 + 创建时间、组织 + 状态的索引。2026101700_manual_shipments_relax_create_rule.js:调整手工单的创建权限规则(放宽为按组织隔离,防伪造改由服务端强制)。2026101700_updated_DiscountRules.js:把折扣规则的创建 / 修改 / 删除权限收紧为仅「所有者」。2026101800_manual_shipments_fix_update_rule.js:修正手工单的编辑权限规则(修正前任何编辑都会失败)。
⚠️ 部署注意
- 需执行数据库迁移并重启后端:部署前运行
./quotepilot migrate(迁移在后端启动时执行),完成后需重启后端以加载手工单的新接口与钩子。 - 前后端需同版本发布:手工单、订单折扣额度结算、目的地运输方式代码、网页端入库均为前后端联动功能。其中折扣结算已由前端改为后端,旧前端配新后端或新前端配旧后端都会导致折扣不一致或不生效。
- 折扣结算口径变更:订单折扣仅在确认订单时结算,确认前不展示折扣行、确认后金额会变化;额度跨订单累计、先确认先得;撤回重排或退回待确认会归还额度。请提前告知相关运营。
- 报关不再下发 HS 编码:打单请求已移除 HS 编码,手工单也不再要求填写;如外部物流对账依赖该字段,请先确认。
- 权限变更:折扣规则的写操作收紧为仅所有者;「网页端入库」开关仅所有者可改。
- 行为默认值:网页端入库默认关闭,未开启的组织行为不变;手工单为独立模块,需在权限中给相关成员开通该模块后才能看到子页。
本版涉及的提交(技术信息)
- QuoteGo(12 commits,head
54c3913):54c3913手工单按目的国解析线路运输方式代码、6fffc4eMerge branch 'main_final_hand_ship'、d41c85aMerge branch 'main_add_destination_routecode'、15c7a07Merge branch 'main_final_web_inbound'、b6a27e4Merge branch 'main_final_discount_limit'、e638c3c折扣基数分摊分母改用活值件数并累加多行份额、d16ed7a礼卡履约不再阻塞整包回写与取消、bd16abc新增目的地级 routeCode 并支持回退线路默认值、8da2a71新增网页端入库开关及白名单校验、d4fe4e6新增中文品名非空校验、2eef8c8新增样品发货单模块并复用打单与物流路线接缝、267b199新增跨订单额度结算与后端权威计算 - QuotePilot(17 commits,head
29ead5e):29ead5e移除多行项目折扣基数测试并清理无用导入、f116f86Merge branch 'main_final_channel_compare'、3be3c1f物流对比新增渠道多选筛选与价格显示开关、8e48be7Merge branch 'main_final_hand_ship'、c0a01e1Merge branch 'main_add_destination_routecode'、6a1f3acMerge branch 'main_final_web_inbound'、1e7707eMerge branch 'main_final_discount_limit'、44d1580订单导出新增发货时间列并修正渠道名展示、61bafd0修复库存客户等列表表头吸顶失效并统一接入吸顶 hook、2860eb2目的地支持绑定运输方式代码并回退线路级默认、e3506da增加物流渠道对比、f8ea40b新增网页端入库开关与签收质检入库三步操作、e4fac70手工单并入订单管理子页并调整侧边栏文案、85b793d修复手工单选填字段清空不生效并校验中文品名、807830d重构手工单表单布局并移除 HS Code 字段、46ec83f新增手工单模块及创建发货流程、172fa7b新增减免上限并将订单折扣结算移至后端 - droppilot:无变更