chore: remove legacy specification documents and internal rules file

This commit is contained in:
2026-07-27 18:28:46 +07:00
parent 4534e4ecb8
commit 911d5be3b2
151 changed files with 26567 additions and 7922 deletions

View File

@@ -0,0 +1,49 @@
---
ref_id: "catalogue/fulfillment_lifecycle"
parent_card: "catalogue/voucher_code"
title: "Chi tiết Vòng đời Fulfillment của Voucher (Fulfillment Lifecycle)"
domain: "catalogue"
ref_type: "process_detail"
tags: ["voucher", "fulfillment", "status", "lifecycle"]
---
# Chi tiết Vòng đời Fulfillment của Voucher (Fulfillment Lifecycle)
## Thuộc về
catalogue/voucher_code — Card tóm tắt 5 trạng thái vòng đời nhưng chưa giải thích rõ event nào trigger việc chuyển đổi trạng thái và hệ thống xử lý thế nào. Reference này bổ sung chi tiết luồng chuyển trạng thái Fulfillment Status của từng Voucher No.
## Chi tiết
### Các trạng thái Fulfillment Status
Mỗi Voucher Detail (Voucher No) đều có một trạng thái theo dõi suốt vòng đời, được hệ thống cập nhật dựa trên các sự kiện (events):
| Trạng thái (Status) | Giải thích | Trigger Event (Sự kiện kích hoạt) |
|---|---|---|
| **New** | Mã chưa được sử dụng, đang nằm trong kho. | Khi Voucher được khởi tạo tự động hoặc upload từ file vào OLS. |
| **Issued** | Mã đã được cấp phát cho khách hàng. | Khi khách hàng thao tác đổi điểm lấy mã này thành công trên hệ thống OLS. |
| **Fulfilled** | Khách hàng đã dùng mã thành công tại đối tác. | Khi đối tác gửi xác nhận (qua API hoặc file batch) rằng mã đã được chấp nhận và thanh toán. |
| **Cancelled** | Mã bị hủy sau khi đã Issued. | Khi khách hàng chủ động hủy giao dịch đổi điểm, hoặc hệ thống phát sinh lỗi cần rollback giao dịch. |
| **Rejected** | Đối tác từ chối sử dụng mã này. | Khi đối tác trả về lỗi (Mã vi phạm T&C, đã đổi ở nơi khác, v.v.). |
### Luồng chuyển trạng thái (State Transition Flow)
1. **Upload/Generate**: `(Chưa có) -> New`
2. **Redeem (Đổi điểm)**: `New -> Issued`
3. **Usage (Sử dụng)**:
- Hợp lệ: `Issued -> Fulfilled`
- Bị từ chối: `Issued -> Rejected`
4. **Cancel (Hủy đổi)**: `Issued -> Cancelled`
### Xử lý Ngoại lệ (Error Handling)
| Ngoại lệ | Hành động của hệ thống |
|---|---|
| Hủy mã (Cancelled) | Tuỳ thuộc cấu hình hệ thống, mã bị Cancelled có thể được tái tạo lại (trở về New) để cấp cho người khác, hoặc bị khóa vĩnh viễn và hoàn điểm lại cho khách hàng. |
| Từ chối (Rejected) | Ghi log giao dịch lỗi, nhân viên vận hành sẽ phải đối soát lại với Vendor. |
## Ví dụ cụ thể
- **Luồng thành công**: Khách hàng đổi điểm lấy mã Grab. OLS lấy 1 mã từ kho đang ở trạng thái `New` và gán cho khách, đổi thành `Issued`. Khách nhập mã vào app Grab đi xe thành công. Grab gọi API thông báo về OLS, OLS đổi trạng thái mã thành `Fulfilled`.
- **Luồng thất bại do Hủy**: Khách đổi mã CGV (`Issued`) nhưng ứng dụng gặp lỗi mạng (timeout) không hiển thị được vé. Hệ thống tự động rollback giao dịch hoàn điểm, voucher chuyển thành `Cancelled`.