URD: Khách hàng thân thiết
| Module | EXT-01 | Phiên bản | v0.2 |
|---|---|---|---|
| Status | Planned | Ngày | 2026-06-04 |
Tài liệu nghiệp vụ. URD này là danh sách tính năng của Khách hàng thân thiết - mỗi tính năng bên dưới là một Vùng chức năng (
<AREA>). Cùng<AREA>đó khóa các PRD (PRD-<AREA>-NNN) và test (TC-<AREA>-NNN) của tính năng, và mỗi tính năng được liệt kê trong danh mục tính năng Delivery. Xem quy ước Feature Spine.
1. Mục đích
Thưởng cho khách quay lại để họ ghé thường xuyên hơn và chi nhiều hơn. Module biến đơn mua hoàn tất thành điểm, cho khách thăng hạng và đổi điểm lấy phần thưởng.
2. Phạm vi
| Bao gồm | Loại trừ |
|---|---|
| Tích điểm trên đơn hoàn tất | Chia sẻ điểm liên nhà bán |
| Hạng, danh mục phần thưởng, đổi điểm | Tính phí thành viên trả phí |
| Phần thưởng giới thiệu & sinh nhật | Gửi tin nhắn (do Marketing xử lý) |
3. Định nghĩa
| Thuật ngữ | Định nghĩa |
|---|---|
| Point | Đơn vị giá trị thân thiết kiếm được khi chi tiêu; có thể đổi phần thưởng |
| Tier | Cấp thành viên (ví dụ Bronze/Silver/Gold) đem lại lợi ích |
| Earning rate | Tỷ lệ quy đổi giá trị đơn thành điểm, đặt theo từng nhà bán |
| Redemption | Dùng điểm để giảm giá hoặc đổi phần thưởng |
4. Mô hình khái niệm
Chỉ mang tính khái niệm - schema đầy đủ nằm trong tài liệu lập trình viên customer-points.
5. Danh mục tính năng
Danh sách tính năng của module. Mỗi dòng là một tính năng (một Vùng chức năng). Chi tiết ở §6. Phản chiếu trong danh mục tính năng Delivery.
| Feature ID | Tính năng | Phase | Trạng thái | Ưu tiên |
|---|---|---|---|---|
PTS | Tích điểm | P1 | Built | High |
RDM | Đổi điểm & Hạng | P2 | Planned | Medium |
Trạng thái: live từ Plane nếu có map, còn lại do registry khai báo. Vocabulary đồng nhất với Plane (state-group / phase).
6. Tính năng
Mỗi tính năng một mục con, theo thứ tự danh mục. Mỗi tính năng giữ mô tả, yêu cầu và tiêu chí chấp nhận cùng nhau. Ưu tiên = MoSCoW (Must / Should / Could / Won't).
PTS - Tích điểm Planned
Feature ID: loyalty/PTS · Phase: P1 · PRDs: - · Dev: @nx/sale
Phục vụ người dùng: khi một đơn gắn khách hoàn tất thanh toán, điểm được tự động cộng vào số dư của khách, một lần cho mỗi đơn, theo tỷ lệ tích điểm cấu hình được của nhà bán.
Yêu cầu
| ID | P | Yêu cầu |
|---|---|---|
| URD-PTS-001 | M | Cộng điểm khi đơn hoàn tất thanh toán |
| URD-PTS-002 | M | Tích điểm phải idempotent theo từng đơn (không cộng đôi) |
| URD-PTS-003 | S | Tỷ lệ tích điểm cấu hình được theo từng nhà bán |
Tiêu chí chấp nhận
AC-PTS-01: Cộng điểm khi đơn hoàn tất
| Cho trước | Khi nào | Thì |
|---|---|---|
| Một đơn gắn khách với tỷ lệ tích khác 0 | Đơn hoàn tất thanh toán | Điểm = tổng × tỷ lệ được cộng một lần vào số dư khách |
RDM - Đổi điểm & Hạng Planned
Feature ID: loyalty/RDM · Phase: P2 · PRDs: - · Dev: @nx/sale
Phục vụ người dùng: khách dùng điểm để giảm giá khi thanh toán, thăng hạng thành viên theo điểm tích lũy trọn đời, và đổi điểm từ danh mục phần thưởng do nhà bán cấu hình.
Yêu cầu
| ID | P | Yêu cầu |
|---|---|---|
| URD-RDM-001 | S | Đổi điểm để giảm giá khi thanh toán |
| URD-RDM-002 | C | Gán khách vào hạng theo điểm tích lũy trọn đời |
| URD-RDM-003 | C | Cấu hình danh mục phần thưởng |
Tiêu chí chấp nhận
AC-RDM-01: Đổi điểm để giảm giá
| Cho trước | Khi nào | Thì |
|---|---|---|
| Một khách có đủ số dư điểm | Họ đổi điểm khi thanh toán | Một khoản giảm giá được áp dụng và số dư giảm tương ứng |
7. Ràng buộc & Không thuộc phạm vi
Ràng buộc
| ID | Ràng buộc |
|---|---|
| C-01 | Điểm chỉ tích cho khách đã định danh (đơn ẩn danh không tích) |
| C-02 | Một đơn cộng điểm nhiều nhất một lần |
Không thuộc phạm vi
- Gộp điểm liên nhà bán hoặc toàn chuỗi nhượng quyền
- Gửi tin nhắn marketing (thuộc Marketing)
8. Lịch sử phiên bản
| Ngày | Tác giả | Mô tả | Ver |
|---|---|---|---|
| 2026-05-30 | PM | Bản khởi tạo; tích điểm đã hoạt động, phần còn lại theo kế hoạch | v0.1 |
| 2026-06-04 | Claude (AI pair) | Sắp xếp lại theo tính năng (Feature Spine); mỗi tính năng mang yêu cầu + tiêu chí chấp nhận riêng | v0.2 |