Skip to main content

Quyết Định Tạm Khóa: Màn Hình Đổi Điểm Lấy Voucher (Redeem Points)

Ngày cập nhật: 08/07/2026
Loại: Feature Freeze — Temporary Lock
Màn hình: Đổi ưu đãi / Đổi điểm lấy Voucher (Redeem Points Screen)
Trạng thái: 🔒 TẠM KHÓA — chưa mở cho người dùng

Ảnh tham chiếu:


1. Quyết Định

Tạm thời khóa toàn bộ tính năng Đổi điểm lấy Voucher.
App sẽ vận hành một thời gian để tích lũy dữ liệu thực tế, sau đó sẽ có kế hoạch triển khai tính năng bán/đổi voucher chính thức.


2. Phạm Vi Khóa

Các khu vực cần ẩn/khóa trên màn hình hiện tại:

#Khu vựcHành động
1Section "Đổi ưu đãi" (danh sách voucher đổi điểm — "Voucher 30K Foot Therapy", "Voucher 50K Healing World"...)Ẩn hoàn toàn
2Nút "Đổi" trên từng card voucherẨn hoặc vô hiệu hóa
3Link "Thêm" bên cạnh tiêu đề "Đổi ưu đãi"Ẩn
4Tab "Đổi ưu đãi" (nếu là tab riêng hoặc route riêng)Ẩn khỏi navigation

Lưu ý: Section "Ưu đãi của bạn" (voucher đã có sẵn/đã nhận) và tab "Ưu đãi đã mua" / "Thẻ quà tặng" phía dưới vẫn giữ nguyên — chỉ ẩn phần đổi điểm.


3. Cách Triển Khai Khóa (Dev)

Phương án 1 — Feature Flag qua CMS/Config (Khuyến nghị ✅)

Kiểm soát hiển thị bằng một cờ cấu hình backend, Admin có thể bật/tắt mà không cần release app:

// Kiểm tra flag từ bootstrap config
const { redeemPointsEnabled } = useAppConfig(); // mặc định: false

// Trong màn hình Voucher/Redeem:
{redeemPointsEnabled && (
<View style={styles.redeemSection}>
<SectionHeader title="Đổi ưu đãi" onPressMore={...} />
<RedeemVoucherList />
</View>
)}

Cấu hình backend cần thêm field:

{
"features": {
"redeemPoints": false // ← tắt cho đến khi có kế hoạch chính thức
}
}

Phương án 2 — Hardcode ẩn tạm thời (Nhanh, dùng khi cần khẩn)

// Trong VoucherScreen.tsx hoặc RedeemScreen.tsx
const REDEEM_POINTS_ENABLED = false; // TODO: Bật lại khi có kế hoạch

// ...
{REDEEM_POINTS_ENABLED && <RedeemSection />}

Lưu ý khi dùng phương án 2: Nhớ đánh dấu // TODO rõ ràng và tạo ticket để mở lại sau.


4. Kế Hoạch Mở Lại (Tương Lai)

Tính năng sẽ được mở lại sau khi hoàn thiện các bước sau:

  • App vận hành ổn định, tích lũy đủ dữ liệu người dùng thực tế.
  • Marketing/Kinh doanh xác định danh sách voucher sẽ cho phép đổi điểm.
  • Xác định tỷ lệ quy đổi điểm → voucher (ví dụ: 300 điểm = Voucher 30K).
  • Backend hoàn thiện API giao dịch đổi điểm (trừ điểm + phát hành voucher).
  • Kiểm tra luồng đổi điểm end-to-end trước khi mở cho người dùng.
  • Marketing chuẩn bị nội dung truyền thông khi ra mắt tính năng.

Checklist Kỹ Thuật

  • Thêm field redeemPoints: false vào bootstrap config backend (hoặc CMS).
  • Trong app, kiểm tra flag redeemPointsEnabled trước khi render section "Đổi ưu đãi".
  • Ẩn hoàn toàn section "Đổi ưu đãi" và các nút "Đổi" liên quan khi flag tắt.
  • Không xóa code — chỉ ẩn bằng điều kiện để dễ dàng mở lại.
  • Đảm bảo phần "Ưu đãi của bạn" và "Ưu đãi đã mua / Thẻ quà tặng" vẫn hoạt động bình thường.