# Tài liệu 1 - Agent Login/Logout, Đặt Hàng và Admin Xử Lý Đơn

## 1. Mục đích

Tài liệu này mô tả flow kiểm thử end-to-end cho một **agent** có khả năng đăng nhập vào:

- Website v2 với vai trò khách hàng/user để đặt hàng.
- Admin/CDP với vai trò admin/operator để kiểm tra và xử lý đơn hàng.

**Ghi chú:** Trong tài liệu này, “agent” được hiểu là người kiểm thử hoặc automation agent thực hiện hành động giống người dùng thật. Agent không phải là khách hàng cuối, mà là actor dùng để verify toàn bộ luồng đặt hàng và xử lý đơn.

**Cập nhật theo source trong `C:\Users\Admin\Downloads\LDA`:** Web FE hiện chưa thấy route login riêng như `/login`, `/dang-nhap`, `/tai-khoan`; Web BE chưa thấy module `order` hoặc `checkout`; Admin FE có route order `/orders`, `/orders/[id]`, `/orders/create`. Vì vậy tài liệu này là kịch bản nghiệp vụ bắt buộc, nhưng khi chạy thật phải ghi `Blocked - Website login/logout route not implemented` hoặc `Blocked - Missing Web BE order/checkout integration` nếu source/release chưa có flow tương ứng.

## 2. Phạm vi kiểm thử

| Khu vực | Nội dung kiểm thử | Ghi chú |
|---|---|---|
| Website v2 | Login, logout, xem sản phẩm, thêm giỏ, đặt hàng | Kiểm tra flow khách hàng |
| Admin/CDP | Login admin, tìm đơn, xem chi tiết, xử lý trạng thái đơn | Kiểm tra flow vận hành |
| Tích hợp | Đơn tạo từ website xuất hiện trong admin | Đây là điểm quan trọng nhất, nhưng hiện phụ thuộc API/service order chưa thấy trong Web BE |
| Phân quyền | Agent có thể đăng nhập đúng hệ thống với đúng account | Không dùng nhầm account admin cho website nếu hệ thống tách account |

## 3. Điều kiện trước khi test

| Điều kiện | Yêu cầu |
|---|---|
| Website v2 chạy được | Mở được trang website public |
| Admin chạy được | Mở được trang admin/CDP |
| Backend/API chạy được | API đặt hàng và API admin hoạt động; nếu thiếu API order thì flow đặt hàng thật bị Blocked |
| Agent website account | Có tài khoản dùng để login website v2 nếu website có flow login thật |
| Agent admin account | Có tài khoản admin có quyền xem/xử lý đơn |
| Product test | Có ít nhất 1 sản phẩm còn hàng, giá hợp lệ |
| Payment/shipping test | Có phương thức thanh toán/giao hàng test |

**Ghi chú:** Nếu website v2 và admin dùng chung hệ thống tài khoản, cần ghi rõ agent dùng cùng account hay 2 account khác nhau. Nếu chưa có backend order thật, test phải đánh dấu là `Blocked` hoặc `Mock only`.

## 4. Tài khoản test

| Loại account | Mục đích | Username/Email | Ghi chú |
|---|---|---|---|
| Website agent | Login website v2 và đặt hàng | TBD | Không nên dùng account production thật |
| Admin agent | Login admin và xử lý đơn | TBD | Cần quyền xem/sửa đơn |

## 5. Flow tổng quát

```text
Agent login website v2 nếu website có auth thật
  -> Xem sản phẩm
  -> Thêm vào giỏ
  -> Đặt hàng qua UI checkout
  -> Lưu mã đơn hàng nếu API/service order tạo đơn thật
  -> Logout website nếu website có auth thật
  -> Agent login admin
  -> Tìm đơn hàng vừa tạo
  -> Kiểm tra thông tin đơn
  -> Xử lý/trạng thái đơn
  -> Logout admin
```

## 6. Test Scenarios

| ID | Scenario | Kết quả mong đợi | Priority |
|---|---|---|---|
| AGENT-SC-001 | Agent đăng nhập website v2 bằng account hợp lệ | Login thành công, hiển thị trạng thái user đã đăng nhập | P0 |
| AGENT-SC-002 | Agent logout website v2 | Session bị xóa, quay về trạng thái chưa đăng nhập | P1 |
| AGENT-SC-003 | Agent xem danh sách sản phẩm | Product list hiển thị đúng | P1 |
| AGENT-SC-004 | Agent xem chi tiết sản phẩm | PDP hiển thị giá, tồn kho, CTA đúng | P1 |
| AGENT-SC-005 | Agent thêm sản phẩm vào giỏ | Cart có sản phẩm, số lượng và giá đúng | P0 |
| AGENT-SC-006 | Agent đặt hàng thành công | UI checkout thành công; hệ thống chỉ được tính tạo đơn thật khi có API/service trả mã đơn hàng | P0 |
| AGENT-SC-007 | Agent login admin bằng account hợp lệ | Vào được admin dashboard | P0 |
| AGENT-SC-008 | Agent tìm đơn hàng vừa tạo trong admin | Đơn xuất hiện đúng mã đơn; nếu thiếu Web BE order/checkout thì ghi Blocked | P0 |
| AGENT-SC-009 | Agent kiểm tra chi tiết đơn trong admin | Thông tin khách, sản phẩm, tổng tiền, trạng thái đúng | P0 |
| AGENT-SC-010 | Agent xử lý trạng thái đơn | Trạng thái đơn cập nhật đúng | P0 |
| AGENT-SC-011 | Agent logout admin | Session admin bị xóa | P1 |
| AGENT-SC-012 | Agent dùng sai account/permission | Hệ thống chặn đúng, không cho thao tác trái quyền | P0 |

## 7. Test Cases chi tiết

### TC-AGENT-001 - Login website v2

| Trường | Nội dung |
|---|---|
| Priority | P0 |
| Preconditions | Website v2 đang chạy, account website hợp lệ |
| Steps | 1. Mở website v2. 2. Mở trang login. 3. Nhập email/password. 4. Bấm đăng nhập. |
| Expected | Login thành công, header/account area hiển thị user đã đăng nhập. |
| Notes | Nếu login qua OTP/social login thì ghi rõ cơ chế login thực tế. |

### TC-AGENT-002 - Đặt hàng trên website v2

| Trường | Nội dung |
|---|---|
| Priority | P0 |
| Preconditions | Agent đã login website nếu website có auth thật, có sản phẩm còn hàng, có API/service order nếu cần tạo đơn thật |
| Steps | 1. Mở product list hoặc search. 2. Chọn sản phẩm. 3. Thêm vào giỏ. 4. Mở giỏ hàng. 5. Nhập thông tin giao hàng/thanh toán. 6. Bấm đặt hàng. |
| Expected | UI checkout hoàn tất và chuyển sang trang thành công. Có mã đơn hàng/order ID chỉ khi quan sát được API/service order tạo đơn thật. |
| Notes | Nếu source/release chưa có API order thật, ghi `Blocked - Missing Web BE order/checkout integration` cho phần tạo đơn và đối chiếu admin. |

### TC-AGENT-003 - Logout website v2

| Trường | Nội dung |
|---|---|
| Priority | P1 |
| Preconditions | Agent đang login website |
| Steps | 1. Mở account menu. 2. Bấm logout. 3. Reload website. |
| Expected | User bị logout, không còn session/token, route protected yêu cầu login lại. |
| Notes | Kiểm localStorage/cookie nếu cần. |

### TC-AGENT-004 - Login admin

| Trường | Nội dung |
|---|---|
| Priority | P0 |
| Preconditions | Admin app chạy, admin account có quyền xem đơn |
| Steps | 1. Mở admin. 2. Nhập username/password. 3. Bấm login. |
| Expected | Login thành công, vào admin dashboard/order management. |
| Notes | Nếu admin dùng SSO/token riêng cần ghi rõ. |

### TC-AGENT-005 - Tìm đơn hàng vừa tạo trong admin

| Trường | Nội dung |
|---|---|
| Priority | P0 |
| Preconditions | Đã có mã đơn thật từ TC-AGENT-002 hoặc có order test tồn tại trong Admin FE, admin đã login |
| Steps | 1. Vào màn hình quản lý đơn hàng. 2. Search theo mã đơn. 3. Mở chi tiết đơn. |
| Expected | Tìm thấy đúng đơn nếu order được tạo qua API/service thật. Nếu dùng order test có sẵn, chỉ kết luận Admin order lookup pass. |
| Notes | Nếu không có API order integration, ghi Blocked; không kết luận E2E Web FE -> Admin pass. |

### TC-AGENT-006 - Kiểm tra thông tin đơn

| Trường | Nội dung |
|---|---|
| Priority | P0 |
| Preconditions | Đã mở chi tiết đơn trong admin |
| Steps | 1. Kiểm tra thông tin khách hàng. 2. Kiểm tra sản phẩm. 3. Kiểm tra số lượng. 4. Kiểm tra giá/tổng tiền/discount. 5. Kiểm tra trạng thái đơn. |
| Expected | Dữ liệu trong admin khớp với đơn đặt từ website. |
| Notes | Sai tổng tiền hoặc sai sản phẩm là lỗi nghiêm trọng. |

### TC-AGENT-007 - Xử lý đơn trong admin

| Trường | Nội dung |
|---|---|
| Priority | P0 |
| Preconditions | Admin account có quyền xử lý đơn |
| Steps | 1. Chọn action xử lý đơn. 2. Cập nhật trạng thái, ví dụ xác nhận/đang xử lý/hoàn tất/hủy. 3. Lưu. |
| Expected | Trạng thái đơn cập nhật đúng, có thông báo thành công. |
| Notes | Cần ghi rõ state machine thực tế khi có spec đơn hàng. |

### TC-AGENT-008 - Logout admin

| Trường | Nội dung |
|---|---|
| Priority | P1 |
| Preconditions | Agent đang login admin |
| Steps | 1. Bấm logout. 2. Reload admin. |
| Expected | Session admin bị xóa, phải login lại nếu vào route protected. |
| Notes | Không được để token admin còn dùng được sau logout. |

## 8. Acceptance Criteria cho flow này

| Điều kiện | Pass khi |
|---|---|
| Website login | Agent login website thành công bằng account hợp lệ nếu website có auth thật; nếu chưa có route/modal thì Blocked/NA |
| Website logout | Logout xóa session/token đúng |
| Đặt hàng | Website tạo đơn thành công và có mã đơn chỉ khi có API/service order thật; nếu không thì chỉ pass UI checkout |
| Admin login | Agent login admin thành công bằng account có quyền |
| Admin order lookup | Admin tìm thấy đúng đơn vừa tạo nếu order integration tồn tại; nếu dùng order test có sẵn thì chỉ pass Admin FE |
| Order data integrity | Sản phẩm, số lượng, giá, discount, khách hàng khớp giữa website và admin |
| Admin processing | Admin xử lý/cập nhật trạng thái đơn thành công |
| Admin logout | Logout admin xóa session/token đúng |

## 9. Bug severity cho flow này

| Severity | Điều kiện |
|---|---|
| Critical | Không đặt được hàng, không login được admin, đơn không được tạo |
| High | Đơn tạo trên website không xuất hiện trong admin, tổng tiền sai, user sai quyền xử lý được đơn |
| Medium | Search đơn chậm, trạng thái hiển thị chưa rõ, message lỗi chưa tốt |
| Low | Text/spacing nhỏ không ảnh hưởng flow |

## 10. Evidence cần thu thập

- Screenshot website sau login.
- Screenshot giỏ hàng trước khi đặt.
- Screenshot trang checkout/thanh toán thành công; mã đơn chỉ bắt buộc khi API/service order thật tồn tại.
- Screenshot admin sau login.
- Screenshot admin search ra đúng mã đơn nếu có order ID thật; nếu thiếu order integration thì evidence là log/source ghi Blocked.
- Screenshot chi tiết đơn.
- Screenshot sau khi cập nhật trạng thái đơn.
- Log/API response nếu đơn không sync qua admin.
