PRD: Quản lý Merchant (Back Office)
| Module | Thương mại | PRD ID | PRD-MER-001 |
| Trạng thái | Sẵn sàng dev | FEAT | MER · BANA-1437 |
| Epic | BANA-1337 | Plane | BANA-1735 |
| Ngày | 2026-06-30 | Phiên bản | v1.0 |
| Gói | @nx/commerce | URD | MER |
| Surface | BO · Vận hành | ||
| Phụ trách | Phát Nguyễn | ||
Quản lý Merchant (Back Office) là gì
Onboarding tạo ra một tổ chức (Organizer) kèm merchant trụ sở và bộ mặc định (PRD-ORG-001). Sau đó, đội vận hành cần một nơi quản lý merchant như bản ghi: thêm merchant cho một organizer, sửa hồ sơ, đổi trạng thái hoạt động, và - quan trọng nhất - bật cách merchant nhận thanh toán. Màn Quản lý Merchant tại Back Office là nơi đó: tìm merchant xuyên mọi organizer, tạo merchant mới, sửa hồ sơ và vòng đời từng merchant, cấu hình nhà cung cấp thanh toán, thiết lập thanh toán, và mẫu in.
Organizer và merchant
Màn này đứng trên một nguyên tắc do PRD-ORG-001 đặt ra: tổ chức (Organizer) luôn là thương hiệu ảo; mọi thuộc tính pháp lý và tài chính thuộc về một chi nhánh (Merchant), không bao giờ về organizer. Mã số thuế, tiền tệ, và cấu hình nhận thanh toán vì thế đều nằm ở merchant - đây chính là những thứ màn này sửa, thay merchant, tại Back Office.
Vì sao cần màn này
Trước màn này, thêm hay sửa một merchant phải sửa dữ liệu thô. Đội vận hành không có nơi quản lý trọn vòng đời merchant và cấu hình thanh toán, gói trong đúng phạm vi vai trò được cấp. Đây là phần đối ứng phía vận hành so với thiết lập merchant phía chủ.
Một tình huống từ đầu tới cuối
Ops tìm trong bảng merchant, mở một merchant, sửa hồ sơ ở tab Thông tin chung, rồi chuyển sang tab Cấu hình nhà cung cấp thanh toán để nhập credential VNPAY QR, và tab Thiết lập thanh toán để đăng ký thông tin merchant/terminal. Xong cả hai bước, merchant nhận được thanh toán. Để thêm một merchant mới, ops tạo merchant dưới đúng organizer. Khi cần dọn một merchant không còn dùng, ops thử xóa; nếu merchant còn nội dung hoặc đang là trụ sở, màn từ chối và chỉ đường sang Lưu trữ hoặc sang việc chuyển trụ sở trước.
Chỗ dễ sai nhất
Cấu hình nhà cung cấp thanh toán không phải là Thiết lập thanh toán
Hai tab nghe giống nhau nhưng làm hai việc khác nhau. Cấu hình nhà cung cấp thanh toán là nhập credential kỹ thuật thô của provider (VNPAY QR, VNPAY Phone POS). Thiết lập thanh toán là đăng ký thông tin merchant và terminal theo kênh bán với bên thanh toán. Hai tab riêng, lưu riêng - thiếu một trong hai thì merchant chưa nhận được thanh toán trọn vẹn.
1. Mục tiêu & Loại trừ
Mục tiêu
- Tìm merchant xuyên các organizer - một bảng có tìm kiếm và lọc theo tên, trạng thái, loại hình, ngành, organizer.
- Tạo merchant với hồ sơ lõi và bộ giá trị mặc định định sẵn.
- Sửa hồ sơ merchant và vòng đời (5 trạng thái, xem FR-004).
- Cấu hình nhà cung cấp thanh toán - nhập credential cho từng provider (hiện hỗ trợ đúng 2: VNPAY QR và VNPAY Phone POS).
- Thiết lập thanh toán - đăng ký thông tin merchant và terminal theo kênh bán với bên thanh toán.
- Đặt mẫu in hóa đơn của merchant, nhiều mẫu theo ngôn ngữ, có mẫu mặc định.
- Xem và sửa chính sách xóa của merchant thay merchant, và xóa merchant theo đúng điều kiện của server.
- Chỉ định lại merchant trụ sở của một organizer, với ràng buộc bảo vệ merchant đang là trụ sở.
Loại trừ
- Wizard onboarding lần đầu tạo organizer + merchant - là một luồng riêng (Backoffice Portal).
- Tự thiết lập merchant phía chủ trong app client (cùng năng lực, khác surface).
- Dữ liệu pháp lý/tài chính ở mức organizer - theo chủ ý, chúng thuộc về merchant, không thuộc organizer.
- Ngành hàng, kênh bán, và soạn mẫu in như tính năng độc lập (area riêng:
CAT,SC,RCP).
2. Thước đo thành công
| Chỉ số | Mục tiêu / tín hiệu |
|---|---|
| Ops tự làm | Ops tạo hoặc sửa một merchant, và bật nhận thanh toán, mà không phải đổi database |
| Dễ tìm | Ops định vị bất kỳ merchant nào bằng tìm/lọc trong phạm vi vai trò |
| Toàn vẹn slug | Slug merchant mới là duy nhất trong organizer; chặn trùng |
| Sẵn sàng thanh toán | Sau khi cấu hình, merchant nhận được thanh toán qua các provider đã cấu hình |
| Xóa an toàn | Merchant còn merchant con, còn nội dung, hoặc đang là trụ sở không bao giờ xóa được nhầm |
3. Persona & Tình huống
| Persona | Mục tiêu ở tính năng này |
|---|---|
| Đội vận hành | Duy trì merchant thay cho organizer - hồ sơ, vòng đời, chính sách xóa, và thiết lập thanh toán |
| Nhân viên onboarding / hỗ trợ | Thêm merchant cho một organizer sẵn có và làm cho nó sẵn sàng giao dịch |
Tình huống chính: ops tìm trong bảng merchant, mở một merchant, sửa hồ sơ ở tab Thông tin chung, rồi chuyển sang tab Cấu hình nhà cung cấp thanh toán để nhập credential VNPAY QR, và tab Thiết lập thanh toán để đăng ký thông tin merchant/terminal; merchant giờ nhận được thanh toán. Để thêm một merchant, ops tạo merchant mới dưới đúng organizer. Khi cần dọn một merchant không còn dùng, ops thử xóa; nếu merchant còn nội dung hoặc là trụ sở, màn từ chối và chỉ đường sang Lưu trữ hoặc sang việc chuyển trụ sở trước.
4. User Stories
| # | Là một | Tôi muốn | Để |
|---|---|---|---|
| 01 | ops | bảng merchant có tìm kiếm và lọc, đánh dấu rõ trụ sở | tìm đúng merchant bằng tên, trạng thái, loại hình, ngành hoặc organizer |
| 02 | ops | tạo merchant với các giá trị mặc định định sẵn (Đang hoạt động, VND, Hộ kinh doanh) | merchant mới ra đời không phải chọn lại từng thứ; riêng Ngành luôn phải tự chọn |
| 03 | ops | slug merchant là duy nhất trong organizer | link và tra cứu không bao giờ đụng nhau |
| 04 | ops | sửa hồ sơ merchant và đổi trạng thái vòng đời | bản ghi phản ánh thực tế merchant |
| 05 | ops | nhập credential nhà cung cấp thanh toán và đăng ký merchant/terminal | merchant nhận được thanh toán |
| 06 | ops | soạn mẫu in cho merchant theo từng ngôn ngữ | hóa đơn in ra đúng định dạng đã duyệt |
| 07 | ops | xem và sửa thay merchant hai cờ chính sách xóa | hỗ trợ merchant khi họ cần đổi mà chưa tự làm được |
| 08 | ops | xóa một merchant chỉ khi nó thật sự rỗng | không xóa nhầm mất dữ liệu đang dùng |
| 09 | ops | chỉ định lại merchant trụ sở của một organizer, và không thể xóa nhầm merchant đang là trụ sở | organizer luôn có đúng một trụ sở hợp lệ |
5. Yêu cầu chức năng
| # | Yêu cầu | Trạng thái | URD ref |
|---|---|---|---|
FR-001 | Bảng merchant 8 cột, tìm kiếm và lọc, gói theo vai trò ops. • Cột: Tên merchant (tìm theo tên; kèm nhãn Trụ sở khi merchant là trụ sở) · Mã số thuế (chỉ hiển thị) · Trạng thái (lọc được, xem FR-004) · Loại hình (lọc được, xem FR-002) · Ngành (lọc được, xem FR-002) · Ngành hàng (chỉ hiển thị, tối đa 3 nhãn, phần dư gom "+N", trỏ chuột để xem đủ) · Địa chỉ (chỉ hiển thị) · Organizer (lọc được, liệt kê xuyên organizer trong phạm vi vai trò). • Action trên từng dòng: mở merchant (vào trình sửa) và xóa (theo điều kiện xóa ở FR-010, kèm hộp thoại xác nhận nêu tên merchant); danh sách chỉ hiện merchant trong phạm vi vai trò ops. | ✅ | URD-MER-006 · URD-MER-010 · URD-MER-017 |
FR-002 | Tạo merchant qua form hồ sơ 11 trường, kèm bộ mặc định định sẵn. Slug duy nhất trong organizer. • Bắt buộc: Tên merchant (song ngữ VI/EN) · Organizer (chọn từ organizer sẵn có) · Loại hình (hiện chỉ Hộ kinh doanh; Doanh nghiệp không nằm trong các lựa chọn khi tạo merchant tại BO (🚧)) · Ngành (F&B · Bán lẻ · Khác; Vé không nằm trong các lựa chọn khi tạo merchant tại BO) · Slug (tự sinh từ tên tiếng Việt; gõ tay qua hộp thoại thì ngừng tự sinh, xóa trống thì tự sinh lại; duy nhất trong organizer - hệ thống chặn trùng, slug của merchant đã xóa mềm được giải phóng để dùng lại) · Trạng thái (5 giá trị, xem FR-004) · Tiền tệ (VND · USD · EUR · GBP · JPY). • Tùy chọn: Mã merchant (tự do do ops nhập) · Ngày bắt đầu · Ngày kết thúc (không được trước Ngày bắt đầu - vi phạm thì báo lỗi ngay trên trường) · Địa chỉ (văn bản tự do). • Mặc định khi tạo: Trạng thái = Đang hoạt động, Tiền tệ = VND, Loại hình = Hộ kinh doanh; riêng Ngành là trường bắt buộc nhưng không đặt sẵn giá trị nào - ops luôn phải tự chọn. • Màn tạo chỉ hiện form hồ sơ (các tab thanh toán / mẫu in chỉ xuất hiện khi sửa). Tạo thành công thì chuyển sang trình sửa của merchant vừa tạo; nếu đồng bộ dữ liệu thuế có cảnh báo, cảnh báo hiện kèm thông báo tạo thành công. | ✅ | URD-MER-002 · URD-MER-005 · URD-MER-021 |
FR-003 | Sửa hồ sơ chung của merchant trên tab Thông tin chung. • Trình sửa mở 4 tab: Thông tin chung · Cấu hình nhà cung cấp thanh toán · Thiết lập thanh toán · Mẫu in. • Tab Thông tin chung dùng đúng form 11 trường ở FR-002; khi lưu chỉ những trường đã thay đổi được ghi nhận. • Rời màn khi còn thay đổi chưa lưu thì cảnh báo. | ✅ | URD-MER-007 |
FR-004 | Vòng đời merchant - 5 trạng thái. Ngưng hoạt động đảo lại được, Lưu trữ là trạng thái cuối chỉ-đọc. • Trạng thái: Không xác định · Đang hoạt động · Ngưng hoạt động · Nháp · Lưu trữ. • Ngưng hoạt động đảo lại được (đặt lại Đang hoạt động). • Lưu trữ là trạng thái cuối có chủ đích: merchant lưu trữ phải ở chế độ chỉ đọc - ràng buộc chỉ-đọc này là yêu cầu, hiện chưa được cưỡng chế trên màn (🔶). • Merchant đang là trụ sở của organizer không bao giờ chuyển sang Lưu trữ được - xem FR-011. | 🔶 | URD-MER-012 · URD-MER-013 |
FR-005 | Hồ sơ đăng ký & thuế của merchant - mã số thuế, số & loại & ngày đăng ký kinh doanh. • Một khu vực trên trình sửa cho ops nhập mã số thuế, số đăng ký kinh doanh, loại đăng ký (chọn từ danh mục loại đăng ký), và ngày đăng ký; cả 4 trường tùy chọn. • Form này đã được thiết kế nhưng hiện chưa gắn vào tab nào trên màn - cần đưa vào trình sửa như một tab hoặc mục riêng. | 🚧 | URD-MER-016 |
FR-006 | Cấu hình nhà cung cấp thanh toán - nhập credential theo từng nghiệp vụ cho VNPAY QR và VNPAY Phone POS. • Tab liệt kê provider ở cột trái (kèm logo và tên đơn vị cung cấp), form credential của provider đang chọn ở bên phải. Hiện hỗ trợ đúng 2 provider. • VNPAY QR - 7 credential theo 4 nhóm nghiệp vụ: Tạo thanh toán (request + response), Xác thực IPN (1 credential), Tra cứu giao dịch (request + response), Hoàn tiền (request + response). • VNPAY Phone POS - 2 credential: Xác thực IPN và Tạo merchant MOID. • Khi lưu, chỉ credential đã thay đổi được ghi: credential đã tồn tại thì cập nhật giá trị, chưa có thì tạo mới. Không có thay đổi nào thì báo "không có cấu hình để lưu" thay vì ghi rỗng. | ✅ | URD-MER-016 |
FR-007 | Thiết lập thanh toán - đăng ký thông tin merchant và terminal theo kênh bán với bên thanh toán. • Tab riêng (chỉ hiện khi sửa), gồm 2 nhóm đăng ký với bên thanh toán. • Thông tin merchant: tên merchant, mã merchant, loại merchant - cả 3 bắt buộc. • Thông tin terminal theo kênh bán: chọn kênh bán (bắt buộc), tên terminal, mã terminal, mã dịch vụ terminal - đều bắt buộc. Mỗi kênh bán một bộ terminal. • Mỗi nhóm lưu độc lập bằng nút lưu riêng của nhóm. | ✅ | URD-MER-016 |
FR-008 | Mẫu in hóa đơn - nhiều mẫu theo ngôn ngữ (VI/EN), một mẫu mặc định, soạn ngay trong tab. • Tab Mẫu in mở trình soạn mẫu hóa đơn ngay trong trình sửa. • Mỗi merchant có thể có nhiều mẫu theo ngôn ngữ (VI/EN - đổi ngôn ngữ thì nạp bộ mẫu của ngôn ngữ đó), trong đó một mẫu là mặc định. • Lưu sẽ cập nhật mẫu đang chọn, hoặc tạo mẫu mới nếu merchant chưa có mẫu nào. | ✅ | URD-RCP-001 |
FR-009 | Chính sách xóa của merchant - ops xem và sửa thay merchant hai cờ chính sách xóa trên màn sửa merchant. • Mỗi merchant mang một chính sách xóa gồm hai cờ, lưu trong kho thiết lập riêng của merchant. • Chặn-xóa-danh-mục-còn-con (mặc định bật) - danh mục còn danh mục con thì không xóa được. • Xóa-sản-phẩm-kéo-theo-biến-thể (mặc định tắt) - xóa một sản phẩm thì các biến thể của nó cũng xóa theo. • Trên màn sửa merchant, ops xem giá trị hiện tại của hai cờ và sửa thay merchant khi merchant cần đội vận hành hỗ trợ chỉnh giúp. | 🚧 | URD-MER-024 · URD-MER-025 |
FR-010 | Xóa merchant theo điều kiện của server. • Bấm xóa (từ bảng ở FR-001 hoặc từ trình sửa) chỉ thành công khi thỏa cả hai điều kiện: merchant không còn merchant con nào, và merchant không còn nội dung nào thuộc về nó (danh mục, sản phẩm, kênh bán, đơn hàng). • Vi phạm một trong hai điều kiện thì bị từ chối, kèm thông báo hướng ops sang dùng Lưu trữ (FR-004) thay vì xóa. • Xóa thành công thì hệ thống dọn sạch mọi liên kết ngoài và thiết lập của merchant, sau đó merchant được xóa mềm. | ✅ | URD-MER-026 |
FR-011 | Merchant trụ sở chính - chỉ định lại trụ sở của một organizer. • Merchant mới được chọn phải cùng organizer và đang ở trạng thái Đang hoạt động. Đổi trụ sở xong, hệ thống phát một sự kiện thay-đổi-trụ-sở cho các bên tiêu thụ hạ nguồn. • Merchant đang là trụ sở của organizer không bao giờ xóa hay lưu trữ được - phải chỉ định trụ sở sang một merchant khác trước, rồi mới xóa hoặc lưu trữ được merchant cũ. • Cùng một bộ luật bảo vệ trụ sở này áp dụng ở mọi nơi thao tác merchant, kể cả trang Client. | 🚧 | URD-ORG-011 · URD-ORG-018 · URD-MER-017 |
5.1 Tiêu chí nghiệm thu
- Bảng merchant hiển thị đủ 8 cột nêu ở FR-001; lọc được theo tên, trạng thái, loại hình, ngành, organizer; merchant trụ sở có nhãn Trụ sở.
- Merchant ngoài phạm vi vai trò của ops không xuất hiện trong bảng và không mở được.
- Xóa một merchant yêu cầu xác nhận trên hộp thoại có nêu tên merchant; xác nhận xong dòng biến mất khỏi bảng nếu điều kiện xóa ở FR-010 thỏa mãn.
- Form tạo merchant điền sẵn mặc định Đang hoạt động / VND / Hộ kinh doanh; Ngành để trống và bắt buộc tự chọn; bỏ trống bất kỳ trường bắt buộc nào thì không lưu được và trường đó báo lỗi.
- Nhập tên tiếng Việt thì slug tự sinh theo; sửa slug tay qua hộp thoại thì slug ngừng tự sinh; xóa trống slug thì tự sinh trở lại.
- Tạo merchant trùng slug với merchant khác cùng organizer bị từ chối kèm báo lỗi; trùng slug với một merchant đã xóa mềm thì thành công.
- Đặt Ngày kết thúc trước Ngày bắt đầu thì form báo lỗi trên trường ngày và không lưu.
- Ở trình sửa, chỉ trường đã đổi được ghi khi lưu; rời màn khi còn thay đổi chưa lưu sẽ có cảnh báo.
- Đặt merchant sang Ngưng hoạt động rồi đặt lại Đang hoạt động thành công; merchant Lưu trữ không sửa được nữa (khi ràng buộc chỉ-đọc được dựng).
- Tab Cấu hình nhà cung cấp thanh toán hiện đúng 2 provider; VNPAY QR có đủ 7 ô credential theo 4 nhóm, Phone POS có đủ 2 ô; lưu xong mở lại thấy cấu hình đã ghi.
- Tab Thiết lập thanh toán lưu được thông tin merchant (3 trường bắt buộc) và terminal theo kênh bán (4 trường bắt buộc) độc lập nhau.
- Tab Mẫu in: đổi ngôn ngữ VI ↔ EN nạp đúng bộ mẫu của ngôn ngữ; lưu lần đầu tạo mẫu mới, lưu tiếp cập nhật mẫu đang chọn; mẫu mặc định được nạp sẵn khi mở tab.
- Mở màn sửa merchant thấy đủ hai cờ chính sách xóa với đúng giá trị mặc định (chặn-xóa-danh-mục-còn-con bật, xóa-sản-phẩm-kéo-theo-biến-thể tắt); ops đổi giá trị và lưu được.
- Xóa một merchant còn sản phẩm → bị từ chối, thông báo gợi ý Lưu trữ.
- Xóa merchant rỗng → thành công, thiết lập và liên kết của nó được dọn.
- Chỉ định lại trụ sở sang một merchant cùng organizer và đang Đang hoạt động → thành công, sự kiện thay-đổi-trụ-sở được phát; chọn merchant khác organizer hoặc không Đang hoạt động → bị từ chối.
- Bấm xóa merchant đang là trụ sở → bị từ chối; chuyển trụ sở sang merchant khác rồi xóa → được.
6. Yêu cầu phi chức năng
| Khía cạnh | Yêu cầu |
|---|---|
| Phạm vi & phân quyền | Danh sách và mọi hành động gói theo vai trò ops; ops không bao giờ thấy hay sửa merchant ngoài phạm vi |
| Toàn vẹn slug | Slug duy nhất trong một organizer và có nhận biết soft-delete (slug đã xóa được giải phóng) |
| An toàn credential | Credential lưu mã hóa phía server; sau khi lưu, màn không hiển thị lại toàn bộ giá trị credential (chỉ dạng che). Phần che hiển thị là yêu cầu, hiện màn vẫn nạp lại giá trị đã lưu (🚧) |
| Đảo được | Ngưng hoạt động đảo lại được; Lưu trữ là trạng thái cuối chỉ-đọc có chủ đích |
| Toàn vẹn xóa | Xóa merchant tuân thủ guard hai điều kiện (FR-010) và ràng buộc bảo vệ trụ sở (FR-011); không có đường tắt bỏ qua guard |
| i18n | Tên merchant và nhãn song ngữ (EN/VI) |
7. UX & Luồng
Ops quản lý một merchant như thế nào:
Ops xóa hoặc chuyển trụ sở một merchant:
Màn cho ops làm những gì:
Màn nằm trong mục "Khách hàng & Merchant" của Back Office. Tạo merchant chỉ bắt hồ sơ lõi; sửa mới mở đủ 4 tab.
8. Dữ liệu & Miền nghiệp vụ
| Khái niệm | Vai trò trong màn này |
|---|---|
| Organizer | Cha thương hiệu mà merchant thuộc về; merchant được liệt kê và tạo dưới một organizer |
| Merchant | Đơn vị bán hàng pháp lý - tên, slug, loại hình, ngành, trạng thái, tiền tệ, mã merchant, ngày hiệu lực, địa chỉ; mỗi organizer có một trụ sở |
| Chính sách xóa | Hai cờ (chặn-xóa-danh-mục-còn-con, xóa-sản-phẩm-kéo-theo-biến-thể) lưu trong kho thiết lập của merchant; ops xem/sửa thay merchant |
| Cấu hình nhà cung cấp thanh toán | Credential theo nghiệp vụ của từng provider (VNPAY QR, VNPAY Phone POS) |
| Thiết lập thanh toán | Thông tin merchant và terminal (theo kênh bán) đăng ký với bên thanh toán |
| Mẫu in | Các mẫu hóa đơn của merchant theo ngôn ngữ, một mẫu mặc định |
Chỉ ở mức khái niệm - thuộc tính pháp lý/tài chính (định danh thuế, tài khoản tài chính, ví, tiền tệ) thuộc về merchant; mô hình dữ liệu nằm ở tài liệu developer.
9. Phụ thuộc & Giả định
Phụ thuộc vào
| # | Feature | Phụ thuộc điều gì |
|---|---|---|
| 01 | Onboarding (PRD-ORG-001) | tạo organizer + merchant trụ sở mà màn này quản lý sau đó. |
| 02 | ORG Organizer | chủ sở hữu khái niệm trụ sở; đổi trụ sở phát sự kiện thay-đổi-trụ-sở cho organizer và các bên tiêu thụ hạ nguồn. |
| 03 | CAT / SC Ngành hàng & kênh bán | ngành hàng hiển thị trên merchant; kênh bán là đơn vị đăng ký terminal, và là một trong các loại nội dung được guard xóa ở FR-010 kiểm tra. |
| 04 | RCP Mẫu in | trình soạn mẫu dùng ở tab Mẫu in. |
| 05 | Payment | hai provider (VNPAY QR, VNPAY Phone POS) merchant có thể được cấu hình để nhận (Payment). |
Giả định
| # | Giả định | Sai thì sao |
|---|---|---|
| 01 | Ops đã đăng nhập với vai trò gói phạm vi merchant họ quản lý. | Ops thấy và thao tác được trên merchant ngoài phạm vi được giao, phá vỡ ranh giới phân quyền của màn. |
| 02 | Mỗi merchant thuộc đúng một organizer; mỗi organizer có một merchant là trụ sở. | Guard bảo vệ trụ sở ở FR-011 giả định đúng một trụ sở cho mỗi organizer; nếu một organizer không có hoặc có nhiều hơn một trụ sở, guard không còn xác định được merchant nào cần bảo vệ. |
10. Kế hoạch phát hành & Tiêu chí
| Khía cạnh | Kế hoạch |
|---|---|
| Phase | P1 - đã có cho ops trong Back Office |
| Rollout | Mọi user ops; không feature flag |
| Migration | Không - chỉ quản lý bản ghi merchant hiện có |
| Tiêu chí ra mắt | Toàn bộ Tiêu chí nghiệm thu ở §5.1 đạt, trừ các mục đánh dấu 🚧/🔶 (che credential, chỉ-đọc khi Lưu trữ, hồ sơ đăng ký & thuế, chính sách xóa trên màn sửa, chỉ định lại trụ sở) có kế hoạch dựng riêng |
| Theo dõi | Lượng tạo/sửa merchant; tỷ lệ lưu cấu hình thanh toán thành công; số lần xóa merchant bị guard từ chối |
Tham chiếu
- URD: Commerce -
MER(Merchant) ·ORG·RCP - Liên quan: PRD-ORG-001 - Organizer & merchant
- Module: Commerce - URD · Lộ trình: Phase 2 - Theo tháng
- Developer: @nx/commerce
Rủi ro & Câu hỏi mở
| # | Rủi ro / câu hỏi | Giảm thiểu / trạng thái |
|---|---|---|
| 01 | Ops sửa một merchant ngoài phạm vi | Danh sách và hành động lọc theo vai trò; merchant ngoài phạm vi không bao giờ hiện |
| 02 | Slug trùng trong một organizer | Bắt buộc duy nhất và nhận biết soft-delete |
| 03 | Credential nhạy cảm bị lộ qua màn | Yêu cầu che hiển thị sau khi lưu (🚧) - hiện màn còn nạp lại giá trị; cần dựng trước khi mở rộng đối tượng dùng |
| 04 | Merchant Lưu trữ vẫn sửa được | Ràng buộc chỉ-đọc cho trạng thái Lưu trữ chưa được cưỡng chế (🔶 FR-004) |
| 05 | Hồ sơ đăng ký & thuế chưa nhập được | FR-005 giữ làm yêu cầu; cần gắn form vào trình sửa |
| 06 | Xóa nhầm merchant còn nội dung | Guard server chặn xóa khi còn merchant con hoặc còn danh mục/sản phẩm/kênh bán/đơn hàng; hướng sang Lưu trữ (FR-010) |
| 07 | Xóa hoặc lưu trữ nhầm merchant đang là trụ sở | Guard chặn tuyệt đối; phải chuyển trụ sở sang merchant khác trước (FR-011) |
| 08 | Đổi trụ sở nhầm sang merchant khác organizer hoặc chưa hoạt động | Guard chỉ nhận merchant cùng organizer và đang Đang hoạt động (FR-011) |
Câu hỏi thường gặp
| # | Câu hỏi | Trả lời |
|---|---|---|
| 01 | Đây có phải cách merchant được tạo lần đầu không? | Thường onboarding tạo merchant đầu (trụ sở); màn này quản lý merchant sau đó và thêm merchant mới. |
| 02 | Vì sao thuế / tiền tệ ở merchant, không ở organizer? | Thuộc tính pháp lý và tài chính thuộc về đơn vị bán hàng pháp lý - merchant - để mỗi cái giao dịch và xuất hóa đơn dưới danh tính riêng. |
| 03 | Cấu hình được nhà cung cấp thanh toán nào? | Hiện đúng 2: VNPAY QR và VNPAY Phone POS, mỗi provider một bộ credential riêng theo nghiệp vụ. Provider khác sẽ được bổ sung như tăng tiến riêng. |
| 04 | "Cấu hình nhà cung cấp" khác gì "Thiết lập thanh toán"? | Cấu hình nhà cung cấp là nhập credential kỹ thuật của provider; Thiết lập thanh toán là đăng ký thông tin merchant và terminal (theo kênh bán) với bên thanh toán. Hai tab riêng, lưu riêng. |
| 05 | Xóa một merchant còn sản phẩm được không? | Không. Guard chặn xóa khi merchant còn merchant con hoặc còn nội dung (danh mục, sản phẩm, kênh bán, đơn hàng); màn gợi ý dùng Lưu trữ thay vì xóa. |
| 06 | Merchant đang là trụ sở có xóa được không? | Không bao giờ, dù đã rỗng. Phải chỉ định trụ sở sang một merchant khác cùng organizer trước, rồi mới xóa hoặc lưu trữ được merchant cũ. |
| 07 | Chủ merchant tự làm được không? | Cùng năng lực được cung cấp cho chủ trong app client; PRD này lo surface ops trong Back Office. Riêng ràng buộc bảo vệ trụ sở (FR-011) dùng chung một bộ luật ở cả hai surface. |