SRS_Sản phẩm
Giới thiệu & tài liệu liên quan
Đặc tả yêu cầu phần mềm cho module Sản phẩm (CORE-05). Xem thêm Tổng quan module · UC · UI.
1/ Luồng Sequence
2/ Luồng di chuyển màn hình
3/ Đặc tả chi tiết theo màn hình
MH1: Danh sách sản phẩm
Mô tả màn hình: Liệt kê sản phẩm của sân với ô tìm kiếm (theo tên / định danh), bộ lọc nhóm hàng và trạng thái; mỗi dòng có ảnh, tên, nhóm hàng, trạng thái (hoạt động / vô hiệu hóa / lưu trữ).
Sự kiện 1 — Tìm & lọc sản phẩm
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Nhập từ khóa hoặc chọn bộ lọc nhóm hàng / trạng thái |
| 2 | Product Server | Hợp lệ: Trả về danh sách sản phẩm khớp, đã lọc theo vai trò & phạm vi sân |
Sự kiện 2 — Thêm / chỉnh sửa sản phẩm
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Nhấn [+ Thêm sản phẩm] hoặc [Sửa] trên một dòng |
| 2 | Product Client | Mở form sản phẩm (MH2) |
Không hợp lệ — Sự kiện 2
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Không có quyền quản lý danh mục | "Bạn không có quyền thực hiện thao tác này." | Toàn màn hình · cảnh báo | Ẩn nút thao tác, chỉ cho xem |
MH2: Form sản phẩm
Mô tả màn hình: Form nhập thông tin sản phẩm gồm tên & mô tả đa ngôn ngữ, nhóm hàng, hình ảnh, kênh bán hiển thị và danh sách biến thể (có biến thể mặc định).
Sự kiện 1 — Nhập thông tin sản phẩm
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Nhập tên & mô tả theo nhiều ngôn ngữ |
| 2 | Chủ sân | Chọn nhóm hàng, đính kèm ảnh, chọn kênh bán hiển thị |
| 3 | Product Server | Hợp lệ: Sinh SYSTEM + SLUG, tạo biến thể mặc định + bộ fare, trả về sản phẩm |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Bỏ trống tên sản phẩm | "Vui lòng nhập tên sản phẩm." | Dưới trường · lỗi | Chặn lưu, focus trường thiếu |
| 2 | Slug suy ra bị trùng trong sân | "Đã tạo slug duy nhất cho sản phẩm." | Dưới trường slug · thông tin | Tự thêm hậu tố, không chặn lưu |
Sự kiện 2 — Quản lý biến thể
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Nhấn [+ Thêm biến thể] (sang MH3) hoặc sửa biến thể có sẵn |
| 2 | Product Server | Hợp lệ: Lưu sản phẩm kèm danh sách biến thể trong một thao tác liền mạch |
Không hợp lệ — Sự kiện 2
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Một bước con của aggregate thất bại | "Không thể lưu sản phẩm, vui lòng thử lại." | Toàn form · lỗi | Rollback toàn bộ, không lưu gì |
MH3: Form biến thể & fares
Mô tả màn hình: Form khai báo một biến thể gồm loại biến thể, đơn vị bán, định danh SKU/BARCODE/QRCODE, khoảng thời gian hiệu lực, quan hệ bundle và bộ fare (giá mặc định + fares theo bậc).
Sự kiện 1 — Khai báo biến thể & bộ fare
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Chọn loại biến thể + đơn vị bán; gán định danh SKU/BARCODE/QRCODE |
| 2 | Chủ sân | Đặt giá mặc định và thêm fares theo bậc (ngày / số lượng / kênh) nếu cần |
| 3 | Pricing Server | Hợp lệ: Lưu biến thể + bộ fare + định danh trong một thao tác liền mạch |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Barcode / SKU trùng trong sân | "Định danh này đã được dùng." | Ô định danh · lỗi | Chặn lưu |
| 2 | Số tiền fare nhỏ hơn 0 | "Giá phải bằng 0 hoặc lớn hơn." | Ô giá · lỗi | Chặn lưu |
| 3 | Biến thể COMBO không có thành phần | "Combo cần ít nhất một thành phần." | Khu vực thành phần · lỗi | Chặn lưu, rollback |
MH4: Quản lý nhóm hàng
Mô tả màn hình: Danh sách nhóm hàng (đa ngôn ngữ, phân cấp cha-con) và form tạo/sửa nhóm hàng với biểu tượng, màu sắc và discrimination type (nhận biết nhóm add-on).
Sự kiện 1 — Tạo / sửa nhóm hàng
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Nhập tên đa ngôn ngữ, chọn biểu tượng/màu, chọn cha (tùy chọn) |
| 2 | Product Server | Hợp lệ: Lưu nhóm hàng giới hạn theo sân, áp guard chu trình / phạm vi sân |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Chọn cha tạo thành chu trình | "Không thể đặt nhóm hàng này làm cha." | Trường cha · lỗi | Chặn lưu |
| 2 | Chọn cha thuộc sân khác | "Nhóm hàng cha phải cùng sân." | Trường cha · lỗi | Chặn lưu |
MH5: Tra cứu tại quầy
Mô tả màn hình: Ô quét mã / tìm kiếm tại quầy; kết quả hiển thị biến thể kèm giá đã giải quyết; combo được bung thành phần khi thêm vào giỏ.
Sự kiện 1 — Tra cứu & giải quyết giá
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Thu ngân | Quét mã hoặc nhập định danh / tên sản phẩm |
| 2 | Pricing Server | Kiểm tra khả dụng kênh + cửa sổ hiệu lực, lọc fares, giải quyết giá |
| 3 | Pricing Server | Hợp lệ: Trả về biến thể với giá (override → discount → mặc định) để thêm vào giỏ |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Mã / tên không khớp sản phẩm | "Không tìm thấy sản phẩm." | Ô tìm kiếm · cảnh báo | Không thêm vào giỏ |
| 2 | Sản phẩm không khả dụng ở kênh quầy | "Sản phẩm không bán ở kênh này." | Kết quả · cảnh báo | Không thêm vào giỏ |
4/ Trường hợp đặc biệt
Case đặc biệt cần xử lý
- Case: Combo bung tại quầy. Một combo được hệ thống bung thành dòng dẫn có giá và các dòng thành phần giá-không; thành phần không sửa trực tiếp, số lượng nhân theo số lượng combo.
- Case: Khuyến mãi tạm tắt. Chiến dịch khuyến mãi có thể tạo/quản lý, nhưng engine tính chiết khấu hiện đang tắt — chiết khấu chưa áp dụng tự động khi giải quyết giá.
- Case: Soft-delete. Vô hiệu hóa / lưu trữ / xóa đều là soft-delete; sản phẩm đã lưu trữ là chỉ đọc và không bị xóa vật lý.