跳到主要内容

多店与共享 (如已启用)

管理门店分组、有向共享策略和联合运营(Twin),适用于多店业务。

当前应用界面

门店分组​

Admin → 门店分组

门店分组是门店的命名集合。两种类型:

类型用途谁创建
运营型协作门店(共享员工、联合运营)超级管理员 / 租户管理员
地域型地理分组用于分析系统(自动生成)

运营型分组是共享策略和 Twin 的基础。

创建分组​

  1. 门店分组 → 创建。
  2. 命名分组。您创建的分组默认为运营型——类型在列表中以徽章显示,不在表单中选择。
  3. 添加门店(从您可访问的门店中选)。
  4. 保存。

共享策略 — 有向授权​

Admin → 门店分组 → 选择分组 → 共享策略标签

共享策略表达:"A 店授权 B 店访问资源 X 的能力 Y。"

来源门店 ──► 使用门店
(提供) (获得访问)

核心原则​

  • 显式:默认不共享任何内容。每个跨店操作都需要策略。
  • 有向:A→B 独立于 B→A。双向共享需要两条策略。
  • 按资源:每条策略覆盖一种资源类型(员工、排班、POS 共享排钟、商品(库存目录)、到店、客户、预约、礼券、套餐、优惠券、薪资、日结)。

创建策略​

  1. 打开运营型分组 → 共享策略 → 创建。
  2. 选择来源门店(谁提供)和使用门店(谁接收)。
  3. 选择资源类型。
  4. 选择预设(无/只读/可使用/可协作)或设置自定义能力。
  5. 资产类型(礼券/套餐/优惠券):选择结算语义——
    • 共享池(默认):自有连锁门店互相核销,不产生跨店付款。
    • 门店之间需要结算:填写核销店保留比例(如 80%),发行店比例(20%)自动推导。合作门店核销 $100 即产生 $80 的跨店债务。
  6. 保存。

当前应用界面

跨店结算与调整结算​

分成策略下的跨店核销按月汇入跨店结算,金额使用核销当时冻结的比例——之后修改策略不会改写历史经济结果。任一侧确认后结算单明细即冻结;冻结后才出现的核销(或漏扫月份的核销)会汇入归属原月份的独立调整结算单:已确认的 $150 债务保持 $150,迟到的 $100 核销以 +$80 调整单单独呈现。

预设 vs 自定义​

预设典型用途
无拒绝全部(显式阻止)
只读看数据但不能操作
可使用可使用资源(分配员工、兑换礼券)
可协作完全运营访问(编辑、排班、管理)
自定义逐项选择能力

停用/删除策略​

  • 停用:策略可见但拒绝新操作。历史记录不受影响。
  • 删除(软):从活跃列表隐藏,可恢复。

联合运营(Twin)​

Admin → 联合运营

Twin 是"傻瓜按钮"——帮像一家店一样运营的多店自动生成所有共享策略。

Twin 做了什么​

激活后,Twin 在所有成员门店间创建双向策略:

  • POS 共享排钟(互看/互相分配在岗员工)
  • 排班(查看/排班/跨店打卡共享员工)
  • 到店(查看合作门店的到店记录)
  • 客户(跨店查看/创建/编辑)
  • 预约(跨店查看/管理)
  • 薪资(查看聚合数据,并把每位员工的工资并入其主店计算——见薪资)与日结汇总
  • 礼券、套餐、优惠券(以共享池跨店兑换——无跨店付款)

Twin 不会创建员工或商品目录策略——员工借调仍需一条显式的员工策略,并勾选分配员工到接收门店。

创建 Twin​

  1. 联合运营 → 创建。
  2. 选择一个运营型门店分组(须 ≥ 2 家门店)。
  3. 命名(如"一楼联合运营")。
  4. 审查并调整默认共享包(启用哪些能力)。
  5. 选择是否所有门店需确认后才激活。
  6. 创建。

生命周期​

草稿 → (成员确认)→ 激活 → 停用
  • 草稿:可编辑成员和默认包。
  • 激活:策略生效;编辑成员/默认包需先停用。
  • 停用:所有托管策略停用;可重新激活。

成员确认​

Twin 中的每家门店须确认参与(除非禁用了 require_all_confirmed)。区域经理可确认其管理的门店。

跨店边界​

员工借调​

有适当共享策略时(employee.assign_to_local_store):

  • A 店的技师可被分配在 B 店工作。
  • 其在 B 店的打卡携带 sharing_policy_id 关联授权策略。
  • 提成记录在实际执行服务的门店。当 B 店向员工的主店(主任职门店)授予 payroll.consolidate 能力时,工资在主店合并计算——Twin 自动授予;否则 B 店只算自己那部分。借调产生的雇佣关系不能设为主店。

跨店结算​

当共享资源在合作门店产生收入时(如 A 店售的礼券在 B 店兑换),分成策略会生成跨店结算行——共享池策略(Twin 资产类型的默认语义)则不产生跨店债务。

跨店结算由月度 Celery 任务生成。使用 Admin → 跨店结算:

  1. 按获授权门店和状态筛选队列,并打开冻结的来源明细;
  2. 确认或发起争议前,先选择你代表的精确门店侧;
  3. 发起争议必须填写理由;解决争议会重新开始双方确认;
  4. 双方由不同管理员确认后,超级管理员或租户管理员记录最终外部转账参考号。

服务端会重新检查双方门店范围、操作人、状态、明细总额和平衡 Ledger。页面不能编辑或删除结算单及其冻结明细。共享池策略不会出现在这里,因为它不产生跨店债务。

提示​

  • 从 Twin 开始 — 如果门店同属一位老板且作为一个单元运营,Twin 零手动配置就能覆盖 90% 需求。
  • 手动策略处理例外 — 对特定场景使用单独策略(如与合作门店共享库存目录但不共享排钟)。
  • 定期审查策略 — 停用已结束合作的策略。活跃策略 = 活跃信任。
  • Twin 内共享池 — 这是设计使然。同一老板的门店不需要跨店兑换时互相"付款"。