# 16 其他独立业务闭环 > 本文档包含其他独立的业务闭环:定价与利润决策、核心服务优先级、多店铺管理、商家选择发货、客户/商家押金 --- ## 1️⃣5️⃣ 定价与利润决策闭环(Pricing & Profit Decision Loop) - **目标**:基于成本、市场和业务目标,自动生成定价策略和利润优化建议。 - **流程**: - 成本数据收集 → 市场分析 → 定价策略生成 → 利润预测 → 决策执行 - **决策点**: - 利润率红线控制(B2C < 20% 预警,B2B < 15% 禁止) - 价格弹性分析 - 竞争定价策略 - **输入**:商品成本、运费、平台费、广告预估、市场竞争数据 - **输出**: - 建议售价 - 建议 ROI - 上架决策(开/关) - 广告投放 ROI 区间 - 最大可承受 CPA *** ## 5️⃣0️⃣ 核心服务优先级闭环(Core Service Priority Loop) - **目标**:确定核心业务服务的优先级顺序,确保资源合理分配。 - **流程**: 1. **服务评估**: - 业务价值评估 - 技术复杂度评估 - 资源需求评估 - 风险评估 2. **优先级排序**: - 基于业务价值的排序 - 基于依赖关系的排序 - 基于时间窗口的排序 3. **资源分配**: - 人力分配 - 技术资源分配 - 时间规划 4. **执行监控**: - 进度跟踪 - 资源使用监控 - 风险预警 - **决策点**: - 优先级调整时机 - 资源重新分配决策 - 项目范围变更管理 - **输入**:服务需求、业务目标、资源状况 - **输出**:优先级排序结果、资源分配计划、执行进度报告 - **状态机**:`ASSESSMENT` → `PRIORITIZATION` → `RESOURCE_ALLOCATION` → `EXECUTION` → `MONITORING` *** ## 5️⃣7️⃣ 多店铺管理闭环(Multi-Shop Management Loop) - **目标**:实现多店铺、多商户、多部门的统一管理与数据隔离,支持独立站/外部独立站/报表等一对多交互 - **层级架构**: ``` 商户(Merchant) → 部门(Department) → 店铺(Shop) ↓ ↓ ↓ 商户级数据 部门级数据 店铺级数据 ``` - **流程**: 1. **店铺注册与配置**: - 店铺类型划分(独立站/平台店/外部独立站) - 平台账号绑定 - 店铺基础信息配置 - 店铺状态管理 2. **权限配置**: - 层级权限继承 - 数据访问范围控制 - 操作权限分配 - 角色管理 3. **数据隔离**: - 店铺级数据隔离 - 部门级数据聚合 - 商户级数据汇总 - 跨店铺数据访问控制 4. **业务操作**: - 商品管理(单店/批量) - 订单管理(单店/聚合) - 库存管理(单店/同步) - 价格管理(单店/批量) 5. **报表聚合**: - 单店报表 - 部门聚合报表 - 商户汇总报表 - 跨店对比分析 - **决策点**: - 店铺类型划分标准 - 数据权限边界定义 - 报表聚合规则 - 跨店操作权限 - **输入**:店铺信息、商户信息、部门信息、用户角色 - **输出**: - 店铺管理界面 - 跨店铺数据报表 - 权限控制策略 - 数据隔离配置 - **状态机**:`SHOP_REGISTERED` → `SHOP_CONFIGURED` → `SHOP_ACTIVE` → `SHOP_SUSPENDED` → `SHOP_CLOSED` *** ## 2️⃣0️⃣ 商家选择发货闭环(Merchant Selective Fulfillment Loop) - **目标**:商家可选择自己有库存的订单发货,剩余由平台/公司发货。 - **流程**: 1. **订单选择** - 商家登录落地页选择自己有货的订单发货 2. **系统检查** - 押金或余额是否足够覆盖订单 - 时效性(保证订单不过期) 3. **订单状态更新** - 状态流转:`available → requested → shipped → completed` - 剩余无货订单由平台/公司自己发货 - **决策点**: - 订单分配规则 - 库存检查策略 - 时效保证机制 - **输入**: - 商家库存信息 - 订单数据 - 押金/余额状态 - **输出**: - 订单分配结果 - 发货状态更新 - 异常订单标记 *** ## 1️⃣9️⃣ 客户/商家押金与账户管理闭环(Customer/Merchant Deposit & Account Management Loop) - **目标**:管理客户预缴押金、账户余额,支持订单抵扣和提现。 - **流程**: 1. **押金管理** - 客户预缴押金(例:100 元抵 2 单) - 押金余额、已抵扣订单数量记录 2. **账户管理** - 客户可查看:可申请发货订单、历史回款、押金/余额状态 - 自动扣减押金或余额完成发货操作 3. **提现管理** - 检查账户余额 → 生成提现单 → 审核 → 打款 - **决策点**: - 押金抵扣规则 - 提现审核流程 - 余额管理策略 - **输入**: - 客户押金信息 - 订单数据 - 提现申请 - **输出**: - 押金/余额状态 - 提现处理结果 - 财务流水记录 *** ## 相关KPI ### 定价与利润决策闭环 | KPI 指标 | 描述 | 适用业务类型 | | ------- | ------------- | --------- | | 定价准确率 | 建议售价与最优价格的偏差率 | TOC + TOB | | 利润率达标率 | 达到目标利润率的商品比例 | TOC + TOB | | 定价决策时效 | 从成本数据到定价决策的时间 | TOC + TOB | | 价格竞争力 | 与市场平均价格的对比 | TOC + TOB | | 利润预测准确率 | 预测利润与实际利润的偏差率 | TOC + TOB | ### 多店铺管理闭环 | KPI 指标 | 描述 | 适用业务类型 | | ------ | ----------- | --------- | | 店铺数量 | 管理的店铺总数 | TOC + TOB | | 活跃店铺数 | 活跃店铺数量 | TOC + TOB | | 跨店订单量 | 跨店铺订单数量 | TOC + TOB | | 数据隔离有效性 | 数据隔离的成功率 | TOC + TOB | | 报表生成效率 | 报表生成的平均时间 | TOC + TOB | *** ## 7️⃣7️⃣ Node Agent 任务执行闭环(Node Agent Task Execution Loop) - **目标**:通过 Playwright 自动化代理执行无 API 平台的操作任务,实现采集、刊登、订单处理等自动化。 - **架构**: ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Server │◄────►│ Hub │◄────►│ Node-Agent │ │ (主控端) │ │ (任务调度) │ │ (Playwright)│ └─────────────┘ └─────────────┘ └─────────────┘ │ ┌──────▼──────┐ │ Chromium │ │ (无API平台) │ └─────────────┘ ``` - **流程**: 1. **节点注册**: - Node Agent 启动时向 Hub 注册 - 上报节点 ID、版本、操作系统、主机名 - 加载本地店铺配置 2. **心跳维持**: - 定时向 Hub 发送心跳(默认 30 秒) - 维持节点在线状态 - 检测连接异常并自动重连 3. **任务轮询**: - 定时从 Hub 拉取任务(默认 10 秒) - 获取待执行的任务队列 - 按优先级和店铺隔离规则执行 4. **任务执行**: - 启动 Playwright 浏览器实例 - 配置代理 IP 和浏览器指纹 - 执行具体任务(采集/刊登/订单处理) - 收集执行结果和截图 5. **结果上报**: - 向 Hub 上报任务执行结果 - 包含状态、数据、错误信息 - 支持重试机制 - **任务类型**: | 任务类型 | 说明 | 适用平台 | |---------|------|---------| | `COLLECT_PRODUCT` | 商品数据采集 | TikTok Shop, Temu, 1688 | | `COLLECT_ORDER` | 订单数据采集 | TikTok Shop, Temu | | `PUBLISH_PRODUCT` | 商品刊登 | TikTok Shop, Temu | | `PROCESS_ORDER` | 订单处理(发货、取消) | TikTok Shop, Temu | | `SYNC_INVENTORY` | 库存同步 | TikTok Shop, Temu | | `MANAGE_AD` | 广告管理 | TikTok Shop | - **店铺隔离策略**: - **一店一上下文**:每个店铺独立的 profileDir、proxy、fingerprintPolicy - **同店任务串行**:同一店铺的任务严格串行执行 - **跨店任务并行**:不同店铺的任务可并行执行 - **反检测策略**: | 策略 | 说明 | |------|------| | **指纹隔离** | 每个店铺独立浏览器指纹 | | **代理 IP** | 每个店铺独立代理 | | **行为模拟** | 随机延迟、鼠标轨迹 | | **User-Agent** | 随机 UA 轮换 | - **决策点**: - 任务优先级排序 - 浏览器实例数量控制 - 失败重试策略 - 异常处理机制 - **输入**:任务配置、店铺信息、代理配置、指纹策略 - **输出**:执行结果、采集数据、截图日志 - **状态机**: - 节点:`OFFLINE` → `REGISTERING` → `ONLINE` → `BUSY` → `OFFLINE` - 任务:`PENDING` → `PULLED` → `EXECUTING` → `SUCCESS` / `FAILED` *** ## 7️⃣8️⃣ 前端-后端-Node Agent 调用链路闭环(Frontend-Backend-NodeAgent Call Chain Loop) - **目标**:定义从前端操作到 Node Agent 执行的完整调用链路,确保数据流和状态同步。 - **架构层次**: ``` ┌─────────────────────────────────────────────────────────────┐ │ 用户操作层 │ │ Dashboard (React) → 用户点击"采集商品"按钮 │ └──────────────────────────┬──────────────────────────────────┘ │ HTTP Request ▼ ┌─────────────────────────────────────────────────────────────┐ │ API 网关层 │ │ Server Controller → 权限校验 → 参数验证 → 调用 Service │ └──────────────────────────┬──────────────────────────────────┘ │ Service Call ▼ ┌─────────────────────────────────────────────────────────────┐ │ 业务逻辑层 │ │ Service → 创建任务 → 存入数据库 → 推送到 Hub 队列 │ └──────────────────────────┬──────────────────────────────────┘ │ Queue Push ▼ ┌─────────────────────────────────────────────────────────────┐ │ 任务调度层 │ │ Hub → 任务队列 → 分配给 Node Agent → 监控执行状态 │ └──────────────────────────┬──────────────────────────────────┘ │ Task Pull ▼ ┌─────────────────────────────────────────────────────────────┐ │ 执行代理层 │ │ Node Agent → Playwright 执行 → 采集数据 → 上报结果 │ └──────────────────────────┬──────────────────────────────────┘ │ Result Report ▼ ┌─────────────────────────────────────────────────────────────┐ │ 数据回写层 │ │ Hub → 更新任务状态 → 通知 Server → WebSocket 推送前端 │ └─────────────────────────────────────────────────────────────┘ ``` - **调用链路示例**(商品采集): 1. **前端发起**: ```typescript // Dashboard: 用户点击采集按钮 const handleCollect = async () => { const result = await collectProductDataSource.create({ platform: 'TikTok', shopId: 'shop-123', productUrl: 'https://...' }); }; ``` 2. **后端处理**: ```typescript // Server: Controller → Service @router.post('/api/v1/collect/product') async collectProduct(req: Request, res: Response) { const task = await CrawlerService.createCollectTask(req.body); await HubQueueService.pushTask(task); res.json({ taskId: task.id, status: 'PENDING' }); } ``` 3. **Hub 调度**: ```typescript // Hub: 任务队列管理 async pushTask(task: Task) { await TaskQueue.add(task); await this.notifyNodeAgents(); } ``` 4. **Node Agent 执行**: ```typescript // Node Agent: Playwright 执行 async executeTask(task: NodeTask) { const browser = await chromium.launch({ proxy: task.proxy }); const page = await browser.newPage(); const data = await this.collectProduct(page, task.payload); await this.reportReceipt({ taskId: task.id, data }); } ``` 5. **结果回写**: ```typescript // Server: 接收结果 @router.post('/api/v1/publish/receipt') async handleReceipt(req: Request, res: Response) { await CrawlerService.saveCollectResult(req.body); await WebSocketService.notifyFrontend(req.body.taskId, 'SUCCESS'); } ``` - **状态同步机制**: | 机制 | 说明 | |------|------| | **WebSocket 推送** | 实时推送任务状态到前端 | | **轮询查询** | 前端定时查询任务状态 | | **事件总线** | 内部服务间状态同步 | - **决策点**: - 任务优先级设置 - 超时处理策略 - 失败重试机制 - 并发控制策略 - **输入**:用户操作、任务配置、执行参数 - **输出**:任务状态、执行结果、通知消息 - **状态机**:`USER_ACTION` → `API_REQUEST` → `TASK_CREATED` → `TASK_QUEUED` → `TASK_EXECUTING` → `TASK_COMPLETED` → `RESULT_SAVED` → `FRONTEND_NOTIFIED` *** ## 相关KPI ### Node Agent 任务执行闭环 | KPI 指标 | 描述 | 适用业务类型 | |---------|------|-------------| | 任务成功率 | 成功执行的任务比例 | TOC + TOB | | 平均执行时间 | 任务执行的平均耗时 | TOC + TOB | | 节点在线率 | Node Agent 在线时间比例 | TOC + TOB | | 采集数据准确率 | 采集数据的准确性 | TOC + TOB | | 反检测成功率 | 未被平台检测的成功率 | TOC + TOB | ### 前端-后端-Node Agent 调用链路闭环 | KPI 指标 | 描述 | 适用业务类型 | |---------|------|-------------| | 端到端延迟 | 从用户操作到结果返回的时间 | TOC + TOB | | 链路成功率 | 完整链路执行成功的比例 | TOC + TOB | | 状态同步延迟 | 状态更新到前端显示的时间 | TOC + TOB | | 错误恢复率 | 错误后自动恢复的比例 | TOC + TOB |