# 业务流程图

## 订单处理流程

```mermaid
graph TD
    A[WooCommerce新订单] --> B[Webhook接收]
    B --> C[订单数据验证]
    C --> D[创建内部订单]
    D --> E[库存检查]
    E --> F{库存充足?}
    F -->|是| G[预留库存]
    F -->|否| H[标记缺货]
    G --> I[订单确认]
    H --> I
    I --> J[等待发货]
    J --> K[生成发货单]
    K --> L[选择物流服务商]
    L --> M[计算运费]
    M --> N[生成运单]
    N --> O[更新库存]
    O --> P[同步到WooCommerce]
    P --> Q[发送跟踪信息]
    Q --> R[订单完成]
```

## 产品同步流程

```mermaid
graph TD
    A[WooCommerce产品更新] --> B[Webhook触发]
    B --> C[获取产品数据]
    C --> D[数据格式转换]
    D --> E{本地产品存在?}
    E -->|是| F[更新本地产品]
    E -->|否| G[创建新产品]
    F --> H[同步变体信息]
    G --> H
    H --> I[更新分类关系]
    I --> J[同步库存信息]
    J --> K[更新产品状态]
    K --> L[触发相关业务]
    L --> M[同步完成]
```

## 库存管理流程

```mermaid
graph TD
    A[库存操作请求] --> B{操作类型}
    B -->|入库| C[采购订单接收]
    B -->|出库| D[订单发货]
    B -->|调拨| E[仓库间转移]
    B -->|盘点| F[库存盘点]
    
    C --> G[验证采购单]
    G --> H[更新库存数量]
    H --> I[创建库存记录]
    
    D --> J[验证订单]
    J --> K[检查库存]
    K --> L{库存充足?}
    L -->|是| M[扣减库存]
    L -->|否| N[库存不足警告]
    M --> I
    N --> O[处理缺货]
    
    E --> P[验证调拨单]
    P --> Q[源仓库扣减]
    Q --> R[目标仓库增加]
    R --> I
    
    F --> S[盘点差异分析]
    S --> T[调整库存]
    T --> I
    
    I --> U[更新库存统计]
    U --> V[触发库存预警]
    V --> W[流程结束]
```

## 物流发货流程

```mermaid
graph TD
    A[订单待发货] --> B[选择物流服务商]
    B --> C{服务商类型}
    C -->|FreightCom| D[FreightCom API]
    C -->|CanadaPost| E[CanadaPost API]
    C -->|UniExpress| F[UniExpress API]
    
    D --> G[获取运费报价]
    E --> G
    F --> G
    
    G --> H[比较运费]
    H --> I[选择最优方案]
    I --> J[创建运单]
    J --> K[生成跟踪号]
    K --> L[打印运单标签]
    L --> M[更新订单状态]
    M --> N[同步到WooCommerce]
    N --> O[发送客户通知]
    O --> P[开始物流跟踪]
    P --> Q{包裹送达?}
    Q -->|否| R[继续跟踪]
    Q -->|是| S[订单完成]
    R --> P
```

## 用户认证流程

```mermaid
graph TD
    A[用户登录请求] --> B[验证用户名密码]
    B --> C{验证成功?}
    C -->|否| D[返回错误信息]
    C -->|是| E[生成JWT Token]
    E --> F[返回Token给客户端]
    F --> G[客户端存储Token]
    G --> H[后续请求携带Token]
    H --> I[服务器验证Token]
    I --> J{Token有效?}
    J -->|否| K[返回401未授权]
    J -->|是| L[处理业务请求]
    L --> M[返回响应]
```

## 数据同步流程

```mermaid
graph TD
    A[定时任务启动] --> B[检查同步队列]
    B --> C{有待同步数据?}
    C -->|否| D[等待下次执行]
    C -->|是| E[获取同步数据]
    E --> F{数据类型}
    F -->|产品| G[同步产品数据]
    F -->|订单| H[同步订单数据]
    F -->|库存| I[同步库存数据]
    
    G --> J[调用WooCommerce API]
    H --> J
    I --> J
    
    J --> K{API调用成功?}
    K -->|否| L[记录错误日志]
    K -->|是| M[更新本地数据]
    L --> N[加入重试队列]
    M --> O[标记同步完成]
    N --> P[等待重试]
    O --> Q[继续处理下一条]
    P --> Q
    Q --> B
```

## 异常处理流程

```mermaid
graph TD
    A[系统异常发生] --> B{异常类型}
    B -->|业务异常| C[记录业务日志]
    B -->|系统异常| D[记录系统日志]
    B -->|网络异常| E[记录网络日志]
    
    C --> F[返回业务错误码]
    D --> G[返回系统错误码]
    E --> H[返回网络错误码]
    
    F --> I[客户端错误处理]
    G --> J[系统监控告警]
    H --> K[网络重试机制]
    
    I --> L[用户友好提示]
    J --> M[运维人员处理]
    K --> N{重试成功?}
    
    N -->|是| O[继续正常流程]
    N -->|否| P[标记失败]
    P --> M
```

## 核心业务场景

### 1. 电商订单全生命周期

```
订单创建 → 库存预留 → 支付确认 → 拣货打包 → 物流发货 → 在途跟踪 → 签收完成
    ↓         ↓         ↓         ↓         ↓         ↓         ↓
  WP同步   库存扣减   状态更新   生成运单   跟踪同步   状态更新   订单完成
```

### 2. 库存管理核心场景

```
采购入库 → 质检验收 → 上架可售 → 订单扣减 → 库存预警 → 补货采购
    ↓         ↓         ↓         ↓         ↓         ↓
  记录创建   状态更新   库存增加   库存减少   预警通知   采购单生成
```

### 3. 产品管理核心场景

```
产品创建 → 分类设置 → 变体管理 → 库存关联 → 上架销售 → 数据同步
    ↓         ↓         ↓         ↓         ↓         ↓
  基础信息   分类关系   SKU管理   库存绑定   状态发布   WP同步
```

## 业务规则说明

### 订单处理规则
1. **订单状态流转**: 严格按照预定义状态流转，不允许跳跃
2. **库存预留**: 订单确认后立即预留库存，避免超卖
3. **自动取消**: 超时未支付订单自动取消并释放库存
4. **退款处理**: 退款后自动恢复库存并同步状态

### 库存管理规则
1. **先进先出**: 出库时优先使用较早入库的商品
2. **安全库存**: 设置最低库存预警线，低于阈值自动预警
3. **多仓管理**: 支持多个仓库点独立管理库存
4. **实时同步**: 库存变动实时同步到各个销售渠道

### 物流管理规则
1. **智能选择**: 根据重量、体积、目的地自动选择最优物流方案
2. **运费计算**: 实时获取各物流商报价并比较
3. **异常处理**: 物流异常时自动重试或转换服务商
4. **状态跟踪**: 定时同步物流状态并通知客户

### 数据同步规则
1. **增量同步**: 优先使用增量同步减少数据传输量
2. **冲突解决**: 数据冲突时以最新时间戳为准
3. **失败重试**: 同步失败时按指数退避策略重试
4. **数据校验**: 同步前后进行数据完整性校验