Files
sys-analysis-design/ba-output/e-commerce/02-analysis/IMPACT_CartCheckout_v1.0.md
Leonard-ThindPad-P50 2c7bcde741 improve BA skill
2026-09-09 06:34:57 +07:00

16 KiB

IMPACT — Phân tích tác động — Giỏ hàng & Checkout (e-commerce)

Version 1.0
Date 2026-09-08
Author BA (qua skill ba-2-analysis)
Status 🟡 Draft
Approved by — (cần Tech Lead xác nhận — chưa có Tech Lead thật tham gia lần chạy này)
Profile screen · greenfield · standard
Source 01-discovery/BRIEF_CartCheckout_v1.0.md §5.3 (ranh giới hệ thống) · 01-discovery/RISK_CartCheckout_v1.0.md §3 (phụ thuộc bên ngoài) · PROCESS_CartCheckout_v1.0.md · e-commerce/docs/sections/06-luong-xu-ly.md §6.1.1 (tham chiếu tích hợp, không chép thiết kế)
Scope Module Giỏ hàng & Checkout — RQ-001…RQ-004

Change Log

Version Date Người sửa Thay đổi CR
1.0 2026-09-08 BA (qua skill ba-2-analysis) Bản đầu — rút gọn theo LIFECYCLE = greenfield, trọng tâm trục tích hợp —

⚠️ Ngoại lệ gate G1 — xem cảnh báo đầy đủ ở đầu PROCESS_CartCheckout_v1.0.md và DEC-02 ở 00-index/DECISION_e-commerce.md.

Vì sao tài liệu này rút gọn: theo 00-index/PROFILE_e-commerce.md mục "Hệ quả đã áp dụng" (LIFECYCLE = greenfield): "GĐ2 IMPACT rút gọn: chỉ trục tích hợp (không có module/dữ liệu cũ bị ảnh hưởng)". Tài liệu dưới đây vẫn rà đủ sáu trục theo template (không bỏ giai đoạn im lặng) — năm trục còn lại ghi rõ "đã rà, không phát hiện" kèm lý do greenfield; trục 1.5 (Tích hợp) là trọng tâm thật sự của tài liệu này.


0. Kết luận

Mức tác động tổng thể 🟠 Trung bình — không có gì để đụng ở màn hình/dữ liệu/BR/RBAC cũ (greenfield), nhưng tích hợp với 4 bên thứ ba (VNPay, Momo, GHN, GHTK) + 3 module nội bộ song song (Catalog, Commission & Payout, Promotion & Loyalty, Notification) đều chưa được xác minh khả thi
Số hạng mục 🔴 2 (VNPay, Momo — xem §1.5)
Cần migrate dữ liệu Không — LIFECYCLE = greenfield, không có dữ liệu cũ (xác nhận F7, ELICITATION_CartCheckout_2026-09-08.md)
Cần phối hợp bên thứ ba Có — VNPay, Momo, GHN, GHTK (xem §1.5)
Rủi ro lớn nhất RISK-02 (webhook thanh toán trễ/lỗi khiến đơn kẹt "chờ thanh toán") và RISK-01 (COD bùng đơn một phần) — cả hai đã ghi ở GĐ1, ảnh hưởng trực tiếp tới khả năng chốt BR-CART-03/BR-CART-06 ở GĐ2 này

1. Sáu trục rà soát

1.1 Màn hình / chức năng hiện có

Màn hình/chức năng Đường dẫn Tác động Mức Phương án Ai xác nhận
(không có) — — — — —

Đã rà: đã kiểm tra ba-output/e-commerce/ (chỉ có artifact GĐ1 của chính module này) và e-commerce/docs/sections/07-giao-dien.md (mô tả UI dạng văn bản SCR-01…, chưa phải màn hình đã build). Kết luận: không có màn hình nào đang chạy để module này tác động — đây là module đầu tiên chạy GĐ2 của dự án e-commerce (greenfield, chưa có bản build sản phẩm nào trước đó).

1.2 Dữ liệu

Bảng/thực thể Thay đổi Số bản ghi hiện có Dữ liệu cũ xử lý thế nào Mức Ai xác nhận
(không có) — 0 N/A — —

Đã rà: đối chiếu e-commerce/docs/sections/05-thiet-ke-du-lieu.md §5.3.5 "Migration dữ liệu cũ: Không áp dụng — dự án greenfield… không có hệ thống cũ cần tích hợp/migrate". Kết luận: không có dữ liệu cũ. Toàn bộ thực thể mới (Cart, CartItem, Order, OrderSeller, OrderItem, Payment — xem BR_CartCheckout_v1.0.md §4) được tạo mới hoàn toàn; không thuộc ba lựa chọn "giữ nguyên/migrate/song song" vì không có dữ liệu cũ để chọn.

1.3 Business rule

BR hiện hành Bị ảnh hưởng thế nào Mâu thuẫn với rule mới? Xử lý Mức
(không có) — — — —

Đã rà: không có BR nào đã chốt (✅ Baselined) trước module này trong toàn dự án e-commerce — đây là bộ BR đầu tiên (BR_CartCheckout_v1.0.md). Mâu thuẫn nội bộ giữa các rule mới của chính module này đã được rà ở BR_CartCheckout_v1.0.md §6, không lặp lại ở đây.

1.4 Phân quyền

Vai trò Thay đổi quyền Ai bị mất quyền Đã thông báo Mức
(không có) — — — —

Đã rà: không có RBAC nào đã chốt trước module này. RBAC_CartCheckout_v1.0.md tạo mới 2 vai trò (Guest, Customer) — chưa ảnh hưởng vai trò nào đã tồn tại vì đây là module đầu tiên.

1.5 Tích hợp / hệ thống ngoài — TRỌNG TÂM

Hệ thống Điểm chạm Thay đổi Đầu mối bên kia Cần bên kia làm gì Hạn Mức
VNPay Payment Service khởi tạo giao dịch (US-008) + nhận webhook xác nhận (BR-CART-06) Tích hợp mới hoàn toàn Chưa xác định (RISK §3 phụ thuộc #1) Cung cấp tài liệu API + tài khoản sandbox; xác nhận cơ chế/độ trễ webhook (ASM-01/OQ-010) Trước khi bắt đầu GĐ3 (SRS thanh toán) 🔴
Momo Tương tự VNPay Tích hợp mới hoàn toàn Chưa xác định (RISK §3 phụ thuộc #2) Tương tự VNPay Trước GĐ3 🔴
GHN Ước tính phí ship/kiểm tra vùng phục vụ theo địa chỉ lúc checkout (US-005) Tích hợp mới Chưa xác định (RISK §3 phụ thuộc #3) Cung cấp API tính phí + vùng phục vụ (ASM-02/OQ GĐ1) Trước GĐ3 (SRS checkout) 🟠
GHTK Tương tự GHN Tích hợp mới Chưa xác định (RISK §3 phụ thuộc #4) Tương tự GHN Trước GĐ3 🟠
Catalog & Inventory (module nội bộ, cùng dự án, ngoài phạm vi RQ-001…004) Cart đọc giá/tồn kho khi thêm giỏ (US-001) và giữ tồn kho khi checkout (US-004, BR-CART-02) Tích hợp nội bộ mới (một chiều vào Cart) STK-06 (Tech Lead) Xác nhận kiến trúc đồng bộ giá/tồn kho, độ trễ cache (ASM-06/OQ-009) Trước GĐ3 🟠
Commission & Payout (module nội bộ, ngoài phạm vi) Nhận sự kiện thanh toán thành công để tạo bản ghi hoa hồng Tích hợp nội bộ mới (một chiều ra khỏi module này) STK-06 (Tech Lead) Xác nhận cấu trúc sự kiện cần thiết Trước GĐ3 🟢
Notification (module nội bộ, ngoài phạm vi, FR-12) Nhận sự kiện "đơn đã tạo"/"thanh toán thành công" để trigger gửi email/SMS Tích hợp nội bộ mới (một chiều ra khỏi module này) STK-06 (Tech Lead) Xác nhận điều kiện trigger Trước GĐ3 🟢
Khuyến mãi & Loyalty (module nội bộ, ngoài phạm vi, FR-13/14) Checkout gọi API "áp dụng mã/điểm" và hiển thị kết quả giảm giá đã tính (điểm tích hợp đã xác nhận qua OQ-004, xem DEC-03) Tích hợp nội bộ mới (hai chiều: gọi áp dụng + nhận kết quả) STK-01 (PO sàn) đã xác nhận điểm nối; đầu mối kỹ thuật (API contract) chưa xác định Cung cấp API "áp dụng mã/điểm" trả về giá trị giảm Trước GĐ3 (màn hình checkout, US-004/US-005) 🟠

Nếu bên kia lỗi hoặc chậm thì nghiệp vụ này xử lý thế nào? (bắt buộc trả lời)

  • VNPay/Momo lỗi/chậm (timeout, không gửi webhook): theo PROCESS_CartCheckout_v1.0.md bước B9 — đơn giữ pending_payment; cơ chế đối soát bù (reconciliation job) được đề xuất ở RISK-02 (GĐ1) nhưng thiết kế chi tiết thuộc phạm vi module Thanh toán ở GĐ3, không phải một US của module Giỏ hàng & Checkout. Đây là phụ thuộc bắt buộc phải xử lý trước go-live, ghi nhận rõ để không rơi vào khoảng trống giữa hai module.
  • GHN/GHTK lỗi/chậm lúc ước tính phí ship (US-005): nếu ASM-02 sai (API không khả dụng thời gian thực lúc checkout), phương án dự phòng là chuyển sang ước tính tĩnh — chưa được PO/Tech Lead xác nhận là phương án chính thức, vẫn ở dạng giả định từ GĐ1.
  • Catalog & Inventory chậm/không phản hồi: có thể chặn hoàn toàn bước thêm giỏ (US-001) hoặc checkout (US-004) vì đây là phụ thuộc cứng (không có giá/tồn kho thì không tạo được CartItem/OrderItem hợp lệ) — cần Tech Lead xác nhận SLA nội bộ giữa hai service, ngoài khả năng BA tự quyết.
  • Khuyến mãi & Loyalty lỗi/chậm: theo OQ-004/DEC-03, module này chỉ hiển thị kết quả đã tính — nếu API áp dụng lỗi, hành vi hiển thị cho khách (bỏ qua coupon/điểm, hay chặn checkout hoàn toàn) chưa chốt, cần OQ mới ở GĐ3.

Đã rà: đối chiếu BRIEF_CartCheckout_v1.0.md §5.3 (ranh giới hệ thống) và RISK_CartCheckout_v1.0.md §3 (phụ thuộc bên ngoài) — không phát hiện hệ thống tích hợp nào khác ngoài bảng trên trong phạm vi RQ-001…004.

1.6 Báo cáo / đối soát

Rút gọn theo LIFECYCLE = greenfield (theo quyết định ở PROFILE) — không có báo cáo hiện hành nào bị đổi cách tính vì đây là module đầu tiên, chưa từng có báo cáo trước đó.

Báo cáo Số liệu nào đổi Đổi từ khi nào Ai dùng báo cáo này Đã báo chưa Mức
(không có báo cáo hiện hành để đổi) — — — — —

Ghi nhận (không phải "tác động" theo nghĩa template, nhưng quan trọng để không bỏ sót): dữ liệu Order/OrderSeller/Payment do module này sinh ra là đầu vào bắt buộc cho báo cáo đối soát doanh thu tương lai (STK-04 Kế toán đối soát, RACI ở STAKEHOLDER GĐ1) — nhưng vì chưa có báo cáo nào tồn tại để so sánh, mục này không có gì để điền theo đúng cấu trúc bảng trên. Đây là lý do RISK-02 (webhook trễ) quan trọng: dữ liệu sai lệch ngay từ module này sẽ lan sang mọi báo cáo đối soát sau này — ghi chú lại để module Kế toán/Đối soát (nếu chạy GĐ1/2 riêng sau này) biết điểm phụ thuộc ngược.


2. Tác động lên người dùng và vận hành

Vai trò Thay đổi trong công việc Cần đào tạo Cần thông báo trước Mức kháng cự dự kiến
Customer/Guest Trải nghiệm hoàn toàn mới (không có công việc "cũ" bị thay đổi — greenfield) Hướng dẫn UX tại chỗ (onboarding/tooltip) — thuộc WF/UICONV GĐ3 Không áp dụng (chưa có người dùng cũ) Thấp — nhưng chưa đo được thật (chưa vận hành), xem GOAL-01
CSKH (ngoài phạm vi stakeholder module này, nhưng liên đới qua RISK-02) Có thể cần quy trình mới để xử lý đơn "kẹt chờ thanh toán" — chưa có quy trình chính thức nào được thiết kế trong phạm vi module này Chưa xác định — phụ thuộc thiết kế cơ chế đối soát bù ở GĐ3 module Thanh toán Cần thông báo trước go-live nếu quy trình này được xác nhận Chưa đánh giá được — chưa có CSKH thật tham gia (đúng hệ quả G1 chưa ký)

3. Tác động lên phi chức năng

Khía cạnh Tác động Ngưỡng hiện tại Ngưỡng sau thay đổi Cần đo lại
Hiệu năng Checkout (B1→B5, PROCESS) phải hoàn tất trong ngưỡng đề xuất N/A — chưa vận hành < 3 giây (đề xuất NFR-01, chưa phải SLA hợp đồng — xem BRIEF §2) ☑ (bắt buộc đo ở soft-launch, theo GOAL-01/GOAL-02)
Dung lượng lưu trữ Chưa đo — greenfield, không có dữ liệu lịch sử để ước lượng tăng trưởng thật N/A N/A ☑ (sau khi có số liệu vận hành thật, không phải việc của GĐ2)
Bảo mật / tuân thủ Chia sẻ PII (địa chỉ, SĐT) cho seller khi tách đơn (RISK-03) chưa được Pháp chế/Bảo mật rà soát N/A N/A — chờ người phụ trách (OQ-003, GĐ1) ☑ (bắt buộc trước go-live, không phải "nên làm")

4. Thứ tự triển khai bắt buộc

# Việc Phải xong trước Vì sao Ai làm
1 Xác minh ASM-01 (webhook VNPay/Momo khả thi gần thời gian thực) Thiết kế chi tiết SRS US-008 ở GĐ3 Nếu sai, toàn bộ luồng xác nhận thanh toán (BR-CART-06) phải đổi cơ chế sang polling Tech Lead
2 Xác minh ASM-02 (API GHN/GHTK tính phí ship real-time) Thiết kế chi tiết SRS US-005 ở GĐ3 Nếu sai, phải đổi sang phương án ước tính tĩnh — thay đổi UX hiển thị phí ship Tech Lead + STK-05 (Trưởng vận hành)
3 PO trả lời OQ-006 (giới hạn COD) Chốt BR-CART-03 trước khi viết AC của US-007 ở GĐ3 Không có con số thì không viết được điều kiện chặn/cảnh báo cụ thể PO, Kế toán đối soát
4 Xác nhận API contract "áp dụng mã/điểm" với module Khuyến mãi & Loyalty Thiết kế màn hình checkout (US-004/US-005) ở GĐ3 Module này chỉ hiển thị kết quả đã tính — không tự thiết kế được UI nếu chưa biết dữ liệu trả về là gì Tech Lead, PO

5. Phạm vi hồi quy đề xuất cho QA

Khu vực cần test lại Vì sao Ưu tiên
(không có) Module đầu tiên chạy GĐ2 của dự án e-commerce — chưa có tính năng nào đã release để hồi quy (greenfield, RIGOR = standard không miễn hoàn toàn nghĩa vụ ghi mục này, nhưng nội dung thật sự là "không có" vì chưa có bản release nào trước đó) N/A

6. Open Questions

ID Câu hỏi Hỏi ai Từ ngày Chặn gì
OQ-009 ASM-06 — giá/tồn kho thay đổi giữa lúc thêm giỏ và checkout PO + Tech Lead 2026-09-08 §1.5 dòng Catalog & Inventory
OQ-010 Xác nhận khả thi ASM-01 (webhook VNPay/Momo) Tech Lead 2026-09-08 §1.5 dòng VNPay/Momo, §4 mục 1
(GĐ1) ASM-02 Xác nhận API GHN/GHTK tính phí ship real-time Tech Lead, STK-05 2026-09-08 §1.5 dòng GHN/GHTK, §4 mục 2
(mới) 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 §1.5 dòng Khuyến mãi & Loyalty

7. Xác nhận

Vai trò Người Xác nhận nội dung Ngày
Tech Lead (chưa có — chưa xác định tên thật, xem OQ-001 GĐ1) ☐ Khả thi, đã rà đủ —
QA (chưa có) ☐ Phạm vi hồi quy hợp lý (N/A cho module đầu tiên) —
PO (chưa có — chưa xác định tên thật, xem OQ-001 GĐ1) ☐ Chấp nhận tác động lên người dùng —