Voucher Code là mô-đun quản lý kho chứa các mã serial điện tử (eVoucher/Promo code) được sử dụng để trả thưởng cho khách hàng. Hệ thống hỗ trợ tổ chức mã theo lô (Voucher Code), cấu hình chung về hạn sử dụng, giá trị khuyến mãi, đồng thời quản lý vòng đời sử dụng (Lifecycle) của từng mã chi tiết (Voucher Detail) bên trong lô đó. Kho mã này có thể được tải lên (upload) từ đối tác bên ngoài hoặc do hệ thống OLS tự động sinh ra.
Thuật ngữ liên quan
Voucher Code (Lô mã): Định danh một chiến dịch mã hoặc một nhóm mã có chung thuộc tính (Ví dụ: lô mã Giảm 50K của Highland Coffee).
Voucher Detail / Voucher No (Mã chi tiết): Chuỗi ký tự (serial number) duy nhất mà khách hàng thực sự nhận được khi đổi thưởng.
Expiry Policy: Quy tắc tính ngày hết hạn của Voucher Detail (theo ngày cố định, theo ngày đổi, hoặc theo ngày giao dịch ghi sổ).
Promo code: Cờ đánh dấu lô voucher này dùng làm mã giảm giá (Discount/Cashback) kèm theo tỷ lệ hoặc số tiền cụ thể.
Cấu trúc dữ liệu (Data Schema)
Mô-đun được chia thành 2 cấp độ: Thông tin Lô mã (Voucher Code) và Thông tin từng mã (Voucher Detail).
1. Thông tin Lô mã (Voucher Code)
Field Name
Description
Constraints / Rules
Voucher Code / Description
Mã định danh và mô tả lô mã
X(10) / X(100).
Supplier
Đối tác/nhà cung cấp phát hành lô mã này
Bắt buộc. Drop-down.
Expiry Policy
Chính sách hạn sử dụng: Fixed Date, N days from Transaction/Post Date, N months from Transaction/Post Date
Bắt buộc chọn 1. Không cho sửa sau khi tạo.
Expiry Date / N Param
Tham số tương ứng với Expiry Policy (Chọn Fixed Date -> nhập Ngày cố định; Chọn N days -> nhập số N)
Tuỳ thuộc vào Expiry Policy.
Generate Voucher
Bật: OLS tự sinh số lượng mã. Tắt: User phải tải file CSV chứa kho mã từ đối tác
Switch. Mặc định OFF. Không sửa sau khi đã đổi mã.
Quantity
(Chỉ hiện khi Generate = ON). Số lượng mã hệ thống cần tự sinh
9(5). Sau khi duyệt, tự sinh N mã tương ứng.
This is a promo code
Bật nếu lô mã này là mã giảm giá/cashback
Switch. Mặc định OFF.
Promotion Type & Value
(Nếu Promo = ON). Loại khuyến mãi: % Discount, Fixed Monetary Discount, Cashback, Gift Voucher VÀ Giá trị tương ứng
Bắt buộc nếu là Promo. > 0.
2. Thông tin Mã chi tiết (Voucher Detail)
Field Name
Description
Constraints / Rules
Voucher No
Chuỗi ký tự mã serial thực tế gửi cho khách
Hiển thị dạng lưới (Grid).
Redemption Date
Ngày khách hàng đổi mã
Tự động cập nhật.
Expiry Date
Ngày mã hết hạn (tính toán dựa vào Expiry Policy của lô mã)
Tự động tính toán.
Redemption Indicator
Cờ đánh dấu trạng thái sử dụng của mã
No (Chưa dùng) / Yes (Đã dùng).
Fulfillment Status
Vòng đời trạng thái chi tiết của mã (Xem phần Cách hoạt động)
New, Issued, Fulfilled, Cancelled, Rejected.
Cách hoạt động (How It Works)
1. Khởi tạo kho mã (Stock In)
Cách 1 - Upload file: Dành cho mã do đối tác cấp (VD: Shopee, Lazada). Người dùng tạo một lô Voucher Code (Generate = OFF) và dùng chức năng Upload để nạp danh sách hàng nghìn Voucher No vào lô này.
Cách 2 - Auto Generate: Dành cho mã do hệ thống nội bộ phát hành. Người dùng tạo lô Voucher Code (Generate = ON, Quantity = 1000). Sau khi duyệt, hệ thống tự sinh 1000 mã ngẫu nhiên đưa vào kho.
2. Vòng đời của Mã chi tiết (Lifecycle)
Mỗi Voucher No bắt đầu với Redemption Indicator = No và trải qua các trạng thái Fulfillment Status sau:
New: Mã vừa được tạo/tải lên, sẵn sàng để cấp cho khách. Trạng thái Indicator: No.
Issued: Khách hàng đã đổi điểm lấy mã này thành công trên OLS. Trạng thái Indicator chuyển thành Yes.
Fulfilled: (Thành công tuyệt đối) Khách đã dùng mã tại hệ thống đối tác và đối tác ghi nhận chấp nhận mã.
Cancelled: Khách hàng tự hủy giao dịch đổi mã, hoặc hệ thống hủy vì lý do lỗi. Trạng thái có thể quay lại để tái sử dụng tùy cấu hình hệ thống.
Rejected: Đối tác từ chối mã (Ví dụ: vi phạm điều khoản, hết hạn, mã lỗi).
3. Dashboard Thống kê
Trên màn hình của mỗi lô Voucher Code (chỉ bản ghi Active), hệ thống hiển thị realtime 5 thông số:
Total Voucher: Tổng số mã đã khởi tạo/nạp vào.
Available Vouchers: Số mã chưa đổi và chưa hết hạn.
Redeemed Vouchers: Số mã đổi thành công.
Cancelled Vouchers: Số mã bị huỷ.
Expired Vouchers: Số mã chưa đổi nhưng đã qua Expiry Date.
Mối quan hệ với modules khác
Item Master: Voucher Code cung cấp "Hàng hoá" (Stock) cho các vật phẩm Item Master có thuộc tính Item Type = eVoucher. Số lượng Available Vouchers ở đây chính là Quantity on Hand (tồn kho) thực tế của Item Master.
Ví dụ thực tế
Ngân hàng muốn tung ra 1,000 mã "Giảm 50K khi mua sắm tại CGV".
Admin vào Voucher Code, tạo lô mã CGV_50K. Chọn Supplier là CGV.
Expiry Policy chọn N days from Transaction Date, N = 30 (Mã có hạn 30 ngày kể từ ngày khách đổi).
Do mã do CGV cấp, chọn Generate = OFF. Sau đó lưu lại.
Admin nhận file Excel chứa 1,000 serial number từ CGV, vào hệ thống click Upload file vào lô CGV_50K.
Hệ thống thống kê: Total = 1,000, Available = 1,000, New = 1,000.
Admin sang màn hình Item Master, tạo một món quà tên "Voucher CGV 50K" và liên kết nó vào Voucher Code CGV_50K.
Khách hàng vào App đổi điểm lấy Voucher -> Số lượng Available còn 999, Redeemed = 1. Fulfillment Status của mã bị đổi chuyển thành Issued.