Client:兼容款式与套餐规格分组 #166

Closed
opened 2026-08-11 17:01:47 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:缺陷
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 / Client 可运行任务闭环
  • 阶段:PDD 规格兼容
  • 状态:待验收

要解决什么

采集商品 757123298435 时,规格面板的第一组是“款式”、第二组是“套餐”。当前解析器不认识“套餐”标题,导致套餐选项沿用前一个“款式”分组并最终全部写进 color,数据库中的颜色值实际变成套餐组合。

复现结果:本地 pdd_data.dimensions 只有 color / 颜色分类 一组,其中包含“黑色2个+浅灰2个”等套餐文字。

做什么 / 不做什么

  • 做:规格解析器识别“套餐”为独立标题。
  • 做:已有款式/颜色主规格时,把“套餐”映射为 size。
  • 做:只有“套餐”一个规格组时,将其作为主规格 color,维持当前采价流程可用。
  • 做:采集结果保留原始规格名称“款式”“套餐”,不再无条件改名为“颜色分类”“尺码”。
  • 做:默认第二规格取消选择、向下采集和采购面板识别同步兼容“套餐”。
  • 做:增加“款式 + 套餐”、单独套餐及不支持三维规格的回归测试。
  • 不做:不修改数据库结构、Admin 接口和 pdd_data schema 版本。
  • 不做:不改变已确认的价格粒度;仍只逐个主规格采价,不遍历“款式 × 套餐”价格组合。
  • 不做:不执行真实下单或付款。

已确认的实现方案

  1. 在 pdd_collect_service.py 集中维护规格标题别名并先完整切分分组,再根据全部分组上下文生成规范 key。
  2. “颜色/颜色分类/款式/花色”映射为 color;已有主规格时“尺码/尺寸/套餐”映射为 size;单独套餐降级为 color。
  3. 采集颜色和第二规格时保留解析到的原始名称,SKU 选项仍使用稳定的 color / size。
  4. 三个或更多无法安全折叠的规格维度继续明确失败,不静默合并。
  5. 同步采购面板证据词和选择工具对“款式/套餐”的识别,避免采集与采购语义不一致。
  6. 使用脱敏 XML 固件覆盖分组边界、默认套餐选择和最终 dimensions/SKU 结构。

预计修改:

  • client/src/pdd_collect_service.py
  • client/src/pdd_u2_purchase_adapter.py
  • client/src/util/select_color_size.py(仅必要识别规则)
  • client/test/test_pdd_collect_service.py
  • client/test/test_pdd_u2_purchase_adapter.py 或选择工具对应测试
  • docs/task/<工单号>-兼容款式套餐规格.md

验收标准

  • “款式”选项只进入 color,套餐文字不再混入颜色。
  • “套餐”选项进入 size,并保留原始分组名称。
  • 默认选中的套餐可以按现有安全逻辑取消,再采集全部款式。
  • 只有套餐一个维度的商品仍能作为主规格采集。
  • 不支持的额外维度不会被静默合并。
  • 采购面板能识别“款式/套餐”,现有颜色尺码商品不回归。
  • 不修改数据库、Admin 接口及价格粒度。
  • 精确测试、Client 全量测试、py_compile 通过;不执行真机下单或付款。

验证方式

从 client/ 执行相关 unittest、完整 test_*.py 和修改文件 py_compile。使用脱敏 XML 测试;真机商品 757123298435 由用户验收。

风险和回退

  • “套餐”可能影响价格,但本工单按已确认规则仍视为第二规格,不采集组合价;详情和工单明确保留这一限制。
  • 遇到三维规格不得猜测映射,明确失败优于提交错误 SKU。
  • 回退本工单代码提交即可,不涉及数据库迁移。
## 基本信息 - 类型:缺陷 - 父级大工单:#1 - 所属 MVP / 版本:#2 / Client 可运行任务闭环 - 阶段:PDD 规格兼容 - 状态:待验收 ## 要解决什么 采集商品 `757123298435` 时,规格面板的第一组是“款式”、第二组是“套餐”。当前解析器不认识“套餐”标题,导致套餐选项沿用前一个“款式”分组并最终全部写进 `color`,数据库中的颜色值实际变成套餐组合。 复现结果:本地 `pdd_data.dimensions` 只有 `color / 颜色分类` 一组,其中包含“黑色2个+浅灰2个”等套餐文字。 ## 做什么 / 不做什么 - 做:规格解析器识别“套餐”为独立标题。 - 做:已有款式/颜色主规格时,把“套餐”映射为 `size`。 - 做:只有“套餐”一个规格组时,将其作为主规格 `color`,维持当前采价流程可用。 - 做:采集结果保留原始规格名称“款式”“套餐”,不再无条件改名为“颜色分类”“尺码”。 - 做:默认第二规格取消选择、向下采集和采购面板识别同步兼容“套餐”。 - 做:增加“款式 + 套餐”、单独套餐及不支持三维规格的回归测试。 - 不做:不修改数据库结构、Admin 接口和 `pdd_data` schema 版本。 - 不做:不改变已确认的价格粒度;仍只逐个主规格采价,不遍历“款式 × 套餐”价格组合。 - 不做:不执行真实下单或付款。 ## 已确认的实现方案 1. 在 `pdd_collect_service.py` 集中维护规格标题别名并先完整切分分组,再根据全部分组上下文生成规范 key。 2. “颜色/颜色分类/款式/花色”映射为 `color`;已有主规格时“尺码/尺寸/套餐”映射为 `size`;单独套餐降级为 `color`。 3. 采集颜色和第二规格时保留解析到的原始名称,SKU 选项仍使用稳定的 `color` / `size`。 4. 三个或更多无法安全折叠的规格维度继续明确失败,不静默合并。 5. 同步采购面板证据词和选择工具对“款式/套餐”的识别,避免采集与采购语义不一致。 6. 使用脱敏 XML 固件覆盖分组边界、默认套餐选择和最终 dimensions/SKU 结构。 预计修改: - client/src/pdd_collect_service.py - client/src/pdd_u2_purchase_adapter.py - client/src/util/select_color_size.py(仅必要识别规则) - client/test/test_pdd_collect_service.py - client/test/test_pdd_u2_purchase_adapter.py 或选择工具对应测试 - docs/task/<工单号>-兼容款式套餐规格.md ## 验收标准 - [x] “款式”选项只进入 `color`,套餐文字不再混入颜色。 - [x] “套餐”选项进入 `size`,并保留原始分组名称。 - [x] 默认选中的套餐可以按现有安全逻辑取消,再采集全部款式。 - [x] 只有套餐一个维度的商品仍能作为主规格采集。 - [x] 不支持的额外维度不会被静默合并。 - [x] 采购面板能识别“款式/套餐”,现有颜色尺码商品不回归。 - [x] 不修改数据库、Admin 接口及价格粒度。 - [x] 精确测试、Client 全量测试、py_compile 通过;不执行真机下单或付款。 ## 验证方式 从 `client/` 执行相关 unittest、完整 `test_*.py` 和修改文件 `py_compile`。使用脱敏 XML 测试;真机商品 `757123298435` 由用户验收。 ## 风险和回退 - “套餐”可能影响价格,但本工单按已确认规则仍视为第二规格,不采集组合价;详情和工单明确保留这一限制。 - 遇到三维规格不得猜测映射,明确失败优于提交错误 SKU。 - 回退本工单代码提交即可,不涉及数据库迁移。
Author
Owner

实现完成,状态更新为待验收。

  • 实现提交:9c7e715
  • 归档提交:22bf3fe
  • 归档文档:docs/task/166-兼容款式与套餐规格.md
  • 验证:采集服务 58 项、采购适配器 26 项、Client 全量 420 项测试通过;修改文件 py_compile 通过
  • 未验证:未用真机重新采集商品 757123298435;未执行真实采购、下单或付款;套餐价格仍不单独采集。

请重点验收任务详情中的“款式”是否只显示真实款式,“套餐”是否出现在尺码区域,以及套餐文字不再混入颜色。

实现完成,状态更新为待验收。 - 实现提交:`9c7e715` - 归档提交:`22bf3fe` - 归档文档:`docs/task/166-兼容款式与套餐规格.md` - 验证:采集服务 58 项、采购适配器 26 项、Client 全量 420 项测试通过;修改文件 `py_compile` 通过 - 未验证:未用真机重新采集商品 `757123298435`;未执行真实采购、下单或付款;套餐价格仍不单独采集。 请重点验收任务详情中的“款式”是否只显示真实款式,“套餐”是否出现在尺码区域,以及套餐文字不再混入颜色。
Author
Owner

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:ad44f83。现关闭工单。

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:`ad44f83`。现关闭工单。
ila closed this issue 2026-08-13 15:58:22 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#166