11 KiB
账户、门店管理与水印管理需求
状态:讨论中。本文只定义产品需求、页面与状态口径;不预设数据库表、接口路径或技术栈。
1. 本期范围与导航
用户登录后显示左侧一级菜单:在线商品、采集箱、店铺管理、水印管理、定价工具。
本轮细化账户、店铺管理和水印管理。在线商品、采集箱、定价工具只确定入口,功能在后续单独讨论。
默认产品形态是一个账户可管理多个店铺;店铺目前先接入 Ozon,但不能把页面或领域名称永久写死为 Ozon,以便后续增加其他平台。
2. 账户注册与登录
2.1 注册
注册页字段只有邮箱和密码,均为必填:
| 字段 | 规则 |
|---|---|
| 邮箱 | 去除首尾空格后以不区分大小写的形式保存;同一邮箱只能注册一个账户。首期仅校验基本邮箱格式,不发送验证邮件。 |
| 密码 | 由后续安全设计确定最终长度与复杂度;页面需要二次输入密码并提示规则。密码只可安全散列存储,绝不回显。 |
首期注册成功即可登录使用。邮箱验证和注册/登录风控不在首期流程执行,但数据模型预留 email_verified_at;后续可增加邮箱验证。手机号、短信验证、短信登录也不在首期范围,未来通过新增可选手机号凭据和验证流程扩展,不影响邮箱账户主流程。
2.2 登录与会话
用户用邮箱和密码登录。登录成功进入默认工作空间与首页;若后续一个账户拥有多个工作空间,再增加切换入口。首期需要提供退出登录;忘记密码、短信登录、第三方登录、设备管理和多因素认证均不在本轮范围。
2.3 全局平台与当前店铺上下文
平台和当前店铺是全站工作上下文,不在每个业务页面重复选择。页头在用户信息左侧放置“平台选择器”;用户切换平台后,菜单、类目、物流商、佣金规则和页面数据均切换到该平台范围。
在平台下有多个已授权店铺时,系统同时使用该平台的默认店铺作为“当前店铺”;后续可在同一页头区域增加店铺切换。新用户进入一个平台时优先选中该平台默认店铺。定价方案、商品和上架任务均从此全局上下文读取平台与店铺,避免表单中出现相互矛盾的平台选择。
3. 店铺管理
3.1 列表页面
入口为“店铺管理”。页面左上方有“添加店铺授权”按钮;列表按添加时间倒序,支持空状态。字段如下:
| 列 | 展示/来源 | 说明 |
|---|---|---|
| 序号 | 当前列表序号 | 仅是 UI 序号,不作为店铺标识。 |
| 店铺名称 | 用户填写 | 允许编辑,不能为空。 |
| 店铺 Client ID | 用户填写 | Ozon Client-Id;可完整显示,但不应把 API Key 放在列表或详情中。 |
| 密钥过期时间 | 平台可提供时同步 | 现有 Ozon Seller API 资料仅说明 Api-Key 由卖家后台生成、只显示一次,未发现可读取密钥过期时间的接口。因此首期展示 —;同时建议在详情/编辑页显示“最近验证时间”和“凭据验证状态”。不能用本系统添加时间推算到期。 |
| 商品限额 | 平台可提供时同步 | 指一家门店可铺货的商品数量上限。现有资料未确认 Ozon 可返回该配额;首期显示 —,不得把当前商品数量误作限额。 |
| 货币类型 | 用户选择 | 首期提供人民币 CNY 和俄罗斯卢布 RUB;其他币种由后台配置后才显示。一个店铺只有一个默认结算/计价币种。 |
| 默认店铺 | 系统状态 | 每个工作空间最多一个默认店铺;设为默认会自动取消原默认店铺。 |
| 仓库数量 | 平台同步 | Ozon 可通过 POST /v1/warehouse/list 获取仓库数组,列表显示最近一次成功同步的数量;未同步、凭据失效或请求失败时显示 — 并保留最近同步时间。 |
| Cookie 状态 | 预留字段 | Ozon 商品发布使用 Client-Id + Api-Key 的 Seller API 鉴权,不需要浏览器 Cookie。因此首期此列保持空白;只有未来接入网页自动化等 Seller API 覆盖不到的能力,才增加 Cookie 授权、加密保存、失效检测与更新入口。 |
| 状态 | 系统状态 | 验证中、正常、凭据失效、同步异常、已停用。添加/更新凭据后先验证再置为正常。 |
| 绑定水印 | 关联状态 | 显示已绑定的水印模板名称,未绑定时显示“未绑定”。 |
| 添加时间 | 系统时间 | 显示店铺创建时间。 |
| 操作 | 用户操作 | 绑定水印、编辑、删除。删除必须二次确认,首期建议软删除:不再出现在默认列表,但保留关联商品和操作审计。默认店铺删除前必须先指定另一店铺为默认,或在没有其他店铺时允许默认店铺为空。 |
“仓库数量”的来源已经在现有 Ozon 资料中确认。密钥过期时间和商品限额如果无法由平台获得,统一展示 —,不推算、不猜测;Cookie 不是商品发布所需的 Seller API 凭据,首期保持空白。
3.2 添加店铺授权
点击“添加店铺授权”弹出表单,字段顺序固定如下:
| 字段 | 必填 | 规则 |
|---|---|---|
| 店铺名称 | 是 | 用户自定义名称。 |
| Client ID | 是 | Ozon Client-Id。 |
| API 密钥 | 是 | 仅提交一次给服务端验证和加密保存;保存后永不在 UI 或接口响应中返回明文。 |
| 货币类型 | 是 | 首期仅 CNY、RUB;由可配置币种清单驱动,默认建议 RUB。 |
| 是否默认店铺 | 否 | 新账户的首家店铺强制成为默认;其他店铺由勾选决定。 |
| 备注 | 否 | 仅供账户内管理,不对平台发送。 |
提交后系统必须用该凭据调用一个低风险 Ozon API 进行校验,并拉取仓库列表;验证失败时不得把店铺标为正常,错误提示不能包含 API Key。首期先按 Ozon Client-Id + Api-Key 接入,未来其他平台在同一“添加店铺授权”入口内按平台显示各自表单。
3.3 绑定水印
点击列表操作“绑定水印”弹出对话框:
- 店铺名称:只读,不可修改。
- 水印:下拉列表,包含当前账户可用的水印模板,也可以选择“暂不绑定”。
- 确认后,该店铺保存一个推荐水印模板;已有图片不会被自动重写。首期它不在发布时自动处理商品图片,用户须在商品编辑页对具体图片的“编辑 → 添加水印”中主动选择模板并生成派生图。
一个店铺首期只可绑定一个推荐水印;同一水印模板可以绑定给多个店铺。后期可将它用作图片弹窗的默认预选、批量添加或自动添加策略,但这些自动行为不属于首期。
3.4 编辑与删除
编辑复用添加表单,但 API Key 默认不显示;用户只有重新输入新 Key 时才更新凭据并触发验证。删除只处理本系统的店铺连接,不会删除 Ozon 平台店铺、商品或仓库。
4. 水印管理
4.1 列表页面
页面左上方有“添加水印模板”按钮。列表按创建时间倒序,列为:序号、水印名称、水印类型、水印内容、水印位置、创建时间、操作。
| 列 | 说明 |
|---|---|
| 水印名称 | 模板名称,在当前账户内唯一。 |
| 水印类型 | 文字水印 或 图片水印。 |
| 水印内容 | 文字水印展示文字内容;图片水印展示缩略图/文件名,不显示原始存储路径。 |
| 水印位置 | 九宫格位置,以清晰中文名展示,如“右下”。 |
| 操作 | 查看效果、编辑、删除。 |
删除已被店铺绑定的模板时,必须二次确认并说明影响;确认删除后应解除所有店铺绑定,而不是让任务继续引用一个已删除的模板。已生成的历史图片不受影响。
4.2 添加/编辑水印模板
点击“添加水印模板”打开弹窗。先选择水印类型,表单随类型切换;编辑时保留原类型和参数,并支持更换图片或文字。模板名称与水印类型始终必填。
共同字段:
| 字段 | 规则 |
|---|---|
| 模板名称 | 必填;当前账户内唯一。 |
| 水印类型 | 必填,文字或图片。切换类型时需确认,因为原类型专属字段会被清空。 |
| 不透明度 | 使用 Ant Design Slider;取值 0%–100%,预览同步更新。 |
| 水印位置 | 九宫格单选:左上、上中、右上、左中、居中、右中、左下、下中、右下。 |
| 预览效果 | 基于固定演示底图实时渲染位置、缩放和透明度;首期仅预览,不写入商品图。 |
图片水印专属字段:
| 字段 | 必填 | 规则 |
|---|---|---|
| 上传图片 | 是 | 上传 PNG/JPG/WebP;透明底 PNG 是推荐格式。具体大小、像素与文件大小限制由媒体模块确定。 |
| 图片缩放 | 是 | 使用 Ant Design Slider;首期建议取值 10%–200%,表示相对演示底图短边的比例。 |
文字水印专属字段:
| 字段 | 必填 | 规则 |
|---|---|---|
| 文字内容 | 是 | 允许的最大长度与禁用字符由媒体模块确定。 |
| 字体 | 是 | 由服务端返回的、已随渲染服务部署的字体清单驱动,不能直接读取浏览器或开发机字体。 |
| 字体大小 | 是 | 12px–60px。 |
“查看效果”使用模板当前配置和固定演示底图打开预览。
4.3 商品编辑时主动加水印规则
用户在商品编辑页的已选图片上悬浮,点击“编辑 → 添加水印”,在弹窗选择一个工作空间水印模板。确认后系统对这张图片生成一份带水印的派生图,并以派生图替换此 SKU 当前图片位置。规则如下:
- 商品级候选图片与每个 SKU 已选图片都可处理;最终仅提交用户明确选中的图片集合。
- 原始图片不被改写;水印处理产物是独立、可追溯的派生素材,用户可在编辑弹窗恢复使用原图。
- 派生任务固化水印模板版本、位置、缩放/字体和不透明度;模板后续编辑不影响已生成的派生图。
- 首期不在上架任务中自动加水印,也不允许发布时临时替换;后续另行支持绑定水印的默认预选、批量添加或自动添加。
5. 本轮待确认事项
- 商品限额的 Ozon 数据来源与刷新频率仍待平台接口/真实店铺联调确认;在此之前固定显示
—。 - 账户是否从首期就允许多人共享同一工作空间/协作店铺?如果不做,首期仍按“一个账户一个工作空间”使用,但架构会保留扩展空间。
- 后续“推荐水印”是仅在图片弹窗中预选,还是支持批量/自动生成派生图?
6. 非功能性约束
- API Key、Cookie、密码都属于高敏感信息:禁止日志记录、客户端缓存、列表返回和明文回显。
- 所有店铺、水印、素材与后续商品数据必须按账户/工作空间隔离。
- 凭据验证、仓库同步、图片上传和水印渲染可以失败或耗时,页面应展示最后一次状态与可重试入口,不能长时间阻塞表单提交。