fix(product-families): 不打印链接移出族(纯数据修复)——矩阵不再计算不打印工艺,BRTF004 恢复烫画×单面
- 生产数据操作(未改源代码):11 条光板/不打印链接 family_id 置空(族 1/2/63/135/148), 名下 3 商品脱族,族 148 主链接 964→965、族 135 主链接置空 - 容器内直调已部署 FamilyRecomputeService 重算 5 族:全库矩阵不再含「不打印」, 族 148 = 烫画×单面印花×不包邮(min 19),public 端口验证通过 - 回滚存档:deploy/backups/20260903-noprint-removal/(全库 dump + 受影响行 CSV + RESTORE.md) - 文档:product-center/structs 记录数据约定与回流风险(organize/autoGroup/人工改标签会回挂散链接); AGENTS.md 沉淀 占位借词表值/物化JSON需显式重算/数据修复三件套 三条经验
This commit is contained in:
@@ -57,7 +57,8 @@
|
||||
|
||||
**模型**:SDS 叶子分类即产品模型(如分类 `DG001 180G纯棉T恤(JSA002)` 下 16 条链接),
|
||||
族 = 同分类链接的合并体;链接名解析列(`国家(物流)品名-SKU-工艺[-仓库]`)提供
|
||||
物流/工艺归因。例:DG001 族 = 16 链接 × 3 工艺 × 3 物流 × 9 尺码(S~XXXXXL 并集)× 20 颜色 ≈ 470 格价格矩阵,起价取光板(不打印)最低价。
|
||||
物流/工艺归因。例:DG001 族 = 16 链接 × 3 工艺 × 3 物流 × 9 尺码(S~XXXXXL 并集)× 20 颜色 ≈ 470 格价格矩阵,起价取矩阵内最低价。
|
||||
(2026-09-03 起:**光板/不打印链接不配置进族**,矩阵不再计算「不打印」工艺,起价只来自印花工艺链接。)
|
||||
|
||||
**价格**:`价格 = f(尺码, 颜色, 物流, 工艺[含印花数量])`,全部从成员链接变体推导透传
|
||||
(同格子多仓库取最低价,来源全保留);`family_price_overrides` 表支持按格人工改价,
|
||||
@@ -112,7 +113,12 @@ curl -X POST /product-families/organize -H "$AUTH" # 后台「整理
|
||||
未整理(无标签)的 SDS 成员不进矩阵,整理后齐全。
|
||||
|
||||
派生默认(脚本层假设,显式可审查):工艺无关键字 → 烫画;印花数量无单/双面且工艺非不打印 →
|
||||
单面印花;不打印/光板 无印花面不补(矩阵中印花数量以单面占位,纯结构化规则)。
|
||||
单面印花;不打印/光板 无印花面不补。
|
||||
**数据约定(2026-09-03 起)**:不打印/光板链接不进族(`family_id=NULL`),SKU 矩阵不计算
|
||||
「不打印」工艺——不存在「不打印×单面印花」这类矛盾组合。⚠️ 回流风险:运行 `organize` /
|
||||
`POST /product-families/autoGroup` 会把这些散链接按分类重新归族;人工编辑其标签也会触发
|
||||
`attachToMatchingFamily` 回挂。重新归族前须先排查光板链接(备份与清单见
|
||||
`deploy/backups/20260903-noprint-removal/`)。
|
||||
「恢复自动」(链接标签重置)本身是显式人工动作,同样走整理服务的单链接派生。
|
||||
|
||||
**人工标签缺啥补啥 + 旧词别名**(2026-09-02 起):
|
||||
@@ -121,8 +127,9 @@ curl -X POST /product-families/organize -H "$AUTH" # 后台「整理
|
||||
就按链接名称自动补哪组(并入人工集合一起存为 manual 行,人工勾选值永不被动),响应带
|
||||
`filledDimensionTags`;未归族链接随后自动并入匹配族(同 SDS 分类优先,回退族语义名称键),
|
||||
响应带 `attachedFamilyId`。
|
||||
- 工艺旧词「热转印」按别名归一为「烫画」进价格矩阵(`CRAFT_TAG_ALIASES`),标签字典本身不动。
|
||||
历史背景:曾有 16 条人工链接因勾了旧词「热转印」被封闭词表静默踢出合并矩阵。
|
||||
- 工艺「热转印」是矩阵词表一等公民(`DIM_VALUES.craft` 含 烫画/直喷/不打印/热转印),
|
||||
打了该标签的链接按「热转印」工艺进价格矩阵;标签字典本身不动。
|
||||
历史背景:曾有 16 条人工链接因勾了「热转印」被封闭词表静默踢出合并矩阵。
|
||||
- 名称回退分组键为**族语义键** `familyNameKey`(第 1 段剥离物流备注、保留 国家+品名+SKU):
|
||||
包邮/不包邮、单面/双面印花是矩阵维度,不再拆族;不同国家/不同款号仍不同族。
|
||||
|
||||
@@ -146,7 +153,7 @@ curl -X POST /product-families/organize -H "$AUTH" # 后台「整理
|
||||
"family": {
|
||||
"familyId": "12", "familyCode": "DG015", "familyName": "DG015 180G纯棉T恤",
|
||||
"sizes": [...], "colors": [...],
|
||||
"printCounts": ["单面印花", "双面印花"], "crafts": ["烫画", "直喷", "不打印"], "logistics": ["包邮", "不包邮"],
|
||||
"printCounts": ["单面印花", "双面印花"], "crafts": ["烫画", "直喷"], "logistics": ["包邮", "不包邮"],
|
||||
"sizeChart": { /* 并集 */ }, "packageSpecs": { /* 并集 */ },
|
||||
"priceMatrix": { /* rows 为 {sizeId, colorId, printCount, craft, logistics, price, manual, sources} */ },
|
||||
"minPrice": "29.5"
|
||||
@@ -156,8 +163,8 @@ curl -X POST /product-families/organize -H "$AUTH" # 后台「整理
|
||||
|
||||
矩阵维度来源是**链接级标签**(印花数量/印刷工艺/物流渠道三组;人工接管后按人工标签),
|
||||
不再用原始链接名的第 3 段(`craftLabel` 含「直喷单面/光板不打印」等噪声)。名称派生规则已
|
||||
覆盖裸「单面/双面」写法(如「直喷双面」→ 双面印花 + 直喷)。光板/不打印链接无印花面概念,
|
||||
矩阵中印花数量维回退「单面印花」占位。前端本地按五维联动 `priceMatrix` 即可实时算价
|
||||
覆盖裸「单面/双面」写法(如「直喷双面」→ 双面印花 + 直喷)。光板/不打印链接不进族、
|
||||
无印花面概念,不参与矩阵维度。前端本地按五维联动 `priceMatrix` 即可实时算价
|
||||
(设计 D4)。
|
||||
|
||||
**边界声明**:价格区间筛选(minPrice/maxPrice)仍作用于链接 `goodPrice`(族内任一链接命中即
|
||||
|
||||
Reference in New Issue
Block a user