10 KiB
商品 AI 编辑页:页面与交互
1. 页面定位
页面编辑一个父商品及其 SKU 集合。通用信息只维护一次;每个 SKU 是独立可售单元。单规格商品也显示一张默认 SKU 卡片,因而定价、媒体、货号与发布没有特殊分支。
采集箱商品本身不属于平台或门店。这里的“草稿”指 Atlas 内尚未或不再向平台提交的可编辑数据,并非 Ozon 后台草稿。用户从采集箱进入编辑时,ERP 使用页头当前平台(首期默认 Ozon),服务端取得或创建“商品 + 当前平台”的发布配置,预选该平台默认门店;用户可改选该平台的另一已授权门店。切换页头平台会进入另一套独立的平台发布配置:A 平台已上架不影响 B 平台的未上架状态。没有任何可用门店时停留在进入编辑的引导页,允许回采集箱但不能编辑平台属性、定价或发布。
页头:返回 · 商品标题 · 当前平台 · 目标门店 · 当前平台上架状态 · 来源
├─ 主要信息
│ ├─ 类目、标题、型号、品牌
│ └─ 默认包装重量与默认包装尺寸
├─ 产品属性
│ ├─ 主题标签、简介、采买地址与货源备注
│ └─ 当前平台/市场的商品级动态属性
├─ SKU 商品:卡片(默认)/ 紧凑列表
│ └─ N 个 SKU;维护货号、条形码、图片、价格、变体属性及可选包装覆盖
└─ 固定操作栏
├─ 左:AI 类目 · AI 标题/标签/描述 · AI 套图生成
└─ 右:取消并关闭 · 保存草稿 · 选择未上架 SKU 并首次上架
2. 保存和校验
页面以编辑草稿工作,不采用字段失焦即写库。保存草稿需原子提交父商品、SKU、属性和媒体顺序;存在未保存修改时关闭页面须二次确认。SKU 定价确认是例外:它会即时持久化该 SKU 的价格与定价快照。
采集进入采集箱时,商品型号和各 SKU 的目标平台**货号(Ozon offer_id)**默认都为空,不从来源标题、来源 SKU 或规格名称猜测生成。用户在编辑页填写:型号属于商品通用资料;货号属于当前平台下的每个 SKU。两者允许随草稿保存而暂时为空,但首次上架校验必须全部通过:商品型号非空,且每个待上架 SKU 的货号非空并在目标店铺内唯一。
上架状态是“当前平台 + 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 的流程尚未实现。完整规则见平台目录缓存刷新方案。
类目、标题、型号、品牌以及默认包装重量和默认包装尺寸固定放在「主要信息」区。SKU 默认继承父商品包装规格,仅在包装不同的情况下填写覆盖值;重量、尺寸可分别开启 SKU 覆盖编辑,但 SPU 默认值仍是未覆盖 SKU 的事实来源。发布适配器必须在生成每个 Ozon items[] 时解析有效包装规格,而不是要求草稿向每个 SKU 重复保存相同值。平台动态必填字段统一使用表单标准表现,在 Label 前显示红色 *;不追加「Ozon 必填」标签,也不在区块标题显示完成数量。更完整的目标交互、属性值表达、SKU 关联和发布校验改造见 ozon-dynamic-attributes-and-sku-form-plan.md。
3. SKU 卡片和列表
卡片默认展示:序号、SKU 名称、当前平台上架状态、最多 3 张图片缩略图(可切换为 5)、货号、条形码、采购价、售价、划线价、定价按钮、按 schema 展示的商品规格与 Ozon 变体属性。列表仅是紧凑视图,字段和数据完全相同。货号由用户填写,不自动复用来源 SKU;缺少货号的 SKU 可保存但不能被选择首次上架。SKU 包装规格为空时继承主要信息中的默认包装规格;只有该 SKU 包装不同才填写覆盖值。商品净重和商品尺寸不是 Ozon 固定物流字段,只在当前 schema 的对应属性为 SKU 级(is_aspect=true)时展示;商品级属性继续在 SPU 展示。首期不支持视频上传、编辑或发布;视频能力待 Ozon 对应接口和审核规则确定后再开启。
SKU 名称只用于展示;采集 SKU 用稳定 source_variant_key 关联,手工 SKU 用本地 UUID。规格字段 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。父商品规格与 SKU 有效规格均以后端读模型为准,SKU 的空覆盖字段按继承规则读取左侧父商品规格。
SKU 图片编辑弹窗左侧是该 SKU 的已选图片(排序/移除),右侧分组展示 AI 生图记录、采集主图、采集 SKU 图和采集详情图。商品级素材可被多个 SKU 选择;明确有稳定来源关联的 SKU 图只展示给对应 SKU。Ozon 首期每个 SKU 最多选择 15 张发布图片,第一张为主图,可拖动排序;平台适配器以自身限制驱动该上限。
已选图片悬浮时显示“编辑”菜单,至少包含“添加水印”。点击后在弹窗中选择一个工作空间水印模板,后台创建带水印的派生素材;原图和其他 SKU 的选择不被改写。用户确认后,以派生图替换该 SKU 当前图片位置,并可在同一弹窗撤销为原图。首期不在发布时自动加水印,也不因门店默认水印自动处理图片;后续再支持默认模板的预选、批量应用或自动应用。
首期素材规则:发布图片仅接受 JPG、PNG、WebP;单文件最大 20 MB,最短边低于 700 px 给出警告且不得作为主图,超过 10,000 px 的边长在上传时拒绝;建议 1:1 或 3:4,允许其他比例但在预览中提示裁切风险。采集候选素材可保留原始文件供编辑选择,实际发布时始终按目标平台的图片数、格式和可访问性校验。Ozon 发布图片必须是可由 Ozon 拉取的 HTTPS 地址。
AI 文案针对当前平台的商品信息生成候选标题、标签与简介,用户选择后写入草稿;首期不生成或编辑富内容。AI 套图由左侧抽屉承载,必须显式选择目标 SKU;尺寸图一 SKU 一任务,并保存实物规格快照。
AI 类目由用户主动触发:系统将采集标题、规格、参数、图片摘要等证据与当前平台可发布的类目树交给 AI,返回候选类目、置信度和简短依据,用户必须选择确认后才写入当前平台发布配置。来源为 Ozon 的商品优先保留采集到的 Ozon 类目,默认不自动调用 AI,但始终允许用户主动重新推荐;1688、淘宝、天猫等其他来源默认提供“AI 推荐类目”以提升上品速度。AI 不得直接自动落类目或跳过类目属性校验。