Appearance
Đặc tả Yêu cầu Phần mềm (SRS)
Website Thương mại Điện tử — Công ty Máy tính TechVN
| Thông tin tài liệu | |
|---|---|
| Mã tài liệu | SRS-TECHVN-ECOM-2026-001 |
| Phiên bản | 1.0 |
| Ngày tạo | 09/05/2026 |
| Ngày cập nhật | 09/05/2026 |
| Tác giả | Phòng Phân tích Nghiệp vụ — TechVN |
| Người phê duyệt | Giám đốc Công nghệ (CTO) |
| Trạng thái | Bản nháp (Draft) |
| Mức độ bảo mật | Nội bộ (Internal) |
Lịch sử thay đổi
| Phiên bản | Ngày | Người thay đổi | Mô tả |
|---|---|---|---|
| 0.1 | 15/04/2026 | Nguyễn Văn A | Khởi tạo tài liệu, phác thảo phạm vi |
| 0.5 | 25/04/2026 | Trần Thị B | Bổ sung yêu cầu chức năng chi tiết |
| 0.8 | 03/05/2026 | Lê Văn C | Bổ sung yêu cầu phi chức năng, review nội bộ |
| 1.0 | 09/05/2026 | Nguyễn Văn A | Hoàn thiện sau phê duyệt lần 1 |
Mục lục
- Giới thiệu
- Mô tả tổng quan hệ thống
- Yêu cầu chức năng
- Yêu cầu phi chức năng
- Yêu cầu giao diện
- Ràng buộc thiết kế
- Mô hình dữ liệu
- Phụ lục
1. Giới thiệu
1.1 Mục đích
Tài liệu này mô tả đầy đủ các yêu cầu phần mềm cho hệ thống Website Thương mại Điện tử của Công ty Máy tính TechVN. Tài liệu phục vụ làm cơ sở cho các bên liên quan trong quá trình phát triển, kiểm thử và nghiệm thu hệ thống.
1.2 Phạm vi
Hệ thống bao gồm:
- Website bán hàng trực tuyến (Front-end): Giao diện dành cho khách hàng duyệt, tìm kiếm, so sánh và mua sản phẩm máy tính, linh kiện, phụ kiện.
- Hệ thống quản trị (Back-office): Giao diện dành cho nhân viên quản lý sản phẩm, đơn hàng, khách hàng, khuyến mãi và báo cáo.
- API tích hợp: Kết nối với cổng thanh toán, đơn vị vận chuyển, hệ thống ERP nội bộ.
Hệ thống không bao gồm:
- Ứng dụng di động native (giai đoạn sau).
- Hệ thống quản lý kho vật lý (sử dụng ERP hiện có).
- Module kế toán (tích hợp với phần mềm kế toán bên thứ ba).
1.3 Đối tượng sử dụng tài liệu
| Đối tượng | Mục đích sử dụng |
|---|---|
| Product Owner | Xác nhận yêu cầu nghiệp vụ |
| Đội phát triển (Dev) | Cơ sở thiết kế và lập trình |
| Đội kiểm thử (QA/QC) | Xây dựng test case và kịch bản kiểm thử |
| Đội vận hành (Ops) | Lập kế hoạch triển khai và vận hành |
| Ban Giám đốc | Phê duyệt phạm vi và ngân sách |
1.4 Định nghĩa và viết tắt
| Thuật ngữ | Định nghĩa |
|---|---|
| SKU | Stock Keeping Unit — Mã đơn vị quản lý tồn kho |
| COD | Cash on Delivery — Thanh toán khi nhận hàng |
| VNPAY | Cổng thanh toán trực tuyến tại Việt Nam |
| OTP | One-Time Password — Mật khẩu dùng một lần |
| SEO | Search Engine Optimization — Tối ưu hóa công cụ tìm kiếm |
| CDN | Content Delivery Network — Mạng phân phối nội dung |
| SLA | Service Level Agreement — Cam kết chất lượng dịch vụ |
| GHTK | Giao Hàng Tiết Kiệm — Đơn vị vận chuyển |
| GHN | Giao Hàng Nhanh — Đơn vị vận chuyển |
1.5 Tài liệu tham chiếu
| Mã tài liệu | Tên tài liệu |
|---|---|
| BRD-TECHVN-2026-001 | Business Requirements Document — Dự án TMĐT TechVN |
| PRD-TECHVN-2026-001 | Product Requirements Document |
| SA-TECHVN-2026-001 | Solution Architecture Document |
| IEEE 830-1998 | IEEE Recommended Practice for SRS |
2. Mô tả tổng quan hệ thống
2.1 Bối cảnh kinh doanh
Công ty Máy tính TechVN hiện có 12 cửa hàng tại TP.HCM, Hà Nội và Đà Nẵng. Doanh thu online hiện chiếm 15% tổng doanh thu thông qua các sàn TMĐT (Shopee, Lazada). Mục tiêu xây dựng website riêng nhằm:
- Tăng tỷ trọng doanh thu online lên 40% trong 18 tháng.
- Xây dựng dữ liệu khách hàng độc lập, không phụ thuộc sàn TMĐT.
- Tạo trải nghiệm mua sắm chuyên biệt cho sản phẩm công nghệ.
2.2 Tác nhân hệ thống (Actors)
┌─────────────────────────────────────────────────────────┐
│ HỆ THỐNG TECHVN │
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────────────┐ │
│ │ Khách │ │ Khách │ │ Quản trị viên │ │
│ │ vãng lai │ │ hàng │ │ (Admin) │ │
│ │ (Guest) │ │ (Member) │ │ │ │
│ └─────┬─────┘ └─────┬─────┘ └────────┬──────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Website TechVN │ │
│ └──────────────────────┬───────────────────────────┘ │
│ │ │
│ ┌───────────────┼───────────────┐ │
│ ▼ ▼ ▼ │
│ ┌────────────┐ ┌────────────┐ ┌────────────────┐ │
│ │ VNPAY / │ │ GHTK / │ │ ERP Nội bộ │ │
│ │ MoMo │ │ GHN │ │ │ │
│ └────────────┘ └────────────┘ └────────────────┘ │
└─────────────────────────────────────────────────────────┘| Actor | Mô tả |
|---|---|
| Khách vãng lai (Guest) | Người dùng chưa đăng ký. Có thể duyệt sản phẩm, tìm kiếm, so sánh, thêm vào giỏ hàng. Cần đăng ký/đăng nhập để đặt hàng. |
| Khách hàng (Member) | Người dùng đã đăng ký. Có thể đặt hàng, theo dõi đơn hàng, quản lý tài khoản, tích điểm, đánh giá sản phẩm. |
| Quản trị viên (Admin) | Nhân viên nội bộ với các cấp quyền: Super Admin, Quản lý sản phẩm, Quản lý đơn hàng, Nhân viên CSKH, Marketing. |
| Hệ thống thanh toán | VNPAY, MoMo, Ngân hàng nội địa — xử lý giao dịch thanh toán trực tuyến. |
| Hệ thống vận chuyển | GHTK, GHN, Viettel Post — tính phí, tạo đơn, tra cứu trạng thái vận chuyển. |
| ERP nội bộ | Đồng bộ tồn kho, giá bán, thông tin sản phẩm. |
2.3 Giả định và phụ thuộc
Giả định:
- API của VNPAY, MoMo hoạt động ổn định với SLA 99.5%.
- Hệ thống ERP hiện có cung cấp API RESTful để đồng bộ dữ liệu.
- Đội ngũ vận hành có ít nhất 2 nhân viên quản trị hệ thống full-time.
- Hạ tầng hosting đặt tại Việt Nam (AWS ap-southeast-1 hoặc tương đương).
Phụ thuộc:
- Hoàn thành tích hợp API ERP trước khi go-live.
- Ký hợp đồng với ít nhất 2 đơn vị vận chuyển.
- Đăng ký merchant account với VNPAY và MoMo.
3. Yêu cầu chức năng
3.1 Quản lý tài khoản người dùng
FR-ACC-001: Đăng ký tài khoản
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ACC-001 |
| Tên | Đăng ký tài khoản khách hàng |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Khách vãng lai |
Mô tả: Hệ thống cho phép khách vãng lai tạo tài khoản mới bằng email hoặc số điện thoại.
Luồng chính (Happy Path):
- Người dùng truy cập trang đăng ký.
- Người dùng nhập thông tin: Họ tên, Email, Số điện thoại, Mật khẩu.
- Hệ thống kiểm tra email/SĐT chưa được đăng ký.
- Hệ thống gửi mã OTP qua SMS hoặc email.
- Người dùng nhập mã OTP.
- Hệ thống xác thực OTP và tạo tài khoản.
- Hệ thống chuyển hướng về trang chủ với trạng thái đã đăng nhập.
Luồng ngoại lệ:
| Mã | Điều kiện | Hệ thống xử lý |
|---|---|---|
| EX-001 | Email/SĐT đã tồn tại | Hiển thị thông báo "Email/SĐT đã được sử dụng" kèm link đăng nhập |
| EX-002 | Mật khẩu không đủ mạnh | Hiển thị yêu cầu mật khẩu tối thiểu 8 ký tự, chứa chữ hoa, chữ thường, số |
| EX-003 | OTP hết hạn (5 phút) | Cho phép gửi lại OTP, tối đa 3 lần/giờ |
| EX-004 | OTP sai quá 5 lần | Khóa tính năng đăng ký 30 phút cho IP đó |
Quy tắc nghiệp vụ:
- BR-001: Mật khẩu phải có tối thiểu 8 ký tự, bao gồm chữ hoa, chữ thường và số.
- BR-002: Mỗi số điện thoại chỉ được liên kết với 1 tài khoản.
- BR-003: OTP có hiệu lực trong 5 phút.
FR-ACC-002: Đăng nhập
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ACC-002 |
| Tên | Đăng nhập tài khoản |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Khách hàng |
Mô tả: Hệ thống hỗ trợ đăng nhập bằng email/SĐT + mật khẩu, hoặc đăng nhập qua mạng xã hội (Google, Facebook).
Luồng chính:
- Người dùng nhập email/SĐT và mật khẩu.
- Hệ thống xác thực thông tin đăng nhập.
- Hệ thống tạo session và JWT token.
- Hệ thống chuyển hướng về trang trước đó hoặc trang chủ.
Luồng ngoại lệ:
| Mã | Điều kiện | Hệ thống xử lý |
|---|---|---|
| EX-005 | Sai mật khẩu | Hiển thị "Thông tin đăng nhập không chính xác" (không chỉ rõ sai email hay mật khẩu) |
| EX-006 | Sai mật khẩu 5 lần liên tiếp | Khóa tài khoản 15 phút, gửi email cảnh báo |
| EX-007 | Tài khoản bị vô hiệu hóa | Hiển thị thông báo liên hệ CSKH |
FR-ACC-003: Quên mật khẩu
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ACC-003 |
| Tên | Khôi phục mật khẩu |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Khách hàng |
Mô tả: Cho phép người dùng đặt lại mật khẩu thông qua email hoặc SMS OTP.
Luồng chính:
- Người dùng chọn "Quên mật khẩu" tại trang đăng nhập.
- Người dùng nhập email hoặc SĐT đã đăng ký.
- Hệ thống gửi link đặt lại mật khẩu (email) hoặc OTP (SMS).
- Người dùng tạo mật khẩu mới.
- Hệ thống cập nhật mật khẩu và hủy tất cả session cũ.
3.2 Quản lý sản phẩm
FR-PRD-001: Hiển thị danh mục sản phẩm
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-PRD-001 |
| Tên | Hiển thị danh mục sản phẩm phân cấp |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Tất cả người dùng |
Mô tả: Hệ thống hiển thị danh mục sản phẩm dạng cây phân cấp tối đa 3 cấp.
Cấu trúc danh mục:
Laptop
├── Laptop Gaming
│ ├── ASUS ROG
│ ├── MSI
│ └── Lenovo Legion
├── Laptop Văn phòng
│ ├── Dell
│ ├── HP
│ └── ThinkPad
├── Laptop Đồ họa
│ └── MacBook Pro
└── Laptop Sinh viên
PC - Máy tính để bàn
├── PC Gaming
├── PC Văn phòng
├── PC Đồ họa - Render
└── PC theo cấu hình
Linh kiện máy tính
├── CPU
├── Mainboard
├── RAM
├── VGA - Card màn hình
├── Ổ cứng SSD / HDD
├── Nguồn - PSU
├── Case - Vỏ máy tính
└── Tản nhiệt
Màn hình
├── Màn hình Gaming
├── Màn hình Đồ họa
└── Màn hình Văn phòng
Phụ kiện
├── Bàn phím
├── Chuột
├── Tai nghe
├── Loa
└── Balo - Túi chống sốcYêu cầu chi tiết:
- Mỗi danh mục có: Tên, Slug URL, Hình ảnh đại diện, Mô tả, Thứ tự hiển thị.
- Hỗ trợ ẩn/hiện danh mục từ trang quản trị.
- Hiển thị số lượng sản phẩm bên cạnh tên danh mục.
FR-PRD-002: Trang chi tiết sản phẩm
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-PRD-002 |
| Tên | Hiển thị chi tiết sản phẩm |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Tất cả người dùng |
Mô tả: Trang chi tiết sản phẩm hiển thị đầy đủ thông tin giúp khách hàng đưa ra quyết định mua hàng.
Thông tin hiển thị:
| Nhóm | Trường dữ liệu | Bắt buộc |
|---|---|---|
| Thông tin chính | Tên sản phẩm, SKU, Thương hiệu | Có |
| Giá | Giá gốc, Giá khuyến mãi, % giảm giá | Có |
| Hình ảnh | Ảnh chính, Gallery (tối đa 10 ảnh), Video | Có (ảnh chính) |
| Mô tả | Mô tả ngắn, Mô tả chi tiết (HTML) | Có |
| Thông số kỹ thuật | Bảng thông số theo danh mục (CPU, RAM, Ổ cứng, VGA...) | Có |
| Tồn kho | Trạng thái: Còn hàng / Hết hàng / Đặt trước | Có |
| Đánh giá | Điểm trung bình, Số lượng đánh giá, Danh sách đánh giá | Không |
| Liên quan | Sản phẩm cùng danh mục, Phụ kiện đi kèm, Sản phẩm đã xem | Không |
Yêu cầu đặc biệt cho ngành hàng máy tính:
- Hiển thị bảng so sánh thông số kỹ thuật nhanh trên trang sản phẩm.
- Nút "So sánh" cho phép thêm sản phẩm vào danh sách so sánh (tối đa 4 sản phẩm).
- Hiển thị badge: "Mới", "Bán chạy", "Giảm giá sốc", "Trả góp 0%".
- Hiển thị thông tin bảo hành theo chính sách từng thương hiệu.
FR-PRD-003: Tìm kiếm và lọc sản phẩm
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-PRD-003 |
| Tên | Tìm kiếm và lọc sản phẩm nâng cao |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Tất cả người dùng |
Tìm kiếm:
- Tìm kiếm toàn văn (full-text search) theo tên sản phẩm, SKU, thương hiệu.
- Gợi ý tìm kiếm (autocomplete) khi nhập từ khóa.
- Hỗ trợ tìm kiếm tiếng Việt có dấu và không dấu.
- Lưu lịch sử tìm kiếm (cho khách hàng đã đăng nhập).
- Hiển thị "Từ khóa phổ biến" khi focus vào ô tìm kiếm.
Bộ lọc theo danh mục Laptop:
| Tiêu chí lọc | Giá trị |
|---|---|
| Khoảng giá | Dưới 10tr, 10-15tr, 15-20tr, 20-30tr, Trên 30tr, Tùy chỉnh |
| Thương hiệu | ASUS, Dell, HP, Lenovo, Acer, MSI, Apple, Gigabyte |
| CPU | Intel Core i3, i5, i7, i9, AMD Ryzen 3, 5, 7, 9, Apple M-series |
| RAM | 8GB, 16GB, 32GB, 64GB |
| Ổ cứng | 256GB SSD, 512GB SSD, 1TB SSD, 2TB SSD |
| VGA | Onboard, NVIDIA GTX, NVIDIA RTX, AMD Radeon |
| Kích thước màn hình | 13 inch, 14 inch, 15.6 inch, 16 inch, 17 inch |
| Nhu cầu sử dụng | Gaming, Văn phòng, Đồ họa, Lập trình, Sinh viên |
Sắp xếp: Phổ biến nhất, Giá thấp đến cao, Giá cao đến thấp, Mới nhất, Đánh giá cao nhất, Bán chạy nhất.
FR-PRD-004: So sánh sản phẩm
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-PRD-004 |
| Tên | So sánh thông số kỹ thuật sản phẩm |
| Mức ưu tiên | Trung bình (Should-have) |
| Actor | Tất cả người dùng |
Mô tả:
- Cho phép so sánh từ 2 đến 4 sản phẩm cùng danh mục.
- Hiển thị bảng so sánh các thông số kỹ thuật song song.
- Tô sáng (highlight) các thông số khác nhau giữa sản phẩm.
- Lưu trạng thái so sánh trong session (không mất khi chuyển trang).
3.3 Giỏ hàng và Đặt hàng
FR-ORD-001: Quản lý giỏ hàng
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ORD-001 |
| Tên | Quản lý giỏ hàng mua sắm |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Tất cả người dùng |
Chức năng:
- Thêm sản phẩm vào giỏ hàng (chọn số lượng, phiên bản nếu có).
- Cập nhật số lượng sản phẩm trong giỏ.
- Xóa sản phẩm khỏi giỏ hàng.
- Hiển thị tổng tiền tạm tính.
- Áp dụng mã giảm giá (coupon).
- Lưu giỏ hàng khi đăng nhập (đồng bộ giữa các thiết bị).
- Giỏ hàng của khách vãng lai lưu trong localStorage (30 ngày).
Quy tắc nghiệp vụ:
- BR-010: Số lượng mỗi sản phẩm trong giỏ tối đa 5 (sản phẩm thông thường) hoặc 1 (Laptop, PC).
- BR-011: Kiểm tra tồn kho real-time khi thêm vào giỏ và khi thanh toán.
- BR-012: Hiển thị cảnh báo nếu sản phẩm trong giỏ thay đổi giá hoặc hết hàng.
FR-ORD-002: Quy trình đặt hàng (Checkout)
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ORD-002 |
| Tên | Quy trình đặt hàng và thanh toán |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Khách hàng (Member) |
Luồng thanh toán (3 bước):
Bước 1: Thông tin giao hàng
├── Chọn địa chỉ đã lưu hoặc nhập mới
├── Chọn đơn vị vận chuyển
└── Ghi chú đơn hàng
Bước 2: Phương thức thanh toán
├── COD (Thanh toán khi nhận hàng)
├── Chuyển khoản ngân hàng
├── VNPAY (ATM / Visa / Mastercard / QR)
├── Ví MoMo
└── Trả góp qua công ty tài chính (HD Saison, FE Credit)
Bước 3: Xác nhận đơn hàng
├── Tóm tắt sản phẩm, giá, phí ship
├── Hiển thị tổng thanh toán
└── Nút "Đặt hàng"Xử lý sau đặt hàng:
- Tạo mã đơn hàng (format:
TV-YYYYMMDD-XXXXX). - Gửi email/SMS xác nhận đơn hàng.
- Trừ tồn kho tạm thời (hold stock 30 phút cho thanh toán online).
- Thông báo cho nhân viên xử lý đơn.
Trạng thái đơn hàng:
Chờ xác nhận → Đã xác nhận → Đang đóng gói → Đang giao hàng
→ Đã giao → Hoàn thành
→ Hủy (tại bất kỳ bước nào trước "Đang giao")
→ Trả hàng / Hoàn tiền (sau "Đã giao", trong 7 ngày)FR-ORD-003: Trả góp
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ORD-003 |
| Tên | Mua trả góp qua công ty tài chính |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Khách hàng |
Mô tả: Hệ thống hỗ trợ mua trả góp cho đơn hàng từ 3.000.000 VNĐ trở lên.
Kỳ hạn: 6 tháng, 12 tháng, 18 tháng, 24 tháng.
Đối tác tài chính: HD Saison, FE Credit, Home Credit.
Yêu cầu hồ sơ:
- CMND/CCCD (chụp 2 mặt).
- Ảnh chân dung (selfie).
- Thông tin nghề nghiệp và thu nhập.
3.4 Hệ thống khuyến mãi
FR-PRM-001: Quản lý mã giảm giá
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-PRM-001 |
| Tên | Hệ thống mã giảm giá (Coupon) |
| Mức ưu tiên | Trung bình (Should-have) |
| Actor | Admin (tạo), Khách hàng (sử dụng) |
Loại mã giảm giá:
| Loại | Mô tả | Ví dụ |
|---|---|---|
| Giảm theo % | Giảm phần trăm trên tổng đơn, có giới hạn tối đa | Giảm 10%, tối đa 500.000đ |
| Giảm cố định | Giảm số tiền cố định | Giảm 200.000đ |
| Freeship | Miễn phí vận chuyển | Freeship đơn từ 500.000đ |
| Combo | Giảm giá khi mua kèm | Mua Laptop + Chuột giảm 15% chuột |
Điều kiện áp dụng:
- Giá trị đơn hàng tối thiểu.
- Danh mục sản phẩm áp dụng.
- Đối tượng khách hàng (tất cả, thành viên mới, VIP).
- Thời gian hiệu lực (ngày bắt đầu — ngày kết thúc).
- Số lần sử dụng tối đa (tổng và mỗi khách hàng).
3.5 Quản trị hệ thống (Back-office)
FR-ADM-001: Dashboard tổng quan
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ADM-001 |
| Tên | Dashboard quản trị tổng quan |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Admin |
Thông tin hiển thị:
- Doanh thu hôm nay / tuần / tháng (biểu đồ cột).
- Số đơn hàng theo trạng thái.
- Top 10 sản phẩm bán chạy.
- Sản phẩm sắp hết hàng (tồn kho < 5).
- Khách hàng mới đăng ký.
- Đánh giá mới cần duyệt.
FR-ADM-002: Quản lý sản phẩm
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ADM-002 |
| Tên | CRUD sản phẩm trong hệ thống |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Admin — Quản lý sản phẩm |
Chức năng:
- Thêm, sửa, xóa (soft delete), nhân bản sản phẩm.
- Upload hình ảnh kéo thả, tự động resize và nén.
- Import/Export sản phẩm hàng loạt bằng file Excel.
- Quản lý biến thể (variant) sản phẩm (màu sắc, cấu hình).
- Thiết lập SEO meta cho từng sản phẩm (title, description, canonical URL).
- Lên lịch hiển thị sản phẩm (schedule publish).
FR-ADM-003: Quản lý đơn hàng
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ADM-003 |
| Tên | Quản lý và xử lý đơn hàng |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Admin — Quản lý đơn hàng |
Chức năng:
- Danh sách đơn hàng với bộ lọc: trạng thái, ngày, kênh thanh toán, nhân viên xử lý.
- Xác nhận / Hủy đơn hàng.
- In phiếu giao hàng, phiếu xuất kho.
- Tạo đơn vận chuyển tự động qua API GHTK/GHN.
- Xử lý hoàn tiền (refund) qua cổng thanh toán.
- Ghi chú nội bộ trên đơn hàng.
FR-ADM-004: Phân quyền quản trị
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-ADM-004 |
| Tên | Hệ thống phân quyền RBAC |
| Mức ưu tiên | Cao (Must-have) |
| Actor | Super Admin |
Ma trận phân quyền:
| Quyền | Super Admin | QL Sản phẩm | QL Đơn hàng | CSKH | Marketing |
|---|---|---|---|---|---|
| Quản lý người dùng Admin | ✅ | ❌ | ❌ | ❌ | ❌ |
| CRUD sản phẩm | ✅ | ✅ | ❌ | ❌ | ❌ |
| Xử lý đơn hàng | ✅ | ❌ | ✅ | ✅ (xem) | ❌ |
| Quản lý khuyến mãi | ✅ | ❌ | ❌ | ❌ | ✅ |
| Quản lý banner/nội dung | ✅ | ❌ | ❌ | ❌ | ✅ |
| Xem báo cáo doanh thu | ✅ | ❌ | ✅ | ❌ | ✅ (giới hạn) |
| Cấu hình hệ thống | ✅ | ❌ | ❌ | ❌ | ❌ |
3.6 Đánh giá và Nhận xét
FR-REV-001: Đánh giá sản phẩm
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-REV-001 |
| Tên | Hệ thống đánh giá và nhận xét sản phẩm |
| Mức ưu tiên | Trung bình (Should-have) |
| Actor | Khách hàng đã mua sản phẩm |
Yêu cầu:
- Chỉ khách hàng đã mua và nhận sản phẩm mới được đánh giá.
- Đánh giá bao gồm: Số sao (1-5), Tiêu đề, Nội dung, Hình ảnh (tối đa 5).
- Admin duyệt đánh giá trước khi hiển thị.
- Admin có thể phản hồi (reply) đánh giá.
- Hiển thị badge "Đã mua hàng" bên cạnh tên người đánh giá.
3.7 Thông báo
FR-NTF-001: Hệ thống thông báo đa kênh
| Thuộc tính | Chi tiết |
|---|---|
| Mã yêu cầu | FR-NTF-001 |
| Tên | Thông báo qua Email, SMS và Push Notification |
| Mức ưu tiên | Trung bình (Should-have) |
| Actor | Hệ thống → Khách hàng, Admin |
Sự kiện kích hoạt thông báo:
| Sự kiện | SMS | Push | |
|---|---|---|---|
| Đăng ký thành công | ✅ | ❌ | ❌ |
| Đặt hàng thành công | ✅ | ✅ | ✅ |
| Đơn hàng được xác nhận | ✅ | ❌ | ✅ |
| Đơn hàng đang giao | ❌ | ✅ | ✅ |
| Đơn hàng đã giao | ✅ | ❌ | ✅ |
| Khuyến mãi / Flash sale | ✅ | ❌ | ✅ |
| Sản phẩm giảm giá (wishlist) | ✅ | ❌ | ✅ |
| Giỏ hàng bị bỏ quên (>2h) | ✅ | ❌ | ❌ |
4. Yêu cầu phi chức năng
4.1 Hiệu năng (Performance)
| Mã | Yêu cầu | Chỉ số đo lường | Mục tiêu |
|---|---|---|---|
| NFR-P01 | Thời gian tải trang chủ | First Contentful Paint (FCP) | ≤ 1.5 giây |
| NFR-P02 | Thời gian tải trang sản phẩm | Largest Contentful Paint (LCP) | ≤ 2.5 giây |
| NFR-P03 | Thời gian phản hồi API | Response Time (P95) | ≤ 500ms |
| NFR-P04 | Thời gian tìm kiếm | Trả kết quả | ≤ 300ms |
| NFR-P05 | Số người dùng đồng thời | Concurrent Users | 5.000 CCU (bình thường), 20.000 CCU (flash sale) |
| NFR-P06 | Throughput | Requests per second | 1.000 RPS |
| NFR-P07 | Core Web Vitals | CLS | ≤ 0.1 |
4.2 Bảo mật (Security)
| Mã | Yêu cầu | Chi tiết |
|---|---|---|
| NFR-S01 | Mã hóa dữ liệu | HTTPS (TLS 1.3) cho tất cả kết nối. Mã hóa dữ liệu nhạy cảm at-rest (AES-256). |
| NFR-S02 | Xác thực | JWT với refresh token. Session timeout 30 phút (inactive). |
| NFR-S03 | Phòng chống tấn công | Chống SQL Injection, XSS, CSRF. Rate limiting API (100 req/phút/IP). |
| NFR-S04 | Bảo vệ dữ liệu cá nhân | Tuân thủ Nghị định 13/2023/NĐ-CP về bảo vệ dữ liệu cá nhân. |
| NFR-S05 | Thanh toán | Tuân thủ PCI-DSS (qua cổng thanh toán). Không lưu thông tin thẻ trên server. |
| NFR-S06 | Audit log | Ghi log tất cả thao tác của Admin. Lưu trữ tối thiểu 12 tháng. |
4.3 Độ tin cậy (Reliability)
| Mã | Yêu cầu | Mục tiêu |
|---|---|---|
| NFR-R01 | Uptime | 99.9% (tối đa 8.76 giờ downtime/năm) |
| NFR-R02 | RPO (Recovery Point Objective) | ≤ 1 giờ |
| NFR-R03 | RTO (Recovery Time Objective) | ≤ 4 giờ |
| NFR-R04 | Sao lưu dữ liệu | Backup tự động hàng ngày, lưu trữ 30 ngày |
| NFR-R05 | Failover | Auto-failover cho database và application server |
4.4 Khả năng mở rộng (Scalability)
| Mã | Yêu cầu | Chi tiết |
|---|---|---|
| NFR-SC01 | Horizontal scaling | Auto-scale application server dựa trên CPU/Memory threshold |
| NFR-SC02 | Database scaling | Read replica cho query nặng (báo cáo, tìm kiếm) |
| NFR-SC03 | CDN | Phân phối static assets qua CDN với POP tại Việt Nam |
| NFR-SC04 | Caching | Redis cache cho session, product catalog, search results |
4.5 Khả năng tương thích (Compatibility)
| Mã | Yêu cầu | Chi tiết |
|---|---|---|
| NFR-C01 | Trình duyệt | Chrome 90+, Firefox 88+, Safari 14+, Edge 90+ |
| NFR-C02 | Responsive | Desktop (≥1200px), Tablet (768-1199px), Mobile (320-767px) |
| NFR-C03 | Hệ điều hành | Windows 10+, macOS 11+, iOS 14+, Android 10+ |
| NFR-C04 | Tốc độ mạng | Hoạt động ổn định trên kết nối 3G (1.5 Mbps) |
4.6 SEO và Tiếp thị
| Mã | Yêu cầu | Chi tiết |
|---|---|---|
| NFR-SEO01 | Server-side rendering | Hỗ trợ SSR hoặc SSG cho các trang sản phẩm, danh mục |
| NFR-SEO02 | Structured data | Schema.org markup cho Product, BreadcrumbList, Organization |
| NFR-SEO03 | Sitemap | Tự động sinh sitemap.xml, cập nhật khi có sản phẩm mới |
| NFR-SEO04 | Meta tags | Tùy chỉnh title, description, OG tags cho từng trang |
| NFR-SEO05 | URL thân thiện | Sử dụng slug tiếng Việt không dấu (VD: /laptop-gaming-asus-rog) |
5. Yêu cầu giao diện
5.1 Giao diện người dùng (UI)
- Thiết kế theo phong cách hiện đại, tông màu chủ đạo: Xanh dương (#1a73e8) và Trắng.
- Font chữ: Inter hoặc Roboto (hỗ trợ tiếng Việt tốt).
- Tối ưu trải nghiệm mobile-first.
- Hỗ trợ Dark Mode (tùy chọn).
- Tuân thủ WCAG 2.1 Level AA (accessibility cơ bản).
5.2 Giao diện tích hợp (API Interface)
| Hệ thống | Giao thức | Mô tả |
|---|---|---|
| VNPAY | REST API (HTTPS) | Tạo giao dịch, kiểm tra trạng thái, hoàn tiền |
| MoMo | REST API (HTTPS) | Tạo giao dịch QR, callback xác nhận |
| GHTK | REST API (HTTPS) | Tính phí, tạo đơn, tra cứu trạng thái |
| GHN | REST API (HTTPS) | Tính phí, tạo đơn, tra cứu trạng thái |
| ERP Nội bộ | REST API (HTTPS) | Đồng bộ tồn kho, giá, sản phẩm (polling mỗi 5 phút) |
| Google Analytics 4 | JavaScript SDK | Tracking hành vi người dùng, conversion |
| Facebook Pixel | JavaScript SDK | Retargeting, conversion tracking |
6. Ràng buộc thiết kế
6.1 Công nghệ
| Layer | Công nghệ đề xuất |
|---|---|
| Frontend | Next.js 15 (React), TypeScript, Tailwind CSS |
| Backend | Node.js (NestJS) hoặc Go (Gin) |
| Database | PostgreSQL 16 (chính), Redis 7 (cache) |
| Search Engine | Elasticsearch 8 hoặc Meilisearch |
| File Storage | AWS S3 hoặc MinIO |
| Message Queue | RabbitMQ hoặc AWS SQS |
| CI/CD | GitHub Actions, Docker, Kubernetes |
| Monitoring | Grafana, Prometheus, Sentry |
6.2 Quy chuẩn pháp lý
- Tuân thủ Nghị định 52/2013/NĐ-CP về Thương mại điện tử.
- Đăng ký website TMĐT với Bộ Công Thương (Online.gov.vn).
- Tuân thủ Nghị định 13/2023/NĐ-CP về Bảo vệ dữ liệu cá nhân.
- Hiển thị đầy đủ thông tin doanh nghiệp theo quy định: MST, địa chỉ, hotline.
7. Mô hình dữ liệu
7.1 Sơ đồ quan hệ chính (ERD tóm tắt)
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ users │────<│ orders │────<│ order_items │
└──────────┘ └──────────────┘ └──────┬───────┘
│ │ │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│addresses │ │ payments │ │ products │
└──────────┘ └──────────────┘ └──────┬───────┘
│
┌──────────────────────┤
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ categories │ │product_specs │
└──────────────┘ └──────────────┘7.2 Bảng chính
| Bảng | Mô tả | Ước lượng bản ghi (năm 1) |
|---|---|---|
| users | Thông tin khách hàng | 100.000 |
| products | Sản phẩm | 5.000 |
| product_variants | Biến thể sản phẩm | 15.000 |
| product_specs | Thông số kỹ thuật | 50.000 |
| categories | Danh mục phân cấp | 200 |
| orders | Đơn hàng | 200.000 |
| order_items | Chi tiết đơn hàng | 400.000 |
| payments | Giao dịch thanh toán | 200.000 |
| reviews | Đánh giá sản phẩm | 30.000 |
| coupons | Mã giảm giá | 1.000 |
8. Phụ lục
8.1 Ma trận truy vết yêu cầu
| Yêu cầu nghiệp vụ (BRD) | Yêu cầu phần mềm (SRS) | Mức ưu tiên |
|---|---|---|
| BR-01: Khách hàng tạo tài khoản | FR-ACC-001, FR-ACC-002, FR-ACC-003 | Cao |
| BR-02: Duyệt và mua sản phẩm | FR-PRD-001 → FR-PRD-004, FR-ORD-001 → FR-ORD-003 | Cao |
| BR-03: Quản lý bán hàng | FR-ADM-001 → FR-ADM-004 | Cao |
| BR-04: Khuyến mãi | FR-PRM-001 | Trung bình |
| BR-05: Đánh giá sản phẩm | FR-REV-001 | Trung bình |
| BR-06: Thông báo khách hàng | FR-NTF-001 | Trung bình |
8.2 Phân kỳ phát triển (đề xuất)
| Giai đoạn | Thời gian | Nội dung | Yêu cầu liên quan |
|---|---|---|---|
| Phase 1 — MVP | 3 tháng | Đăng ký/Đăng nhập, Catalog sản phẩm, Giỏ hàng, Đặt hàng COD, Quản trị cơ bản | FR-ACC-*, FR-PRD-001/002, FR-ORD-001/002, FR-ADM-001/002/003 |
| Phase 2 — Thanh toán & Vận chuyển | 2 tháng | Tích hợp VNPAY/MoMo, GHTK/GHN, Trả góp | FR-ORD-003, tích hợp API |
| Phase 3 — Marketing & Engagement | 2 tháng | Khuyến mãi, Đánh giá, Thông báo, So sánh sản phẩm, SEO | FR-PRM-001, FR-REV-001, FR-NTF-001, FR-PRD-003/004 |
| Phase 4 — Tối ưu | 1 tháng | Performance tuning, A/B testing, Analytics nâng cao | NFR-* |
8.3 Tiêu chí nghiệm thu (Acceptance Criteria tổng quan)
- Tất cả yêu cầu chức năng mức "Cao" hoạt động đúng trên môi trường staging.
- Đạt điểm Lighthouse ≥ 90 (Performance, SEO, Accessibility).
- Không có lỗi nghiêm trọng (Severity 1, 2) chưa được sửa.
- Load test đạt 5.000 CCU với response time P95 ≤ 500ms.
- Bảo mật: Đạt pentest cơ bản (OWASP Top 10).
- Cross-browser testing pass trên các trình duyệt yêu cầu.
Ghi chú: Tài liệu này là phiên bản sống (living document) và sẽ được cập nhật trong suốt quá trình phát triển dự án. Mọi thay đổi cần được phê duyệt bởi Product Owner và ghi nhận trong phần Lịch sử thay đổi.