93 lines
6.6 KiB
Markdown
93 lines
6.6 KiB
Markdown
# 商品 AI 编辑页设计
|
||
|
||
> 状态:需求设计,尚未开发。
|
||
|
||
## 1. 路由与页面定位
|
||
|
||
建议以 `/product/:id` 作为新页面路由,直接替换旧商品编辑页,从而保留现有列表、链接和深链兼容性;页面标题为「商品 AI 编辑」。旧页面组件移除前先完成数据迁移和路由切换。`/trial/:id` 不再承接新功能,完成迁移后引导用户使用新页。
|
||
|
||
页面编辑的是一个父商品和其 SKU 集合。它不是按 SKU 复制的多张商品表单:通用信息只维护一次,SKU 卡片只维护可售单元差异。**单规格商品也创建并展示一张默认 SKU 卡片**,因此所有商品都用相同的定价、素材、货号和发布流程。
|
||
|
||
## 2. 页面结构
|
||
|
||
```text
|
||
页头:返回 · 商品中文名 / 俄文标题 · 草稿状态 · 来源链接
|
||
├─ 商品通用信息
|
||
│ ├─ 类目、标题、品牌、型号、主题标签、简介、JSON 富内容
|
||
│ ├─ 条形码、采买地址、货源备注
|
||
│ └─ 类目属性(由当前 Ozon 类目动态渲染)
|
||
├─ SKU 商品
|
||
│ ├─ 显示模式:卡片(默认) / 紧凑列表
|
||
│ ├─ SKU 卡片 × N
|
||
│ └─ 新增、复制、停用、删除 SKU
|
||
└─ 固定操作栏
|
||
├─ 左:一键生成标题/标签/描述 · AI 套图生成
|
||
└─ 右:取消并关闭 · 保存草稿 · 上架至 Ozon(后续)
|
||
```
|
||
|
||
页面不采用现有 onBlur 即写库模式。页面保存一个编辑草稿;「保存草稿」以一个事务提交父商品、变更的 SKU、属性和素材顺序。关闭存在未保存改动时提示确认。定价确认是例外:确认后立刻写入该 SKU 的价格和定价快照,同时在页面草稿中同步结果。
|
||
|
||
## 3. 通用信息区
|
||
|
||
以下字段属于父商品,全部 SKU 共享:类目、标题、品牌、型号、主题标签、简介、JSON 富内容、条形码、采买地址、货源备注,以及后续增加的商品级字段。
|
||
|
||
- 标题应保存中文采集标题和可编辑的俄文发布标题;AI 生成后先填入编辑草稿,由用户检查后随“保存草稿”持久化。
|
||
- 类目变更会刷新该类目的 Ozon 属性 schema。已填写但不再属于新类目的属性保留为未映射草稿,不自动带到发布 payload。
|
||
- 类目属性不硬编码到前端。前端按后端返回的 Ozon schema 显示必填、字典、数值、多值和变体属性提示:`is_aspect=true` 默认展示在 SKU 属性区,其他属性默认展示在通用区。
|
||
- `is_aspect` 是 Ozon 的默认归属依据,不是不可推翻的业务限制。比如容量在某类目不是 `is_aspect`,但采购规格实际按容量拆分时,用户可将它标记为 SKU 属性;保存后该属性在每个 SKU 上独立编辑和发布。
|
||
- 「JSON 富内容」保存为经过 JSON 校验的结构化值,而不是一段不可验证文本。
|
||
|
||
## 4. SKU 区
|
||
|
||
### 4.1 默认卡片,兼顾紧凑列表
|
||
|
||
默认使用卡片,方便图片、视频和多组规格编辑;切换到紧凑列表时只改变展示,不改变编辑数据。列表列为:序号、SKU 名称、图片缩略图、视频封面、视频、货号、采购价、售价、划线价、包装规格、实物规格、商品颜色、颜色名称、状态和操作。
|
||
|
||
卡片显示:
|
||
|
||
- 头部:序号、SKU 名称、启用状态、复制/删除;
|
||
- 媒体:最多展示 3 张缩略图,可在偏好中改为 5 张;视频封面与视频状态单独展示;
|
||
- 销售:货号、采购价、售价、划线价,以及「定价」按钮;
|
||
- 规格:包装物流(长宽高、包装毛重)和实物(长宽高、净重)两个明确区块;
|
||
- 变体属性:商品颜色、颜色名称以及当前类目所有 `is_aspect=true` 的属性。
|
||
|
||
SKU 名称是展示名,不可作为同步键。每项始终保存来源的稳定 SKU 标识;没有来源标识的手工 SKU 由本地 UUID 标识。SKU 的存在不依赖字段是否已填写:规格字段的空值只代表“未覆盖父商品默认值”,不代表单规格商品或缺少 SKU。
|
||
|
||
### 4.2 定价弹窗
|
||
|
||
点击某一 SKU 的「定价」后打开弹窗,默认读取并显示该 SKU 的 **有效包装物流规格**(SKU 覆盖值优先,再读父商品默认值)。弹窗允许修改采购价、利润率、贴单费、物流等级、划线价倍数、汇率和包装规格;不显示为常驻结果卡。
|
||
|
||
服务端计算并返回物流校验、价格建议、人民币/卢布结果。用户点击“确认定价”后:
|
||
|
||
1. 保存本次输入和有效包装规格快照;
|
||
2. 保存计算结果和计算时间;
|
||
3. 将卢布销售价回填 SKU `selling_price`,划线价回填 `old_price`;
|
||
4. 若包装规格缺失、待确认或尺寸校验失败,则不得确认。
|
||
|
||
实物规格绝不进入物流计算。若实物规格缺失,定价仍可完成;但该 SKU 的尺寸图按钮不可用。
|
||
|
||
### 4.3 SKU 图片编辑弹窗
|
||
|
||
点击 SKU 的图片区域打开素材编辑弹窗:
|
||
|
||
```text
|
||
左侧:该 SKU 已选图片(可排序、删除;限制由发布规则校验)
|
||
右侧:AI 生图记录 | 采集主图 | 采集 SKU 图 | 采集详情图
|
||
```
|
||
|
||
用户从右侧候选素材选择后加入左侧,完成后保存该 SKU 的选图顺序。采集主图和详情图是商品级候选池,可被多个 SKU 选择;采集到且有稳定 SKU 归属的 SKU 图默认只出现在对应 SKU 的候选池。AI 生成结果必须记录生成上下文所绑定的 SKU,不能只凭显示名称匹配。
|
||
|
||
视频封面和视频沿用相同的“候选资产 + SKU 已选媒体”机制,但不与图片混排。发布时按 Ozon 支持能力再确定其序列化方式。
|
||
|
||
## 5. AI 操作
|
||
|
||
- 「一键生成标题、标签、描述等信息」只针对父商品;服务端返回按字段区分的候选内容和依据,前端将选中的结果填入草稿。
|
||
- 「AI 套图生成」从左侧抽屉展开。抽屉以现有试算页套图规划、风格、要求、模型、任务进度和结果为基线,但需要显式选择目标 SKU;尺寸图任务必须一 SKU 一任务并固化实物规格快照。
|
||
- AI 生成不得覆盖用户已编辑字段或已选图片。覆盖只能由用户在结果应用时显式确认。
|
||
|
||
## 6. 编辑与校验状态
|
||
|
||
SKU 卡片状态建议显示为:`草稿`、`待补全`、`可定价`、`已定价`、`可上架`、`已停用`。其中“可上架”仅表示本地校验通过,不代表已调用 Ozon。
|
||
|
||
本地“可上架”最低条件:父商品类目、俄文标题、简介、必填通用/类目属性齐全;每个启用 SKU 有唯一货号、有效售价、有效包装物流规格、所需图片和 SKU 必填属性。实际 Ozon 发布仍须重新做一次服务器端校验。
|