URD: Chiến dịch
| Module | EXT-03 | Phiên bản | v0.2 |
|---|---|---|---|
| Status | Planned | Ngày | 2026-06-04 |
Tài liệu nghiệp vụ. URD này chính là danh sách tính năng của Chiến dịch - mỗi tính năng bên dưới là một Vùng chức năng (
<AREA>). Cùng mã<AREA>đó key cho 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
Cho phép nhà bán thúc đẩy doanh số bằng khuyến mãi nhắm mục tiêu - giảm giá, combo và ưu đãi BuyGet - áp tự động hoặc qua mã giảm, giới hạn theo khách, sản phẩm và ngày.
2. Phạm vi
| Bao gồm | Loại trừ |
|---|---|
| Thiết lập khuyến mãi, quy tắc, vòng đời | Điểm thân thiết (module Khách hàng thân thiết) |
| BuyGet, combo, mã giảm | Gửi tin nhắn (module Marketing) |
| Áp giảm giá khi thanh toán | Tính thuế (engine thuế của Pricing) |
3. Định nghĩa
| Thuật ngữ | Định nghĩa |
|---|---|
| Promotion | Một chiến dịch với quy tắc điều kiện và một phương thức giảm giá |
| Method | Cách hoạt động của giảm giá (phần trăm/cố định, mục tiêu, phân bổ) |
| Rule | Một điều kiện kiểm soát ai/cái gì đủ điều kiện |
| BuyGet | Ưu đãi có điều kiện "mua X, tặng Y" |
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 promotion.
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. Đối chiếu với danh mục tính năng Delivery.
| Feature ID | Tính năng | Phase | Trạng thái | Ưu tiên |
|---|---|---|---|---|
PRM | Thiết lập & Vòng đời khuyến mãi | P1 | Built | High |
APP | Áp giảm giá | P2 | Planned | High |
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ột mục con cho mỗi tính năng, theo thứ tự catalog. Mỗi tính năng giữ mô tả, yêu cầu, và nghiệm thu cùng nhau. Ưu tiên = MoSCoW (Must / Should / Could / Won't).
PRM - Thiết lập & Vòng đời khuyến mãi Planned
Mã tính năng: campaign/PRM · Phase: P1 · PRDs: - · Dev: @nx/pricing
Làm gì cho người dùng: nhà bán thiết lập một khuyến mãi - phương thức giảm giá (phần trăm/cố định) cùng quy tắc điều kiện, nguồn và mục tiêu - trong một bước, rồi chuyển nó qua vòng đời từ nháp sang hoạt động đến lưu trữ, với giới hạn sử dụng được thực thi.
Yêu cầu
| ID | P | Yêu cầu |
|---|---|---|
| URD-PRM-001 | M | Tạo khuyến mãi cùng phương thức và quy tắc trong một thao tác duy nhất |
| URD-PRM-002 | M | Chuyển khuyến mãi qua DRAFT → ACTIVATED → DEACTIVATED/EXPIRED/ARCHIVED |
| URD-PRM-003 | S | Định nghĩa quy tắc điều kiện, nguồn và mục tiêu |
| URD-PRM-004 | S | Thực thi giới hạn sử dụng theo từng khuyến mãi |
Nghiệm thu
AC-PRM-01: Tạo khuyến mãi trong một thao tác duy nhất
| Cho trước | Khi nào | Thì |
|---|---|---|
| Payload khuyến mãi, phương thức và quy tắc | Lệnh tạo aggregate được gửi | Tất cả thực thể được tạo cùng nhau, hoặc không tạo gì khi lỗi |
APP - Áp giảm giá Planned
Mã tính năng: campaign/APP · Phase: P2 · PRDs: - · Dev: @nx/pricing
Làm gì cho người dùng: khi thanh toán, các khuyến mãi đủ điều kiện được áp tự động - và khách có thể nhập mã giảm thủ công - nên giảm giá được áp vào đơn mà không cần thao tác tay, với mức dùng và ROI có thể báo cáo.
Yêu cầu
| ID | P | Yêu cầu |
|---|---|---|
| URD-APP-001 | M | Tự động áp khuyến mãi đủ điều kiện khi thanh toán |
| URD-APP-002 | S | Áp mã giảm thủ công khi thanh toán |
| URD-APP-003 | C | Báo cáo mức dùng khuyến mãi và ROI |
Nghiệm thu
AC-APP-01: Tự động áp khi thanh toán
| Cho trước | Khi nào | Thì |
|---|---|---|
| Một khuyến mãi đang hoạt động có quy tắc khớp giỏ hàng | Khi tính thanh toán | Khuyến mãi đủ điều kiện được áp tự động vào đơn |
7. Ràng buộc & Không thuộc phạm vi
Ràng buộc
| ID | Ràng buộc |
|---|---|
| C-01 | Một khuyến mãi phải có phương thức hợp lệ trước khi kích hoạt |
| C-02 | Xóa một khuyến mãi sẽ cascade tới phương thức và quy tắc của nó |
Không thuộc phạm vi
- Tích/đổi điểm thân thiết (thuộc Khách hàng thân thiết)
- Gửi tin nhắn khuyến mãi (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; thiết lập/vòng đời đã hoạt động, việc áp theo kế hoạch | v0.1 |
| 2026-06-04 | Claude (AI pair) | Tổ chức lại theo tính năng (Feature Spine) | v0.2 |