Acceptance Criteria (AC)
Luồng ngoại lệ (Exception Flows) & Validations
- Thiếu thông tin địa chỉ:
- Validation: Nhấn “Đặt hàng” nhưng user chưa cài đặt địa chỉ nhận hàng.
- Error UI: Scroll màn hình lên vùng Địa chỉ và hiển thị Tooltip: “Vui lòng thêm địa chỉ nhận hàng trước khi tiếp tục.”
- Sản phẩm hết hàng phút chót:
- Flow: API gọi check tồn kho cuối cùng trả về lỗi hết hàng cho 1 item.
- Error UI: Trả người dùng về màn hình Giỏ hàng (US-OWN-15) với thông báo: “Sản phẩm [Tên SP] vừa hết hàng. Vui lòng kiểm tra lại giỏ hàng.”
- Chưa thanh toán / Quá hạn thanh toán:
- Flow: User tới bước thanh toán QR nhưng thoát app hoặc không chuyển khoản trong vòng 24 giờ.
- Error UI: Đơn hàng tự động bị huỷ. Thông báo: “Đơn hàng đã bị huỷ do quá hạn thanh toán. Vui lòng đặt lại.”
Quy tắc nghiệp vụ (Business Rules)
- Rule 1: Chuyển hướng thanh toán: Sau khi check tồn kho thành công, user không nhìn thấy “Đặt hàng thành công” ngay mà bắt buộc phải qua bước Thanh toán (Pending Payment). Việc tách đơn chỉ diễn ra SAU KHI đã nhận được tiền.
- Rule 2: Inventory Check (Kiểm tra kho): Tại thời điểm nhấn “Đặt hàng”, hệ thống chỉ kiểm tra số lượng tồn kho chứ chưa Reserve. Việc Reserve chỉ xảy ra khi quá trình thanh toán hoàn tất (để tránh giam kho vô ích khi user không trả tiền).