TARGETF4B2 PARTIALQA 0/5 VERIFIEDR05 · 6/21 PASS COMPLETEAdmin · 进入自己可管理项目的商家 owner 与员工

商家身份与店铺选择

先完成统一身份验证和项目授权,再带着稳定店铺上下文进入运营工作区

/merchant/sign-inpublic-booking-platform对照 CURRENT · booking-merchant-login →
R05 · KNIFE 6 / 21

商家身份与项目选择 · 页面级细化任务包

完成统一身份验证,确认服务端可管理项目,再建立不暴露 token 的商家工作区会话。

ENTRY

直接打开 `/merchant`、从 `/console` 迁移、店铺管理深链或 Auth return context;publishHash 只用于返回,不授予权限。

SUCCESS OUTPUT

服务端建立短时 MerchantSession,返回可管理项目清单、当前 project context 与安全 return receipt。

COMMAND MODEL

Auth OTP / active order-web session → ManagedProjectList → ProjectAuthorization → MerchantSession;前端不持久化 bearer token。

RESPONSIVE + A11Y

桌面双栏呈现身份价值与登录任务;390px 先登录、后项目选择,OTP 错误关联字段,切换账号后焦点回到身份入口。

TELEMETRY

merchant_signin_view · otp_request · auth_result · project_select · session_established;邮箱、OTP、token 与项目秘密不进埋点。

CURRENT SOURCE TRUTH6f3e62a
  • public-booking-platform 源码与 order.reits.tech EC2 immutable release 均为 6f3e62a
  • 当前 `/merchant` 是 43 行 HTML + 147 行 JS 的摘要门户,完整编辑与审核仍集中在 `/console` 的 219 行 HTML + 1,080 行 JS
  • 当前 CareDoor 项目 prj_129868b87ef6fd83 / tokyo-care-setagaya / JPY / Asia-Tokyo / publishHash 9b35721a9d59cef8
  • 当前 merchant-portal 只支持邮箱 OTP,并把 merchantPortalToken 写入 localStorage;console 另存 matrixOrderToken
IMPLEMENTATION GAPNOT PRODUCT UI
  • 受保护 cookie / BFF 会话尚未实现
  • 当前只有全局 owner/admin 或 ownerMemberId,没有项目成员角色清单
  • 目标 `/merchant/sign-in` 与独立项目选择路由尚不存在
当前 `/merchant`、`/console` 与七张目标路由分开记录;未通过 B3/B4 不能作为产品完成证据。
63-STATE PROGRAM / THIS SCREEN

七页分别改变身份、今日、审核、容量、目录、发布和治理边界

QA 0 / 5 VERIFIED
READY可以开始商家身份验证

身份方式、return context 与安全说明

MERCHANT-LOGIN-READY→ 发送邮箱验证码
LOADING正在验证身份并读取可管理项目

Auth challenge + ManagedProjectList

MERCHANT-LOGIN-LOAD→ 取消并返回
EMPTY账号下没有可管理项目

ManagedProjectList

MERCHANT-LOGIN-NO-PROJECT→ 申请项目权限
PARTIAL ERROR身份已验证,部分项目授权暂不可用

项目清单

MERCHANT-LOGIN-PROJECT-PARTIAL→ 重试项目授权
ERROR无法建立商家会话

Auth / session exchange

MERCHANT-LOGIN-AUTH-FAILED→ 重新验证身份
OFFLINE离线不能建立商家会话

登录入口

MERCHANT-LOGIN-OFFLINE→ 重新连接
FORBIDDEN账号没有该项目的管理权限

ProjectAuthorization

MERCHANT-LOGIN-PROJECT-DENY→ 选择其他项目
CONFIRM切换到世田谷 CareDoor 工作区?

ProjectContext

MERCHANT-LOGIN-PROJECT-CONFIRM→ 确认进入项目
SUCCESS商家会话已安全建立

MerchantSession receipt

MERCHANT-LOGIN-SESSION-READY→ 进入今日工作台
MERCHANT OPERATIONS BOUNDARY本刀只细化 developer.reits.tech 的商家目标 UI;不登录真实商家账号,不读取客户 PII,不批准/拒绝预约,不改价格、排班、店铺、私链或日历,不把七张目标路由冒充为当前产品事实。
UI STUDIOtarget-booking-merchant-login
Admin1440 × 900100%
100%
/merchant/sign-in
TARGET UI1440 × 900FIT 100%
REFERENCE VIEWPORT1440 × 900Desktop first · responsive
PRIMARY TASK继续统一登录主操作、权限与完成反馈必须同屏可验证
DATA CONTRACTAuthRequestready / loading / empty / error 使用同一 fixture
ACCESSIBILITYKeyboard + WCAG AA焦点顺序、可读名称、对比度进入 UI CI
VISUAL BASELINETARGET · 2026-07-17桌面/移动、浅色/错误态按稳定 Screen ID 留档

IMPLEMENTATION MAP

目标定义与下一轮逐页细化入口

当前处于 B1/B2:可以拆出架构、设计、交互和 QA 任务,但完成 D01–D12、通过 B3/B4 之前,不得宣称页面已经可以照稿实现。

01

页面区域

  • 商家品牌
  • 登录方式
  • 验证码挑战
  • 账号恢复
  • 项目选择
  • 角色/scope
  • 服务状态
  • 安全返回
02

用户动作

  • 继续统一登录
  • 验证 OTP
  • 选择店铺
  • 切换账号
  • 返回店铺
  • 进入工作台
03

必须状态

  • 登录入口就绪
  • 身份与项目加载
  • 没有可管理项目
  • 项目列表部分失败
  • Auth 服务失败
  • 离线禁止登录
  • 项目权限不足
  • 切换店铺确认
  • 商家会话已建立
04

数据契约

  • AuthRequest
  • OtpChallenge
  • MerchantSession
  • ManagedProjectList
  • ProjectAuthorization
  • ReturnContext
  • AuditEvent

TARGET MODULES

目标页面必须交付的模块

  1. 01店铺品牌与环境
  2. 02手机/邮箱/企业身份
  3. 03OTP 与限流
  4. 04可管理项目选择
  5. 05角色与权限摘要
  6. 06返回消费者页
  7. 07会话安全

PRODUCT ROUTE INDEX

预约平台 · 商家 的 21 个稳定 Screen ID

同一产品内的页面共享 token、导航和状态语言,但每个 Screen ID 保留自己的字段、数据契约和 QA 基线。

01
发现好店/
Web
02
店铺详情/shop/:publishHash
Web
03
三步预约/t/:publishHash
Web
04
订单与预约状态/booking-status
Web
05
商家工作台/console?t=:hash
Admin
06
移动发现入口/mini
Miniapp
07
官方介绍页/official
Web
08
安全与隐私/security
Web
09
商家登录/console?t=:hash
Admin
10
本地服务发现/
Web
11
店铺与服务详情/shop/:publishHash
Web
12
三步预约与提交/t/:publishHash
Web
13
我的预约与自助管理/booking-status
Web
14
Mini App 宿主预约/mini
Miniapp
15
商家身份与店铺选择/merchant/sign-in
Admin
16
商家今日工作台/merchant/:projectId/today
Admin
17
预约审核与决策/merchant/:projectId/bookings
Admin
18
排班与容量规划/merchant/:projectId/schedule
Admin
19
服务与价目目录/merchant/:projectId/services
Admin
20
店铺内容与发布/merchant/:projectId/storefront
Admin
21
店铺设置与渠道治理/merchant/:projectId/settings
Admin