Đơn hàng
Đơn hàng trong EmberX được nhân viên tạo thay mặt cho khách — thường từ trong một hội thoại. Khách không tự đặt hàng trực tiếp; thay vào đó, họ yêu cầu qua chat và nhân viên thêm sản phẩm từ danh mục.
Cách đơn hàng được tạo
Đơn hàng xuất phát từ hội thoại:
- Khách quét mã QR và bắt đầu hội thoại (ví dụ: “Cho tôi một chai rượu và trái cây?”)
- Nhân viên mở danh mục sản phẩm trong hội thoại
- Nhân viên chọn sản phẩm và số lượng phù hợp
- Đơn hàng được tạo và liên kết với cả Hội thoại và Khách
Điều này có nghĩa là mỗi đơn hàng có đầy đủ ngữ cảnh: phòng nào khách đang ở, Trung tâm nào xử lý, và toàn bộ lịch sử chat.
Vòng đời trạng thái đơn hàng
EmberX sử dụng vòng đời đơn giản 4 trạng thái với quy tắc chuyển đổi chặt chẽ:
pending ──→ wip ──→ completed (kết thúc) └──→ cancelled cancelled (kết thúc) (từ wip cũng có thể)| Trạng thái | Ý nghĩa |
|---|---|
pending (chờ xử lý) | Đơn hàng đã tạo, chờ nhân viên bắt đầu |
wip (đang xử lý) | Nhân viên đã xác nhận và đang thực hiện |
completed (hoàn tất) | Đơn hàng đã giao/thực hiện thành công |
cancelled (đã hủy) | Đơn hàng đã hủy (bởi nhân viên hoặc yêu cầu của khách) |
Quy tắc chuyển đổi
| Từ trạng thái | Có thể chuyển sang |
|---|---|
pending | wip hoặc cancelled |
wip | completed hoặc cancelled |
completed | (kết thúc — không thể thay đổi) |
cancelled | (kết thúc — không thể thay đổi) |
Khi đơn hàng đạt trạng thái completed hoặc cancelled, trạng thái sẽ bị khóa — không thể thay đổi tiếp.
Bảng điều khiển Đơn hàng
Vào Đơn hàng trong thanh bên chính để xem tất cả đơn hàng.
Chip lọc trạng thái
Ở đầu trang, các chip lọc nhanh hiển thị số lượng theo thời gian thực:
chờ xử lý (3) đang xử lý (1) hoàn tất (12) đã hủy (2)Nhấp vào chip để lọc bảng. Nhấp lại để bỏ lọc.
Cập nhật trạng thái đơn hàng
Từ bảng Đơn hàng:
- Tìm đơn hàng cần cập nhật.
- Nhấn nút ⋯ (Hành động) ở hàng tương ứng.
- Chọn trạng thái mục tiêu (ví dụ: Đánh dấu wip, Đánh dấu hoàn tất, Đánh dấu đã hủy).
- Thay đổi lưu ngay và thông báo toast xác nhận.
Chỉ các trạng thái hợp lệ tiếp theo mới được hiển thị — đơn hàng đã hoàn tất hoặc đã hủy sẽ không có menu hành động.
Cấu trúc đơn hàng
Mỗi đơn hàng lưu:
| Trường | Mô tả |
|---|---|
items | Mảng JSON: [{ productId, name, price, quantity }] |
totalPrice | Tổng tiền tính toán |
notes | Ghi chú tùy chọn của khách |
status | Trạng thái hiện tại |
guestId | Khách đã yêu cầu đơn hàng |
conversationId | Hội thoại nơi đơn hàng được tạo |
Sản phẩm & Giá
Sản phẩm được quản lý riêng trong module Sản phẩm. Khi đơn hàng được tạo, tên và giá hiện tại của sản phẩm được lưu snapshot vào JSON items — đảm bảo đơn hàng lịch sử luôn phản ánh đúng giá tại thời điểm mua, dù giá sản phẩm sau đó thay đổi.
Bảng Phân Tích Đơn Hàng (Analytics)
Phần Phân tích Đơn hàng hiển thị trên trang Dashboard (Tổng quan) chính — cho phép Manager và Admin theo dõi hiệu suất đơn hàng theo thời gian thực ngay từ màn hình chính.
Bộ chọn kỳ phân tích
| Kỳ | Phạm vi |
|---|---|
| 7d | 7 ngày gần đây |
| 30d | 30 ngày gần đây (mặc định) |
| 90d | 90 ngày gần đây |
Thẻ KPI
Bốn thẻ tóm tắt hiển thị số liệu toàn thời gian:
| Thẻ | Chỉ số |
|---|---|
| Tổng đơn hàng | Tất cả đơn đã tạo; nhãn phụ hiển thị số đang chờ |
| Tổng doanh thu | Tổng totalPrice của tất cả đơn; nhãn phụ hiển thị giá trị đơn trung bình |
| Đang xử lý | Số đơn ở trạng thái wip hiện tại |
| Hoàn tất | Tất cả đơn đã hoàn tất; nhãn phụ hiển thị số đã hủy |
Biểu đồ
| Biểu đồ | Loại | Mô tả |
|---|---|---|
| Đơn hàng theo ngày | Cột dọc | Số đơn hàng mỗi ngày trong kỳ đã chọn |
| Phân bổ theo trạng thái | Donut / tròn | Tỷ lệ phân bổ đơn hàng toàn thời gian theo 4 trạng thái |
| Sản phẩm bán chạy | Cột ngang | Xếp hạng sản phẩm theo số lượng bán trong kỳ đã chọn |