依据 #288 的评估与 2026-09-16 的讨论。依赖 #289(塌缩检测)先行。
用户原话要点:「同个蝦皮商品有多个 syb 订单时,只要其中一个颜色采集匹配后,其他颜色的 syb 订单不需要再次采集和匹配,可以直接采购」。
用户已提供接口:按虾皮商品 id 返回该商品的全部颜色与尺码。
采集本就不需要重复:采集按 PDD 商品进行(collection_eligibility.go 的判定链从 SYB 明细走到 pdd.ID,无颜色条件),同一虾皮商品的多个颜色共用一个 PDD 商品。实测 PDD 8479 一次采集即拿到 5 个颜色的完整规格。
collection_eligibility.go
pdd.ID
匹配无法省略但可以不用人点:映射按规格值逐个保存,白色 → PDD 某值 推导不出 黑色 → ?。但触发可以自动化。
白色 → PDD 某值
黑色 → ?
规格滞后是问题根源:虾皮档案的颜色尺码是从 SYB 明细增量累积的(mergeParsedSpec),SYB 送来什么才有什么。已有映射的商品最近 2 天仍新增 28 条明细、涉及 17 个商品,其中不少是全新的颜色尺码组合——所以「弄好一次」现在不成立。
mergeParsedSpec
接口可用:返回 data.color[] 与 data.size[],462 字节。尺码字符串与 SYB 逐字一致(2XL 60.0-67.5公斤)。
data.color[]
data.size[]
2XL 60.0-67.5公斤
[必须] 颜色字符串对不上:接口返回虾皮原文 香芋紫 【雙梅花】純棉,而 SYB 经 Parse 剥离后是 香芋紫 純棉。写入档案前必须做同样的剥离,否则映射查不到,等于白做。
[必须]
香芋紫 【雙梅花】純棉
Parse
香芋紫 純棉
映射存在每个规格值上,不是每个组合上。线上已关联商品平均 1.5 个颜色 + 1.5 个尺码,最多 10 + 9。一个商品平均几次 AI 调用即可全覆盖,最坏 15 次。
GOAUTO_ERPGO_BASE_URL
GOAUTO_ERPGO_APIKEY
scripts/start-server.ps1
config.yaml
erpgo
/etc/goauto/goauto.env
shopeeproduct.Merge
spec_sync_pdd_product_id
spec_sync_at
[必须] 标记记录当时关联的是哪个 PDD 商品,而不是布尔值。跳过判据为 spec_sync_pdd_product_id == 当前 pdd_product_id,这样重新关联时标记自动失效,不依赖记得去清。
spec_sync_pdd_product_id == 当前 pdd_product_id
ImageSearchPriceAllowed
stripBrackets
image_search_linked
go build ./...;go test ./app/goauto/task/... ./app/goauto/purchase/... ./app/goauto/shopeeproduct/...;Web 构建。
go build ./...
go test ./app/goauto/task/... ./app/goauto/purchase/... ./app/goauto/shopeeproduct/...
新增外部接口依赖与规格同步流程,需更新 docs/08-agent-api-contract.md 与架构、业务规则页面。
docs/08-agent-api-contract.md
No dependencies set.
The note is not visible to the blocked user.
原始需求
用户原话要点:「同个蝦皮商品有多个 syb 订单时,只要其中一个颜色采集匹配后,其他颜色的 syb 订单不需要再次采集和匹配,可以直接采购」。
用户已提供接口:按虾皮商品 id 返回该商品的全部颜色与尺码。
已确认的事实
采集本就不需要重复:采集按 PDD 商品进行(
collection_eligibility.go的判定链从 SYB 明细走到pdd.ID,无颜色条件),同一虾皮商品的多个颜色共用一个 PDD 商品。实测 PDD 8479 一次采集即拿到 5 个颜色的完整规格。匹配无法省略但可以不用人点:映射按规格值逐个保存,
白色 → PDD 某值推导不出黑色 → ?。但触发可以自动化。规格滞后是问题根源:虾皮档案的颜色尺码是从 SYB 明细增量累积的(
mergeParsedSpec),SYB 送来什么才有什么。已有映射的商品最近 2 天仍新增 28 条明细、涉及 17 个商品,其中不少是全新的颜色尺码组合——所以「弄好一次」现在不成立。接口可用:返回
data.color[]与data.size[],462 字节。尺码字符串与 SYB 逐字一致(2XL 60.0-67.5公斤)。[必须]颜色字符串对不上:接口返回虾皮原文香芋紫 【雙梅花】純棉,而 SYB 经Parse剥离后是香芋紫 純棉。写入档案前必须做同样的剥离,否则映射查不到,等于白做。匹配成本
映射存在每个规格值上,不是每个组合上。线上已关联商品平均 1.5 个颜色 + 1.5 个尺码,最多 10 + 9。一个商品平均几次 AI 调用即可全覆盖,最坏 15 次。
方案
GOAUTO_ERPGO_BASE_URL与GOAUTO_ERPGO_APIKEY,由scripts/start-server.ps1从本地config.yaml的erpgo段转为环境变量;服务端只读环境变量。线上需在/etc/goauto/goauto.env单独配置。Parse相同的剥离后合并进档案(复用shopeeproduct.Merge,它已保证保留既有映射)。spec_sync_pdd_product_id与spec_sync_at。[必须]标记记录当时关联的是哪个 PDD 商品,而不是布尔值。跳过判据为spec_sync_pdd_product_id == 当前 pdd_product_id,这样重新关联时标记自动失效,不依赖记得去清。非目标
ImageSearchPriceAllowed目前零调用,已标注未接线。stripBrackets(#288 的 A″ 延后)。依赖与风险
[必须]依赖 #289:拉取全量规格会把同一商品的多个塌缩规格一次性撞进同一个键(如虾皮 1355 的 6 个白色),显著放大 #288 的问题,甚至可能覆盖现有正确映射。必须先有塌缩检测。image_search_linked标记。验收
验证
go build ./...;go test ./app/goauto/task/... ./app/goauto/purchase/... ./app/goauto/shopeeproduct/...;Web 构建。文档影响
新增外部接口依赖与规格同步流程,需更新
docs/08-agent-api-contract.md与架构、业务规则页面。