feat(admin): family-aware goods view - auto tags readonly, clean link names, config badges, locate highlight
This commit is contained in:
@@ -135,16 +135,31 @@ pnpm --filter @inkreach/api backfill:product-families
|
||||
操作直接作用于族(并集与价格矩阵随重算更新);
|
||||
- 人工改价/自动成族等族管理 API(`/product-families/*`)保留,供脚本或后续界面使用。
|
||||
|
||||
**族派生标签(物流/工艺/印刷位置标签自动化)**:
|
||||
**族派生标签(按链接名称自动解析,2026-08 规则改版)**:
|
||||
|
||||
- 标签组名含「物流」「工艺」「位置」的组视为**自动组**;有族商品的这些标签由族成员的
|
||||
`logisticsLabel/craftLabel` **自动生成**(前缀匹配取最长命中:单面印花→单面印、
|
||||
不包邮光板→不包邮),每次族重算/成员变更/商品创建更新时同步到族下所有商品;
|
||||
- 表单中自动组不再出现在标签下拉里(只读展示"族自动:…"),后端也会剔除手动传入的
|
||||
自动组标签;无族商品(如独立自定义商品)仍可手动打标签;
|
||||
- 标签与**产品链接一一对应**(每条链接因印花数量/工艺/物流不同而价格不同),因此不再按
|
||||
族并集派生,而是按每条链接自身名称解析后写入该链接对应的商品;
|
||||
- 解析规则(`apps/api/src/product-families/auto-tag-rules.ts`,与 admin 端
|
||||
`utils/origin-name.ts#deriveLinkTagNames` 同构):
|
||||
- **印花数量**:名称含「双面印花」→ `双面印花`;否则含「单面印花」→ `单面印花`(新组「印花数量」);
|
||||
- **工艺**:名称含「直喷」「不打印」「光板」→ 对应标签(可多个,组「印刷工艺」);
|
||||
都不含 → 默认 `烫画`;
|
||||
- **物流**:含「不包邮」→ `不包邮`;否则含「包邮」→ `包邮`(组「物流渠道」,先判不包邮防子串误命中);
|
||||
- 组名匹配「物流/工艺/位置/印花数量」的组视为**自动组**:每次族重算/成员变更/商品创建更新时
|
||||
同步;缺失的组与标签自动补建;旧的自动组标签(如「印刷位置」的单面印/双面印)会被剔除;
|
||||
- 后台商品表单**不再提供标签手输框**:编辑弹窗展示只读的自动标签胶囊,配置弹窗提示
|
||||
「保存后由系统按链接名称自动解析」;后端同样剔除手动传入的自动组标签;
|
||||
- **人工调节接口保留**:`设为主链接` / `移除出族` / 搜索添加成员(`updateMembers`)、
|
||||
价格改价(`/product-families/*/overrides`)——自动组织不对时可手动调整;
|
||||
- 其他分组(如风格类)不受影响,保持人工管理;
|
||||
- 实测(DG015,10 链接):商品自动获得 `包邮、不包邮、双面印、直喷、单面印`,
|
||||
官网物流/工艺筛选直接命中合并后的完整链接集合。
|
||||
- 实测:`美国(包邮)…-DG001-单面印花` → `包邮 / 烫画 / 单面印花`;
|
||||
`美国(不包邮光板)…-JSA002-不打印` → `不包邮 / 不打印 / 光板`;
|
||||
`美国(不包邮)…-DG501-双面印花` → `不包邮 / 烫画 / 双面印花`。
|
||||
|
||||
**链接名称展示解析**:后台所有链接名展示位(左右树、族成员列表、配置/编辑弹窗、搜索候选)
|
||||
统一解析为「品名 型号」(如 `美国(包邮)180g纯棉T恤成人款-DG001-单面印花` →
|
||||
`180g纯棉T恤成人款 DG001`),悬停 tooltip 保留原始全名;搜索同时匹配原始名与解析名
|
||||
(`utils/origin-name.ts#cleanLinkName`)。
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ apps/api/
|
||||
│ ├── tag-groups/ # 标签分组 CRUD(受 JWT 保护,含批量排序)
|
||||
│ ├── positions/ # 坑位 CRUD(受 JWT 保护)
|
||||
│ ├── origin-goods/ # SDS 原始商品快照(只读分页 + 配置状态树,树叶子含族信息)
|
||||
│ ├── product-families/ # 产品族(SPU 层):CRUD / auto-group / 成员管理 / 自定义成员 / 价格覆盖 / 重算
|
||||
│ ├── product-families/ # 产品族(SPU 层):CRUD / auto-group / 成员管理 / 自定义成员 / 价格覆盖 / 重算 / 按链接名称派生标签(auto-tag-rules)
|
||||
│ ├── goods/ # 商品 CRUD + 批量优先级 + 批量创建
|
||||
│ ├── sync/ # SDS 同步:分类 / 商品 / 同步日志
|
||||
│ ├── public/ # 公开 API:分类树 / 国家 / 商品分页 / 商品详情
|
||||
|
||||
Reference in New Issue
Block a user