> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 12. Store Setup

Store Setup 用于接入 RingCentral 账号、建立门店、分配电话线路，以及维护每家门店的员工和经营配置。从总览侧栏点击 **Store Setup** 打开，页面地址为 `/setup`。

本页管理自己接入的账号和自己名下的门店。别人分享的门店不在这里列出；查看自己可访问的门店用 [Account Settings → Store Access](/funding-strategy/02-产品说明书/11-account-settings.md)，分配团队访问权限用 [Access Management](/funding-strategy/02-产品说明书/13-access-management.md)。

## 1 页面布局与操作入口

页面按“先选账号，再管理这个账号下的门店”组织。桌面宽度下左侧为账号列表，右侧为当前账号的管理区。

| 功能模块                   | 页面位置        | 用途                          |
| ---------------------- | ----------- | --------------------------- |
| RingCentral accounts   | 左侧列表        | 切换已接入的电话账号；底部 + Add 接入另一个账号 |
| 账号标题与操作                | 右侧顶部        | 查看当前账号名称、改名或删除连接            |
| 账号概览                   | 标题下方四张卡片    | 查看主号、门店启停数量、号码分配数量和同步时间     |
| Stores                 | 概览下方第一个页签   | 查看门店卡片，启用、停用、展开详情或编辑门店      |
| Unassigned phone lines | 第二个页签       | 将尚未分配的号码关联到门店               |
| Add another store      | Stores 区域底部 | 在当前账号下新建门店                  |
| Edit                   | 门店卡片铅笔打开的弹窗 | 修改门店资料、管理员工，以及配置已激活门店的经营参数  |

还没有可用连接时，页面显示 **Connect RingCentral**；选中的连接下尚无门店时，右侧显示 **Set up your stores** 建店引导，而不是门店页签。

## 2 RingCentral accounts：账号列表与接入

### 2.1 账号列表

每行从左到右显示序号、账号名称和门店数量。当前选中的账号以浅灰背景和加粗名称突出；点击另一行，右侧切换到该账号，并回到 Stores 页签。

右侧的 `N stores` **只统计已激活门店**。截图中的 Orange Theory Fitness - Totowa 显示 `0 stores`，但右侧仍有一家 Inactive 的 Totowa 门店，两处数字并不矛盾。

账号名称是连接的显示名，用于区分不同 RingCentral 账号；它与下方门店名称分别维护。

### 2.2 接入与命名

| 操作                   | 结果                                   |
| -------------------- | ------------------------------------ |
| Connect RingCentral  | 首次接入时进入 RingCentral 授权流程，完成后返回 Setup |
| 左栏底部 + Add           | 再接入一个 RingCentral 账号                 |
| Name your connection | 新连接接入后，确认或修改从 RingCentral 读取的公司名称    |
| Skip                 | 保留检测到的名称                             |
| Confirm              | 保存输入的连接名称                            |
| 重新授权已接入的账号           | 刷新授权并提示已连接，不重复弹出新连接命名框               |

连接名称最多 100 字。只有处于有效激活状态的连接会被本页列出；连接失效后，需要恢复授权才能重新看到对应的管理内容。

## 3 账号详情：标题操作与概览

### 3.1 账号标题栏

标题显示当前选中的 RingCentral 账号名称。名称旁的铅笔打开 **Rename connection**；右上角垃圾桶打开 **Delete RingCentral connection?** 确认框。

修改连接名称只改变系统内的显示名。删除连接会检查其下所有门店：仍有绑定号码、号码分配历史或业务记录时会被拒绝。符合删除条件时，连接下的空门店及相关配置、同步号码元数据一并移除。

### 3.2 四张概览卡片

| 卡片          | 显示内容                              | 如何理解                                                      |
| ----------- | --------------------------------- | --------------------------------------------------------- |
| Main number | RingCentral 连接的主号码                | 用于识别当前电话账号；不是每家门店号码的完整清单                                  |
| Stores      | Active 和 Inactive 门店数量            | 同时展示已启用与已停用门店                                             |
| Phone lines | Assigned 和 Unassigned 号码数量        | Assigned 汇总该连接下门店已绑定的号码；Unassigned 为发现后尚未分配的号码，发现未完成时显示 — |
| Last sync   | 同步状态图标与最近同步日期；无记录时显示 Never synced | 当前实现读取 Setup 返回的整体同步时间，不是单独按选中账号统计，也不代表页面上的全部数据刚刚完成同步     |

截图中的 `0 Active / 1 Inactive`、`6 Assigned / 0 Unassigned` 表示：当前账号下有一家停用门店，六条号码已分配，没有待分配号码。这些是截图示例，并非固定配置。

## 4 Stores：门店列表与卡片操作

### 4.1 页签与门店卡片

**Stores** 的数量角标包含已激活和停用门店，因此可能大于左侧账号行里的门店数量。每家门店一张卡片，左侧显示序号、门店图标和名称，右侧集中放置操作控件。

| 控件（从左到右）             | 功能           | 操作结果                                              |
| -------------------- | ------------ | ------------------------------------------------- |
| Active / Inactive 开关 | 启用或停用门店      | 启用后进入正常门店工作入口；停用后从正常门店选择列表移除，历史数据保留，在 Setup 中仍可管理 |
| 双箭头                  | 展开 / 收起门店摘要  | 查看号码数和在职员工数；已激活门店还显示营业时间摘要与时区                     |
| 铅笔                   | Edit store   | 打开门店编辑弹窗                                          |
| 垃圾桶                  | Delete store | 号码数为零时才可点击；点击后仍需确认并通过后端历史记录检查                     |

**停用不等于删除。** 截图中的 Totowa 虽然处于 Inactive，仍保留六条已分配号码，因此删除按钮呈禁用状态。已有历史业务的门店应通过停用保留记录。

### 4.2 展开后的摘要

| 项目              | 含义                                                       |
| --------------- | -------------------------------------------------------- |
| Phone lines     | 当前绑定的号码数量                                                |
| Staff           | 在职员工数量，不包含已停用员工                                          |
| Operating hours | 已激活门店的营业安排摘要；未配置显示 Not configured，整周休息显示 Closed all week |
| Time zone       | 已激活门店设置的时区                                               |

展开摘要用于快速核对配置；修改内容仍需点击铅笔进入 Edit。

### 4.3 删除门店

有号码时，删除按钮提示先移走或解除号码。号码数为零仅代表按钮可以点击：后端还会检查号码分配历史，以及通话、短信、任务、联系人、线索、任务建议和时间线记录。存在这些记录时仍不能删除。

删除通过后，会同时移除这家空门店的设置、成员、员工和营业时间。右侧底部 **+ Add another store** 用于新增门店，具体见第 7 节。

## 5 Unassigned phone lines：未分配号码

### 5.1 号码列表与分配

这个页签列出当前 RingCentral 账号已发现、但尚未关联到该账号下任何门店的号码。页签角标与上方 Phone lines 的 Unassigned 数量一致。

每行显示电话号码、分机名称和号码类型，例如 MAIN、DIRECT、TOLLFREE。点击 **Link to store**，在可搜索的门店列表中选择目标门店；候选包括当前账号下的已激活和停用门店。成功后提示已分配到对应门店，该号码离开未分配列表。

号码分配决定这条电话线路关联哪家门店。新建门店后，应在这里检查并分配所需号码。

### 5.2 加载、空状态与限制

| 状态     | 页面表现                                             |
| ------ | ------------------------------------------------ |
| 正在发现号码 | 显示加载指示，数量尚不确定时显示 —                               |
| 读取失败   | 显示 Couldn't load unassigned phone lines，可点 Retry |
| 全部已分配  | 显示 All phone lines are assigned to stores.       |
| 有未分配号码 | 显示号码列表和 Link to store 操作                         |

当前门店编辑弹窗中的号码列表只读，没有解绑或转移按钮。已经分配的号码不会出现在这个页签，不能把它当作已绑定号码的重新分配入口。

## 6 首次建店：Onboarding suggestion

当前选中的连接下一家门店都没有时，右栏不显示页签和门店列表，只显示这个流程。

| 步骤   | 界面                                                                                                                                                                                                                                                                                                           | 规则                                                                                                                                                   |
| ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| 入口卡  | "Set up your stores"："We can suggest stores based on your RingCentral site structure. Review and adjust them, then confirm."；按钮 "Discover from RingCentral"                                                                                                                                                  | 只读地读取 RingCentral 的站点结构和号码，不写任何数据；读取失败显示后端返回的错误信息，拿不到时才显示 "Failed to load RingCentral structure"                                                     |
| 建议列表 | 提示 "Review the suggested stores. Rename them and uncheck any phones that don't belong, then confirm."；每个站点一张卡：门店名输入框（预填站点名，最多 100 字）、时区下拉 "Select timezone"（预填站点时区；RingCentral 没给时区时用浏览器时区，浏览器时区不在列表里则用美国东部时区）、号码列表（每个号码一个复选框，默认全勾，显示号码、分机名和类型标签 MAIN / DIRECT / TOLLFREE）；站点没号码显示 "No phones in this site." | 一个站点都读不到时显示 "No sites found in this RingCentral account."                                                                                            |
| 确认   | "Confirm & create stores"；"Re-discover" 重新读取                                                                                                                                                                                                                                                                 | 只提交"有名字且至少勾了一个号码"的站点，一次最多 50 个；一个都没有时提示 "Select at least one store with at least one phone to create"；有站点没选时区时提示 "Select a timezone for every store" |
| 结果   | "Created N store(s)"；部分失败时另提示 "N store(s) failed: 站点名…"                                                                                                                                                                                                                                                      | 后端逐个站点建店，门店建成即算创建成功；号码分配或激活失败只记日志、不回滚；新店自动激活                                                                                                         |

RingCentral 的站点只是建议，门店叫什么、在哪个时区、包含哪些号码由你确认后才落库，避免把不属于这家店的号码算进它的通话。号码绑定是后面一切按门店归属的基础：后端注释说明通话、短信、联系人和看板都按"门店 + 号码"过滤，没绑门店的号码产生的记录不会出现在任何门店里。

接入后点 "Discover from RingCentral"，逐卡改名、选时区、去掉不该归这家店的号码，然后 "Confirm & create stores"。不想建的站点把它的号码全部取消勾选即可跳过；站点之外还要加的门店，建完后用 "+ Add another store"。

## 7 新建门店（Add store）

Stores 页签底部 "+ Add another store" 打开 "Add store" 弹窗，四块内容：

| 区块                | 内容                                                              |
| ----------------- | --------------------------------------------------------------- |
| "Store details"   | 门店名（最多 100 字，示例 "e.g. West Harlem"）和时区下拉（预填浏览器时区；不在列表里则用美国东部时区） |
| "Pricing"         | 与编辑弹窗相同的价目表表单，预填默认值（见 8.5）                                      |
| "Task Automation" | 三档单选，默认 "Automatic"（见 8.9）                                      |
| "Operating Hours" | 与编辑弹窗相同的周表，默认周一到周日全开 09:00–17:00，"Effective From" 为今天           |

"Create store" 只要求填了名字和时区（营业时间用默认值即可）；把某天改成关门早于开门只会显示红字提示，按钮仍可点，提交的是上一次合法的周表。创建流程：先建店（自动激活），再并行保存价目表、自动化档位和营业时间。全部成功提示 "Created `<门店名>`"；门店建成但某几项没存上，提示 "`<门店名>` was created, but pricing, task automation, operating hours could not be saved."（只列失败的项）或 "… its initial settings could not be completed."，门店保留，可到编辑弹窗补。品牌值由代码固定写入，界面不可选。

补 RingCentral 站点结构没覆盖的门店（一个站点下多家店，或者没有按站点划分），建店时把价目表、自动化档位、营业时间一次配好。

填名字、选时区，其余可先用默认，点 "Create store"；建好后去 "Unassigned phone lines" 页签给它分配号码，没有号码的门店不会有任何通话进来。

## 8 编辑门店（Edit 弹窗）

门店卡片上的铅笔打开 "Edit" 弹窗。弹窗没有统一的 Save 按钮，各区块按自己的输入、确认或自动保存规则提交。修改后应留意保存状态和错误提示；关闭弹窗不等于取消已经保存的修改。截图中的 Totowa 处于 Inactive，因此只显示 "Store details"、"Phone Lines"、"Staff" 三块，营业时间、价目表、自动化和关键词要先激活门店才出现。

### 8.1 Store details：门店资料

"Store details"：门店名输入框和时区下拉。名字停止输入 0.8 秒或按回车保存（在输入框里按 Esc 会直接关掉整个弹窗），时区选定立即保存（会连同当前名字一起提交）；右侧显示 "Saving store details" / "Saved"，失败提示 "Failed to update store details"。后端把名字存成别名（最多 100 字），RingCentral 站点名不动；改时区同时刷新该店的同步时间；没有时区的老门店打开弹窗会预填浏览器时区（不在列表则美国东部），第一次改名字时这个预填值会一起存进去。

别名是全站显示名（侧栏、看板、Access Management 都用它）；时区是后台按当地时间判断的基础，代码注释说明没有时区的门店会被线索时效等规则拒绝处理。

修改后确认保存状态，再关闭弹窗。号码不能在这里增删，见第 5 节。

### 8.2 Phone Lines：门店电话线路

弹窗第二块为只读号码列表，主号排在最前。每行左侧显示号码，右侧显示分机名称和类型标签（MAIN / DIRECT 等）；没有号码时显示 **No phone lines synced for this store.**。截图中的数字 1、101、105、107 位于分机信息位置，不是线路数量或员工人数。

这里用于核对已分配的号码，不能直接编辑、增加或解除绑定。分配新号码请使用第 5 节的 Unassigned phone lines。

### 8.3 Staff：员工名单与账号绑定

标题左侧为 Staff，右侧为 **+ Add Staff**。还没有员工时显示 **No staff members for this store.**；停用门店也可以查看和维护这一块。

| 元素              | 说明                                                                                                                                                                                                                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| "Add Staff"     | 追加一行草稿：姓名 "Staff name"、角色下拉 "General" / "Head Coach"、分机 "RC extension"（数字，最多 20 位）。回车提交并自动开下一行，焦点离开整行也提交；Esc 丢弃所有草稿，每行右侧的 X 单独丢弃一行；提交失败的原因显示在该行下方                                                                                                                                     |
| 已有员工一行          | 姓名、角色（非编辑态显示原始值 general / head\_coach）、"RC ext. `<分机>`"、"Active" / "Inactive" 标签、绑定控件、铅笔（行内编辑：姓名和分机按回车或失焦保存，角色选定即保存，Esc 取消，再点铅笔退出编辑）、"Deactivate" / "Activate"、垃圾桶                                                                                                                    |
| 校验              | 姓名 1–100 字；在职员工重名报 "A staff member with this name already exists"（把停用的重名员工重新激活也会被拦）；分机只能是 1–20 位纯数字，不合法时该行下方显示的是 "Invalid request body"（后端没把具体原因传出来）；在职员工分机重复报 "This RingCentral extension is assigned to active staff"                                                               |
| 删除              | 浏览器确认 "Delete `<姓名>`? This cannot be undone."；该员工被任何任务（负责人或关闭人）或时间线记录引用时后端拒绝："Staff has task history; deactivate instead of deleting"。成功提示 "Staff member deleted"；停用 / 激活提示 "Staff deactivated" / "Staff activated"                                                                   |
| "This is me" 绑定 | 在职且未绑定的员工显示按钮 "This is me"，点后提示 "Your account is now `<姓名>`"；已绑定显示标签 "This is me" 和 "Unlink"（提示 "Your account is no longer `<姓名>`"）；别的登录账号绑了这位员工时显示 "N linked"。一个登录账号在一家店只能对应一位员工，再点别人会自动换过去；停用的员工不显示绑定按钮（后端也拒绝："Cannot bind an account to an inactive staff member"），但已绑的可以 "Unlink" |

名单按在职优先、再按姓名排序。绑定的作用（按代码注释）：这个登录账号关闭的任务会记到这位员工名下，Dashboard 的员工统计据此汇总。

员工名单与登录账号分别维护；分机信息用于员工识别，"This is me" 用于将当前登录身份关联到名单中的员工。

建店后先把员工录全、填分机；离职用 "Deactivate" 而不是删除；每个人登录后在自己的名字上点 "This is me"。

### 8.4 Operating Hours：营业时间

"Effective From" 生效日期（日历选择，默认是按浏览器时区算的今天，不是门店时区）；"Weekly Hours" 七行，每行一个 Open / Closed 开关和开门、关门时间下拉，第一行有 "Copy to every day"（手机宽度下不显示）。某天关门时间不晚于开门时间会显示 "Close time must be after open time" 且不保存。改动后 1.2 秒自动保存，显示 "Saving operating hours" / "Saved"，失败提示 "Failed to save schedule"。每次保存都新增一份时间表版本；卡片和弹窗显示的是**生效日期最晚**的那份（同一生效日期再按保存时间）——先存一份未来生效的、再存一份今天生效的，显示的仍是未来那份。

每家店独立维护营业时间，换季调整时改生效日期即可，旧版本保留。

打开编辑弹窗改，改完自动存；先设一天再点 "Copy to every day" 最快。

### 8.5 Pricing 价目表

| 区块                             | 字段                                               | 上限                                 |
| ------------------------------ | ------------------------------------------------ | ---------------------------------- |
| "Intro Class"                  | 一个价格文本框                                          | 500 字                              |
| "Membership Tiers"（"Add Tier"） | 每行 "Plan"、"Classes / month"、"Monthly price"      | 最多 10 行，名字 50 字，价格 10,000          |
| "Class Packs"（"Add Pack"）      | 每行 "Pack"、"Classes"、"Price"                      | 最多 10 行，名字 50 字，每包课数 100，价格 10,000 |
| "Additional fees"              | "Late Cancel Fee"、"HRM Purchase"、"HRM Rental/mo" | 各 1,000                            |

没存过价目表的门店预填默认值：Intro Class 12；套餐 Basic 4 节/月 99、Elite 8 节/月 149、Premier Unlimited 209；课包 Drop-in 1 节 30、Additional Session 1 节 22、Class Pack 10 10 节 250。改动后 0.8 秒自动保存（"Saving pricing" / "Saved"），每次整表覆盖；上限只在后端校验，超限（价格超过 10,000、课包课数填 0、名字超 50 字等）时自动保存失败并提示 "Invalid request body"；名字为空的行不会保存；把默认行删光会以空表保存，不会再回填默认值。

让每家店的价目在系统里有一份可维护的记录。注意这不是 Dashboard › Revenue 的收入基准（见第 10 节）。

改数字即可；不用的默认套餐直接点 x 删掉。

### 8.6 Lead Line：新线索联系提醒

位于 Automation 分组下，左侧显示功能说明，右侧为 On / Off 开关，默认 Off。开启后允许门店使用新线索首次联系提醒；具体队列和自动电话流程见 [Lead Line](/funding-strategy/02-产品说明书/10-lead-line.md)。

下方 **Automatic staff calls** 单独说明自动提醒电话的有效状态，不能只看上方开关判断电话是否会拨出。

| 状态               | 含义                           |
| ---------------- | ---------------------------- |
| Off              | 门店尚未开启 Lead Line             |
| Unavailable      | 系统配置正在检查，自动电话暂不可用            |
| Paused by system | 系统暂停新自动电话；门店偏好仍保留            |
| Active           | 自动电话功能可用；每次拨打仍需满足对应线索与营业时间条件 |

门店停用时，这一配置区隐藏；有效状态规则会将自动电话判为 Store inactive。

### 8.7 Ask AI：门店数据问答

左侧为 Ask AI 标题和说明，右侧为 On / Off 开关，默认 Off。开启后允许 Owner 对这家门店的通话、线索和任务提问。是否能看到 Ask AI 入口，还受系统环境级开关控制，因此开启门店开关不等于一定立即出现入口。

### 8.8 Send lead notifications：发送浏览器通知

门店级通知开关，默认 On，控制这家店是否发送新邮件线索的浏览器通知。

要在值班浏览器收到提醒，还需在 [Account Settings → Notifications](/funding-strategy/02-产品说明书/11-account-settings.md) 开启 **Lead notifications**，并允许浏览器通知权限。这里只决定门店是否发送，不替代个人浏览器的订阅设置，也不控制 Lead Line 的自动电话。

Lead Line、Ask AI 和 Send lead notifications 共用配置保存状态；其中一个正在保存时，三个开关暂不可操作，保存成功或失败后会给出相应提示。

### 8.9 Task Automation：任务自动化程度

以三档单选展示，决定 AI 可以自动处理任务到什么程度。新建门店表单默认选择 **Automatic**；已有门店显示其已保存的档位。

| 档位                       | 功能说明                                     |
| ------------------------ | ---------------------------------------- |
| Automatic                | 自动创建任务，并执行符合条件的常规更新和完成动作；不能安全自动处理的动作仍需审核 |
| Review sensitive actions | 自动创建任务和处理常规更新，关闭或重新打开任务等敏感动作先交人工审核       |
| No automatic changes     | AI 不自动创建任务，也不自动修改已有任务                    |

只有 Owner 可以修改档位。选择后保存，期间单选项禁用；失败会显示原因。读取失败时显示 **Task automation couldn't be loaded.**，可点击 **Try again** 重试。

### 8.10 Transcription Keywords：转写关键词

已有关键词以标签显示，每个带 x 可删；输入框 "Add keyword (max 50 chars)"，回车或点 "Add" 加入；下方显示 "N/30 keywords"。每个词最多 50 字、最多 30 个，重复的（不分大小写）不会加入；增删都立即保存，但没有成功 / 失败提示；保存失败时标签仍显示已改，刷新后才恢复。

给通话转写一份门店专有词表（套餐名、员工名、地名等），减少转写认错。

把员工常说、转写常错的词加进来，满 30 个后要先删再加。

## 9 操作权限

页面可见范围与单个接口的操作权限需要分开理解：Setup 列表只展示自己名下的连接和门店；相关操作的权限要求如下。

| 操作                                                                  | 后端要求                                                               |
| ------------------------------------------------------------------- | ------------------------------------------------------------------ |
| 接入 / 改名 / 删除 RingCentral 连接                                         | 连接归属人本人                                                            |
| 首次建议建店、"+ Add another store" 新建门店                                   | 连接归属人，且连接处于激活状态                                                    |
| 编辑门店名与时区、启用/停用、Lead Line、Ask AI、Send lead notifications、Pricing、关键词 | 门店 Owner（非 Owner 调接口会得到门店不存在的错误）                                   |
| 删除门店                                                                | 门店 Owner（"Only the store owner can delete this store"）             |
| 把未分配号码分配到门店                                                         | Owner 或 Editor；Viewer 被拒绝                                          |
| 员工新增 / 修改 / 停用 / 删除、"This is me" 绑定                                 | Owner 或 Editor；Viewer 只能看名单                                        |
| 营业时间                                                                | Owner 或 Editor；Viewer 被拒绝（"Viewers cannot modify operating hours"） |
| Task Automation 档位                                                  | 看：任何有权限的角色；改：仅 Owner                                               |

## 10 当前限制

- 只显示自己接入的连接和自己名下的门店；被分享的门店在这里看不到，也不能在这里改（Access Management 管人，Setup 管店）。
- 号码只能从未分配池"分配到门店"。门店卡片和编辑弹窗里的号码列表是只读的：后端有解绑接口、页面也写了处理函数，但没有任何按钮触发，所以已绑定的号码在界面上无法解绑或移到别的门店；也因此，门店一旦绑过号码，就无法满足删除要求的"0 个号码"。
- 没有"重新从 RingCentral 拉取"按钮：后端同步接口存在但页面没挂；站点改名或新增站点不会自动反映到已建门店（新号码会出现在 Unassigned 里）。
- Lead Line 的重试间隔接口可改（5–60 分钟，默认 15），界面没有入口；门店的线索邮箱列表接口只读、界面没有。
- 品牌值建店时由代码写死，界面不可选。
- Dashboard › Revenue 的 "Benchmark setup"（8 个单价：`membership_conversion`、`renewal_retention`、`cancellation_save`、`member_reactivation`、`membership_upgrade`、`qualified_referral`、`payment_recovery`、`intro_offer`）不在 Setup 里改，走的是另一条接口，Viewer 不能改（"Viewers cannot change revenue benchmarks"）；Setup 里的 Pricing 是价目表，两者不是一回事。
- 员工绑定只支持"绑自己"；替别人绑定接口支持，界面没有。
- 营业时间只能看和改当前一份，历史版本没有界面查看或删除。
- 新建门店时价目表、自动化档位、营业时间并行保存，失败只提示不回滚。
- 停用门店的编辑弹窗只剩资料、号码和员工；营业时间、价目表、自动化、关键词都要先激活。

## 11 实现依据

本篇按本地代码核查，页面实际启用情况以部署版本为准。

[页面](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/index.vue) · [空状态](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/EmptyState.vue) · [连接命名](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/ConnectionNameDialog.vue) · [建店建议](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/OnboardingSuggestion.vue) · [门店卡片](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/StoreCard.vue) · [未分配号码](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/UnassignedSection.vue) · [分配弹出框](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/PhoneLinkPopover.vue) · [新建门店](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/NewStoreDialog.vue) · [编辑弹窗](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/StoreEditDialog.vue) · [员工](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/StaffSection.vue) · [员工绑定](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/StaffBindingControl.vue) · [价目表](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/PricingForm.vue) · [任务自动化](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/TaskAutomationSetting.vue) · [关键词](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/pages/setup/components/KeywordsSection.vue) · [营业时间表单](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/components/store-schedule/OperatingHoursForm.vue) · [侧栏](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/web/src/composables/use-sidebar.ts) · [Setup 接口](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/setup.ts) · [Setup 校验](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/setup-contract.ts) · [员工接口](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/setup-staff.ts) · [自动化档位接口](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/automation-tier.ts) · [收入基准接口](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/routes/v3/store-revenue-pricing.ts) · [建店/分配/删店服务](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/services/store-config-manual.ts) · [连接删除服务](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/services/user-connections-neon.ts) · [门店鉴权](https://github.com/retaintive/callytics-infrastructure/blob/main/apps/api/src/utils/store-authorization-neon.ts) · [价目表默认值](https://github.com/retaintive/callytics-infrastructure/blob/main/packages/common/src/types/pricing.ts)
