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