355 lines
10 KiB
Markdown
355 lines
10 KiB
Markdown
|
|
# Product 页面前端业务说明书
|
|||
|
|
|
|||
|
|
## 1️⃣ 页面定义
|
|||
|
|
|
|||
|
|
### 页面目标
|
|||
|
|
帮助商户:
|
|||
|
|
- 管理商品信息
|
|||
|
|
- 计算商品利润
|
|||
|
|
- 优化商品定价(核心)
|
|||
|
|
- 提升商品ROI
|
|||
|
|
|
|||
|
|
### 页面类型
|
|||
|
|
- 业务核心页(直接影响赚钱)
|
|||
|
|
|
|||
|
|
## 2️⃣ 页面核心数据
|
|||
|
|
|
|||
|
|
### 核心数据字段
|
|||
|
|
- cost(成本):包含采购成本、运费、关税等
|
|||
|
|
- price(售价):商品的销售价格
|
|||
|
|
- profit(利润):售价减去成本
|
|||
|
|
- roi(ROI):投资回报率
|
|||
|
|
- stock(库存):商品库存数量
|
|||
|
|
- aiPriceSuggestion(AI建议售价):基于市场数据和成本的智能定价建议
|
|||
|
|
- salesVolume(销量):商品销售数量
|
|||
|
|
- salesTrend(销售趋势):近期销售数据趋势
|
|||
|
|
|
|||
|
|
## 3️⃣ 页面核心操作
|
|||
|
|
|
|||
|
|
### 用户操作
|
|||
|
|
- 创建商品:添加新商品信息
|
|||
|
|
- 修改价格:调整商品售价
|
|||
|
|
- 查看ROI:查看商品的投资回报率
|
|||
|
|
- 使用AI定价:获取AI的定价建议并应用
|
|||
|
|
- 调整库存:更新商品库存数量
|
|||
|
|
- 查看销售趋势:分析商品销售数据
|
|||
|
|
|
|||
|
|
## 4️⃣ 操作 → 业务结果
|
|||
|
|
|
|||
|
|
### 操作闭环
|
|||
|
|
1. **修改价格**
|
|||
|
|
- 触发:用户点击"修改价格"按钮
|
|||
|
|
- 服务:ProductService.updatePrice
|
|||
|
|
- 结果:重新计算利润和ROI,更新前端展示
|
|||
|
|
- 反馈:如果ROI下降,标红提示;如果ROI提升,显示绿色提示
|
|||
|
|
|
|||
|
|
2. **使用AI定价**
|
|||
|
|
- 触发:用户点击"AI定价"按钮
|
|||
|
|
- 服务:AIService.optimizeProductForPlatform
|
|||
|
|
- 结果:获取AI建议售价,显示在界面上
|
|||
|
|
- 反馈:显示加载状态,完成后显示建议价格
|
|||
|
|
- 收费:每次调用AI定价服务收费
|
|||
|
|
|
|||
|
|
3. **调整库存**
|
|||
|
|
- 触发:用户修改库存数量
|
|||
|
|
- 服务:InventoryService.updateStock
|
|||
|
|
- 结果:更新库存数据,触发库存预警(如果库存过低)
|
|||
|
|
- 反馈:显示库存更新成功提示
|
|||
|
|
|
|||
|
|
## 5️⃣ 页面状态
|
|||
|
|
|
|||
|
|
### 状态定义
|
|||
|
|
- loading:数据加载中
|
|||
|
|
- empty:无数据
|
|||
|
|
- error:操作错误
|
|||
|
|
- success:操作成功
|
|||
|
|
- optimizing:AI处理中
|
|||
|
|
- warning:库存不足或ROI过低
|
|||
|
|
|
|||
|
|
## 6️⃣ 收费点
|
|||
|
|
|
|||
|
|
### 收费触发点
|
|||
|
|
- AI定价:按调用次数收费
|
|||
|
|
- 高级分析:按功能使用时间收费
|
|||
|
|
- 批量操作:按操作次数收费
|
|||
|
|
|
|||
|
|
## 7️⃣ 页面结构
|
|||
|
|
|
|||
|
|
### 主要区域
|
|||
|
|
1. **商品列表区**:显示所有商品,包含核心数据字段
|
|||
|
|
2. **商品详情区**:显示单个商品的详细信息
|
|||
|
|
3. **定价优化区**:显示AI定价建议和ROI分析
|
|||
|
|
4. **库存管理区**:显示和管理商品库存
|
|||
|
|
5. **销售分析区**:显示商品销售趋势和分析
|
|||
|
|
|
|||
|
|
## 8️⃣ 业务价值
|
|||
|
|
|
|||
|
|
### 核心价值
|
|||
|
|
- 帮助商户快速识别高利润商品
|
|||
|
|
- 提供智能定价建议,最大化利润
|
|||
|
|
- 实时监控商品ROI,及时调整策略
|
|||
|
|
- 优化库存管理,避免库存积压或缺货
|
|||
|
|
|
|||
|
|
### 商业闭环
|
|||
|
|
商品 → 成本计算 → 智能定价 → 销售 → ROI分析 → 价格调整 → 再销售
|
|||
|
|
|
|||
|
|
## 9️⃣ 前端实现要点
|
|||
|
|
|
|||
|
|
### 技术实现
|
|||
|
|
- 使用React组件化开发
|
|||
|
|
- 集成Ant Design表格和表单组件
|
|||
|
|
- 实现虚拟列表,优化大数据量渲染
|
|||
|
|
- 使用Umi Model管理全局状态
|
|||
|
|
- 实现实时数据更新和WebSocket连接
|
|||
|
|
|
|||
|
|
### 用户体验
|
|||
|
|
- 响应式设计,支持多终端访问
|
|||
|
|
- 操作反馈及时,显示loading和success/error提示
|
|||
|
|
- 数据可视化,使用图表展示销售趋势和ROI变化
|
|||
|
|
- 批量操作支持,提高工作效率
|
|||
|
|
|
|||
|
|
## 🔟 后端服务依赖
|
|||
|
|
|
|||
|
|
### 核心服务
|
|||
|
|
- ProductService:商品管理和价格更新
|
|||
|
|
- AIService:智能定价建议
|
|||
|
|
- InventoryService:库存管理
|
|||
|
|
- AnalyticsService:销售数据分析
|
|||
|
|
|
|||
|
|
### 数据接口
|
|||
|
|
- GET /api/v1/product:获取商品列表
|
|||
|
|
- POST /api/v1/product:创建商品
|
|||
|
|
- PUT /api/v1/product/:id:更新商品信息
|
|||
|
|
- GET /api/v1/product/:id/roi:获取商品ROI分析
|
|||
|
|
- POST /api/v1/product/:id/ai-price:获取AI定价建议
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1️⃣1️⃣ 商品中心前端架构(Product Center Frontend)
|
|||
|
|
|
|||
|
|
> **设计原则**: 采用三层商品模型(SPU → SKU → Listing),支持多平台统一管理
|
|||
|
|
|
|||
|
|
### 页面结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
商品管理
|
|||
|
|
├── SPU管理
|
|||
|
|
│ ├── SPU列表页
|
|||
|
|
│ ├── SPU详情页
|
|||
|
|
│ └── SPU创建/编辑页
|
|||
|
|
├── SKU管理
|
|||
|
|
│ ├── SKU列表页
|
|||
|
|
│ ├── SKU详情页
|
|||
|
|
│ └── SKU创建/编辑页
|
|||
|
|
├── Listing管理
|
|||
|
|
│ ├── Listing列表页
|
|||
|
|
│ ├── Listing详情页
|
|||
|
|
│ └── Listing发布页
|
|||
|
|
├── 价格策略
|
|||
|
|
│ ├── 策略列表页
|
|||
|
|
│ ├── 策略配置页
|
|||
|
|
│ └── 批量调价页
|
|||
|
|
├── SKU映射
|
|||
|
|
│ ├── 映射列表页
|
|||
|
|
│ ├── 自动映射页
|
|||
|
|
│ └── 手动映射页
|
|||
|
|
└── 授权管理
|
|||
|
|
├── 授权列表页
|
|||
|
|
└── 授权详情页
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 核心页面设计
|
|||
|
|
|
|||
|
|
#### SPU列表页
|
|||
|
|
|
|||
|
|
**功能**:
|
|||
|
|
- 展示所有SPU,支持筛选、搜索、排序
|
|||
|
|
- 显示SPU关联的SKU数量和Listing数量
|
|||
|
|
- 支持批量操作(审核、停用、归档)
|
|||
|
|
|
|||
|
|
**核心字段**:
|
|||
|
|
| 字段 | 说明 | 展示方式 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| name | 产品名称 | 文本 + 链接 |
|
|||
|
|
| brand | 品牌 | 标签 |
|
|||
|
|
| category | 类目 | 级联显示 |
|
|||
|
|
| status | 状态 | 状态标签 |
|
|||
|
|
| skuCount | SKU数量 | 数字 |
|
|||
|
|
| listingCount | Listing数量 | 数字 |
|
|||
|
|
|
|||
|
|
#### SKU列表页
|
|||
|
|
|
|||
|
|
**功能**:
|
|||
|
|
- 展示所有SKU,支持按SPU筛选
|
|||
|
|
- 显示成本价、基准价、库存信息
|
|||
|
|
- 支持批量设置基准价
|
|||
|
|
|
|||
|
|
**核心字段**:
|
|||
|
|
| 字段 | 说明 | 展示方式 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| skuCode | SKU编码 | 文本 |
|
|||
|
|
| attributes | 变体属性 | 标签组 |
|
|||
|
|
| costPrice | 成本价 | 金额 |
|
|||
|
|
| basePrice | 基准价 | 金额 + 编辑 |
|
|||
|
|
| stock | 库存 | 数字 |
|
|||
|
|
| listingCount | 关联Listing数 | 数字 |
|
|||
|
|
|
|||
|
|
#### Listing列表页
|
|||
|
|
|
|||
|
|
**功能**:
|
|||
|
|
- 展示所有平台商品,支持按平台、店铺筛选
|
|||
|
|
- 显示最终价格、状态、同步状态
|
|||
|
|
- 支持批量发布、下架、调价
|
|||
|
|
|
|||
|
|
**核心字段**:
|
|||
|
|
| 字段 | 说明 | 展示方式 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| platform | 平台 | 图标 + 名称 |
|
|||
|
|
| shopName | 店铺名称 | 文本 |
|
|||
|
|
| title | 商品标题 | 文本 + 链接 |
|
|||
|
|
| price | 最终价格 | 金额 + 编辑 |
|
|||
|
|
| stock | 库存 | 数字 |
|
|||
|
|
| status | 状态 | 状态标签 |
|
|||
|
|
| syncStatus | 同步状态 | 图标 |
|
|||
|
|
|
|||
|
|
#### 价格策略配置页
|
|||
|
|
|
|||
|
|
**功能**:
|
|||
|
|
- 创建和管理价格策略
|
|||
|
|
- 支持按平台、店铺、Listing设置策略
|
|||
|
|
- 支持倍率、固定值、动态定价三种策略类型
|
|||
|
|
|
|||
|
|
**策略类型**:
|
|||
|
|
| 类型 | 说明 | 计算方式 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| MULTIPLIER | 倍率定价 | 最终价 = 基准价 × 倍率 |
|
|||
|
|
| FIXED | 固定定价 | 最终价 = 固定值 |
|
|||
|
|
| DYNAMIC | 动态定价 | AI根据市场动态计算 |
|
|||
|
|
|
|||
|
|
**配置表单**:
|
|||
|
|
```typescript
|
|||
|
|
interface PriceStrategyForm {
|
|||
|
|
name: string;
|
|||
|
|
scopeType: 'PLATFORM' | 'SHOP' | 'LISTING';
|
|||
|
|
scopeId: string;
|
|||
|
|
strategyType: 'MULTIPLIER' | 'FIXED' | 'DYNAMIC';
|
|||
|
|
value: number;
|
|||
|
|
minPrice: number;
|
|||
|
|
maxPrice: number;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### SKU映射页
|
|||
|
|
|
|||
|
|
**功能**:
|
|||
|
|
- 自动匹配系统SKU与平台商品
|
|||
|
|
- 手动调整映射关系
|
|||
|
|
- 显示匹配置信度
|
|||
|
|
|
|||
|
|
**映射流程**:
|
|||
|
|
```
|
|||
|
|
1. 选择店铺 → 2. 执行自动映射 → 3. 审核映射结果 → 4. 确认/调整映射
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**置信度展示**:
|
|||
|
|
| 置信度 | 颜色 | 操作建议 |
|
|||
|
|
|--------|------|----------|
|
|||
|
|
| ≥ 90% | 绿色 | 自动确认 |
|
|||
|
|
| 70%-90% | 黄色 | 人工审核 |
|
|||
|
|
| < 70% | 红色 | 手动匹配 |
|
|||
|
|
|
|||
|
|
### 前端状态管理
|
|||
|
|
|
|||
|
|
**Umi Model设计**:
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
// src/models/productCenter.ts
|
|||
|
|
interface ProductCenterState {
|
|||
|
|
spuList: SPU[];
|
|||
|
|
skuList: SKU[];
|
|||
|
|
listingList: PlatformListing[];
|
|||
|
|
priceStrategies: PriceStrategy[];
|
|||
|
|
skuMappings: SKUMapping[];
|
|||
|
|
currentSPU: SPU | null;
|
|||
|
|
currentSKU: SKU | null;
|
|||
|
|
currentListing: PlatformListing | null;
|
|||
|
|
loading: boolean;
|
|||
|
|
filters: ProductFilters;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
interface ProductFilters {
|
|||
|
|
platform?: string;
|
|||
|
|
shopId?: string;
|
|||
|
|
status?: string;
|
|||
|
|
categoryId?: string;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 前端组件设计
|
|||
|
|
|
|||
|
|
**核心组件**:
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
// SPU卡片组件
|
|||
|
|
<SPUCard
|
|||
|
|
spu={spu}
|
|||
|
|
skuCount={5}
|
|||
|
|
listingCount={12}
|
|||
|
|
onEdit={() => {}}
|
|||
|
|
onView={() => {}}
|
|||
|
|
/>
|
|||
|
|
|
|||
|
|
// SKU属性标签组件
|
|||
|
|
<SKUAttributes
|
|||
|
|
attributes={{ color: '红色', size: 'XL' }}
|
|||
|
|
/>
|
|||
|
|
|
|||
|
|
// 价格显示组件
|
|||
|
|
<PriceDisplay
|
|||
|
|
basePrice={99}
|
|||
|
|
strategyPrice={108.9}
|
|||
|
|
finalPrice={109}
|
|||
|
|
showBreakdown
|
|||
|
|
/>
|
|||
|
|
|
|||
|
|
// 映射置信度组件
|
|||
|
|
<MappingConfidence
|
|||
|
|
confidence={0.85}
|
|||
|
|
status="PENDING"
|
|||
|
|
/>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 前端交互流程
|
|||
|
|
|
|||
|
|
#### 商品发布流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|||
|
|
│ 选择SKU │ → │ 配置Listing │ → │ 选择店铺 │
|
|||
|
|
└─────────────┘ └─────────────┘ └─────────────┘
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|||
|
|
│ 发布成功 │ ← │ 平台审核 │ ← │ 提交发布 │
|
|||
|
|
└─────────────┘ └─────────────┘ └─────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 价格调整流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|||
|
|
│ 选择策略 │ → │ 预览影响 │ → │ 确认应用 │
|
|||
|
|
└─────────────┘ └─────────────┘ └─────────────┘
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
┌─────────────┐
|
|||
|
|
│ 同步到平台 │
|
|||
|
|
└─────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 前端性能优化
|
|||
|
|
|
|||
|
|
- **虚拟列表**: SKU和Listing列表使用虚拟滚动
|
|||
|
|
- **分页加载**: 大数据量采用分页加载
|
|||
|
|
- **缓存策略**: 使用SWR缓存API响应
|
|||
|
|
- **防抖节流**: 搜索和筛选操作使用防抖
|