Skip to content

Ví Khuyến Mãi 2 (Promotion Wallet 2)

Ví KM2 là cơ chế khuyến mãi theo gói nạp ưu đãi: khách mua Gói Ví KM2 với giá nhỏ, được cộng giá trị ví lớn hơn, và mỗi đơn chỉ được dùng tối đa theo % cấu hình trên sản phẩm/dịch vụ đủ điều kiện.

Package PRD v1.8 + UI Spec v2.1 khóa phương án tách wallet type riêng VND_PROMOTION_2, theo dõi từng lần mua (wallet_km2_lot), trừ tiền FIFO bằng Go action có transaction lock/idempotency, expiry scheduler, Hoàn ví KM2 qua luồng Yêu cầu hoàn tiền hiện có và phân quyền theo Dynamic Permission v2. UI Spec v2.1 đã viết lại đầy đủ theo po-ba-workflow v1.5 với B-PRE Discovery + B0.4 Field × Surface + B0.5 State × Screen + B0.6-0.8 wireframe/bilingual/schema + B0.9 Bảng kiểm kê tương tác + B2.x.1A UX nguyên tắc + B2.x.2.0 Ma trận Biến thể + B2.x.7B/C/D Form/Concurrency/Network + B2.x.8A Role × Variant + B2.x.10A Error Taxonomy + B5A/B6A/B7A/B8A-C contract chuyên sâu + B-Microcopy/B-Voice/B-i18n/B-Versioning/B-Help + 12 nhóm trường hợp cá biệt + 44 case spa-context theo SCR + B-POST verification + B-QUALITY 45 rủi ro. Đợt cập nhật 15/05/2026 chốt 3 decision Phase 5 (DEC-027/028/029) + 4 lint clean + B0.9 mới + 14 ca QA bổ sung; lot KHÔNG có trạng thái pending (lot chỉ tạo khi khách trả ≥ 1 đồng); balance UI realtime qua action get_customer_km2_balance (đóng race window scheduler miss).

Tài liệu

FileNội dungĐọc bởi
Decision BriefTóm tắt 5 phút, scope lock, quyết định, rủi ro và hướng đọc packagePO, Sếp, TL
PRDPhạm vi nghiệp vụ, DEC, FR/AC, công thức và traceabilityTất cả
UI SpecAs-is/delta UI, màn hình, copy, state và edge casesUI/UX, FE, QA
Dev SpecData model, API/action, migration, security, observability và task triển khaiTL, BE, FE
QA Test PlanTest oracle, seed data, regression và traceabilityQA
Go-Live ChecklistReadiness gates, deploy order, rollback và monitoringOps, TL
HandoffRACI, timeline, blockers, gates và checklist bàn giaoDelivery, PM, TL

Lịch sử thay đổi

VersionNgàyThay đổiFileẢnh hưởng
v1.1115/05/2026Đảo DEC-031: từ Option C (screen riêng /wallet/promotion2) → Option A (thêm tab Ví khuyến mãi 2 thứ 3 vào wallet_screen.dart cùng cấp 2 tab hiện hữu — đồng nhất UX khách). Dev tự chốt widget (refactor FolderTabs 3 tab / swap CustomTabbar / swap TabPageWidget). Thêm SCR-06-NEW-03 — popup mới StatisticWalletPromotion2Popup.tsx lịch sử giao dịch Ví KM 2 trên web admin parity popup KM 1 (Option α — file riêng, KHÔNG refactor popup KM 1). Wireframe B2.6.2 update đúng statConfig 6 card hiện hữu + 1 card mới KM 2; wireframe B2.6.6A bám sát layout StatisticWalletPromotionPopup.tsx. QA mở rộng: TC-SCR09-13/15 regression (3 tab cùng work + FolderTabs các màn khác) + 5 TC-006 mở rộng cho popup KM 2; tổng 137 TC.PRD, UI Spec, Dev Spec, QA Test PlanFE Mobile, FE Web, QA
v1.1015/05/2026Audit mobile gap (Flutter customer + staff app): fix 2 wireframe SAI ở SCR-09 (Home thực tế 4 card không có ví KM 1; wallet_screen.dart thực tế chỉ 2 tab FolderTabs). Chốt DEC-031 (Option C — screen riêng, ĐÃ ĐẢO ở v1.11); chốt DEC-032 (Option α — AffiliateFor KHÔNG bổ sung WalletType.promotion2, danh sách CTV nhận hoa hồng giữ [commission, promotion]). Thêm 2 SCR mới: SCR-09-MOBILE-03 (WalletType enum + l10n shared core) + SCR-10-STAFF-01 (Staff customer detail balance KM 2). Dev-spec thêm 9 task mobile (P2-MOBILE-01..09); QA thêm 26 TC mobile (tổng 131 TC).PRD, UI Spec, Dev Spec, QA Test PlanFE Mobile, BE, QA
v1.915/05/2026Audit gap so với ví KM 1 (87 file FE + 114 file BE + Flutter customer): chốt DEC-030 (KM 2 inherit cơ chế affiliate_config của KM 1 — seed 3 row FALSE đồng bộ production hiện hành; spec KHÔNG prescribe nghiệp vụ commission). Cập nhật ASM-001 (khách XEM được KM 2 trên app), ASM-005 (KM 2 cùng logic rank như KM 1). Mở PD-002 (SCR-09 mobile Phase 1). Bổ sung 4 surface UI vào B-FR012: SMS template vnd_wallet_balance, NegativeInvoicesTable, AffiliateConfiguration matrix, SCR-09 mobile customer app.PRD, UI Spec, Dev Spec, QA Test PlanBE, QA, Ops
v1.815/05/2026Phase 5 review fix-up: chốt DEC-027 (lot KHÔNG có pending — lot chỉ tạo khi khách trả ≥ 1 đồng), DEC-028 (schema wallet_km2_payment_attempt merge audit fields + lock primitives, PK id riêng + UNIQUE payment_attempt_id UUID), DEC-029 (balance realtime qua action get_customer_km2_balance — KHÔNG dùng wallet.amount trực tiếp); rename 4 field config canonical theo tên Dev (max_percent_per_order, allow_combine_km1, refund_fee_percent, refund_deadline_days); thêm B0.9 Bảng kiểm kê tương tác (~60 element × 9 SCR, 10 enum canonical); bổ sung TC-IDEMPOTENT-01..09 (TG-003 gate) + TC-BALANCE-RACE-01..05 vào QA (80 → 94 ca); fix lint vietnamese (calque, format ngàn, heading); 4 lint clean. Bỏ Evidence Pack + Source of Truth khỏi public docs (internal artifacts).PRD, UI Spec, Dev Spec, QA Test Plan, Decision Brief, Go-LiveAll
Readiness pack01/05/2026Bổ sung 5 hạng mục pre-Day-0: (1) Idempotency Contract chi tiết với 7 test scenario TC-IDEMPOTENT-01..07, (2) Capacity Model + Index Strategy (~336K lot/năm/100 spa, 6 index DDL CONCURRENTLY, partition khi > 5M dòng), (3) Metric Catalog đầy đủ 23 metric (8 business + 6 reliability critical + 4 latency + 3 error rate) với threshold cụ thể + Grafana dashboard 5 row + 5 runbook stub, (4) Migration Runbook minute-by-minute (Day-0 timeline T-30 → T+55, decision tree khi gặp lỗi, tiêu chí "đã deploy thành công" ký bởi TL+PO), (5) Sprint 0 Checklist 7 task pre-Phase 1.Dev Spec C5.4.1/C9/C10, Go-Live E4.1-3, Handoff Sprint 0TL, BE, Ops, QA
UI Spec v2.0 + PRD v1.730/04/2026Viết lại UI Spec đầy đủ theo po-ba-workflow v1.5 (G3.7 cổng kiểm tra độ đầy đủ UI pass): bổ sung B-PRE Discovery + B0.4 Field × Surface (28 field × 12 cột) + B0.5 State × Screen (13 màn × 6 state) + B0.6-0.8 wireframe/bilingual/schema + B1.0 quick-scan CTA + B2.x.1A UX nguyên tắc + B2.x.2.0 Variant Matrix (6-11 variant per SCR) + B2.x.7B/C/D Form/Concurrency/Network + B2.x.8A Role × Variant + B2.x.10A Error Taxonomy + B5A/B6A/B7A/B8A-C contract chuyên sâu + B-Microcopy/B-Voice/B-i18n/B-Versioning/B-Help + 12 nhóm tình huống biên G1-G12 + 44 case spa-context theo SCR + B-POST verification + B-QUALITY 45 rủi ro. UI Spec từ 1,233 → 2,920 dòng.UI Spec, PRD, Decision BriefUI/UX, FE, QA
v1.628/04/2026Cập nhật Dynamic Permission v2, chốt behavior refund_km2_wallet, nâng package lên profile L và bổ sung go-live gatesPRD, Source of Truth, Dev Spec, QA Test Plan, Go-LiveAll
v1.528/04/2026Đồng bộ Decision Log với Source of Truth và giữ DEC-013..DEC-024 là registry chuẩn cho traceabilityPRD, Source of TruthPO/BA + TL
v1.428/04/2026Chuẩn hóa package theo template mới: tiếng Việt-first, RACI/timeline nằm ở Handoff, readiness nằm ở Go-LivePRD, Handoff, Go-LiveDelivery + TL
v1.328/04/2026Chốt seed mặc định tắt trước go-live, sửa permission visibility/RLS và polish tiếng Việt-firstSource of Truth, Dev Spec, QA Test PlanBE + FE + QA
v1.228/04/2026Thêm Decision Brief/Go-Live, nâng profile L, đồng bộ route/default config/idempotency/traceabilityDecision Brief, Go-Live, Dev SpecAll
v1.121/04/2026Canonicalized package: bổ sung Evidence Pack + Source of Truth, review lại theo codebase hiện tạiEvidence Pack, Source of TruthPO/BA + TL
v1.024/03/2026Initial releaseAll