UC_Sản phẩm
Giới thiệu & tài liệu liên quan
Đặc tả Use Case cho 3 nghiệp vụ chính của module Sản phẩm (CORE-05). Xem thêm Tổng quan module · SRS · UI.
UC1 — Tạo sản phẩm & biến thể mặc định
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_CORE05_PROD_001 |
| Use Case Name | Tạo sản phẩm & biến thể mặc định |
| Use Case Description | Chủ sân tạo một sản phẩm mới (đồ uống, dụng cụ hoặc item dịch vụ) với tên & mô tả đa ngôn ngữ, gán nhóm hàng, đính kèm hình ảnh và chọn kênh bán; hệ thống tự sinh định danh hệ thống và slug, đồng thời tạo một biến thể mặc định kèm bộ fare ngay trong cùng thao tác. |
| System Under Design | Product Client · Product Server |
| Primary Actor | Chủ sân |
| Supporting/External Actor | Quản lý ca |
| Priority | HIGH |
| Trigger | Chủ sân nhấn [+ Thêm sản phẩm] trên màn hình danh sách sản phẩm |
| Pre-Condition | Người dùng đã đăng nhập và có quyền quản lý danh mục trong sân (merchant) đang chọn |
| Post-Condition | Sản phẩm mới được lưu kèm định danh SYSTEM + SLUG, một biến thể mặc định và bộ fare; sản phẩm xuất hiện ngay trong danh sách và sẵn sàng để bán |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Chủ sân | Nhấn [+ Thêm sản phẩm] trên danh sách sản phẩm |
| 2 | Product Client | Mở form sản phẩm |
| 3 | Chủ sân | Nhập tên & mô tả sản phẩm theo nhiều ngôn ngữ |
| 4 | Chủ sân | Chọn nhóm hàng và đính kèm hình ảnh |
| 5 | Chủ sân | Chọn các kênh bán sản phẩm sẽ hiển thị (quầy sân, đặt sân online) |
| 6 | Chủ sân | Nhấn [Lưu sản phẩm] |
| 7 | Product Server | Kiểm tra hợp lệ, sinh định danh SYSTEM + SLUG (đảm bảo slug duy nhất trong sân) |
| 8 | Product Server | Tạo biến thể mặc định kèm bộ fare và liên kết kênh bán trong một thao tác liền mạch |
| 9 | Product Client | Hiển thị sản phẩm mới ngay trong danh sách |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_6A.1 | 6 | Slug suy ra từ tên đã tồn tại trong sân → hệ thống tự thêm hậu tố để đảm bảo slug duy nhất, không chặn lưu |
| 2 | AF_4A.1 | 4 | Nhóm hàng cần dùng chưa có → Chủ sân nhấn [Quản lý nhóm hàng], tạo nhóm mới rồi quay lại gán cho sản phẩm |
| 3 | AF_5A.1 | 5 | Chủ sân bỏ qua chọn ảnh; sản phẩm dùng ảnh mặc định cho tới khi cập nhật sau |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_6.1 | 6 | Thiếu tên sản phẩm → hệ thống đánh dấu trường thiếu và yêu cầu bổ sung |
| 2 | EF_7.1 | 7 | Người dùng không có quyền quản lý danh mục trong sân → hệ thống chặn lưu và thông báo |
| 3 | EF_8.1 | 8 | Một bước con (biến thể / bộ fare / kênh bán) thất bại → toàn bộ thao tác rollback, không lưu gì |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR1 | Một sản phẩm thuộc đúng một sân (merchant) |
| 2 | BR2 | Slug sản phẩm phải duy nhất trong cùng một sân |
| 3 | BR3 | Định danh SYSTEM và SLUG được tự sinh khi tạo sản phẩm |
| 4 | BR4 | Mỗi sản phẩm mới luôn có một biến thể mặc định kèm bộ fare |
| 5 | BR5 | Thao tác tạo là toàn vẹn: hoặc thành công trọn vẹn, hoặc không lưu gì |
UC2 — Thêm biến thể & cấu hình fares
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_CORE05_VAR_002 |
| Use Case Name | Thêm biến thể & cấu hình fares |
| Use Case Description | Chủ sân thêm một biến thể bán được cho sản phẩm (ví dụ vợt theo độ cứng, nước theo dung tích) với loại biến thể, đơn vị đo lường, định danh SKU/BARCODE/QRCODE, khoảng thời gian hiệu lực và quan hệ bundle; đồng thời cấu hình bộ fare gồm giá mặc định và các fare theo bậc (theo ngày, số lượng, kênh) — tất cả lưu liền mạch trong một thao tác. |
| System Under Design | Product Client · Pricing Server |
| Primary Actor | Chủ sân |
| Supporting/External Actor | Quản lý ca · Module Đơn hàng (POS) |
| Priority | HIGH |
| Trigger | Chủ sân nhấn [+ Thêm biến thể] trong form sản phẩm |
| Pre-Condition | Sản phẩm đã tồn tại để gắn biến thể |
| Post-Condition | Biến thể mới được lưu kèm thông tin, định danh, bộ fare và fares; biến thể sẵn sàng được chọn khi bán |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Chủ sân | Trong form sản phẩm, nhấn [+ Thêm biến thể] |
| 2 | Chủ sân | Chọn loại biến thể (STORABLE / CONSUMABLE / SERVICE / KIT / COMBO / MANUFACTURED) và đơn vị bán |
| 3 | Chủ sân | Gán định danh SKU / BARCODE / QRCODE nếu cần |
| 4 | Chủ sân | Đặt giá mặc định trong bộ fare; thêm fare theo bậc nếu cần |
| 5 | Chủ sân | Nhấn [Lưu biến thể] |
| 6 | Pricing Server | Kiểm tra hợp lệ, lưu biến thể kèm thông tin, định danh, bộ fare và fares trong một thao tác liền mạch |
| 7 | Product Client | Biến thể mới hiển thị trong danh sách biến thể của sản phẩm |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_4A.1 | 4 | Chủ sân thêm fare theo bậc (override / discount) theo khoảng ngày, cửa sổ số lượng hoặc kênh → fare này được ưu tiên hơn giá mặc định khi đủ điều kiện |
| 2 | AF_2A.1 | 2 | Chọn loại COMBO → Chủ sân phải khai báo ít nhất một biến thể thành phần kèm số lượng |
| 3 | AF_3A.1 | 3 | Chủ sân thiết lập quan hệ bundle (combo / add-on / mua-kèm-thường-xuyên) với biến thể khác |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_5.1 | 5 | Barcode / SKU trùng trong sân hoặc lặp trong cùng yêu cầu → hệ thống báo lỗi định danh đã dùng |
| 2 | EF_5.2 | 5 | Số tiền fare nhỏ hơn 0 → hệ thống báo lỗi giá không hợp lệ |
| 3 | EF_6.1 | 6 | Biến thể COMBO khai báo không có thành phần → hệ thống từ chối kèm lý do, rollback toàn bộ thao tác |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR6 | Mỗi biến thể có đúng một bộ fare chứa ít nhất một fare mặc định |
| 2 | BR7 | Số tiền fare phải bằng không hoặc dương |
| 3 | BR8 | Định danh là duy nhất theo từng lược đồ (SKU / BARCODE / QRCODE) trong một sân |
| 4 | BR9 | Không hai biến thể nào của một sản phẩm dùng chung một tổ hợp tùy chọn |
| 5 | BR10 | Tạo / cập nhật biến thể aggregate là toàn vẹn: mọi lỗi quay lui toàn bộ thao tác |
UC3 — Tra cứu & giải quyết giá tại quầy
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_CORE05_LOOKUP_003 |
| Use Case Name | Tra cứu sản phẩm & giải quyết giá tại quầy |
| Use Case Description | Thu ngân tra cứu một biến thể tại quầy bằng định danh (SKU/BARCODE/QRCODE hoặc tìm theo tên); hệ thống kiểm tra khả dụng theo kênh và cửa sổ hiệu lực, rồi giải quyết giá áp dụng theo thứ tự override → discount → giá mặc định để thêm vào giỏ. |
| System Under Design | Product Client · Pricing Server |
| Primary Actor | Thu ngân |
| Supporting/External Actor | Module Đơn hàng (POS) |
| Priority | HIGH |
| Trigger | Thu ngân quét mã hoặc nhập định danh / tên sản phẩm tại quầy |
| Pre-Condition | Sản phẩm đang khả dụng ở kênh bán tại quầy; Thu ngân được phân công sân tương ứng |
| Post-Condition | Biến thể được thêm vào giỏ với giá đã giải quyết; combo được bung thành phần nếu có |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Thu ngân | Quét mã hoặc nhập định danh / tên sản phẩm tại quầy |
| 2 | Pricing Server | Xác định biến thể, kiểm tra khả dụng theo kênh và cửa sổ hiệu lực |
| 3 | Pricing Server | Tải bộ fare của biến thể, lọc fares theo khoảng ngày + cửa sổ số lượng + kênh |
| 4 | Pricing Server | Giải quyết giá áp dụng: nhóm override → discount đủ điều kiện thấp nhất → giá mặc định |
| 5 | Product Client | Thêm biến thể vào giỏ với giá đã giải quyết |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_4A.1 | 4 | Biến thể là COMBO → hệ thống bung thành một dòng dẫn có giá cùng các dòng thành phần giá-không; số lượng thành phần nhân theo số lượng combo |
| 2 | AF_5A.1 | 5 | Thu ngân gắn add-on / mua-kèm vào một dòng dẫn hiện có; add-on miễn phí, mua-kèm mang giá riêng |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_1.1 | 1 | Mã / tên không khớp sản phẩm nào → hệ thống báo không tìm thấy |
| 2 | EF_2.1 | 2 | Sản phẩm không gán kênh quầy hoặc ngoài cửa sổ hiệu lực → hệ thống báo không khả dụng |
| 3 | EF_4.1 | 4 | Không có fare nào đủ điều kiện → hệ thống dùng giá mặc định (cơ bản) |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR11 | Thứ tự giải quyết giá: override → discount đủ điều kiện thấp nhất → giá mặc định |
| 2 | BR12 | Cửa sổ ngày và cửa sổ số lượng lọc ứng viên fare trước khi giải quyết |
| 3 | BR13 | Sản phẩm chỉ hiển thị tại một kênh khi được gán vào kênh đó |
| 4 | BR14 | Combo được hệ thống bung phía máy chủ; thành phần combo không sửa trực tiếp |
Non-Functional Requirements
Non-Functional Requirements
| TT | Loại | Yêu cầu |
|---|---|---|
| 1 | Khả dụng | Tạo sản phẩm, thêm biến thể, tra cứu tại quầy phản hồi tức thì; danh sách cập nhật ngay sau khi lưu |
| 2 | Phân quyền | Mọi thao tác liệt kê và chỉnh sửa được lọc theo vai trò và phạm vi sân (merchant) của người dùng |
| 3 | Đa ngôn ngữ | Tên & mô tả sản phẩm, nhóm hàng, kênh bán lưu theo nhiều ngôn ngữ |
| 4 | Toàn vẹn | Thao tác aggregate hoặc thành công trọn vẹn hoặc không lưu gì; mọi bản ghi dùng soft-delete |