Kho quà

Quản lý danh mục quà vật lý và digital, tồn kho theo điểm activation, cấp phát cho lượt trúng và đối soát sau campaign.

Mục tiêu

Mục tiêuChỉ số đoNgưỡng MVP
Không trao vượt số quà có thậtSố lượt trúng vượt tồn0
Quà digital tới tay người chơi ngayThời gian từ trúng đến nhận mã ≤ 10 giây ở p95
Đối soát nhanh sau sự kiệnThời gian ra biên bản đối soát một điểm≤ 15 phút, không cần Excel thủ công
Biết trước khi hết quàCảnh báo tồn thấpGửi trước khi tồn chạm ngưỡng

Ngoài phạm vi

Loại quà

Quà vật lýQuà digital
Ví dụÁo thun, bình nước, gấu bông Cáo, modemVoucher giảm cước, mã nạp data, mã FPT Play, thẻ cào, điểm thưởng
Đơn vị tồnCái, theo từng khoMã, theo từng lô mã
NguồnNhập tay / file khi nhận hàngFile mã (CSV/XLSX) hoặc API nhà cung cấp sinh mã khi cần
Biến thểCó (size, màu) — mỗi biến thể tồn riêngCó (mệnh giá)
Trao quàNhân viên booth quét QR của lượt trúng, giao tận tayHiện mã trên màn kết quả + gửi SMS/ZNS + lưu ở "Quà của tôi"
HạnHạn nhận tại điểm (vd. hết ngày sự kiện)Hạn dùng của mã (theo lô) và hạn nhận
Kênh dùngChủ yếu offlineMọi kênh
Quà "chúc may mắn"Kết quả không trúng không phải là quà và không tồn trong kho. Tỉ lệ "không trúng" là phần còn lại của cơ cấu giải — xem Campaign.

Vai trò & quyền

Vai tròDanh mục quàNhập / điều chuyểnGán vào campaignXác nhận traoĐối soát
Quản trị hệ thống✓✓✓✓✓
Quản lý kho quà✓✓Xem—✓
Quản lý campaignXem—✓ (trong tồn cho phép)—Xem
Nhân viên booth—Nhận hàng tại điểm mình—✓ (điểm mình)Ký biên bản điểm mình
Người duyệtXem—Xem—Xem
Người xem báo cáo————Xem

Bảng tóm tắt. Khi lệch, ma trận quyền ở trang Tài khoản là đúng.

User stories

MãLà…Tôi muốn…Để…Ưu tiên
US-QUA-01Quản lý kho quàtạo quà vật lý có biến thể và ảnhcampaign chọn được đúng quàMust
US-QUA-02Quản lý kho quànhập lô mã digital từ filecó mã để trao ngay khi trúngMust
US-QUA-03Quản lý kho quàđiều chuyển quà từ kho tổng về điểm activationmỗi booth biết mình có bao nhiêu quàMust
US-QUA-04Quản lý campaignthấy tồn khả dụng khi lập cơ cấu giảikhông hứa vượt số quà cóMust
US-QUA-05Nhân viên boothquét QR của người chơi để xác nhận trao quàkhông trao trùng, không phải ghi sổMust
US-QUA-06Người chơixem lại mã quà digital đã trúngdùng sau khi rời gameMust
US-QUA-07Quản lý kho quànhận cảnh báo khi tồn thấpbổ sung trước khi hếtShould
US-QUA-08Quản lý kho quàxuất biên bản đối soát theo điểm/campaignquyết toán với kế toánMust
US-QUA-09Quản lý kho quàkết nối API nhà cung cấp voucherkhông phải nhập file mã thủ côngCould

Luồng chính

Chuẩn bị quà

  1. Quản lý kho quà tạo quà trong danh mục (loại, biến thể, ảnh, giá trị).
  2. Vật lý: nhập kho tổng. Digital: tải lô mã hoặc khai báo nguồn API.
  3. Vật lý: tạo phiếu điều chuyển về điểm activation; nhân viên booth xác nhận đã nhận đủ.
  4. Quản lý campaign gán quà vào cơ cấu giải — hệ thống giữ chỗ số lượng đó cho campaign.

Trúng và trao quà

  1. Phiên chơi kết thúc → engine quay thưởng chọn quà theo cơ cấu giải, chỉ trong tồn khả dụng của campaign (và của điểm, nếu offline).
  2. Tạo lượt trúng + cấp phát trạng thái Đang giữ, trừ tồn khả dụng ngay (nguyên tử).
  3. Digital: lấy 1 mã chưa dùng → Đã cấp → hiện mã, gửi SMS/ZNS. Vật lý: hiện QR nhận quà → Đã cấp.
  4. Vật lý: nhân viên booth quét QR, xác nhận giao → Đã nhận, trừ tồn thực tế.
  5. Quá hạn nhận mà chưa giao → Hết hạn, quà trả lại tồn khả dụng nếu campaign còn chạy.

Đối soát

  1. Cuối ngày/cuối sự kiện, nhân viên booth đếm quà còn lại, nhập số thực tế.
  2. Hệ thống so: tồn đầu + nhận − đã trao = tồn cuối lý thuyết; báo chênh lệch.
  3. Quản lý kho quà xử lý chênh lệch (ghi lý do), chốt biên bản, xuất PDF/XLSX.

Màn hình

MànKênhThành phần chínhHành động
Danh mục quàQuản trịBảng: ảnh, tên, loại, tổng tồn, đã giữ, khả dụng; lọc loại/trạng tháiTạo, sửa, ngừng dùng
Chi tiết quàQuản trịThông tin, biến thể, tồn theo kho, lô mã, lịch sử xuất nhậpNhập kho, tải lô mã, điều chuyển
Phiếu khoQuản trịLoại phiếu (nhập / điều chuyển / điều chỉnh), dòng quà, số lượng, người lập, người nhậnLập, gửi, xác nhận
Đối soátQuản trịBảng theo điểm × quà: đầu kỳ, nhận, trao, lý thuyết, thực tế, lệchNhập số đếm, ghi lý do, chốt, xuất file
Quét trao quàBooth (iPad/điện thoại)Camera quét QR, thông tin quà + SĐT che 09•••••123Xác nhận đã giao
Quà của tôiWeb · App · Zalo.ds-voucher theo trạng thái: chưa dùng, đã dùng, hết hạnSao chép mã, xem QR, hướng dẫn dùng

Giao diện người chơi theo Thành phần (voucher, kết quả) và Mẫu màn hình game.

Quy tắc nghiệp vụ

MãQuy tắcVí dụ
BR-QUA-01Tồn khả dụng = tồn thực tế − đang giữ − đã gán cho campaign khác. Không gán vượt tồn khả dụng100 áo, campaign A giữ 60 → campaign B gán tối đa 40
BR-QUA-02Trừ tồn khi tạo lượt trúng phải nguyên tử: hai phiên trúng cùng lúc không được lấy chung 1 quà / 1 mãCòn 1 mã, 2 người trúng cùng giây → 1 người nhận, người kia được quay lại trong quà còn tồn
BR-QUA-03Hết quà trong cơ cấu giải → phiên chơi trả "không trúng", không báo lỗi cho người chơi
BR-QUA-04Campaign offline: quà vật lý chỉ trúng trong tồn của điểm đang chơiBooth Q1 hết áo → người chơi ở Q1 không trúng áo dù kho tổng còn
BR-QUA-05Mỗi mã digital chỉ cấp một lần. Mã trùng trong file nhập bị loại và báo
BR-QUA-06Không nhập lô mã có hạn dùng sớm hơn ngày kết thúc campaign + hạn nhậnCampaign kết thúc 31/12 → mã phải còn hạn sau 31/12
BR-QUA-07Cảnh báo tồn thấp khi khả dụng ≤ ngưỡng (mặc định 10% số đã gán) — gửi quản lý kho quà và quản lý campaign
BR-QUA-08Hạn nhận quà vật lý mặc định: hết ngày của điểm activation
BR-QUA-09Quà đã gán campaign đang chạy không được xoá; chỉ "ngừng dùng" cho campaign mới
BR-QUA-10Mã digital chỉ hiển thị đầy đủ cho chính người trúng; trang quản trị che giữa mã, xem đủ phải có quyền và được ghi nhật kýFPT-8K••••Q2
BR-QUA-11Điều chỉnh tồn (hỏng, mất) phải có lý do và người duyệt khác người lập

Trường dữ liệu

Quà

TrườngKiểuBắt buộcRàng buộcGhi chú
Mã quàChuỗi✓Duy nhất, tự sinh QUA-0001
TênChuỗi✓≤ 60 ký tựHiện cho người chơi
LoạiChọn✓Vật lý · DigitalKhông đổi sau khi tạo
Nhóm digitalChọnDigitalVoucher cước · Data · FPT Play · Thẻ cào · Điểm thưởng · KhácQuyết định cách dùng mã
Biến thểDanh sách—Tên + thuộc tính (size, màu, mệnh giá)Mỗi biến thể tồn riêng
ẢnhẢnh✓WebP/PNG vuông, ≥ 480px, ≤ 300 KB
Giá trịSố (VND)✓≥ 0Báo cáo chi phí quà
Hướng dẫn dùngVăn bảnDigital≤ 500 ký tựHiện cạnh mã
Trạng tháiChọn✓Đang dùng · Ngừng dùng

Lô mã (digital)

TrườngKiểuBắt buộcRàng buộcGhi chú
Quà / biến thểTham chiếu✓
NguồnChọn✓File · APIAPI: xem Tích hợp
Số mãSố✓Đếm từ file sau khi loại trùng
Hạn dùngNgày✓Theo BR-QUA-06
MãChuỗi, mã hoá khi lưu✓Duy nhất trong toàn hệ thốngTheo BR-QUA-10

Cấp phát

TrườngKiểuGhi chú
Lượt trúngTham chiếu1 lượt trúng — 1 cấp phát
Quà / biến thểTham chiếu
Mã đã cấpTham chiếuDigital
Kho / điểm traoTham chiếuVật lý
Trạng tháiChọnXem mục Trạng thái
Hạn nhậnThời điểm
Người xác nhận trao, lúcTham chiếu, thời điểmVật lý

Trạng thái cấp phát

Đang giữ→Đã cấp→Đã nhận·Hết hạn·Huỷ
TừSangAi / điều kiện
—Đang giữHệ thống, khi phiên chơi trúng
Đang giữĐã cấpHệ thống: digital lấy được mã; vật lý tạo QR nhận quà
Đang giữHuỷHệ thống: lấy mã lỗi quá 3 lần, hoặc phiên chơi bị đánh dấu không hợp lệ
Đã cấpĐã nhậnNhân viên booth quét QR (vật lý); digital: ngay khi hiện mã
Đã cấpHết hạnHệ thống, quá hạn nhận
Đã cấpHuỷQuản lý kho quà, có lý do (gian lận, trao nhầm)

Ngoại lệ & lỗi

Tình huốngHệ thống xử lýThông báo hiển thị
API nhà cung cấp voucher lỗi / chậmThử lại 3 lần trong 30 giây; vẫn lỗi → giữ cấp phát "Đang giữ", gửi mã sau qua SMS/ZNS"Quà của bạn đang được chuẩn bị, mã sẽ gửi qua tin nhắn trong ít phút"
Kiosk mất mạng khi trúngChỉ trúng trong hạn mức offline đã cấp trước cho thiết bị; đồng bộ khi có mạngNhư bình thường — xem Activation offline
Quét QR đã nhận rồiTừ chối, hiện người và lúc đã nhận"Quà này đã được trao lúc 14:32 bởi NV Lan"
Quét QR của điểm khácTừ chối"Quà này nhận tại booth Q7"
File mã sai định dạng / có mã trùngKhông nhập dòng lỗi; nhập phần hợp lệ khi người dùng xác nhậnBảng dòng lỗi + lý do, tải về được
Đếm thực tế lệch lý thuyếtKhông cho chốt biên bản khi chưa ghi lý do cho từng dòng lệchDòng lệch tô đỏ

Tiêu chí nghiệm thu

Câu hỏi mở

#Câu hỏiHỏi aiHạnTrả lời
Q-QUA-01Nhà cung cấp voucher nào có API? Hay MVP chỉ nhập file?FCM / Mua sắm
Q-QUA-02Có giao quà vật lý về nhà cho campaign online không?FCM
Q-QUA-03Quà "Hết hạn" có trả lại kho cho người khác trúng không?FCM
Q-QUA-04Mẫu biên bản đối soát kế toán đang dùng?Kế toán
Q-QUA-05Điểm thưởng (loyalty) có tính là quà digital không, cộng vào hệ thống nào?FCM / CRM

Lịch sử thay đổi

BảnNgàyNgười sửaNội dung
0.12026-11-11PMNháp khởi tạo — trang chuẩn cho các module khác tham khảo