Appearance
Campaign And Voucher Operations — Business Rules
Tổng quan
Đây là domain marketing operations gắn chặt nhất với ecommerce dù UI nằm trong cms:
- campaign marketing cổ điển
- voucher master
- voucher campaign lifecycle
- activation online/offline/print
- analytics, logs, customer voucher usage
Nói ngắn: cms là admin shell, còn business engine thật nằm khá sâu ở ecommerce actions và voucher tables.
Scope nghiệp vụ
| Nhóm | Vai trò | Surface chính |
|---|---|---|
| Campaigns | Campaign giảm giá/product/prepaid/service kiểu cổ điển | Campaigns, CampaignCreate, CampaignDetail |
| Vouchers | Voucher master, detail, lịch sử, điều kiện | voucher/vouchers/* |
| Voucher campaigns | Quota, phân phối channel, approval/status, analytics | voucher/voucher-campaign/* |
| Voucher activation | Activate online/offline/print | ActivateVoucher, ActivateOfflineVoucher, PrintVoucher |
Luồng chính
text
Marketing/ops tạo voucher campaign draft
-> nhập quota online/offline/print, điều kiện, manager, banner
-> save draft
-> approve/publish
-> phát hành voucher theo channel
-> activate / redeem / print / attach
-> theo dõi analytics, history, user voucher usageQuy tắc nghiệp vụ
| Mã | Quy tắc |
|---|---|
| BR-CVO-001 | campaign và voucher_campaign là hai family khác nhau: campaign là campaign giảm giá cổ điển, còn voucher_campaign là engine phát hành voucher có quota/channel/status machine riêng. |
| BR-CVO-002 | Draft voucher campaign yêu cầu quota tổng > 0 và start_at <= end_at; mã campaign được backend tự sinh. |
| BR-CVO-003 | Voucher campaign có tách quota theo online, offline, print, nên analytics và distribution phải nhìn theo channel source, không chỉ tổng số voucher. |
| BR-CVO-004 | Voucher campaign status không phải toggle đơn giản; backend có state machine riêng cho stop, continue, end, cancel. |
| BR-CVO-005 | Activate voucher có nhiều nhánh: customer/app activation, offline activation và print voucher; đây là cùng một family nhưng không cùng entrypoint. |
| BR-CVO-006 | Analytics voucher không chỉ là đếm claim; module còn theo dõi gross/net revenue, voucher_cost, released/attached/used, user voucher usage và campaign logs. |
| BR-CVO-007 | FE route permission của voucher rộng hơn campaign thường, phản ánh đây là flow marketing + accounting + CS vận hành chung. |
Boundary
| Boundary | Ghi chú |
|---|---|
ecommerce | Action handlers và state machine thật nằm ở ecommerce-api |
wallet | Voucher/reward có thể chạm giá trị wallet hoặc prepaid-like assets |
report | Reporting/analytics đọc cùng họ dữ liệu campaign-voucher |
notification | Voucher campaign/event có thể kéo notification template hoặc trigger sang domain notification |
Rủi ro / Findings
| Mức | Finding |
|---|---|
| P1 | ROUTE_CAMPAIGN_CREATE bị comment khỏi module.ts, nhưng Campaigns.tsx vẫn dùng CampaignCreate và popup route logic; create surface của campaign đang có drift giữa route tree và UI flow thật. |
| P1 | campaign family và voucher campaign family cùng nằm trong nav "Marketing" nên rất dễ bị hiểu nhầm là một engine duy nhất. |
| P1 | Nhiều action voucher campaign được metadata mở cho role user, trong khi FE gate phức tạp hơn theo moduleId/role group. |