3.3 KiB
3.3 KiB
Catalog Service
Quản lý sản phẩm đa hình cho nền tảng thương mại đa ngành hàng.
Tổng Quan
Catalog Service quản lý sản phẩm cho nhiều ngành dọc (Retail, F&B, Services) với mô hình dữ liệu thống nhất sử dụng JSONB cho thuộc tính theo từng loại.
Tính Năng Chính
- Sản phẩm Đa hình - Bảng sản phẩm đơn hỗ trợ Physical, Service, PreparedFood
- Thuộc tính JSONB - Thuộc tính động theo loại (Cân nặng, Thời lượng, Topping...)
- Đa tenant - Catalog sản phẩm theo Shop
- Quản lý Danh mục - Danh mục sản phẩm phân cấp
Bối Cảnh Kiến Trúc
graph LR
POS["POS / Web"] --> CATALOG["📦 Catalog Service"]
CATALOG --> MERCHANT["🏪 Merchant Service"]
ORDER["📝 Order Service"] --> CATALOG
style CATALOG fill:#4a90d9,stroke:#2d5986,color:#fff
Yêu Cầu
| Yêu cầu | Phiên bản |
|---|---|
| .NET SDK | 10.0.101+ |
| Docker | 24.0+ |
| PostgreSQL | 15+ |
Bắt Đầu Nhanh
cd services/catalog-service-net
cp .env.example .env
dotnet restore
dotnet run --project src/CatalogService.API
Cấu Trúc Dự Án
catalog-service-net/
├── src/
│ ├── CatalogService.API/ # Controllers, CQRS
│ ├── CatalogService.Domain/ # Aggregates, Entities
│ └── CatalogService.Infrastructure/ # EF Core, Repositories
├── tests/
│ ├── CatalogService.UnitTests/
│ └── CatalogService.FunctionalTests/
└── docs/
API Endpoints
| Method | Endpoint | Mô tả |
|---|---|---|
GET |
/api/v1/products |
Danh sách sản phẩm theo shop |
GET |
/api/v1/products/{id} |
Chi tiết sản phẩm |
POST |
/api/v1/products |
Tạo sản phẩm |
PUT |
/api/v1/products/{id} |
Cập nhật sản phẩm |
DELETE |
/api/v1/products/{id} |
Xóa sản phẩm |
GET |
/api/v1/categories |
Danh sách danh mục |
POST |
/api/v1/categories |
Tạo danh mục |
Domain Model
Loại Sản Phẩm
| Loại | Thuộc tính | Ví dụ |
|---|---|---|
Physical |
Cân nặng, Kích thước, SKU | Áo, Điện thoại |
Service |
Thời lượng, Cần nhân viên | Cắt tóc, Massage |
PreparedFood |
Công thức, Topping, Bếp | Cà phê, Pizza |
Product Entity (JSONB Attributes)
public class Product : Entity, IAggregateRoot
{
public Guid ShopId { get; private set; }
public string Name { get; private set; }
public decimal Price { get; private set; }
public ProductType Type { get; private set; }
public JsonDocument? Attributes { get; private set; } // Theo loại
}
Services Liên Quan
- Order Service - Sử dụng dữ liệu sản phẩm
- Merchant Service - Cấu hình Shop
- Inventory Service - Tồn kho sản phẩm Physical
Tài Nguyên
License
Proprietary - GoodGo Platform