Order (Đơn hàng)
I. Tổng quan
Lưu ý: Các thuộc tính, quy tắc phân quyền và tính năng chung của đối tượng này được kế thừa từ tài liệu Objects (Đối tượng CRM).
1. Vấn đề
- Doanh nghiệp gặp nhiều khó khăn trong việc quản lý tập trung và theo dõi quá trình bán hàng từ lúc phát sinh nhu cầu đến khi hoàn tất thanh toán và bàn giao sản phẩm/dịch vụ.
- Thông tin về sản phẩm trong đơn, lịch trình thanh toán (đặc biệt là thanh toán chia nhiều đợt), nhân viên phụ trách trực tiếp từng sản phẩm, và thông tin chia sẻ doanh thu nội bộ thường bị phân tán, dẫn đến dễ sai sót, thất thoát doanh thu và khó kiểm soát công nợ khách hàng.
2. Giải pháp
- Xây dựng module Order (Đơn hàng) tích hợp sâu với CRM để quản lý toàn diện vòng đời đơn hàng.
- Hỗ trợ tạo đơn hàng nhanh từ màn hình chi tiết Khách hàng, tự động điền các thông tin liên quan để tăng hiệu suất.
- Quản lý chi tiết từng dòng sản phẩm (đơn giá, chiết khấu, VAT riêng) kèm việc chỉ định nhân viên chịu trách nhiệm thực hiện từng phần.
- Tự động hóa việc lập lịch trình thanh toán nhiều đợt và tự động tính toán tổng tiền Đã thanh toán / Còn thiếu.
- Cung cấp giao diện trực quan chuyển đổi nhanh giữa tab nhập liệu và tab theo dõi Hoạt động (History) & Liên kết (Association).
3. Đối tượng sử dụng
- Nhân viên bán hàng (Sales Owner / Telesale): Tạo đơn hàng, theo dõi thanh toán và chăm sóc khách hàng.
- Nhân viên hỗ trợ / kỹ thuật (Support / Stylist…): Phụ trách thực hiện/bàn giao sản phẩm hoặc dịch vụ cụ thể trên từng dòng đơn hàng.
- Kế toán (Accountant): Theo dõi công nợ, xác nhận các đợt thanh toán của khách hàng.
- Quản lý / Admin: Cấu hình chính sách, duyệt chia sẻ doanh thu và theo dõi báo cáo hiệu quả bán hàng.
4. Tầm nhìn / Insight (Hướng phát triển tương lai)
- Tích hợp tự động với phân hệ Quản lý Kho (Inventory) để cập nhật tồn kho tức thời khi đơn hàng hoàn thành.
- Liên kết với các cổng thanh toán trực tuyến (Payment Gateway) và đơn vị vận chuyển bên thứ ba để tự động hóa hoàn toàn luồng thanh toán và giao nhận.
- Kết nối tự động với hệ thống tính toán Hoa hồng (Commission) tự động dựa trên cấu hình chia sẻ doanh thu.
II. Yêu cầu chức năng
1. Danh sách tính năng
- Quản lý thông tin liên hệ mua hàng.
- Quản lý danh sách sản phẩm trong đơn hàng.
- Quản lý thông tin đơn hàng và bán hàng.
- Quản lý thông tin thanh toán (bao gồm các đợt thanh toán).
- Quản lý chia sẻ doanh thu cho nhân viên.
- Quản lý và chuyển đổi trạng thái đơn hàng qua các bước.
2. Đặc tả chi tiết
1. Danh sách sản phẩm trong đơn hàng (Product List)
- Mô tả: Cho phép người dùng tìm kiếm, chọn và quản lý các sản phẩm/dịch vụ được thêm vào đơn hàng.
- Figma Design: Giao diện Tạo/Sửa Đơn hàng
- Chi tiết các trường/thao tác:
- Chọn sản phẩm: Dropdown tìm kiếm sản phẩm từ danh mục sản phẩm CRM.
- Bảng danh sách sản phẩm:
- Hình ảnh: Hiển thị thumbnail của sản phẩm.
- Sản phẩm: Tên sản phẩm/dịch vụ.
- Đơn vị tính (ĐVT): Đơn vị đo lường của sản phẩm (ví dụ: Gói, Cái, Buổi, …).
- Số lượng (SL): Trường nhập số lượng sản phẩm (mặc định là 1, cho phép chỉnh sửa).
- Đơn giá: Giá bán lẻ của sản phẩm, mặc định lấy từ CRM nhưng cho phép chỉnh sửa trực tiếp.
- Chiết khấu (CK): Cho phép nhập tỷ lệ % hoặc số tiền chiết khấu riêng cho từng sản phẩm.
- Thuế (VAT): Tự động điền theo thông tin cấu hình sản phẩm từ danh mục. Người dùng chỉ được xem, không được chỉnh sửa trực tiếp tại đây.
- Thành tiền: Được tính tự động theo công thức:
SL * Đơn giá * (1 - CK) * (1 + VAT). - Nhân viên: Dropdown chọn duy nhất 1 nhân viên phụ trách dòng sản phẩm/dịch vụ này, hoặc có thể để trống.
- Nút xóa: Biểu tượng thùng rác màu đỏ để xóa sản phẩm khỏi đơn hàng.
2. Thanh toán (Payment)
- Mô tả: Quản lý các thông số tài chính của đơn hàng và lịch trình thanh toán.
- Chi tiết các trường/thao tác:
- Tạm tính: Tổng tiền sản phẩm trước khi áp dụng thuế, phí, giảm giá chung của đơn hàng (bằng tổng cột “Thành tiền” của danh sách sản phẩm).
- Cấu hình Thuế, Phí, Giảm giá:
- Mặc định hiển thị: Hệ thống hiển thị sẵn 3 dòng điều chỉnh mặc định bao gồm:
- Thuế: Mặc định là “Thuế giá trị gia tăng (VAT)”, cho phép chọn tỷ lệ % hoặc nhập số tiền cụ thể để hệ thống tính ra số tiền thuế.
- Phí: Mặc định là “Phí vận chuyển”, cho phép điền số tiền cụ thể.
- Giảm giá: Mặc định là “Chiết khấu”, cho phép điền tỷ lệ % hoặc số tiền giảm giá cụ thể.
- Thao tác Thêm mới: Bấm nút ”+ Thêm phí, thuế, giảm giá” -> Hiển thị dropdown để chọn một trong ba loại:
Thuế,PhíhoặcGiảm giá.- Khi chọn, hệ thống tự động sinh thêm 1 dòng mới tương ứng.
- Người dùng điền tên loại điều chỉnh và nhập giá trị (số tiền cụ thể hoặc tỷ lệ %). Hệ thống tự động tính toán ra số tiền tương ứng dựa trên giá trị nhập.
- Thao tác Xóa: Mỗi dòng thuế, phí, giảm giá đều có biểu tượng thùng rác màu xám bên cạnh để xóa bỏ dòng đó khỏi đơn hàng.
- Mặc định hiển thị: Hệ thống hiển thị sẵn 3 dòng điều chỉnh mặc định bao gồm:
- Thành tiền: Tổng số tiền khách hàng cần thanh toán cho đơn hàng sau khi tính toán đầy đủ (bằng
Tạm tính + Thuế + Phí - Giảm giá- công thức áp dụng cụ thể sẽ được cập nhật tiếp ở danh sách nghiệp vụ). - Lịch trình thanh toán (Installments):
- Cho phép thiết lập nhiều đợt thanh toán khác nhau.
- Khi tạo mới một đợt thanh toán, hệ thống sẽ tự động điền (autofill):
- Ngày thanh toán: Ngày hiện tại (ngày hôm nay).
- Tên đợt thanh toán:
"Thanh toán lần "(với `` là số thứ tự đợt thanh toán, tăng dần từ 1, ví dụ: “Thanh toán lần 1”, “Thanh toán lần 2”…).
- Mỗi đợt gồm: Ngày thanh toán (Date picker), Tên đợt thanh toán (Text input), Tỷ lệ % hoặc số tiền thanh toán (dropdown đơn vị % hoặc đ), Số tiền cụ thể.
- Tự động tính tiền: Khi nhập tỷ lệ % (ví dụ: 50%), hệ thống tự động tính ra số tiền cụ thể tương ứng =
Thành tiền * Tỷ lệ %. Ngược lại, nếu nhập số tiền cụ thể, hệ thống sẽ tự động quy đổi ra tỷ lệ % tương ứng.
- Tự động tính tiền: Khi nhập tỷ lệ % (ví dụ: 50%), hệ thống tự động tính ra số tiền cụ thể tương ứng =
- Nút “Thêm lần thanh toán khác” để tạo thêm đợt mới.
- Đã thanh toán: Được tính toán tự động bằng tổng số tiền của các đợt thanh toán đã thực hiện thành công.
- Còn thiếu: Được tính toán tự động bằng
Thành tiền - Đã thanh toán.
3. Thông tin liên hệ (Contact Info)
- Mô tả: Ghi nhận thông tin của khách hàng mua đơn hàng.
- Chi tiết các trường/thao tác:
- Liên hệ: Dropdown chọn liên hệ đã có trong CRM.
- Lưu ý: Nếu người dùng tạo Đơn hàng từ màn hình Chi tiết Khách hàng (Contact Detail), hệ thống sẽ tự động điền (autofill) và cố định liên hệ đó.
- Tên khách hàng: Nhập tên khách hàng (tự động điền nếu chọn Liên hệ, hoặc nhập tay mới).
- Số điện thoại: Nhập số điện thoại khách hàng (tự động điền nếu chọn Liên hệ, hoặc nhập tay mới).
- Email: Nhập email khách hàng (tự động điền nếu chọn Liên hệ, hoặc nhập tay mới).
- Địa chỉ: Nhập địa chỉ khách hàng (tự động điền nếu chọn Liên hệ, hoặc nhập tay mới).
- Liên hệ: Dropdown chọn liên hệ đã có trong CRM.
4. Thông tin đơn hàng (Order Info)
- Mô tả: Các thông tin phụ trợ phục vụ mục đích bán hàng và quản trị nội bộ.
- Chi tiết các trường/thao tác:
- Mã đơn hàng: Mã số định danh của đơn hàng (tự động sinh và không cho phép chỉnh sửa).
- Nhân viên bán hàng: Chọn nhân viên chịu trách nhiệm chính về đơn hàng (Sales Owner).
- Lưu ý: Nếu tạo Đơn hàng từ màn hình Chi tiết Khách hàng (Contact Detail), hệ thống tự động điền (autofill) nhân viên phụ trách bán hàng (Owner) của Contact đó vào đây.
- Nhân viên hỗ trợ: Chọn nhân viên hỗ trợ chăm sóc đơn hàng.
- Lưu ý: Nếu tạo Đơn hàng từ màn hình Chi tiết Khách hàng (Contact Detail), hệ thống tự động điền (autofill) nhân viên hỗ trợ của Contact đó vào đây (nếu có).
- Nhãn dán: Gán thẻ/tag phân loại đơn hàng.
- Ghi chú: Ô nhập văn bản ghi chú các thông tin lưu ý đặc biệt cho đơn hàng.
5. Chia sẻ doanh thu (Revenue Sharing)
- Mô tả: Cấu hình phân chia doanh thu/hoa hồng của đơn hàng hiện tại cho các nhân viên liên quan.
- Figma Design: Giao diện Popup Chia sẻ doanh thu
- Thao tác & Luồng giao diện (Popup cấu hình):
- Người dùng bấm nút
+ Thêmtại mục Chia sẻ doanh thu ở góc dưới bên phải đơn hàng để mở popup cấu hình. - Chọn nhân viên (Trường “Chia sẻ doanh thu giữa”):
- Input dạng Multi-select cho phép chọn nhiều nhân viên.
- Cơ chế tự động điền (Autofill): Hệ thống tự động chọn sẵn nhân viên phụ trách bán hàng (Sales Owner) và nhân viên hỗ trợ (Support Agent) đã được chọn ở phần Thông tin đơn hàng. Nhân viên phụ trách chính sẽ hiển thị thêm badge
Phụ tráchmàu xanh dương bên cạnh tên.
- Kiểu chia sẻ doanh thu (Radio Buttons):
- Phần trăm: Chia sẻ doanh thu theo tỷ lệ phần trăm (%).
- Giá trị tuyệt đối: Chia sẻ doanh thu theo số tiền cố định (đ).
- Chi tiết phân chia (Danh sách nhân viên):
- Hệ thống liệt kê danh sách nhân viên đã được chọn ở trên kèm ô nhập giá trị tương ứng:
- Khi chọn kiểu “Phần trăm”:
- Cho phép nhập tỷ lệ % cho mỗi nhân viên (ví dụ:
50%). Hệ thống tự động tính ra số tiền mặt tương ứng (chữ màu xám, read-only) dựa trên tổng quỹ hoa hồng được chia của đơn hàng (ví dụ:40.000 đ). - Có dòng nhắc nhở: Tổng % tối đa là 100%.
- Cho phép nhập tỷ lệ % cho mỗi nhân viên (ví dụ:
- Khi chọn kiểu “Giá trị tuyệt đối”:
- Cho phép nhập trực tiếp số tiền mặt cho từng nhân viên (ví dụ:
40.000 đ). - Có dòng nhắc nhở: Tổng số tiền tối đa là đ (với `` là tổng quỹ hoa hồng của đơn hàng).
- Cho phép nhập trực tiếp số tiền mặt cho từng nhân viên (ví dụ:
- Khi chọn kiểu “Phần trăm”:
- Hệ thống liệt kê danh sách nhân viên đã được chọn ở trên kèm ô nhập giá trị tương ứng:
- Nút hành động:
- Hủy: Đóng popup và không áp dụng thay đổi.
- Lưu: Xác thực dữ liệu và lưu cơ chế chia sẻ doanh thu cho đơn hàng. Nếu tổng phần trăm vượt quá 100% hoặc tổng số tiền vượt quá hạn mức tối đa, hệ thống sẽ báo lỗi và ngăn không cho Lưu.
- Người dùng bấm nút
- Cơ chế chia sẻ doanh thu tự động (Automatic Revenue Sharing):
-
Hệ thống hỗ trợ 2 loại cấu hình chia sẻ doanh thu tự động như sau:
- Loại 1: Cấu hình chia sẻ doanh thu tự động (Theo trường dữ liệu Đơn hàng)
- Bước 1 (Thiết lập): Admin/Quản lý truy cập vào màn hình Cấu hình Đơn hàng để thiết lập quy tắc chia sẻ doanh thu tự động chung cho hệ thống.
- Bước 2 (Chọn nhân viên & Tỷ lệ): Người dùng chọn các trường dữ liệu có kiểu liên kết Nhân viên trên Đơn hàng (ví dụ: Nhân viên bán hàng, Nhân viên hỗ trợ…) để chia sẻ doanh thu giữa các nhân viên này, đồng thời điền tỷ lệ phần trăm (%) hoa hồng nhận được tương ứng cho mỗi vai trò.
- Bước 3 (Xử lý trường hợp trống): Cung cấp tùy chọn thiết lập khi có trường dữ liệu nhân viên bị để trống trên đơn hàng:
- Bỏ qua: Không tính/phân phối doanh thu của vị trí bị trống đó.
- Tính doanh thu cho một người khác: Chuyển tiếp phần doanh thu chia sẻ của vị trí trống đó cho một nhân viên cụ thể được chỉ định sẵn.
- Bước 4 (Chọn gốc doanh thu chia sẻ): Lựa chọn trường số làm gốc để tính hoa hồng bằng cách chọn 1 trong các trường dữ liệu kiểu số của đơn hàng (ví dụ: Tạm tính, Thành tiền…).
- Loại 2: Cấu hình chia sẻ doanh thu theo sản phẩm
- Cơ chế hoạt động: Khi kích hoạt (bật) tính năng này lên, giao diện màn hình tạo/sửa đơn hàng sẽ hiển thị thêm cột Nhân viên trên từng dòng sản phẩm/dịch vụ tại bảng danh sách sản phẩm.
- Hệ thống cho phép gán nhân viên phụ trách trực tiếp cho từng sản phẩm. Hoa hồng sẽ được tính và ghi nhận riêng cho nhân viên phụ trách sản phẩm đó dựa trên giá trị dòng sản phẩm tương ứng.
- Ghi đè thủ công (Manual Override): Sau khi hệ thống tự động tính toán và điền (autofill) thông tin chia sẻ doanh thu dựa theo Loại 1 hoặc Loại 2, người dùng có thẩm quyền (Quản lý/Kế toán) vẫn có thể click nút chỉnh sửa để mở popup chia sẻ doanh thu, ghi đè tỷ lệ % hoặc số tiền chia sẻ thủ công cho riêng đơn hàng đó nếu cần thiết.
-
6. Trạng thái đơn hàng (Order Status Steps)
- Mô tả: Thanh tiến trình biểu diễn vòng đời xử lý đơn hàng.
- Quy định nguồn dữ liệu & Component UI:
- Giá trị trạng thái được đồng bộ trực tiếp từ trường dữ liệu trạng thái của đơn hàng (Order Status).
- Về mặt giao diện: Sử dụng chung component hiển thị trạng thái (status progress component) đang dùng cho đối tượng Deal hoặc Ticket.
- Danh sách trạng thái:
Mới->Đang xử lý->Chờ thanh toán->Đã thanh toán->Đang giao hàng->Hoàn thành->Hoàn hàng->Huỷ đơn.- Cho phép người dùng click để chuyển đổi trạng thái nhanh trực tiếp trên thanh tiến trình này, hoặc hệ thống tự động cập nhật dựa trên hành vi nghiệp vụ.
7. Các hành động đầu trang (Header Actions)
- Mô tả: Các biểu tượng công cụ nhanh ở góc trên bên phải của modal Đơn hàng.
- Chi tiết tính năng:
- Icon Ghi chú (Màu cam): Cho phép thêm nhanh ghi chú cho đơn hàng.
- Icon Điện thoại (Màu xanh lá): Click để mở popup cuộc gọi, đồng thời tự động điền (autofill) số điện thoại của khách hàng hiện tại vào popup gọi.
- Icon Email (Màu xanh dương): Chưa phát triển (để trống/chờ giai đoạn sau).
- Icon Chuyển đổi (Màu tím): Click để chuyển đổi giao diện bảng thông tin bên phải (Liên hệ, Đơn hàng, Chia sẻ doanh thu) sang chế độ xem Hoạt động (History) & Liên kết (Association), và ngược lại.
- Icon Thêm (Ba chấm): Chưa phát triển (để trống/chờ giai đoạn sau).
8. Hoạt động (History) & Liên kết (Association)
- Mô tả: Chế độ xem phụ ở cột bên phải của modal Đơn hàng (khi bấm biểu tượng chuyển đổi màu tím). Có tính năng và luồng hoạt động tương tự như trên các màn hình đối tượng CRM khác (Contact, Deal, Ticket).
- Chi tiết giao diện và tính năng:
- Tab Hoạt động (History):
- Tìm kiếm & Bộ lọc: Có ô tìm kiếm hoạt động và các tab lọc nhanh:
Tất cả,Ghi chú,Cuộc gọi,Email. - Dòng thời gian hoạt động (Timeline): Hiển thị danh sách hoạt động sắp xếp giảm dần theo thời gian (Tháng/Năm).
- Nội dung hiển thị: Các loại hoạt động tương tác liên quan đến đơn hàng như: Hoạt động ticket, Hoạt động Cơ hội bán hàng, Tin nhắn (Facebook/Zalo), Cuộc gọi ra/vào (kèm nút gọi lại hoặc xem chi tiết)…
- Tìm kiếm & Bộ lọc: Có ô tìm kiếm hoạt động và các tab lọc nhanh:
- Tab Liên kết (Association):
- Hiển thị danh sách các đối tượng CRM khác có liên quan đến Đơn hàng này (ví dụ: Liên kết với Contact, Deal, Ticket…).
- Cho phép tìm kiếm và cấu hình liên kết đối tượng tương tự các màn hình khác.
- Tab Hoạt động (History):
9. Giao diện Danh sách Đơn hàng — Chế độ xem “Chia sẻ doanh thu”
- Mô tả: Tại màn hình danh sách đơn hàng, hệ thống cung cấp nút chuyển đổi (Toggle) giữa 2 chế độ xem ở góc trên bên phải bảng dữ liệu:
- Đơn hàng: Chế độ xem danh sách đơn hàng tiêu chuẩn.
- Chia sẻ doanh thu: Chế độ xem chi tiết hoa hồng/doanh thu chia sẻ của từng đơn hàng.
- Figma Design: Giao diện Danh sách Đơn hàng
- Chi tiết giao diện Chế độ xem “Chia sẻ doanh thu”:
- Cột thông tin Đơn hàng (Dòng cha):
- Hiển thị các cột thông tin chung gồm: Checkbox, Mã đơn hàng (kèm icon mũi tên mở rộng/thu gọn), Trạng thái đơn, Số điện thoại, Email, Nhân viên phụ trách đơn hàng, các nút Hành động (Xem, Chạy, Lịch hẹn, Gọi điện), và Điều hướng kênh (Facebook, Zalo).
- Dòng chi tiết mở rộng (Dòng con - Expanded Row):
- Khi nhấn vào icon mũi tên mở rộng ở Mã đơn hàng, hệ thống hiển thị chi tiết các sản phẩm đã mua và cơ chế phân chia doanh thu tương ứng bên dưới dòng đơn hàng đó.
- Cột bên trái (Thông tin sản phẩm & Đơn giá):
- Ảnh thumbnail sản phẩm.
- Tên sản phẩm (ví dụ: “Mì chính ABC”).
- Công thức tính giá trị của dòng sản phẩm:
Đơn giá x Số lượng + VAT % - CK % = Thành tiền(ví dụ:2.000.000 x 1 + VAT 8% - CK 2% = 2.160.000 đ). - Nhân viên phụ trách thực hiện dòng sản phẩm đó (ví dụ: “Cắt tóc”, “Gội đầu”, “Stylist”…).
- Cột bên phải (Thông tin chia sẻ doanh thu):
- Liệt kê các nhân viên nhận chia sẻ doanh thu từ sản phẩm này (ví dụ:
Salekèm badgePhụ tráchmàu xanh dương, hoặc nhân viên kỹ thuật thực hiện nhưCắt tóc). - Tỷ lệ phần trăm chia sẻ nhận được (ví dụ:
50 %). - Số tiền hoa hồng thực tế tương ứng (ví dụ:
40.000 đ).
- Liệt kê các nhân viên nhận chia sẻ doanh thu từ sản phẩm này (ví dụ:
- Cột thông tin Đơn hàng (Dòng cha):
3. Danh sách nghiệp vụ
- Quy tắc tính toán Thuế, Phí, Giảm giá chung (Tính lũy kế lần lượt từ trên xuống):
- Khi có nhiều khoản Thuế, Phí, Giảm giá cùng lúc, hệ thống sẽ tính toán lần lượt theo thứ tự từ trên xuống dưới dựa trên giao diện hiển thị.
- Giá trị của dòng điều chỉnh tiếp theo sẽ được tính dựa trên số tiền lũy kế sau khi đã cộng/trừ các dòng điều chỉnh phía trước nó.
- Ví dụ cụ thể:
- Tạm tính đơn hàng:
2.000.000 đ - Dòng 1: Thuế
10%-> Số tiền thuế =2.000.000 * 10% = 200.000 đ. Số tiền lũy kế sau thuế =2.200.000 đ. - Dòng 2: Giảm giá
20%-> Số tiền giảm giá được tính trên số tiền lũy kế sau thuế:2.200.000 * 20% = 440.000 đ. Số tiền sau giảm giá =2.200.000 - 440.000 = 1.760.000 đ. - Thành tiền cuối cùng của đơn hàng =
1.760.000 đ.
- Tạm tính đơn hàng:
- Các dòng Phí (cố định) cũng tương tự, sẽ cộng thêm giá trị tiền mặt trực tiếp vào số tiền lũy kế tại bước tính của dòng đó.
4. Giao diện
- Figma Designs:
- Giao diện Pop-up Đơn hàng: Xem hình ảnh đính kèm.
- Bố cục: Chia làm 2 phần:
- Bên trái: Danh sách sản phẩm, Thông tin thanh toán, và các bước trạng thái dưới cùng.
- Bên phải: Thông tin liên hệ, Thông tin đơn hàng, và Cấu hình chia sẻ doanh thu.
III. Yêu cầu phi chức năng
[TODO: Hiệu năng, bảo mật, giới hạn…]
IV. Dependency (liên quan & phụ thuộc)
[TODO: Các tính năng hoặc service khác liên quan]
V. API Contract (dev viết)
VI. Test case (BA hoặc tester viết)
[TODO: Luồng Test Case (Happy/Exception)]