Bước 3 — Bán hàng đầu tiên
I. Mục tiêu
Phần tiêu đề “I. Mục tiêu”Bạn có thể quét một mặt hàng, gắn khách hàng, nhận thanh toán, và in hóa đơn end-to-end — cho cả bán lẻ (khách walk-in) và bán sỉ (khách ghi nợ có kỳ hạn tín dụng). Bất kỳ thu ngân nào cũng có thể lặp lại quy trình này.
II. Trước khi mở quầy
Phần tiêu đề “II. Trước khi mở quầy”- Đăng nhập vào POS Workspace (
/point-of-sale/sale) — xem Đăng nhập. - Chọn cửa hàng ở thanh trên cùng (chỉ khi bạn có nhiều cửa hàng).
- Chọn quầy / register — nếu cửa hàng có nhiều hơn một quầy, hệ thống sẽ yêu cầu bạn chọn quầy trước khi checkout được mở khoá.
- Mở ca làm việc — xem Ca làm việc. Ca theo dõi ai đang giữ ngăn kéo tiền.
III. Bán lẻ vs bán sỉ — chọn đúng mặt phẳng
Phần tiêu đề “III. Bán lẻ vs bán sỉ — chọn đúng mặt phẳng”Bảng điều khiển tách bán lẻ và bán sỉ thành hai mặt phẳng riêng biệt vì chúng có cơ chế giá, phương thức thanh toán, và luồng nghiệp vụ khác nhau:
| Mặt phẳng | Đường dẫn | Cơ chế giá | Phương thức thanh toán | Khi nào dùng |
|---|---|---|---|---|
| POS Workspace (bán lẻ) | /point-of-sale/sale | Bảng giá lẻ | Tiền mặt / Thẻ / Ví | Khách walk-in, đơn lẻ, không có kỳ hạn tín dụng |
| Wholesale Workspace | /dashboard/orders/create-wholesale | Bảng giá sỉ (theo khách) | Tiền mặt / Thẻ / Chuyển khoản / Công nợ khách | Khách quen, ghi nợ, hóa đơn nhiều dòng |
POS Workspace — màn hình chính của thu ngân cho đơn bán lẻ.
Form đơn bán sỉ — chọn khách, áp bảng giá sỉ, tuỳ chọn bán ghi nợ.
Sự tách bán lẻ / bán sỉ được enforce theo route (
/point-of-sale/...vs/dashboard/orders/...), không phải toggle trong cùng một trang. Nếu cần chuyển giữa ca, hãy hoàn tất đơn hiện tại trước.
IV. Chạy một đơn bán lẻ
Phần tiêu đề “IV. Chạy một đơn bán lẻ”- Panel danh mục (bên trái) — nhấn vào mặt hàng, quét mã vạch, hoặc tìm kiếm theo tên/SKU.
- Panel giỏ hàng (bên phải) — điều chỉnh số lượng bằng stepper
+/−, áp dụng chiết khấu line nếu sản phẩm cho phép. - Header giỏ hiển thị Tạm tính · Thuế · Tổng theo thời gian thực. Thanh toán bị vô hiệu cho tới khi giỏ có ít nhất một line.
- (Tuỳ chọn) Nhấn pill Khách hàng ở đầu giỏ để gắn khách — xem § V.
- (Tuỳ chọn) Nhấn Lưu nháp nếu muốn quay lại giỏ này sau — xem § VI.
Khi sẵn sàng, nhấn Thanh toán → modal thanh toán mở ra. Xem § VII.
Ba mặt hàng trong giỏ. Nút Thanh toán giờ sáng.
V. Thêm hoặc chọn khách hàng
Phần tiêu đề “V. Thêm hoặc chọn khách hàng”Giỏ có một pill Khách hàng (đầu panel giỏ) mở ra một listbox khách hàng.
| Bạn muốn | Làm thế này |
|---|---|
| Khách walk-in (không ghi CRM) | Để trống khách. Đơn ghi là guest sale. |
| Khách đã có | Gõ vài chữ cái đầu của tên hoặc SĐT vào listbox — hệ thống lọc trực tiếp. Chọn đúng dòng. |
| Khách hoàn toàn mới tại quầy | Nhấn + Thêm khách mới trong listbox. Modal Thêm khách mở — điền tên + SĐT (+ email tuỳ chọn) và Lưu. Khách mới tự động được gắn vào giỏ. |
Thêm khách tại quầy không chặn đơn bán — đó là cải tiến chất lượng dữ liệu, cho phép gắn đơn mua với hồ sơ khách (tích điểm, ví, hoàn tiền tương lai, hóa đơn B2B).
VI. Lưu nháp (hoặc gửi WBS / warehouse pick)
Phần tiêu đề “VI. Lưu nháp (hoặc gửi WBS / warehouse pick)”Ba tuỳ chọn “đậu xe giỏ” nằm trên thanh công cụ của giỏ:
| Hành động | Khi nào dùng | Chuyện gì xảy ra |
|---|---|---|
| Lưu nháp | Khách tạm dừng, đi đâu đó, sẽ quay lại. | Trạng thái giỏ (lines, qty, khách, chiết khấu) được lưu dưới dạng bản nháp có tên trong tab nháp của POS Workspace. Mở lại sau từ panel Đơn nháp. |
| Gửi warehouse pick | Một số mặt hàng cần lấy từ kho phía sau, không phải kệ trước. | Đánh dấu đơn cho warehouse pick — đội kho thấy đơn trong POS → Warehouse board (/point-of-sale/warehouse-board) và chuẩn bị hàng trước khi khách tới lấy. |
| Lưu làm báo giá (chỉ bán sỉ) | Khách sỉ muốn báo giá trước khi quyết định. | Sinh tài liệu báo giá; khách có thể duyệt sau từ Đơn hàng → Bán sỉ. |
Bản nháp được lưu dưới client-side identity (mã vạch Code128) để giỏ sống sót qua reload, đổi quầy, và thậm chí offline ngắn hạn. Xem POS Workspace tour → “Nháp” để hiểu đầy đủ mô hình bền vững.
VII. Nhận thanh toán + in hóa đơn
Phần tiêu đề “VII. Nhận thanh toán + in hóa đơn”Nhấn Thanh toán. Modal mở với:
- Tổng phải trả ở trên cùng (tổng giỏ).
- Hàng phương thức thanh toán dạng chip — chỉ những phương thức cửa hàng đã cấu hình trong Thiết lập → Chung → Payments mới hiện ra.
- Bàn phím số tiền mặt (nếu chọn
Tiền mặt) để nhập số tiền khách đưa; hệ thống tự hiện tiền thối. - Chế độ split-tender nếu khách trả một phần tiền mặt và một phần thẻ.
| Phương thức | Luồng |
|---|---|
| Tiền mặt | Nhập số tiền khách đưa → thấy tiền thối → nhấn Xác nhận. Hóa đơn in. |
| Thẻ | Thiết bị đã ghép (PAX / CodePay / Stripe) nhắc khách quẹt / cắm / quét. Hệ thống poll trạng thái thiết bị; khi thành công, hóa đơn in. |
| Ví | Xác nhận trừ tiền từ ví khách; hóa đơn in. |
| Khác / Chuyển khoản | Nhập tay; đánh dấu đã trả khi chuyển khoản cleared. |
Đơn được tạo với mã vạch Code128 (client_order_id của client), không phải EAN-13 số — cùng mã này hiện trên hóa đơn in và trang chi tiết đơn.
Chi tiết đơn trong dashboard — cùng đơn vừa tạo, với line items, phương thức thanh toán, tổng và timeline.
Hướng dẫn đầy đủ: POS Workspace tour → “Thanh toán” / “Hóa đơn”.
VIII. Báo cáo ca và ca làm việc
Phần tiêu đề “VIII. Báo cáo ca và ca làm việc”
POS → Report — tổng kết doanh thu cuối ca.
POS → Work shift — quản lý ca.
IX. Những điều cần kiểm tra
Phần tiêu đề “IX. Những điều cần kiểm tra”- Hóa đơn in ra với đúng tên cửa hàng + địa chỉ (xem header ở Thiết lập → Chung).
- Tồn kho thực tế đã giảm đúng số lượng bán.
- Đơn hàng xuất hiện trong Hoạt động bán hàng → Đơn hàng (
/dashboard/orders). - Tổng kết ca làm việc đã cập nhật (ngăn kéo tiền + số đơn).
- Với bán sỉ: đơn xuất hiện trong
/dashboard/orders/wholesaleVÀ ô “Công nợ” của khách trên dashboard tăng lên nếu đơn ghi nợ.
X. Nếu có sự cố
Phần tiêu đề “X. Nếu có sự cố”| Triệu chứng | Nơi kiểm tra |
|---|---|
| Máy in không in | Máy in hóa đơn + Trạng thái POS Bridge |
| Thanh toán thẻ kẹt ở “đang chờ” | Thiết bị thanh toán — xác minh WebSocket |
| Tồn kho không giảm | Mặt hàng → Theo dõi tồn kho đang tắt, hoặc Lot đang ở pending (chưa delivered) |
| Listbox khách không hiển thị gì | Khách bị lọc ra bởi cửa hàng khác — mở khách trong Khách hàng → Danh sách và kiểm tra cột Cửa hàng. |
| Form bán sỉ không nhận đơn | Khách đã chạm hạn mức tín dụng — kiểm tra banner cảnh báo; yêu cầu trả bớt công nợ cũ, hoặc đổi sang đơn nhỏ hơn. |
XI. Bước tiếp theo
Phần tiêu đề “XI. Bước tiếp theo”→ Bước 4 — Xử lý trả hàng: bước 4.