- 移除未使用的TabPane组件 - 修复类型定义和导入方式 - 优化mock数据源的环境变量判断逻辑 - 更新文档结构并归档旧文件 - 添加新的UI组件和Memo组件 - 调整API路径和响应处理
161 lines
3.5 KiB
Markdown
161 lines
3.5 KiB
Markdown
# 商品域服务
|
|
|
|
> **入口**: [_index.md](_index.md)
|
|
|
|
---
|
|
|
|
## 服务列表
|
|
|
|
| 服务 | 文件 | 职责 |
|
|
|------|------|------|
|
|
| ProductService | services/ProductService.ts | 商品主数据管理 |
|
|
| SKUService | services/SKUService.ts | SKU变体管理 |
|
|
| ListingService | services/ListingService.ts | 平台刊登管理 |
|
|
| PricingService | services/PricingService.ts | 价格计算 |
|
|
|
|
---
|
|
|
|
## 核心流程
|
|
|
|
```
|
|
商品采集 → SPU创建 → SKU生成 → 平台刊登 → 价格同步
|
|
```
|
|
|
|
---
|
|
|
|
## ProductService
|
|
|
|
### 方法列表
|
|
|
|
| 方法 | 说明 | 参数 | 返回 |
|
|
|------|------|------|------|
|
|
| list | 商品列表 | ListParams | Product[] |
|
|
| get | 商品详情 | id | Product |
|
|
| create | 创建商品 | CreateRequest | Product |
|
|
| update | 更新商品 | id, UpdateRequest | Product |
|
|
| delete | 删除商品 | id | void |
|
|
|
|
### 示例
|
|
|
|
```typescript
|
|
// 获取商品列表
|
|
const products = await ProductService.list({
|
|
tenantId: 'tenant-001',
|
|
shopId: 'shop-001',
|
|
status: 'ACTIVE',
|
|
page: 1,
|
|
pageSize: 20,
|
|
});
|
|
|
|
// 创建商品
|
|
const product = await ProductService.create({
|
|
tenantId: 'tenant-001',
|
|
shopId: 'shop-001',
|
|
name: '商品名称',
|
|
platform: 'SHOPIFY',
|
|
// ...
|
|
});
|
|
```
|
|
|
|
---
|
|
|
|
## SKUService
|
|
|
|
### 方法列表
|
|
|
|
| 方法 | 说明 | 参数 | 返回 |
|
|
|------|------|------|------|
|
|
| list | SKU列表 | productId | SKU[] |
|
|
| get | SKU详情 | id | SKU |
|
|
| create | 创建SKU | CreateRequest | SKU |
|
|
| update | 更新SKU | id, UpdateRequest | SKU |
|
|
| updateStock | 更新库存 | id, quantity | SKU |
|
|
|
|
---
|
|
|
|
## ListingService
|
|
|
|
### 方法列表
|
|
|
|
| 方法 | 说明 | 参数 | 返回 |
|
|
|------|------|------|------|
|
|
| list | 刊登列表 | ListParams | Listing[] |
|
|
| get | 刊登详情 | id | Listing |
|
|
| publish | 刊登商品 | PublishRequest | Listing |
|
|
| updatePrice | 更新价格 | id, price | Listing |
|
|
| syncInventory | 同步库存 | id, stock | Listing |
|
|
|
|
---
|
|
|
|
## PricingService
|
|
|
|
### 方法列表
|
|
|
|
| 方法 | 说明 | 参数 | 返回 |
|
|
|------|------|------|------|
|
|
| calculate | 计算价格 | PriceParams | number |
|
|
| getStrategy | 获取策略 | id | PriceStrategy |
|
|
| createStrategy | 创建策略 | CreateRequest | PriceStrategy |
|
|
| updateStrategy | 更新策略 | id, UpdateRequest | PriceStrategy |
|
|
|
|
### 价格计算流程
|
|
|
|
```
|
|
基准价(SKU.basePrice)
|
|
↓
|
|
策略计算(PriceStrategy)
|
|
↓
|
|
最终价(Listing.price)
|
|
```
|
|
|
|
### 示例
|
|
|
|
```typescript
|
|
const finalPrice = await PricingService.calculate({
|
|
basePrice: 100,
|
|
strategy: {
|
|
type: 'multiplier',
|
|
value: 1.2,
|
|
},
|
|
platform: 'SHOPIFY',
|
|
});
|
|
// 结果: 120
|
|
```
|
|
|
|
---
|
|
|
|
## 状态机
|
|
|
|
```
|
|
DRAFT → PENDING_REVIEW → ACTIVE → INACTIVE
|
|
↓
|
|
ARCHIVED
|
|
```
|
|
|
|
| 状态 | 说明 | 允许操作 |
|
|
|------|------|---------|
|
|
| DRAFT | 草稿 | 编辑、删除、提交审核 |
|
|
| PENDING_REVIEW | 待审核 | 审核通过、审核拒绝 |
|
|
| ACTIVE | 活跃 | 编辑、停用、刊登 |
|
|
| INACTIVE | 停用 | 启用、归档 |
|
|
| ARCHIVED | 归档 | 删除 |
|
|
|
|
---
|
|
|
|
## API端点
|
|
|
|
| 端点 | 方法 | 服务方法 |
|
|
|------|------|----------|
|
|
| /api/v1/products | GET | ProductService.list |
|
|
| /api/v1/products | POST | ProductService.create |
|
|
| /api/v1/products/:id | GET | ProductService.get |
|
|
| /api/v1/products/:id | PUT | ProductService.update |
|
|
| /api/v1/products/:id | DELETE | ProductService.delete |
|
|
| /api/v1/products/:id/skus | GET | SKUService.list |
|
|
| /api/v1/products/:id/listings | GET | ListingService.list |
|
|
| /api/v1/listings/:id/publish | POST | ListingService.publish |
|
|
|
|
---
|
|
|
|
*最后更新: 2026-03-22*
|