Files
cmautobuy/docs/task/215-蝦皮SKU人工编辑.md
T
2026-08-13 12:15:13 +08:00

3.3 KiB
Raw Blame History

215 Admin:支持人工修改蝦皮 SKU 颜色尺码

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / MVP 后续
  • 状态:已完成,待用户验收
  • 日期:2026-08-13
  • Gitea 工单:#215

背景与目标

蝦皮商品详情原来只能查看规格。采购员无法修正已有 SKU 的颜色、尺码和建议说明, 解析错误或缺失数据只能等待第三方重新导入。本任务增加受控人工修正,并保护人工值不被 后续目录导入或 SYB 低优先级补全覆盖。

最终方案

每条现有 SKU 在只读摘要旁提供折叠“编辑”表单,只开放颜色、尺码和建议说明。颜色、 尺码必填,建议可清空;服务端限制每项最多 500 个字符,并同时核对内部 SKU 记录和商品 归属。保存把三个字段来源写为 manual、记录观测时间并设置 parse_ok=1,但不修改 spec_raw、spec_key、真实 SKU ID、SKU 编码、来源或 is_manual。

目录 fill_missing 规则增加字段级人工保护,因此主动清空建议也不会被再次补入; overwrite_same_source 原本按来源判断,会自然跳过 manual。保存成功或校验失败后保留 列表筛选和页码,并自动重新打开同一商品详情。未新增数据库迁移、SKU 新增/删除或 Client 接口,实施与建单方案一致。

改了哪些

  • admin/service/shopee_sku.go:输入校验、事务、字段来源合并和人工保存。
  • admin/repository/shopee.go:读取字段来源并按 SKU 与商品双重条件更新。
  • admin/repository/catalog_import.go:fill_missing 尊重字段级 manual 来源。
  • admin/handler/web/shopee.go、admin/handler/web/web.go:增加保存路由和上下文返回。
  • admin/service/shopee_list.go、admin/templates/shopee/detail_modal.html:提供内部定位值、 只读原文和逐行折叠编辑表单。
  • admin/static/css/app.css:增加紧凑的 SKU 编辑布局。
  • admin/service/shopee_sku_test.go 等:覆盖保存、输入拒绝、跨商品保护和导入防覆盖。
  • docs/admin/01-requirements.md、03-data-model.md、05-ui-specification.md、 06-quality-security.md:同步需求、数据和测试基线。

验收结果

验收标准 结果
登录用户可修改已有 SKU 的颜色、尺码和建议说明 通过
空必填项、超长内容、错误记录和跨商品记录被拒绝且无部分更新 通过
保存后已解析,原文、规格键和真实 SKU ID 不变 通过
人工字段不被两种目录更新策略覆盖 通过
主动清空建议后不会被低优先级补空 通过
不修改 SYB 原始数据、规格映射、采购任务和 Client 接口 通过(修改范围检查)
Go 1.23 build、test、vet 全部通过 通过

测试

  • 执行的命令:$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1; go vet ./...
  • 结果:全部通过;新增服务测试使用 SQLite 小库覆盖事务写入和两种导入策略保护。
  • 没验证到的部分:未设置 CMAUTOBUY_MYSQL_TEST=1,因此未执行真实 MySQL 8 隔离库测试;未在生产 MySQL 写入;未做真实浏览器逐行编辑的人工验收。

相关提交

  • 4752fef feat: 支持人工修改蝦皮规格 (#215)