# 商品 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 发布仍须重新做一次服务器端校验。