Files
atlas-seller-kit/docs/product/product-ai-editor.md
T

90 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 商品 AI 编辑页:页面与交互
## 1. 页面定位
页面编辑一个父商品及其 SKU 集合。通用信息只维护一次;每个 SKU 是独立可售单元。单规格商品也显示一张默认 SKU 卡片,因而定价、媒体、货号与发布没有特殊分支。
采集箱商品本身不属于平台或门店。这里的“草稿”指 Atlas 内尚未或不再向平台提交的可编辑数据,并非 Ozon 后台草稿。用户从采集箱进入编辑时,ERP 使用页头当前平台(首期默认 Ozon),服务端取得或创建“商品 + 当前平台”的发布配置,预选该平台默认门店;用户可改选该平台的另一已授权门店。切换页头平台会进入另一套独立的平台发布配置:A 平台已上架不影响 B 平台的未上架状态。没有任何可用门店时停留在进入编辑的引导页,允许回采集箱但不能编辑平台属性、定价或发布。
```text
页头:返回 · 商品标题 · 当前平台 · 目标门店 · 当前平台上架状态 · 来源
├─ 主要信息
│ ├─ 类目、中文商品名、俄文标题、型号、品牌
│ └─ 默认包装重量与默认包装尺寸
├─ 产品属性
│ ├─ 主题标签、简介、采买地址与货源备注
│ └─ 当前平台/市场的商品级动态属性
├─ SKU 商品:卡片(默认)/ 紧凑列表
│ └─ N 个 SKU;维护货号、条形码、图片、价格、变体属性、三项 SKU 文案及可选包装覆盖
└─ 固定操作栏
├─ 左:AI 填报 · AI 套图生成 · 图片任务
└─ 右:取消并关闭 · 保存草稿 · 选择未上架 SKU 并首次上架
```
## 2. 保存和校验
页面以编辑草稿工作,不采用字段失焦即写库。保存草稿需原子提交父商品、SKU、属性和媒体顺序;存在未保存修改时关闭页面须二次确认。SKU 定价确认是例外:它会即时持久化该 SKU 的价格与定价快照。
商品编辑页支持 Command + S(Mac)或 Ctrl + S(Windows/Linux)保存草稿,输入框内同样生效,沿用保存按钮的表单校验与结果提示,并拦截浏览器保存网页动作。页面加载、保存期间、输入法组合输入、按键持续重复以及未确认的弹窗内不触发草稿保存;离开编辑页后移除快捷键监听。
主要信息中的“中文商品名”用于 Atlas 内部识别;“俄文标题”默认在 SPU 通用,也可切换为按 SKU 设置。草稿保存允许标题留空;首次上架前按当前标题模式校验所需标题。
采集进入采集箱时,商品**型号**和各 SKU 的目标平台**货号(Ozon `offer_id`)**默认都为空。进入编辑页后,用户可手动填写或点击“AI 填报”生成并直接填入表单;生成货号不直接照搬来源 SKU。型号属于商品通用资料,货号属于当前平台下的每个 SKU。两者允许随草稿保存而暂时为空,但首次上架校验必须全部通过:商品型号非空,且每个待上架 SKU 的货号非空并在目标店铺内唯一。详见[AI 填报方案](./ai-autofill-plan.md)。
上架状态是“当前平台 + SKU”维度:`未上架`、`处理中`、`上架失败`、`已上架`。SPU 在当前平台的状态由未删除 SKU 汇总为 `未上架`、`已部分上架`、`已上架`。用户可勾选任意未上架 SKU 执行首次上架;已上架 SKU 不显示上架选择,也不发送更新请求。编辑已上架 SKU 时,保存按钮旁必须提示“仅保存 Atlas 草稿,不会更新 Ozon 商品”。
当前实现中,类目/商品类型树、类型属性和字典候选值均读取当前平台的共享参考目录,不再按目标门店复制;同平台切换门店不会清空或重新同步目录。平台参考源凭据仅由系统管理员配置,所有 Ozon 请求经 Worker 执行,浏览器和 API 进程都不直连 Ozon。
前端按平台 schema 渲染必填提示、字典选择、多值限制及变体属性。`is_aspect=true` 按 SKU 展示,其余属性按商品展示;品牌、型号、类型、主题标签、JSON 富内容和简介等已有编辑器字段严格按 Ozon 属性 ID 绑定,不在动态属性区重复出现。类型属性和字典默认 14 天内 fresh,14~21 天(含边界)stale 时继续返回旧缓存并低优先级刷新,严格超过 21 天或从未同步时创建高优先级任务、最多等待 5 秒,未完成则返回 `202` 并由前端轮询。类目树固定每 7 天自动同步,也可由系统管理员手动同步。
保存仍由服务端按平台 schema 与字典值复核。选择类目和属性与商品草稿同一次保存,`platform_type_id` 从平台类目记录取得;类目变更或 schema 下线后,失配属性保留为未映射草稿,不能自动进入发布请求。首次发布前已提供 `publish-preflights` 复用同一套目录新鲜度与本地校验逻辑;真正创建发布任务并调用 Ozon 的流程尚未实现。完整规则见[平台目录缓存刷新方案](../architecture/platform-catalog-cache-refresh-plan.md)。
类目、标题、型号、品牌以及默认包装重量和默认包装尺寸固定放在「主要信息」区。SKU 默认继承父商品包装规格,仅在包装不同的情况下填写覆盖值;重量、尺寸可分别开启 SKU 覆盖编辑,但 SPU 默认值仍是未覆盖 SKU 的事实来源。发布适配器必须在生成每个 Ozon `items[]` 时解析有效包装规格,而不是要求草稿向每个 SKU 重复保存相同值。平台动态必填字段统一使用表单标准表现,在 Label 前显示红色 `*`;不追加「Ozon 必填」标签,也不在区块标题显示完成数量。更完整的目标交互、属性值表达、SKU 关联和发布校验改造见 [`ozon-dynamic-attributes-and-sku-form-plan.md`](./ozon-dynamic-attributes-and-sku-form-plan.md)。
## 3. SKU 卡片和列表
卡片默认展示:序号、SKU 名称、当前平台上架状态、最多 3 张图片缩略图(可切换为 5)、货号、条形码、采购价、售价、划线价、定价按钮、按 schema 展示的商品规格与 Ozon 变体属性。列表仅是紧凑视图,字段和数据完全相同。货号可由用户填写或“AI 填报”生成,不直接复用来源 SKU;缺少货号的 SKU 可保存但不能被选择首次上架。SKU 包装规格为空时继承主要信息中的默认包装规格;只有该 SKU 包装不同才填写覆盖值。商品净重和商品尺寸不是 Ozon 固定物流字段,只在当前 schema 的对应属性为 SKU 级(`is_aspect=true`)时展示;商品级属性继续在 SPU 展示。首期不支持视频上传、编辑或发布;视频能力待 Ozon 对应接口和审核规则确定后再开启。
SKU 名称只用于展示,不是发布标题;采集 SKU 用稳定 `source_variant_key` 关联,手工 SKU 用本地 UUID。SKU 展开区提供发布标题、主题标签、产品描述;留空逐字段继承 SPU,手工输入或应用当前 SKU 的 AI 结果才覆盖该项。SPU 三项旁的加号只显示对应 SKU 输入框,不复制共用文案。规格字段 `null` 仅表示没有覆盖父商品默认值,绝不能据此判断是否单规格或缺少 SKU。
无论 SPU 或 SKU 在当前平台是否已上架,用户都可以新增 SKU 变体、复制任一既有 SKU 作为新变体、删除 SKU。复制出的 SKU 没有平台发布映射,始终从 `未上架` 开始。删除已上架 SKU 只从 Atlas 商品结构和当前平台的可发布 SKU 集合移除,**不会删除、下架或修改 Ozon 已创建的商品**;删除未上架 SKU 后若当前平台只剩已上架 SKU,SPU 状态变为 `已上架`。
删除 SKU 是商品结构的全局编辑,不会跨平台删除任何已创建的平台商品;其他平台下该 SKU 的发布状态和历史映射仍保留在审计记录中。各平台各自仅对当前未删除 SKU 计算 SPU 状态。
## 4. 定价弹窗
点击 SKU 的“定价”打开弹窗,显示该 SKU 合并后的包装物流规格,并允许调整采购价、期望加价率、贴单费、物流方式、划线折扣率和汇率。服务端计算预览、尺寸校验和告警;确认后保存不可变快照,并回填 SKU 销售价和划线价。划线价统一按 `划线价 = 销售价 ÷ (1 − 划线折扣率)` 计算,不使用或兼容“划线价倍数”。
包装规格缺失、口径待确认、数值无效或不符合物流限制时不得确认。实物规格不进入物流计算;它缺失时仅禁用尺寸图。
## 5. 媒体与 AI
AI 输入由两部分组成:一是用户在右侧“采集的商品信息”中整理并保存的来源标题、描述、品牌、价格、规格参数和来源类目;二是用户在左侧商品与 SKU 表单中保存的实物规格、包装规格和规格轴。右侧实际展示“最新规范化采集值 + 用户明确覆盖字段”的有效结果:没有编辑过的字段随复采更新,编辑过的字段保留用户值,并在来源变化时提供对比、逐项恢复和全部采用最新。原始采集证据不因编辑而改变。
商品文案、类目等 AI 填报动作前须先保存草稿,服务端再从当前 revision 组装输入;客户端不得把未保存的尺寸或自行解析的来源 JSON 直接提交给这类 AI 任务。图片「AI 编辑」是独立素材任务,只引用已物化的正式图片素材 ID,尺寸标注参数由用户在单张编辑抽屉中明确填写,不修改商品规格。父商品规格与 SKU 有效规格均以后端读模型为准,SKU 的空覆盖字段按继承规则读取左侧父商品规格。
SKU 图片选择弹窗左侧是该 SKU 的已选图片(排序/移除),右侧依次展示 AI 生图记录、图片处理记录、采集图片、网络图片和上传图片;采集图片内按主图、SKU 图、详情图分组。商品级素材可被多个 SKU 选择;明确有稳定来源关联的 SKU 图只展示给对应 SKU。Ozon 首期每个 SKU 最多选择 30 张发布图片,第一张为主图,可拖动排序;平台适配器以自身限制驱动该上限。
右侧「采集的商品信息」中的采集图片也提供「编辑」菜单,包含 AI 编辑、添加水印、一键 3:4 和下载。AI 编辑复用单张编辑抽屉,生成结果进入当前商品的 AI 生图记录;水印和 3:4 处理复用商品级派生任务,成功后在采集区显示处理图,重开页面时按该商品的处理记录恢复最新结果。原始采集证据与原素材保持不变;处理图可以在 SKU 图片选择弹窗的「图片处理记录」中重新选用。
单张图片菜单和左侧批量操作中的「一键 3:4」现使用异步素材派生任务:采集候选图先转存,Worker 对正式素材等比缩放,留白从对应边缘像素平滑过渡到该侧的平均底色,生成 1200×1600 JPG 新素材;原图保留。处理成功后在弹窗中替换对应已选位置,失败项保持原样。弹窗确认只回填当前表单,页面保存后才持久化选图。批量翻译仍待开发。
图片「编辑 → AI 编辑」打开标题为「AI编辑」的单张编辑抽屉,主图固定,可选最多两张辅助图。用户可设置编辑要求、图中文字翻译、背景、五种视觉风格、尺寸标注和画面比例;抽屉不展示生成方式,提交时固定使用 `edit` 模式。Worker 调用 Pcore `gpt-image-2` 异步接口;普通编辑参照旧项目以 JSON `images[].image_url` 发送原始图片的 data URI,仅扩图发送预处理后的 PNG 画布和蒙版 data URI。生成图独立保存。提交和生图期间都可关闭抽屉,任务在后台继续,可从底部操作栏的图片任务入口查看;失败任务同时展示通用提示和已取得的 Pcore 原始错误内容。用户预览后点击「添加到当前 SKU」,结果插在原图后方;已完成结果也保留在当前商品的「AI 生图记录」,可在重开弹窗后选择。选图弹窗确认和页面保存仍分别控制表单回填与持久化。
商品编辑页底部固定操作栏在「AI 套图生成」后展示「图片任务」入口;有运行中任务时显示「任务处理中」和数量。展开后按进行中和最近任务显示当前商品的图片 AI 任务、状态、完成数、失败信息和结果预览,支持取消单张及套图的未完成图片。提交后立即刷新,进行中每 3 秒刷新,其余时间低频刷新。套图作为整套任务展示,内部逐张任务不重复出现在列表。
2026-10-03:AI 套图使用从右侧滑出的三列抽屉:商品资料、生图策略、生成结果。资料含目标 SKU、最多 8 张底图(建议 3–6)、商品名/颜色/实物尺寸重量、采集信息及核心卖点文本域。选图来源顺序为采集图片、AI 生图记录、图片处理记录、上传图片、网络图片;底图首张决定商品主体,每张生成图使用最多 3 张相关参考图。策略保留白底、场景、卖点、其他四类,默认 4 张(1/1/2/0):白底主图、场景展示图、核心卖点图、细节特写图各 1 张,展开后可逐张修改类型、主题、描述、依据或删除;智能规划使用 DeepSeek,按当前总张数预算和 SKU 资料重新分配用途,不强制凑齐图类;完成后全部展开供确认,不自动生图。五种视觉风格放在策略列,可修改描述并恢复默认;比例为 3:4、1:1、4:3,文字语言为俄/中/英/阿拉伯语。尺寸图只使用有依据的实物尺寸;默认方案不含尺寸图,可手动添加或由智能规划选择。Pcore 逐张生成,可关闭后后台运行、保留部分成功结果、取消及重试未完成项。结果加入目标 SKU 只回填表单,保存商品后持久化。契约见 [商品 AI 套图](../api/product-image-suites.md)。
打开「SKU 图片选择」时静默读取当前工作空间默认水印。点击单张或批量「添加水印」时,有默认模板便直接生成带水印的派生素材;没有默认模板或读取失败才打开每行最多三张卡片的选模板弹窗,水印管理在新标签页打开。原图和其他 SKU 的选择不被改写;生成结果替换当前图片卡片并进入当前商品的「图片处理记录」,可在同一弹窗撤销。已选图片只替换原位置;未选候选图不自动加入左侧已选区,即使已选数量达到上限仍可处理。撤销只恢复本次卡片替换,不删除处理记录。弹窗确认只更新编辑表单,页面保存后才持久化选图;发布时不会自动加水印。
首期素材规则:发布图片仅接受 JPG、PNG、WebP;单文件最大 20 MB,最短边低于 700 px 给出警告且不得作为主图,超过 10,000 px 的边长在上传时拒绝;建议 1:1 或 3:4,允许其他比例但在预览中提示裁切风险。采集候选素材可保留原始文件供编辑选择,实际发布时始终按目标平台的图片数、格式和可访问性校验。Ozon 发布图片必须是可由 Ozon 拉取的 HTTPS 地址。
“AI 填报”针对当前平台一次生成类目、型号、SKU 货号、证据充分的包装规格以及 **SPU 共用的**标题、标签与简介,并在任务完成后直接填入当前页面表单,等待用户保存。SKU 文案默认继承 SPU;用户可从当前 SKU 的 AI 图标单独生成并在弹窗明确应用。SPU 和每个 SKU 的三项字段旁均有「中文对照」图标,打开同一个弹窗查看当前作用域左俄右中的三项对照;继承字段标明来源,俄文被手改后该字段对照标为待更新。首期不生成或编辑富内容。AI 套图由右侧三列抽屉承载,必须显式选择目标 SKU;每套任务绑定一个 SKU,并保存资料与实物规格快照。
类目推荐由“AI 填报”主动触发:系统将采集证据与当前平台可发布的类目候选交给 AI。Ozon 来源优先沿用现有确定性匹配;1688、淘宝、天猫等来源由 AI 评估目标类目。服务端验证候选 UUID 后可将明确结果填入**未保存的页面表单**;用户点击保存后才写入平台发布配置。歧义结果留给用户选择。AI 不得跳过类目属性校验;本期 AI 填报不处理动态类目属性。
### 2026-10-04 主题标签格式
SPU 和 SKU 发布主题标签以 `#` 开头,正文只允许字母、数字和下划线,多词用下划线连接;最多 30 个标签,每个含 `#` 最多 30 字符。编辑页用空格拆分不同标签,显示具体格式问题;上架按所选 SKU 的有效标签校验,草稿允许保留原值继续修改。AI 全局填报和 SKU 文案采用同一格式规则,回填前整理缺少 `#`、词间空格或连字符,过滤无法合规的结果;俄文和中文对照保持成对。多个标签发布时用空格拼在 Ozon 属性 `23171` 的同一个值里。