Skip to content

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ómVai tròSurface chính
CampaignsCampaign giảm giá/product/prepaid/service kiểu cổ điểnCampaigns, CampaignCreate, CampaignDetail
VouchersVoucher master, detail, lịch sử, điều kiệnvoucher/vouchers/*
Voucher campaignsQuota, phân phối channel, approval/status, analyticsvoucher/voucher-campaign/*
Voucher activationActivate online/offline/printActivateVoucher, 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 usage

Quy tắc nghiệp vụ

Quy tắc
BR-CVO-001campaignvoucher_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-002Draft voucher campaign yêu cầu quota tổng > 0 và start_at <= end_at; mã campaign được backend tự sinh.
BR-CVO-003Voucher 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-004Voucher campaign status không phải toggle đơn giản; backend có state machine riêng cho stop, continue, end, cancel.
BR-CVO-005Activate 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-006Analytics 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-007FE 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

BoundaryGhi chú
ecommerceAction handlers và state machine thật nằm ở ecommerce-api
walletVoucher/reward có thể chạm giá trị wallet hoặc prepaid-like assets
reportReporting/analytics đọc cùng họ dữ liệu campaign-voucher
notificationVoucher campaign/event có thể kéo notification template hoặc trigger sang domain notification

Rủi ro / Findings

MứcFinding
P1ROUTE_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.
P1campaign 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.
P1Nhiều action voucher campaign được metadata mở cho role user, trong khi FE gate phức tạp hơn theo moduleId/role group.