Files
Leonard-ThindPad-P50 2c7bcde741 improve BA skill
2026-09-09 06:34:57 +07:00

67 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OQ — Sổ Open Question — e-commerce
| | |
|---|---|
| **Version** | 1.3 |
| **Date** | 2026-09-08 |
| **Author** | BA (qua skill ba-1-discovery / ba-2-analysis / ba-3-specification) |
| **Status** | 🟡 Draft — cập nhật liên tục qua các giai đoạn |
| **Approved by** | — *(sổ theo dõi, không cần baseline riêng)* |
| **Source** | `01-discovery/BRIEF_CartCheckout_v1.0.md` · `01-discovery/STAKEHOLDER_CartCheckout_v1.0.md` · `01-discovery/ELICITATION_CartCheckout_2026-09-08.md` · `01-discovery/RISK_CartCheckout_v1.0.md` · `02-analysis/PROCESS_CartCheckout_v1.0.md` · `02-analysis/BACKLOG_CartCheckout_v1.0.md` · `02-analysis/BR_CartCheckout_v1.0.md` · `02-analysis/RBAC_CartCheckout_v1.0.md` · `02-analysis/IMPACT_CartCheckout_v1.0.md` · `00-index/UICONV_e-commerce_v1.0.md` · `03-specification/SRS_US002-003_v1.0.md` · `03-specification/API_US002-003_v1.0.md` · `03-specification/NFR_US002-003_v1.0.md` · `03-specification/WF_US002-003_v1.0.md` |
| **Scope** | Toàn dự án e-commerce — module Giỏ hàng & Checkout (GĐ1 + GĐ2) + quy ước giao diện cấp project (GĐ3 `uiconv`) + đặc tả US-002/US-003 (GĐ3 `srs`/`ac`/`nfr`/`api`/`wf`) |
## Change Log
| Version | Date | Người sửa | Thay đổi | CR |
|---|---|---|---|---|
| 1.0 | 2026-09-08 | BA (qua skill ba-1-discovery) | Khởi tạo sổ OQ, nhập 8 câu hỏi từ GĐ1 module Giỏ hàng & Checkout | — |
| 1.1 | 2026-09-08 | BA (qua skill ba-2-analysis) | Đóng `OQ-004`, `OQ-008` (đã có trả lời của PO, xem `DEC-03`/`DEC-04`); thêm 9 câu hỏi mới phát sinh từ GĐ2 (`OQ-009`…`OQ-017`) | — |
| 1.2 | 2026-09-08 | BA (qua skill ba-3-specification, activity `uiconv`) | Thêm 10 câu hỏi phát sinh từ `UICONV_e-commerce_v1.0.md` (`OQ-018`…`OQ-027`) — chủ yếu các ô "chọn một" mà SAD §7 không nói, cộng ngoại lệ gate G2 (`OQ-027`, xem `DEC-05`) | — |
| 1.3 | 2026-09-08 | BA (qua skill ba-3-specification, activity `srs`/`ac`/`nfr`/`api`/`wf`) | Thêm 7 câu hỏi phát sinh từ đặc tả US-002/US-003 (`OQ-028`…`OQ-034`) — số lượng về 0, nguồn giá hiển thị, giới hạn tồn kho tại màn Giỏ hàng, checkout một phần giỏ, ownership Guest, ngưỡng hiệu năng, schema `GET /v1/cart` | — |
---
## Open Question đang mở
| ID | Nội dung | Hỏi ai | Từ ngày | Chặn gì | Nguồn |
|---|---|---|---|---|---|
| OQ-001 | Tên thật + đầu mối liên lạc của STK-01…STK-06 (PO sàn, Khách hàng đại diện, Seller đại diện, Kế toán đối soát, Trưởng vận hành, Tech Lead) là gì? | Điều phối dự án / PO | 2026-09-08 | Ký G1 module Giỏ hàng & Checkout một cách hợp lệ | `STAKEHOLDER_CartCheckout_v1.0.md` §7 |
| OQ-002 | Mức Quan tâm × Ảnh hưởng của từng stakeholder (đánh giá sơ bộ của BA) có đúng không? | STK-01…STK-06 | 2026-09-08 | Chiến lược tiếp cận stakeholder | `STAKEHOLDER_CartCheckout_v1.0.md` §2, §7 |
| OQ-003 | Ai là đại diện Pháp chế/Bảo mật cho dự án e-commerce? Cần rà soát phạm vi lưu/chia sẻ PII (địa chỉ, SĐT) khi tách đơn theo seller. | PO sàn | 2026-09-08 | RISK-03, RQ-003, RACI mục tuân thủ PII | `STAKEHOLDER_CartCheckout_v1.0.md` §3, §7; `BRIEF_CartCheckout_v1.0.md` §10; `RISK_CartCheckout_v1.0.md` §2 |
| OQ-005 | Cần tổ chức phỏng vấn thật với Khách hàng đại diện (STK-02) và Seller đại diện (STK-03) cho module này — ai làm đầu mối sắp xếp? | Điều phối dự án / PO sàn | 2026-09-08 | Chất lượng RQ, phát hiện ngoại lệ thực tế trước GĐ2 | `ELICITATION_CartCheckout_2026-09-08.md` §5; `BRIEF_CartCheckout_v1.0.md` §10 |
| OQ-006 | Chính sách giới hạn giá trị đơn COD (nếu có) là gì, để giảm rủi ro bùng hàng khi giỏ đa seller bị tách thành nhiều đơn COD độc lập? | PO sàn, Kế toán đối soát | 2026-09-08 | `ASM-05`, `RISK-01`, `BR-CART-03` (GĐ2) | `RISK_CartCheckout_v1.0.md` §1, §2; `BR_CartCheckout_v1.0.md` |
| OQ-007 | Baseline thật cho GOAL-01 (tỷ lệ bỏ giỏ hàng ở checkout đa seller) và GOAL-02 (tỷ lệ thanh toán thành công theo kênh) là bao nhiêu? | PO sàn | 2026-09-08 | Đo lường hiệu quả ở GĐ5, xác nhận mục tiêu ở GĐ1 | `BRIEF_CartCheckout_v1.0.md` §4, §10 |
| OQ-009 | Khi giá/tồn kho thay đổi giữa lúc thêm giỏ và lúc checkout (`ASM-06`), hệ thống tự động cập nhật giá mới và thông báo, hay chặn checkout yêu cầu khách xác nhận lại? | PO + Tech Lead | 2026-09-08 | US-003, US-004, `PROCESS` bước B3/B5 | `PROCESS_CartCheckout_v1.0.md` A5 (E2); `BACKLOG_CartCheckout_v1.0.md` |
| OQ-010 | Xác nhận khả thi kỹ thuật `ASM-01` (webhook VNPay/Momo gần thời gian thực) | Tech Lead | 2026-09-08 | `BR-CART-06`, US-008 | `PROCESS_CartCheckout_v1.0.md` A3 (P2); `RISK_CartCheckout_v1.0.md` ASM-01 |
| OQ-011 | Xác nhận `ASM-03` — giỏ hàng N seller luôn tách thành đúng N đơn con, không có trường hợp gộp 2 seller vào 1 đơn con | PO | 2026-09-08 | `BR-CART-01`, US-004 | `RISK_CartCheckout_v1.0.md` ASM-03; `BR_CartCheckout_v1.0.md` |
| OQ-012 | Guest (chưa xác thực) có cần giới hạn giá trị đơn hoặc xác thực OTP cho đơn giá trị cao không (liên quan `RISK-01` phương án (b))? | PO, Bảo mật *(chưa có người — `OQ-003`)* | 2026-09-08 | `RBAC_CartCheckout_v1.0.md` §2, `BR-CART-03` | `RBAC_CartCheckout_v1.0.md` |
| OQ-013 | Với thanh toán COD, `Payment.status` được ghi nhận "success" ngay khi đơn được xác nhận, hay giữ "pending" cho tới khi thực thu tiền lúc giao hàng? | Kế toán đối soát, PO | 2026-09-08 | US-007, `BR_CartCheckout_v1.0.md` §3 (vòng đời `PAYMENT`) | `BR_CartCheckout_v1.0.md` |
| OQ-014 | `Order.total_amount`/`OrderSeller.subtotal_amount` có gồm phí vận chuyển ước tính (US-005) không? Coupon/điểm thưởng áp giảm giá ở cấp `Order` hay từng `OrderSeller`? | PO, Tech Lead | 2026-09-08 | `BR-CART-08`/`09`, US-005, `AC` ở GĐ3 | `BR_CartCheckout_v1.0.md` §5 |
| OQ-015 | Có cần cơ chế chống lạm dụng (rate limit/CAPTCHA) cho Guest checkout để tránh spam tạo đơn giả không? | Tech Lead, Bảo mật | 2026-09-08 | `RBAC_CartCheckout_v1.0.md` §5, thiết kế kỹ thuật GĐ3 | `RBAC_CartCheckout_v1.0.md` |
| OQ-016 | Mức che dữ liệu PII (địa chỉ/SĐT) khi truyền cho seller lúc tách đơn là gì? | Pháp chế/Bảo mật *(chưa có người — `OQ-003`)*, PO | 2026-09-08 | `RBAC_CartCheckout_v1.0.md` §4, `RISK-03` | `RBAC_CartCheckout_v1.0.md` |
| OQ-017 | Nếu API "áp dụng mã/điểm" của module Khuyến mãi & Loyalty lỗi/chậm lúc checkout, hệ thống bỏ qua và cho tiếp tục hay chặn checkout hoàn toàn? | PO, Tech Lead | 2026-09-08 | `IMPACT_CartCheckout_v1.0.md` §1.5 dòng Khuyến mãi & Loyalty | `IMPACT_CartCheckout_v1.0.md` |
| OQ-018 | Ngưỡng breakpoint theo px cho desktop/tablet/mobile-web, và grid layout (số cột, gutter px, max-width px) toàn site — SAD §7.0 chỉ nêu 3 tier tên gọi, không cho ngưỡng cụ thể | Dev FE / Tech Lead | 2026-09-08 | `UICONV` §1 (Khung layout) | `UICONV_e-commerce_v1.0.md` §1 |
| OQ-019 | Kiểu phân trang (offset/cursor/cuộn vô hạn), số dòng-sản phẩm mỗi trang, và tiêu chí sắp xếp mặc định cho danh sách sản phẩm (SCR-02) và lịch sử đơn hàng (SCR-10) — SCR-02 chỉ nêu "phân trang hoặc infinite-scroll", chưa chọn 1 | PO, Dev FE | 2026-09-08 | `UICONV` §3 (Danh sách) | `UICONV_e-commerce_v1.0.md` §3 |
| OQ-020 | Vị trí và thời lượng hiển thị toast thông báo — SAD §7 không mô tả cơ chế toast (chỉ có banner trong vùng, inline dưới field, trang trạng thái) | PO, Dev FE | 2026-09-08 | `UICONV` §5 (Phản hồi hệ thống) | `UICONV_e-commerce_v1.0.md` §5 |
| OQ-021 | Nút CTA chính khi form chưa hợp lệ: bấm được rồi hiện lỗi, hay khoá (disable) tới khi hợp lệ? — SAD chỉ nói rõ hành vi này ở cấp wizard (SCR-16, chặn "Next"), không nói cho form thường | PO, Dev FE | 2026-09-08 | `UICONV` §4 (Form) | `UICONV_e-commerce_v1.0.md` §4 |
| OQ-022 | Chọn design system cụ thể — Material Design hay Ant Design? NFR-07 ghi "dev chọn", chưa có quyết định chính thức | Tech Lead | 2026-09-08 | `UICONV` §0, §11 (Từ vựng thành phần) | `UICONV_e-commerce_v1.0.md` §0, §11 |
| OQ-023 | Ngôn ngữ hiển thị khi thiếu bản dịch (EN/ZH/KO/JA): hiện khoá i18n hay fallback VI? Độ dài nhãn tối đa (ký tự) để không vỡ layout ở ZH/KO/JA? SAD §7.0 chỉ cảnh báo định tính "cần co giãn được, không fix-width" | PO, Dev FE | 2026-09-08 | `UICONV` §9 (Ngôn ngữ và giọng văn) | `UICONV_e-commerce_v1.0.md` §9 |
| OQ-024 | Độ trễ debounce (ms) cho gợi ý autocomplete ở ô tìm kiếm (SCR-01) — SAD chỉ chốt ngưỡng tối thiểu 1 ký tự trước khi gợi ý, không chốt độ trễ | Dev FE | 2026-09-08 | `UICONV` §3 (Danh sách — Tìm kiếm) | `UICONV_e-commerce_v1.0.md` §3 |
| OQ-025 | Quy tắc quy đổi tiền tệ tham khảo (`CurrencyToggle`/`PriceDisplay`, FR-16/NFR-06): nguồn tỷ giá, tần suất cập nhật, quy tắc làm tròn — SAD chỉ xác nhận VND là tiền giao dịch chính, giá quy đổi chỉ tham khảo | PO, Tech Lead | 2026-09-08 | `UICONV` §8 (Định dạng hiển thị) | `UICONV_e-commerce_v1.0.md` §8 |
| OQ-026 | Xưng hô trong toàn bộ text hệ thống ("bạn" hay không xưng hô) — SAD §7 không đề cập giọng văn | PO | 2026-09-08 | `UICONV` §9 (Ngôn ngữ và giọng văn) | `UICONV_e-commerce_v1.0.md` §9 |
| OQ-027 | 🔴 Ngoại lệ gate: `UICONV_e-commerce_v1.0.md` được sinh trong khi Gate G2 module Giỏ hàng & Checkout chưa được PO + Tech Lead ký chính thức (xem `DEC-02`). Nếu `BACKLOG_CartCheckout`/`BR_CartCheckout` đổi khi G2 ký thật, `UICONV` (đặc biệt §11 phần liên quan Guest checkout, `BR-CART-07`) có cần rà lại không? | PO, Tech Lead | 2026-09-08 | Baseline `UICONV` và mọi `WF` phụ thuộc | `DECISION_e-commerce.md` DEC-05 |
| OQ-028 | Sửa số lượng `CartItem` về 0 (nhập tay hoặc bấm `-` khi đang ở 1, màn Giỏ hàng US-003) → hệ thống tự mở modal xoá dòng, hay chặn không cho giảm dưới 1? | PO | 2026-09-08 | `SRS_US002-003` F01, `AC-US003-08` | `SRS_US002-003_v1.0.md` §8 |
| OQ-029 | Giá hiển thị ở màn Giỏ hàng (US-002, C06) là giá snapshot lúc thêm giỏ (`cart_item.unit_price_snapshot`) hay giá hiện tại real-time từ Catalog? Ảnh hưởng badge "Giá đã thay đổi" mà SAD SCR-04 mô tả nhưng `BACKLOG` không xác nhận thuộc scope US-002 | PO, Tech Lead | 2026-09-08 | `SRS_US002-003` C06, `WF_US002-003` §5 #3 | `SRS_US002-003_v1.0.md` §8 |
| OQ-030 | Sửa số lượng tại màn Giỏ hàng (US-003) có kiểm tra giới hạn trên theo tồn kho hiện tại ngay lúc sửa không, hay chỉ kiểm tra ở checkout (US-004) như `BACKLOG` đã khoanh phạm vi? SAD SCR-04 mô tả "≤ tồn kho hiện tại" nhưng `BACKLOG` loại trừ việc này khỏi US-002/US-003 | PO, Tech Lead | 2026-09-08 | `SRS_US002-003` F01, `WF_US002-003` §5 #2/#4 | `SRS_US002-003_v1.0.md` §8 |
| OQ-031 | Nút "Tiến hành Checkout" (SCR-04) áp dụng cho toàn bộ giỏ hàng, hay chỉ cho các dòng được tick chọn (checkbox mà SAD SCR-04 mô tả nhưng không `US` nào trong `BACKLOG` định nghĩa)? Ảnh hưởng cả phạm vi US-004 | PO | 2026-09-08 | `SRS_US002-003` C11, `WF_US002-003` §5 #1 | `SRS_US002-003_v1.0.md` §8 |
| OQ-032 | Với Guest, cơ chế kiểm tra quyền sở hữu `CartItem` khi gọi `PATCH`/`DELETE /v1/cart/items/{cartItemId}` có tương đương cơ chế ownership theo JWT (`403 ERR_FORBIDDEN_OWNERSHIP`) không? SAD §4.1.1/§4.2 chỉ mô tả rõ cho `customerId`/`sellerId` trong JWT | Tech Lead | 2026-09-08 | `AC-US003-13`, `E-CART-0005` | `SRS_US002-003_v1.0.md` §8, `API_US002-003_v1.0.md` §5 |
| OQ-033 | Ngưỡng thời gian phản hồi (p95) cho `GET /v1/cart` và cho `PATCH`/`DELETE /v1/cart/items` là bao nhiêu giây? SAD NFR-01 chỉ có ngưỡng cho danh mục/tìm kiếm (<2s) và checkout (<3s) | PO, Tech Lead | 2026-09-08 | `NFR_US002-003` §1 | `NFR_US002-003_v1.0.md` §9 |
| OQ-034 | `GET /v1/cart` trả về cấu trúc đã nhóm theo seller sẵn (`sellers[].items[]`) hay danh sách phẳng cart items kèm `sellerId` để FE tự nhóm? SAD §4.1.5 không có ví dụ JSON cho endpoint này | BE Lead, Tech Lead | 2026-09-08 | `API_US002-003` §1 endpoint 3.1, C02 nguồn dữ liệu (không chặn G3 — đã đánh dấu ⚠️ BA đề xuất) | `API_US002-003_v1.0.md` §5 |
## Open Question đã đóng
| ID | Nội dung | Trả lời | Ngày đóng | Người trả lời |
|---|---|---|---|---|
| OQ-004 | Áp coupon (FR-13) và dùng điểm thưởng (FR-14) ngay trong màn hình checkout có thuộc phạm vi module Giỏ hàng & Checkout không, hay là điểm tích hợp với module Khuyến mãi/Loyalty? | Là điểm tích hợp: module Khuyến mãi/Loyalty sở hữu logic tính, module Giỏ hàng & Checkout chỉ hiển thị kết quả đã tính và gọi API áp dụng — xem `DEC-03` | 2026-09-08 | PO sàn (qua người điều phối) |
| OQ-008 | Xác nhận lại: cả 4 RQ của module này (RQ-001…RQ-004) đều Must — nếu chỉ kịp một nửa thời gian, PO sẽ cắt cái nào? | Giữ RQ-001 (giỏ hàng đa seller) và RQ-002 (tách đơn) trước; RQ-003 phần ví điện tử (VNPay/Momo) có thể lùi sau COD — xem `DEC-04` | 2026-09-08 | PO sàn (qua người điều phối) |