Skip to content

PRD: Cấu hình Mẫu Danh mục (Back Office)

ModuleThương mạiPRD IDPRD-CAT-002
Trạng tháiSẵn sàng devFEATCAT · BANA-1437
EpicBANA-1337PlaneBANA-1769
Ngày2026-07-07Phiên bảnv1.1
Gói@nx/commerceURDCAT
SurfaceBO · Vận hành
Phụ tráchTinh Nguyễn

TL;DR

  • Đội vận hành soạn danh sách danh mục khởi điểm cho từng ngành từ Back Office - tên song ngữ, mô tả, icon và màu cho mỗi danh mục - không cần sửa code, không cần deploy.
  • Với F&B và Bán lẻ, danh sách được chia tiếp theo sector, dùng chung bộ chọn nhiều-sector.
  • Onboarding sao chép danh sách khớp ngành/sector của một merchant F&B hoặc Bán lẻ mới vào merchant đó, đúng một lần, thành danh mục độc lập, sửa được - không phải tham chiếu sống.
  • Một tab Merchant Override cho operator soạn danh sách danh mục riêng cho một merchant cụ thể đã onboarding (🚧 chưa được onboarding hay logic danh mục nào sử dụng).
  • Hai màn Back Office - Category TemplateOnboarding Templates - hiện cùng đọc/ghi một cấu hình này; PRD này đặt mục tiêu gộp lại thành một điểm truy cập duy nhất, gỡ màn còn trùng lặp (🚧 chưa dựng).

1. Bối cảnh & Vấn đề

Mọi merchant khi onboarding đều nhận một bộ danh mục khởi điểm khớp ngành của nó: URD-ORG-017 gieo bộ này lúc onboarding, URD-MER-018 gắn nó với sector của merchant, và tăng tiến Retail Business Type đã xác nhận việc này chạy thật cho F&B và cả 7 sector bán lẻ.

Trước tăng tiến này, danh sách khởi điểm đó nằm trong một script gieo cứng - sửa một icon, đổi tên một danh mục, hay đổi những gì một sector nhận đều cần kỹ sư sửa code và deploy. URD-BOP-002 yêu cầu Back Office cho Đội vận hành cấu hình việc này trực tiếp. PRD này đặc tả năng lực thay thế bộ gieo cứng đó: Đội vận hành soạn danh sách danh mục khởi điểm theo từng ngành (và sector, với F&B và Bán lẻ) thành dữ liệu cấu hình thông thường.

Đây là cơ chế khác với danh mục hệ thống (URD-CAT-006) - danh mục dùng chung, không thuộc merchant nào, mọi merchant thấy ở chế độ chỉ-đọc, sống theo thời gian thực. Một danh sách danh mục khởi điểm chỉ được sao chép một lần lúc onboarding rồi trở thành dữ liệu riêng, sửa được hoàn toàn của merchant kể từ đó. Hai cơ chế không liên quan.

2. Mục tiêu & Loại trừ

Mục tiêu

  • Đội vận hành soạn danh sách danh mục khởi điểm cho từng ngành (F&B, Bán lẻ, Vé) từ Back Office - tên song ngữ, mô tả, icon và màu cho mỗi danh mục.
  • Với F&B và Bán lẻ, danh sách được chia theo sector, dùng chung bộ chọn nhiều-sector với mẫu kênh bán.
  • Form danh mục dùng lại bộ chọn icon-màu từ màn Danh mục thật của merchant (URD-CAT-004).
  • Onboarding sao chép danh sách đã ứng theo ngành/sector vào một merchant F&B hoặc Bán lẻ mới, thành danh mục của riêng nó, đúng một lần lúc đăng ký.
  • Một operator soạn được danh sách danh mục riêng cho một merchant cụ thể, tách biệt với danh sách dùng chung theo ngành/sector.
  • Hợp nhất màn Category Template và Onboarding Templates thành một - gỡ màn/route còn trùng lặp khỏi Back Office, để lại đúng một điểm truy cập cho cấu hình mẫu danh mục (xem FR-006).

Loại trừ

  • Nhiều mẫu có tên, có phiên bản, để chọn giữa các phương án - chỉ có một danh sách dùng chung cho mỗi ngành/sector, không phải một thư viện các mẫu có trạng thái riêng.
  • Xếp lại thứ tự hay tắt từng danh mục khởi điểm - danh mục chỉ thêm hoặc xóa được.
  • Gieo danh mục cho ngành ngoài F&B và Bán lẻ - Đội vận hành soạn được nội dung cho ngành khác; onboarding hiện chưa sao chép chúng (FR-003).
  • Tab Merchant Override thực sự đổi những gì một merchant cụ thể thấy - đã xây trong Back Office, chưa được onboarding hay logic danh mục nào sử dụng (FR-004, §11).
  • Danh mục hệ thống (URD-CAT-006) - cơ chế riêng, không liên quan.
  • Import Excel hàng loạt - thuộc năng lực import hàng loạt rộng hơn (URD-BOP-004) nếu được mở rộng tới đây.

3. Thước đo thành công

Thước đoMục tiêu / tín hiệu
Sửa không cần codeĐội vận hành thêm, sửa, xóa một danh mục khởi điểm mà không cần kỹ sư hay deploy
Khớp onboardingDanh mục khởi điểm của một merchant F&B hoặc Bán lẻ khớp đúng danh sách đã soạn cho ngành/sector đó tại thời điểm onboarding
Cách ly sao chépSửa danh sách dùng chung không tạo ra thay đổi nào trên merchant đã onboarding trước đó

4. Persona & Tình huống

PersonaMục tiêu trong tính năng này
Đội vận hànhDuy trì danh mục khởi điểm của từng ngành mà không cần hỗ trợ kỹ thuật
Chủ / operator onboarding một merchantNhận danh mục đã soạn cho ngành/sector của mình làm điểm khởi đầu

Tình huống cốt lõi: một người Đội vận hành mở Back Office, chọn ngành Bán lẻ, thêm sector Tạp hóa, rồi thêm danh mục vào đó - tên, icon, màu. Bất kỳ merchant nào onboarding sau đó với Bán lẻ/Tạp hóa đều nhận đúng những danh mục đó làm danh mục của riêng nó, sẵn sàng sửa tiếp.

5. User Stories

  • Đội vận hành, tôi muốn tự soạn danh mục khởi điểm cho một ngành/sector, để danh mục khởi điểm của merchant mới phản ánh cấu trúc thật thay vì bộ gieo cứng.
  • Đội vận hành, tôi muốn form danh mục dùng đúng bộ chọn icon-màu như màn Danh mục thật của merchant, để việc soạn thảo quen thuộc.
  • Đội vận hành, tôi muốn biết ngành nào onboarding thực sự đang gieo, để tập trung công sức soạn thảo vào nơi có tác dụng.
  • Đội vận hành, tôi muốn sửa danh sách dùng chung không bao giờ ảnh hưởng merchant đã onboarding, để cải thiện nó an toàn.
  • Đội vận hành, tôi muốn soạn một danh sách danh mục cho một merchant cụ thể, để hỗ trợ merchant cần một bộ khởi điểm khác với mặc định của ngành.

6. Yêu cầu chức năng

#Yêu cầuTrạng tháiURD ref
FR-001Màn mở ra với bộ chọn ngành dạng chip: F&B, Bán lẻ, Vé (Khác bị ẩn).
• Chỉ F&B và Bán lẻ chia sector: chọn một trong hai hiện action "thêm sector", mở checklist các sector của ngành đó, đã lọc bỏ sector đã thêm.
• Mỗi sector thêm vào trở thành một card mở rộng được, hiện số lượng danh mục và action xóa.
• Vé (và ngành không chia sector khác) hiện một danh sách phẳng thay vì card sector.
• Hai màn Back Office hiện trình bày bộ chọn này - màn Category Template gốc và màn Onboarding Templates mới hơn, gộp việc soạn danh mục và kênh bán vào một trang; cả hai đọc/ghi cùng một cấu hình bên dưới (xem §11 về kế hoạch hợp nhất).
URD-CAT-008
FR-002Bên trong một sector (hoặc danh sách phẳng), Đội vận hành thêm từng danh mục.
• Bắt buộc: tên song ngữ. Tùy chọn: mô tả song ngữ.
• Icon + màu chọn qua bộ chọn dùng chung với màn Danh mục thật của merchant, có sẵn icon gợi ý và tìm kiếm toàn thư viện phía sau.
• Danh mục thêm hoặc xóa được; không xếp lại thứ tự, không bật/tắt riêng từng mục.
• Lưu là ghi thẳng vào cấu hình mà onboarding đọc - không có bước nháp/staging.
URD-CAT-008 · URD-CAT-004
FR-003Khi tạo merchant, hệ thống ứng danh sách danh mục khởi điểm theo ngành của merchant và sao chép vào merchant đó đúng một lần, thành bản ghi danh mục độc lập.
• Danh sách được đối chiếu với (các) sector merchant đã chọn, và danh mục xuất hiện ở nhiều hơn một sector khớp sẽ bị loại trùng.
• Chỉ nối dây cho merchant F&B và Bán lẻ.
• Ngành khác không nhận danh mục nào lúc onboarding, dù Đội vận hành đã soạn danh sách cho ngành đó.
🔶URD-CAT-009 · URD-ORG-017 · URD-MER-018
FR-004Tab thứ hai của màn Onboarding Templates cho operator chọn một merchant cụ thể, đã onboarding, và soạn một danh sách danh mục lưu riêng cho merchant đó (một bản ghi cấu hình gắn theo merchant thay vì dùng chung toàn hệ thống).
• Giao diện soạn thảo đã hoàn chỉnh và lưu thành công.
• Chưa có logic onboarding hay danh mục nào đọc một bản ghi gắn-theo-merchant, nên việc này chưa có tác dụng quan sát được lên merchant đó - nối dây một nơi tiêu thụ cho bản ghi này là việc còn mở (xem §11).
🚧URD-CAT-011
FR-005Đọc và lưu danh sách cần đúng quyền dùng chung cho quản lý cấu hình.-
FR-006Xác nhận Onboarding Templates (tab Danh mục - Mẫu hệ thống/Mẫu customs - cộng tab Kênh bán) bao phủ đủ mọi thao tác mà màn Category Template độc lập từng có, rồi gỡ màn đó khỏi Back Office.
• Cũng gỡ màn Sale Channel Template độc lập, nếu cùng phạm vi; xóa mục menu và route không còn dùng cho cả hai.
• Từ đó Onboarding Templates là điểm truy cập duy nhất cho cấu hình mẫu danh mục - không còn hai màn cùng sửa một cấu hình dùng chung như hiện nay.
🚧URD-CAT-012

6.1 Tiêu chí nghiệm thu

  • Thêm sector Tạp hóa dưới Bán lẻ, thêm ba danh mục kèm icon/màu, lưu, tải lại màn → đúng ba danh mục đó vẫn còn.
  • Onboarding một merchant mới chọn Bán lẻ + Tạp hóa → danh mục của merchant khớp y hệt ba danh mục đó (tên, icon, màu).
  • Soạn danh mục dưới ngành Vé, rồi onboarding một merchant Vé → merchant không nhận danh mục nào (FR-003).
  • Sửa icon một danh mục trong danh sách dùng chung Bán lẻ/Tạp hóa sau khi đã có merchant onboarding theo đó → danh mục của merchant đã onboarding không đổi.
  • Soạn và lưu một danh mục qua tab Merchant Override cho một merchant cụ thể → màn Danh mục của merchant đó không bị ảnh hưởng (FR-004).
  • Xác nhận Onboarding Templates bao phủ đủ chức năng của màn Category Template độc lập → gỡ màn Category Template (và Sale Channel Template) khỏi Back Office; không còn mục menu hay route độc lập nào trỏ tới chúng (FR-006).

7. Yêu cầu phi chức năng

Khía cạnhYêu cầu
Toàn vẹn dữ liệuOnboarding sao chép danh sách dùng chung thành bản ghi danh mục độc lập - sửa danh sách dùng chung về sau không thể chạm tới merchant đã onboarding
Tenancy & phân quyềnDanh sách dùng chung không giới hạn theo merchant; truy cập dùng quyền đọc/sửa cấu hình chung
Nhất quánChỉ có đúng một danh sách dùng chung ứng ra cho mỗi ngành/sector - không có bước nháp/staging, nên một lần lưu có hiệu lực ngay cho lần onboarding kế tiếp
i18nTên và mô tả danh mục song ngữ (Anh / Việt)

8. UX & Luồng

Đội vận hành soạn danh sách danh mục khởi điểm dùng chung như thế nào:

Onboarding sử dụng danh sách này như thế nào:

Các màn nằm trong mục "System Configuration" của Back Office, cạnh Cấu hình Nhóm thuế.

9. Dữ liệu & Miền nghiệp vụ

Khái niệmVai trò
Cấu hình mẫu danh mụcBản ghi dùng chung cho toàn hệ thống: ngành → sector → danh sách danh mục (tên, mô tả, icon, màu)
Cấu hình override theo merchantCùng hình dạng, gắn riêng cho một merchant cụ thể qua tab Merchant Override; chưa được onboarding hay logic danh mục nào đọc
Danh mục của merchantKết quả sao chép danh sách dùng chung vào merchant lúc onboarding - độc lập kể từ thời điểm đó

Chỉ ở mức khái niệm - schema đầy đủ nằm trong developer domain model.

10. Phụ thuộc & Giả định

Phụ thuộc vào

  • Danh mục bán hàng (PRD-CAT-001) - bộ chọn icon-màu dùng lại cho danh mục khởi điểm.
  • Onboarding (URD-ORG-017, URD-MER-018) - bước sao chép danh sách dùng chung vào merchant mới.
  • Retail Business Type (PRD-RTL-001) - sở hữu danh sách sector mà bộ chọn sector F&B/Bán lẻ của màn này dùng.

Giả định

  • Ngành/sector của merchant đã được quyết định ở bước onboarding (Client hoặc BO) trước khi bước sao chép danh mục chạy.
  • Một ngành mà onboarding không sao chép từ (Vé, Khác) thì không có danh mục nào được gieo, bất kể nội dung đã soạn.

11. Rủi ro & Câu hỏi mở

Rủi ro / câu hỏiGiảm thiểu / trạng thái
Tab Merchant Override lưu dữ liệu mà chưa có nơi tiêu thụ nào đọc, có thể khiến operator tin rằng họ đã đổi danh mục của một merchant cụ thểNối dây logic onboarding/danh mục để đọc bản ghi gắn-theo-merchant, hoặc gỡ tab cho tới khi làm vậy - quyết định còn treo
Màn Category Template và Onboarding Templates cùng sửa một cấu hình dùng chung, không màn nào được đánh dấu là chính🚧 Đã đưa vào mục tiêu của chính PRD này (FR-006) - gỡ bỏ màn Category Template và Sale Channel Template khỏi Back Office khi Onboarding Templates được xác nhận bao phủ đủ chức năng
Merchant ngành Vé (và bất kỳ ngành ngoài F&B/Bán lẻ nào sau này) không bao giờ được gieo danh mục, dù Đội vận hành đã soạn danh sách cho ngành đóXác nhận đây có phải chủ ý hay cần mở rộng - câu hỏi mở
Lưu có hiệu lực ngay cho lần onboarding kế tiếp, không có bước nháp/stagingChấp nhận được với tần suất sửa hiện tại; xem lại nếu lỗi khi sửa bắt đầu ảnh hưởng merchant thật

12. Kế hoạch phát hành & Tiêu chí

Khía cạnhKế hoạch
PhaseP2 - thuộc lát cấu hình tháng 6 của epic Backoffice Portal
RolloutOperator Back Office có quyền cấu hình; không feature flag
MigrationMột migration gieo dữ liệu một lần (commerce-0007-seed-category-templates) đã soạn sẵn danh sách F&B + 7 sector bán lẻ ban đầu thành dữ liệu cấu hình, khớp bộ gieo cứng trước đây
Tiêu chí ra mắtToàn bộ tiêu chí nghiệm thu §6.1 đạt, trừ các mục đánh dấu 🚧/🔶 (gieo cho ngành ngoài F&B/Bán lẻ, Merchant Override được sử dụng, hợp nhất màn theo FR-006) - các mục này có kế hoạch xây trong chính PRD này
Giám sátLượng sửa danh sách danh mục; tỷ lệ sao chép danh mục thành công lúc onboarding cho F&B/Bán lẻ

13. FAQ

Đây có phải một thư viện các mẫu có tên để chọn không? Không - chỉ có một danh sách danh mục khởi điểm dùng chung cho mỗi ngành, chia theo sector với F&B và Bán lẻ.

Sửa tab Merchant Override có đổi danh mục của một merchant không? Hiện chưa - chưa có logic onboarding hay danh mục nào đọc bản ghi gắn-theo-merchant (FR-004).

Sửa danh sách dùng chung có đổi merchant đã onboarding không? Không - nó chỉ được sao chép một lần, lúc onboarding; danh mục của merchant là của riêng nó kể từ đó.

Màn Back Office nào là chính - Category Template hay Onboarding Templates? Onboarding Templates - PRD này đặt mục tiêu hợp nhất hai màn thành một (FR-006), gỡ màn Category Template (và Sale Channel Template) khỏi Back Office khi Onboarding Templates được xác nhận bao phủ đủ chức năng. Cho tới khi hợp nhất xong, cả hai còn cùng sửa một cấu hình (§11).

Merchant ngành Vé có nhận danh mục đã soạn cho ngành Vé không? Hiện chưa - onboarding chỉ sao chép danh mục cho merchant F&B và Bán lẻ (FR-003).

Đây có phải "danh mục hệ thống" (URD-CAT-006) không? Không - danh mục hệ thống dùng chung và chỉ-đọc cho mọi merchant, sống theo thời gian thực. Một danh sách danh mục khởi điểm chỉ được sao chép một lần thành danh mục sửa được của riêng merchant.

Tham chiếu

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.