PRD: Hồ sơ khách hàng
| Module | Khách hàng | PRD ID | PRD-CUS-001 |
| Trạng thái | Sẵn sàng dev | FEAT | CUS |
| Epic | — | Plane | BANA-1495 |
| Ngày | 2026-03-15 | Phiên bản | v1.0 |
| Gói | @nx/identity | URD | CUS |
| Surface | Client · Chủ/QLBO · Vận hành | ||
| Phụ trách | Phát Nguyễn | ||
TL;DR
Một danh sách khách hàng theo thương hiệu mà nhân viên có thể gắn vào đơn hàng ngay khi thanh toán, để mỗi đơn đều quy được về một con người thay vì một phiếu ẩn danh. Khách hàng đã thu thập về sau có thể nâng cấp thành tài khoản đăng nhập (credential tùy chọn), biến khách vãng lai thành khách quay lại mà ta có thể chủ động tiếp cận.
1. Bối cảnh & Vấn đề
Hiện tại một lần thanh toán không gắn được với con người nào, và thương hiệu cũng không có danh sách những ai từng mua hàng. Thiếu bản ghi khách hàng, merchant không nhận diện được khách mua lại, không đối soát đơn theo từng người, và không thể dựng các tính năng tương tác (điểm thưởng, phân khúc, chiến dịch) vốn đều phải biết khách là ai. Đây là phần nền tảng đầu tiên của module Khách hàng: tạo ra bản ghi khách hàng, màn hình quản lý nó, và mối liên kết từ khách hàng tới đơn hàng - để các giai đoạn sau (điểm thưởng, outreach, phân tích) có sẵn một con người để gắn vào.
2. Mục tiêu & Loại trừ
Mục tiêu
- Tạo bản ghi khách hàng - gồm tên, số điện thoại, email, merchant sở hữu và liên kết tới tài khoản đăng nhập - cùng màn hình để quản lý.
- Cho nhân viên tạo, quản lý khách hàng và gắn khách hàng vào đơn hàng khi thanh toán.
- Giới hạn mọi khách hàng theo thương hiệu (merchant); soft-delete giữ nguyên lịch sử.
- Nâng cấp khách hàng đã thu thập thành tài khoản đăng nhập, với credential là tùy chọn.
Loại trừ
- Phân khúc và nhắm mục tiêu khách hàng (Dự kiến).
- Engine chiến dịch Email / SMS (Dự kiến).
- Điểm thưởng, đổi điểm, và hạng thành viên - thuộc về Loyalty Points.
- Phân tích giá trị vòng đời khách hàng (Dự kiến).
3. Thước đo thành công
| Thước đo | Mục tiêu / tín hiệu |
|---|---|
| Quy đơn về khách hàng | Tỷ lệ đơn hàng có gắn khách hàng tăng dần |
| Cô lập theo thương hiệu | Không có lượt đọc khách hàng chéo thương hiệu (nhân viên chỉ thấy thương hiệu của mình) |
| Giữ lại lịch sử | Khách hàng đã soft-delete vẫn giữ các đơn hàng liên kết; không có xóa cứng |
| Nâng cấp | Khách hàng đã thu thập được nâng cấp thành tài khoản đăng nhập (khi được chọn) |
4. Persona & Tình huống
| Persona | Mục tiêu trong tính năng này |
|---|---|
| Chủ doanh nghiệp | Giữ một danh sách khách hàng theo phạm vi thương hiệu; quản lý và soft-delete hồ sơ |
| Thu ngân | Tạo một khách hàng ngay tại chỗ và gắn vào đơn hàng lúc thanh toán |
| Khách hàng | Được nâng cấp thành tài khoản đăng nhập để truy cập lịch sử của mình sau này |
Tình huống cốt lõi: thu ngân tạo khách hàng khi thanh toán → khách hàng bị giới hạn theo thương hiệu và được gắn vào đơn hàng → nhân viên quản lý hồ sơ trong thương hiệu của mình → khách hàng đã thu thập tùy chọn được nâng cấp thành tài khoản đăng nhập.
5. Câu chuyện người dùng
- Là thu ngân, tôi muốn tạo khách hàng chỉ trong một bước khi thanh toán, để gắn đơn hàng vào đúng một con người đã biết.
- Là thu ngân, tôi muốn gắn một khách hàng có sẵn vào đơn hàng, để đơn được quy về người đó.
- Là chủ doanh nghiệp, tôi muốn khách hàng bị giới hạn theo thương hiệu của mình, để nhân viên chỉ thấy và quản lý khách của chúng tôi.
- Là chủ doanh nghiệp, tôi muốn cập nhật hồ sơ khách hàng và soft-delete, để danh sách luôn gọn mà vẫn giữ lịch sử.
- Là chủ doanh nghiệp, tôi muốn nâng cấp khách hàng đã thu thập thành tài khoản đăng nhập, để khách vãng lai trở thành khách quay lại mà ta tiếp cận được.
6. Yêu cầu chức năng
| # | Yêu cầu | URD ref |
|---|---|---|
| FR-1 | Tạo khách hàng; chỉ tên là bắt buộc, email và số điện thoại là tùy chọn | URD-CUS-001 |
| FR-2 | Giới hạn mọi khách hàng theo thương hiệu (merchant) | URD-CUS-002 |
| FR-3 | Cập nhật hồ sơ khách hàng (tên, email, số điện thoại và các chi tiết khác) | URD-CUS-003 |
| FR-4 | Soft-delete khách hàng, giữ lại bản ghi và các đơn hàng liên kết | URD-CUS-004 |
| FR-5 | Nhân viên chỉ thấy và quản lý khách hàng trong thương hiệu của mình | URD-CUS-005 |
| FR-6 | Gắn khách hàng vào đơn hàng khi thanh toán; khách hàng được trả về khi đơn thay đổi | URD-CUS-006 |
| FR-7 | Nâng cấp khách hàng đã thu thập thành tài khoản đăng nhập giữ một role khách hàng cố định; credential là tùy chọn - nâng cấp mà không có credential vẫn tạo tài khoản nhưng tài khoản đó chưa thể đăng nhập | URD-CUS-007 |
Toàn bộ nội dung yêu cầu và tiêu chí chấp nhận nằm trong URD Khách hàng. PRD này tham chiếu đến chúng thay vì lặp lại.
7. Yêu cầu phi chức năng
| Khía cạnh | Yêu cầu |
|---|---|
| Toàn vẹn dữ liệu | Soft-delete giữ lại bản ghi; xóa khách hàng không bao giờ gỡ bỏ các đơn hàng liên kết |
| Phạm vi & phân quyền | Mọi khách hàng bị giới hạn trong merchant/thương hiệu của mình; nhân viên không thể đọc hay quản lý khách của thương hiệu khác |
| Hiệu năng / quy mô | Tra cứu và gắn khách hàng khi thanh toán không gây độ trễ cảm nhận được trong luồng bán hàng |
| Mô hình định danh | Khách hàng đã thu thập là bản ghi độc lập, chưa có tài khoản đăng nhập; sau khi nâng cấp thì giữ một role khách hàng cố định và mặc định chưa có credential |
| i18n | Nhãn hiển thị cho người dùng là song ngữ (tiếng Anh / tiếng Việt) |
8. UX & Luồng
Các màn hình chính: bộ chọn/tạo khách hàng tại thanh toán, và màn hình quản lý khách hàng theo thương hiệu. Việc quản lý và nâng cấp thành tài khoản nằm ở khu vực tài khoản; việc gắn vào đơn hàng diễn ra trong luồng bán hàng.
9. Dữ liệu & Miền nghiệp vụ
| Khái niệm | Vai trò |
|---|---|
| Bản ghi khách hàng | Khách hàng - tên, số điện thoại, email, liên kết tới tài khoản đăng nhập, merchant sở hữu; có thể soft-delete |
| Tài khoản đăng nhập | Khách hàng đã thu thập là bản ghi độc lập, chưa có tài khoản cho đến khi nâng cấp; nâng cấp tạo tài khoản giữ một role khách hàng cố định, kèm credential tùy chọn |
| Sale order | Mang theo khách hàng đã gắn; khách hàng được trả về khi đơn thay đổi |
| Nâng cấp khách hàng | Biến khách hàng đã thu thập thành tài khoản đăng nhập; credential có thể cung cấp lúc nâng cấp (tùy chọn) |
Chỉ ở mức khái niệm - mô hình dữ liệu và các bất biến đầy đủ nằm trong identity domain model.
10. Phụ thuộc & Giả định
Phụ thuộc vào
- Quản lý người dùng (Quản lý người dùng) - nâng cấp biến khách hàng thành tài khoản đăng nhập.
- Commerce (Commerce) - khách hàng bị giới hạn theo merchant/thương hiệu.
- Sale - đơn hàng gắn và trả về khách hàng khi thanh toán.
Giả định
- Đã có một merchant/thương hiệu để giới hạn khách hàng vào.
- Credential có thể được cung cấp lúc nâng cấp; nếu không, tài khoản vẫn được tạo nhưng chưa thể đăng nhập (hiện chưa có luồng mã một lần).
11. Rủi ro & Câu hỏi mở
| Rủi ro / câu hỏi | Giảm thiểu / trạng thái |
|---|---|
| Rò rỉ khách hàng chéo thương hiệu | Mọi lượt đọc/ghi đều giới hạn theo từng merchant; nhân viên chỉ trong thương hiệu của mình |
| Quyền quản lý khách hàng bị chia giữa các khu vực | Bản ghi nằm trong dữ liệu lõi dùng chung, còn các thao tác quản lý lại chia giữa luồng bán hàng và khu vực tài khoản; URD chỉ định khu vực tài khoản là chủ của CUS - việc hợp nhất theo dõi riêng |
| Nâng cấp trùng với tài khoản đã có | Kiểm tra trùng định danh khi tạo tài khoản; định nghĩa đường gộp nếu số điện thoại hoặc email đã tồn tại |
| Soft-delete với các đơn hàng đang tham chiếu khách hàng | Soft-delete giữ lại bản ghi và các đơn hàng liên kết của nó |
12. Kế hoạch phát hành & Tiêu chí ra mắt
| Khía cạnh | Kế hoạch |
|---|---|
| Phase | P1 (nền tảng) - xem danh mục tính năng URD |
| Rollout | Tất cả merchant; không có feature flag |
| Migration | Không (bản ghi khách hàng mới) |
| Tiêu chí ra mắt | Tạo→gắn→đơn-hàng-mang-khách-hàng kiểm chứng đầu cuối; cô lập theo thương hiệu kiểm chứng; nâng cấp kiểm chứng cả khi có lẫn khi không có credential |
| Giám sát | Lượng tạo khách hàng theo từng thương hiệu, tỷ lệ gắn vào đơn hàng, tỷ lệ nâng cấp thành công |
13. FAQ
Khách hàng có phải là tài khoản đăng nhập không? Mặc định là không - khách hàng đã thu thập là bản ghi độc lập, chưa có tài khoản. Nâng cấp mới tạo tài khoản giữ một role khách hàng cố định; credential là tùy chọn, và nếu không có thì tài khoản tồn tại nhưng chưa thể đăng nhập. Hiện chưa có luồng đăng ký bằng mã một lần.
Có thể gắn khách hàng vào đơn hàng sau khi đã bắt đầu thanh toán không? Có - nhân viên gắn khách hàng vào đơn, và khách hàng được trả về khi đơn thay đổi.
Đơn hàng ra sao khi một khách hàng bị soft-delete? Không sao cả - khách hàng rời danh sách đang hoạt động, nhưng bản ghi và các đơn hàng liên kết vẫn được giữ lại.
PRD này có bao gồm điểm thưởng không? Không - điểm thưởng là phần riêng (Loyalty Points); phần này chỉ tạo bản ghi khách hàng và gắn nó vào đơn hàng.
Khách hàng có dùng chung giữa các thương hiệu không? Không - mọi khách hàng bị giới hạn theo thương hiệu của nó; nhân viên chỉ thấy khách của thương hiệu mình.
Tham chiếu
- URD: Khách hàng - Hồ sơ khách hàng
- Liên quan: Loyalty Points · Newsletter Subscribers · Sales Inquiries
- Module: Khách hàng - URD
- Developer: @nx/identity · @nx/sale · domain model