2026-09-12 单日执行《修复方案》24 个任务全部完成:ZIPFORCE Hub 的页面、按钮、表格、图表对齐 UVPVP 基准。修复对象仅为 Hub(UVPVP 零改动,仅作基准读取;共享源表层的采集器修复除外)。
| 阶段 | 任务 | 交付 | 状态 |
|---|---|---|---|
| 0 通用件 | T0-1/2/3 | ChartCard(每图 CSV+日期三态)· ChartGrid 拖拽+账号级持久化(/api/layout) · DataTable 列级筛选+Excel | 完成 |
| 1 Amazon 主看板 | T1-1/2/5 | /dashboard/[brand] 三品牌 8 区块 81 图 · 订单明细 14 列 · 工作台入口(关键复用:图表墙接口本就输出 81 图,只做接线) | 完成 |
| 2 Noon | T1-3/4 | /dashboard/noon/[brand] 32 图按日墙 · FBN 库存页(92d 销速分级) · noon_inventory 表+采集 · FBN 采集器双病根修复 | 完成 |
| 3 快赢 | T2-7/8/9 | 今日页三补块(含 SKU TOP20) · 排名展开 4 图(星级分布) · 商品五级下钻(Series→…→Size) | 完成 |
| 4 财务 | T2-1~6 | Noon P&L 三表(16/31/24 列) · 产品×月 15 列 · exportTableXls + 6 按钮 · 口径 legend | 完成 |
| 5 工具页 | T3-1~5 | 物流运费计算器 · 推广 KOL 分析 4 表+投稿/下单表单 · 库存 ERP 补字段+报表 tab · 映射编辑器 · A+ 内容管理三 tab | 完成 |
| 6 外围 | T4-1/2 | vocabulary / research / tools / investor / software / noon-helpcenter | 按约不做 |
/api/matrix/* 三端点 BASAL 基准(昨日批次遗留,快照已登记)| ID | 交付 | 实测 |
|---|---|---|
| T0-1 | ChartCard.tsx:标题+图+⬇CSV(缺省从图表数据提取)+ 日期三态(跟随全局/独立起止/✕清除) | /noon 双图首接,e2e 断言过 |
| T0-2 | ChartGrid.tsx 拖拽+🔒锁定+↺重置;/api/layout GET/POST/reset 存 user_dashboard_prefs.layouts(按账号+页面 key) | curl 会话往返:存→读 ["net-trend","gmv-trend"] locked:true ✓ · 重置归零 ✓ · 页面隔离 ✓ |
| T0-3 | DataTable 增列级筛选(文本包含/数字 Min-Max,取值 csv||sortValue,筛选先于排序且影响导出)+ WYSIWYG .xls 导出 | /noon 明细 17 个筛选输入 + Excel 按钮,e2e 断言过 |
| 品牌路由 | 图数 | 窗口订单(90d) | 营收(90d) |
|---|---|---|---|
/dashboard/zipforce | 81 | 1,662 | $9,759 |
/dashboard/onno | 81 | 568 | $7,139 |
/dashboard/fittinggoals | 81 | 5,946 | $112,678 |
| 交付 | 实测 |
|---|---|
/dashboard/noon/[brand]:32 图 5 区块(销售/订单状态 CIR·取消/财务/国家含下钻/SKU+广告 ROAS·ACOS·CTR·CVR·CPS)+ FBN 预警卡 + 审计说明卡;新端点 /api/brandboard/noon(利润=结算净额−广告,与月墙同口径) | 2,906 件/90d · 最新月 GMV $50,905 · 利润 $32,749 |
/inventory 新「📦 Noon FBN 预警」tab:KPI×7 + 9 列明细 + 三筛选 + CSV/Excel;noon_inventory 表(pg-init/45) + ingest spec;noon_orders 窗 30→92 天 | 快照 2026-09-11:59 SKUs · stock 14,057 · 🔴34/🟡17/🟢51 · 缺口 9,197u;分级验证 ZF435T1MEB AE→URGENT ✓ |
| FBN 采集器修复(mars /opt/collection,写共享源表) | 修复前连续 4 次 timeout 数据停 09-09 → 修复后 rc=0,8,107 行入库,快照 09-09→09-11(UVPVP 侧读同表顺带受益) |
| ID | 交付 | 实测 |
|---|---|---|
| T2-7 | 今日页 + SKU TOP20 水平柱 + 小时×国家堆叠 + 明细矩阵(/api/today 增 by_sku) | e2e 页面遍历过 |
| T2-8 | 排名展开 1→4 图:BSR + 评分 + 评论 + 星级分布堆叠(history 增 stars 数组) | star_pct 数组直出 |
| T2-9 | 商品「🗂 下钻视图」五级树 + 日/周/月粒度 + 30-365 天窗 + TOTAL/AVG/📦Stock + CSV(/api/brandboard/product-drill) | 534 SKU / 2,163 件 / 首系列 Bra 6,513 件;e2e gran=month 联动断言过 |
| ID | 交付 |
|---|---|
| T2-1/2/3 | 新端点 /api/finance/noon-pnl → Noon P&L 三表:①KPI Summary 16 列(SAR/AED 本币行 + All USD)②Monthly P&L 31 列(折 USD)③Country Performance 24 列 |
| T2-4 | 年度 SKU 表由既有 noon-sku 年份 tab 覆盖(43 列 ≥ UVPVP 38);每表配可折叠口径 legend(12 条指标说明) |
| T2-5 | exportTableXls 工具(DOM→.xls)+ 6 个 Excel 按钮(矩阵/分市场/noon产品月/余额/年度/noon_sku);DataTable exportExcel×4 |
| T2-6 | noon 产品×月 10→17 列(Del/Ship/Canc/Und/Cost$/TACOS%/Mgn%;Del/Ship 仅 92d 窗有值,状态件数全历史) |
| 实测:All 行 orders 152,088 · settlement $660,035 · NP $83,524;最新月(2026-09) valid 1,118/1,257 · NP $3,369 | |
| ID | 交付 | 实测 |
|---|---|---|
| T3-1 | 物流「🧮 运费计算器」:目的国+泡比(6000)+多行产品(体积重实时)+全渠道比价,最低价绿色高亮(A 模式 min_kg×per_kg+fee / B 模式首续重) | 15 渠道结果 |
| T3-2 | KOL「📊 数据分析」4 表(平台效果/量级性价比/品类/国家,互动率=(均赞+均评)/均播)+ 渠道行投稿/下单 Modal 表单(复用既有 orders 端点 + 新 submission 表) | youtube 518 / tiktok 282 / 1M+ 62;投稿按钮 ×20 |
| T3-3 | 单据明细批次/序列号列(pg-init/47) + 新建抽屉供应商(PO)/关联PO(GRN·PRETURN 下拉已审 PO)/合计行 + 「📈 报表」子 tab(/api/inv/report 近7/30/90 双色柱+表) | 报表空=真无单据(新功能无历史),端点验证过 |
| T3-4 | 映射「✏️ 编辑」tab:/api/mapping/edit 整分支事务替换(行键 brand+sku+platform+country,冲突行跳过)+ 单元格编辑/加行/xlsx 导入(cdnjs SheetJS 按需)/CSV+Excel 导出/审计 | 666 行渲染(zipforce·Noon 分支) |
| T3-5 | /upload「📄 A+ 内容」三子 tab:创建(17 站点多选+三模板+四模块编辑器+媒体库 datalist+语言缺失警告+草稿保存/更新)· 媒体库登记 · 文档&历史(只追加);pg-init/48 + /api/aplus/* 六端点 | 全链路冒烟过;提交审核按钮禁用(SP-API 凭证未接,需求单) |
每批部署后四道门全绿(最终态):
pen_tests ALL PASS # API 租户隔离矩阵
dashboard_audit 106+ 项检查 FAIL 0 # 口径对账(today-noon 锚已改按日口径)
frontend_e2e ALL PASS # 16 节: 原契约 + T0/主看板/Noon/FBN/下钻/财务/物流/推广/库存/映射/A+
audit_nodes ALL PASS # 全站节点门, 快照 75→101 端点
新端点登记(黑名单制, --refresh-snapshot 确认):
+ /api/layout + /api/brandboard/{orders,country-sku,noon,product-drill}
+ /api/noon-inventory + /api/finance/noon-pnl + /api/promotion/{kol-analysis,submissions}
+ /api/inv/report + /api/mapping/edit + /api/aplus/{meta,media,documents,history}
+ /api/matrix/*×3(昨日批次漏登记被揪出, BASAL 锚仍待挂)
| 事件 | 根因 | 处置 |
|---|---|---|
| FBN 采集器连续 timeout(数据停 09-09) | ①轮询状态键读 status,实为 export_status(对照线上正常 adapter 定位)→ 每导出空转 600s;②v1 字段映射 vs v2 表结构全错 | 按 mercury 参考实现重写;tasks.py 加 TIMEOUT-TAIL 日志;修复后 rc=0 |
| 映射编辑器测试误删 9 行(onno/Noon 14→5) | 整分支替换语义下用截断 rows 做保存测试 = 破坏性 | 立即 enqueue ingest 从 mercury 重建(sku_mapping 每日 04:30 全量重建,天然自愈),恢复 14 行 |
| 两起"swc 玄学编译错"(Unexpected token div,位置与病灶无关) | 手写 JSX 属性字符串少闭合引号(如 padding: "4px 8px }})→ 字符串吞掉后续语法 | 补引号;教训入库:此类报错先全文搜未闭合字符串 |
| arq 任务被容器重建静默杀死(多次重触发) | enqueue 的任务在 worker 重启时丢失不重试;subprocess.run 阻塞事件循环→任务串行 | 认知入库;重建后重新 enqueue |
| dashboard_audit today-noon 2 项 FAIL | 锚还是月度口径,与昨日 noon_orders 按日切换不匹配 | 锚对齐新口径(day=订单最大日,cur=该日行数) |
| 后端小坑若干 | order_fees 列名 promo / JOIN brand 歧义 / psycopg2 占位符参数个数 / SQL 块挪动后 fetchall 读错游标 / marketplaces 列名与 platform 大小写 / kpi_cards NOT NULL / layouts 缺 page-key 层级 / promotion_submissions 已存在表结构不同 | 当日全部修复并入库 |