允许颜色缺价并继续采集尺码提交结果 #42

Closed
opened 2026-08-08 11:22:12 +08:00 by ila · 2 comments
Owner

类型

缺陷修复 / 采集流程优化

关联

  • Epic:#1
  • MVP:#2
  • 阶段:PDD 商品采集

问题

当前颜色遍历结束后,只要存在可用颜色未采到价格,就会抛出 PDD_DATA_PRICE_MISSING。这会导致尺码采集尚未执行,任务直接失败并向 Admin 提交失败结果。

部分颜色可能已售罄或无法选中,采不到价格属于正常业务情况,不应阻断整个采集任务。

本工单范围

  • 每个颜色只执行现有的一次选择和价格采样,不为缺价颜色增加重试。
  • 颜色无法选中或未采到价格时,保留该颜色,价格字段使用空值。
  • 所有颜色处理结束后,无论是否缺价,都继续滚动并采集尺码。
  • 规格数据非空时,继续保存 SQLite、生成待提交数据并提交 Admin。
  • 补充自动化测试和稳定文档。

不在本工单范围

  • 不修改颜色遍历顺序和滑动算法。
  • 不修改现有价格采样方法。
  • 不修改尺码滚动采集算法。
  • 不修改数据库结构、pdd_data JSON 结构和 Admin 接口。
  • 不修改 Admin 服务端代码。

验收标准

  • 部分或全部颜色价格为空时,仍会执行尺码采集。
  • 缺价颜色的 price_cent、raw_price 为 null,价格采集时间为空。
  • 颜色的可用状态仍以页面采集结果为准,不因缺价擅自改写。
  • 规格组合非空时,可正常入库并提交 Admin。
  • 规格为空时仍按数据不完整处理。
  • 保持“先保存任务数据,再写 Outbox”的顺序。
  • Client 自动化测试全部通过。
## 类型 缺陷修复 / 采集流程优化 ## 关联 - Epic:#1 - MVP:#2 - 阶段:PDD 商品采集 ## 问题 当前颜色遍历结束后,只要存在可用颜色未采到价格,就会抛出 `PDD_DATA_PRICE_MISSING`。这会导致尺码采集尚未执行,任务直接失败并向 Admin 提交失败结果。 部分颜色可能已售罄或无法选中,采不到价格属于正常业务情况,不应阻断整个采集任务。 ## 本工单范围 - 每个颜色只执行现有的一次选择和价格采样,不为缺价颜色增加重试。 - 颜色无法选中或未采到价格时,保留该颜色,价格字段使用空值。 - 所有颜色处理结束后,无论是否缺价,都继续滚动并采集尺码。 - 规格数据非空时,继续保存 SQLite、生成待提交数据并提交 Admin。 - 补充自动化测试和稳定文档。 ## 不在本工单范围 - 不修改颜色遍历顺序和滑动算法。 - 不修改现有价格采样方法。 - 不修改尺码滚动采集算法。 - 不修改数据库结构、pdd_data JSON 结构和 Admin 接口。 - 不修改 Admin 服务端代码。 ## 验收标准 - 部分或全部颜色价格为空时,仍会执行尺码采集。 - 缺价颜色的 `price_cent`、`raw_price` 为 null,价格采集时间为空。 - 颜色的可用状态仍以页面采集结果为准,不因缺价擅自改写。 - 规格组合非空时,可正常入库并提交 Admin。 - 规格为空时仍按数据不完整处理。 - 保持“先保存任务数据,再写 Outbox”的顺序。 - Client 自动化测试全部通过。
Author
Owner

实现完成,等待验收

已按确认方案完成:

  • 移除颜色缺价时的提前失败,部分或全部颜色缺价都会继续执行尺码采集。
  • 缺价字段保持 null,price_observed_at 为空对象,不增加价格重试。
  • available 只取页面规格控件状态,不再受价格是否为空影响。
  • 规格非空时沿用原有 SQLite + Outbox + Admin 提交流程;空规格仍报数据不完整。
  • 稳定需求、数据模型和 Admin 契约文档已同步。

验证:

  • PDD 采集专项 26 项通过。
  • Client 全量 167 项通过。
  • Python 语法检查和 git diff --check 通过。
  • 尚待真机复测商品 579590149861。

提交:

  • 5aaf0a9 fix: 允许颜色缺价后继续采集 (#42)
  • 033bef0 docs: 归档任务 #42
  • 本地归档:docs/task/42-允许颜色缺价并继续采集尺码.md

工单保持打开,等待用户验收。

## 实现完成,等待验收 已按确认方案完成: - 移除颜色缺价时的提前失败,部分或全部颜色缺价都会继续执行尺码采集。 - 缺价字段保持 null,`price_observed_at` 为空对象,不增加价格重试。 - `available` 只取页面规格控件状态,不再受价格是否为空影响。 - 规格非空时沿用原有 SQLite + Outbox + Admin 提交流程;空规格仍报数据不完整。 - 稳定需求、数据模型和 Admin 契约文档已同步。 验证: - PDD 采集专项 26 项通过。 - Client 全量 167 项通过。 - Python 语法检查和 `git diff --check` 通过。 - 尚待真机复测商品 579590149861。 提交: - `5aaf0a9` fix: 允许颜色缺价后继续采集 (#42) - `033bef0` docs: 归档任务 #42 - 本地归档:`docs/task/42-允许颜色缺价并继续采集尺码.md` 工单保持打开,等待用户验收。
Author
Owner

用户已于 2026-08-11 明确验收通过。

  • 本地归档状态已更新为“已完成,用户验收通过”
  • 验收记录提交:eca9289
  • 本工单按项目流程关闭
用户已于 2026-08-11 明确验收通过。 - 本地归档状态已更新为“已完成,用户验收通过” - 验收记录提交:`eca9289` - 本工单按项目流程关闭
ila closed this issue 2026-08-11 10:58:06 +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#42