Màn Bán hàng (Sale Workspace)
Tổng quan
Phần tiêu đề “Tổng quan”Màn Bán hàng (/point-of-sale/sale) là giao diện chính để xử lý bán hàng. Màn này gồm:
- Danh mục sản phẩm (bên trái) — duyệt và tìm hàng
- Giỏ hàng (bên phải) — xem lại, chỉnh số lượng, áp dụng giảm giá
- Modal thanh toán — xử lý thanh toán và in bill


I. Quy trình bán hàng 5 bước (kiểu KiotViet)
Phần tiêu đề “I. Quy trình bán hàng 5 bước (kiểu KiotViet)”Phần này hướng dẫn toàn bộ một đơn bán theo đúng thứ tự thu ngân gặp trên màn. Mỗi bước liên kết tới màn tương ứng và có ảnh minh hoạ.
Bước 1 — Mở Màn Bán hàng và chọn cửa hàng/quầy
Phần tiêu đề “Bước 1 — Mở Màn Bán hàng và chọn cửa hàng/quầy”Tình huống: Bạn đã đăng nhập và sẵn sàng bắt đầu một đơn mới.
Thao tác thực hiện:
- Từ thanh điều hướng trái, bấm Bán hàng (hoặc vào
/point-of-sale/sale). - Nếu cửa hàng có nhiều quầy, chọn quầy từ bộ chọn trên thanh trên. Quầy gắn đơn này với một ca, ngăn kéo và máy in cụ thể.
- Xác nhận chip cửa hàng trên thanh trên hiện đúng vị trí (bảng giá và danh mục phụ thuộc vào đó).
- Giỏ trống hiện bên phải; danh mục bên trái sẵn sàng nhập hàng.

Mẹo: Cửa hàng nhiều quầy sẽ hiện
pos.laneRequiredBannernếu bạn cố thêm hàng trước khi chọn quầy — hãy chọn quầy trước rồi tiếp tục.
Bước 2 — Thêm sản phẩm vào giỏ
Phần tiêu đề “Bước 2 — Thêm sản phẩm vào giỏ”Tình huống: Khách nói họ muốn mua gì. Bạn cần dựng giỏ thật nhanh.
Thao tác thực hiện:
- Tìm kiếm (thanh trên): gõ tên sản phẩm, SKU hoặc mã vạch; bấm
Enter hoặc đợi debounce. Phím tắt
/focus ô tìm. - Quét mã vạch (USB / camera / keyboard wedge) — sản phẩm khớp tự thêm vào giỏ, mỗi lần quét +1 số lượng.
- Chạm vào tile sản phẩm trong lưới danh mục để thêm.
- Quick pick (hàng tile ngang phía trên lưới) — sản phẩm bán chạy hoặc đã ghim, một chạm là thêm.
- Nhấn giữ tile để ghim hoặc bỏ ghim khỏi hàng quick pick.
- Chỉnh số lượng bằng + / − trên dòng giỏ, hoặc gõ trực tiếp vào ô.

Mẹo: Hệ thống tạo dòng riêng cho mỗi kênh giá (Lẻ vs Sỉ). Chuyển kênh sau khi đã thêm sẽ giữ nguyên giá kênh cũ cho dòng đó — xem Kênh giá Lẻ / Sỉ.
Bước 3 — Gắn khách hàng (không bắt buộc nhưng nên làm)
Phần tiêu đề “Bước 3 — Gắn khách hàng (không bắt buộc nhưng nên làm)”Tình huống: Bạn muốn áp giảm thành viên, cộng điểm thưởng, hoặc ghi nhận đơn cho khách đã biết.
Thao tác thực hiện:
- Bấm nút Chọn khách trên thanh trên.
- Gõ tên, số điện thoại hoặc mã khách trong modal (hoặc quét thẻ thành viên).
- Bấm vào dòng kết quả để gắn khách; chip khách trên thanh trên hiện tên, giỏ tự tính lại giảm thành viên.
- Muốn bỏ gắn: bấm chip khách → chọn Bỏ gắn.

Mẹo: Bấm F4 để nhảy thẳng vào ô tìm khách từ bất kỳ đâu trên màn Bán hàng.
Bước 4 — Áp giảm, coupon và khuyến mãi
Phần tiêu đề “Bước 4 — Áp giảm, coupon và khuyến mãi”Tình huống: Đơn đủ điều kiện khuyến mãi, hoặc thu ngân cần áp giảm bằng tay.
Thao tác thực hiện:
- Khuyến mãi tự động — khi giỏ thoả quy tắc Mua-X-Tặng-Y, dòng
thưởng
$0.00tự thêm. Tìm badge Promo hoặc KM trong giỏ. - Giảm dòng — bấm ô giảm trên dòng giỏ, nhập phần trăm hoặc số tiền. Ghi đè giá catalog cho dòng đó.
- Giảm đơn — cuộn tới khu vực tổng, bấm dòng Giảm, chọn phần trăm hoặc số tiền.
- Mã coupon — bấm ô Coupon, nhập mã (vd
SAVE20), bấm Áp dụng. Hệ thống kiểm tra hạn, đơn tối thiểu và điều kiện khách. - Giảm thành viên — tự áp khi đã gắn khách có hạng active ở Bước 3.
Mẹo: Thứ tự cộng dồn cố định: giảm dòng → thành viên → giảm đơn → coupon → thuế. Xem Thứ tự cộng dồn giảm để biết sơ đồ đầy đủ.
Bước 5 — Thanh toán và in bill
Phần tiêu đề “Bước 5 — Thanh toán và in bill”Tình huống: Khách sẵn sàng thanh toán.
Thao tác thực hiện:
- Bấm nút Thanh toán dưới panel giỏ.
- Modal thanh toán mở ra với tất cả tender đã cấu hình (Tiền mặt, Thẻ, Séc, Ví; thêm Nợ ở chế độ sỉ).
- Chọn tender và theo luồng từng loại:
- Tiền mặt — nhập số tiền nhận, hệ thống hiện tiền thừa.
- Thẻ — bấm Gửi tới terminal, khách quẹt/cắm thẻ, đợi chỉ báo xanh thành công.
- Séc / Ví / Nợ — điền các trường tham chiếu theo yêu cầu rồi xác nhận.
- Kiểm lại tóm tắt đơn (dòng, thuế, tổng). Thêm thông tin hoá đơn (MST, công ty, email) nếu cần xuất VAT.
- Bấm Đặt đơn. Màn thành công hiện số đơn và bill tự in (hoặc in ra máy đã cấu hình).
- Từ màn thành công: Bán mới để bắt đầu đơn kế tiếp, hoặc In bill để in lại.



Mẹo: Terminal lỗi hiện chỉ báo đỏ — giữ modal mở, xử lý terminal ở Cài đặt Terminal thẻ, rồi thử lại mà không cần dựng lại giỏ.
Bố cục
Phần tiêu đề “Bố cục”┌─────────────────────────────────────────────────────────────┐│ Thanh trên: Cửa hàng | Quầy | Tìm | Khách | Thao tác nhanh │├─────────────────────────┬───────────────────────────────────┤│ │ ││ Panel danh mục │ Panel giỏ ││ - Quick pick tiles │ - Dòng sản phẩm ││ - Tab danh mục │ - Số lượng ││ - Lưới sản phẩm │ - Tạm tính / Thuế ││ - Kết quả tìm │ - Tổng ││ │ - Nút thanh toán ││ │ │└─────────────────────────┴───────────────────────────────────┘Thanh công cụ trên
Phần tiêu đề “Thanh công cụ trên”Chọn cửa hàng & quầy
Phần tiêu đề “Chọn cửa hàng & quầy”- Cửa hàng: Bắt buộc, quyết định danh mục và giá
- Quầy: Bắt buộc với cửa hàng nhiều quầy có theo dõi ca
Tìm sản phẩm
Phần tiêu đề “Tìm sản phẩm”- Ô tìm: Gõ tên, SKU hoặc mã vạch (Enter hoặc đợi debounce)
- Bật/tắt chế độ tìm: Chuyển giữa “Tên/SKU” và “Chỉ mã vạch”
- Phím tắt:
/để focus ô tìm
Chọn khách hàng
Phần tiêu đề “Chọn khách hàng”- Nút: “Chọn khách” (hoặc hiện tên khách đã chọn)
- Mở: Modal tìm khách
- Khách đã gắn xuất hiện trong giỏ với điểm thưởng, giảm giá thành viên

Thao tác nhanh
Phần tiêu đề “Thao tác nhanh”- Đã ghim (icon sao) — Sản phẩm bán chạy
- Thêm nhanh (icon dấu cộng) — Tạo dòng tuỳ chỉnh / sản phẩm ad-hoc
- Menu (ba chấm) — Tuỳ chọn khác
Panel danh mục (trái)
Phần tiêu đề “Panel danh mục (trái)”Quick pick
Phần tiêu đề “Quick pick”Hàng ngang có cuộn với tile sản phẩm — hiện sản phẩm bán gần đây hoặc đã ghim. Chạm để thêm vào giỏ. Nhấn giữ để ghim/bỏ ghim.
Tab danh mục
Phần tiêu đề “Tab danh mục”Tabs ngang hiện các danh mục sản phẩm. Tab “Tất cả” hiện toàn bộ. Sản phẩm chưa phân loại vào “(Chưa có danh mục)”. Tab đang chọn highlight màu nhấn.
Lưới sản phẩm
Phần tiêu đề “Lưới sản phẩm”2-4 cột tuỳ độ rộng màn hình. Mỗi tile hiện: ảnh, tên, giá (đơn vị cơ bản), chỉ báo tồn (nếu sắp hết/hết). Chạm để thêm vào giỏ.
Kênh giá Lẻ / Sỉ
Phần tiêu đề “Kênh giá Lẻ / Sỉ”Màn Bán hàng hỗ trợ hai kênh giá ảnh hưởng đến cách tính giá sản phẩm.
Bật/tắt kênh giá
Phần tiêu đề “Bật/tắt kênh giá”Trên thanh công cụ (chỉ trên POS lẻ):
- Lẻ (trái) — Dùng giá lẻ từ catalog sản phẩm
- Sỉ (phải) — Dùng giá sỉ từ catalog sản phẩm


Cách hoạt động
Phần tiêu đề “Cách hoạt động”Khi chuyển kênh:
- Dòng mới thêm sau khi chuyển dùng giá kênh đã chọn
- Dòng cũ giữ nguyên giá kênh ban đầu
- Giỏ có thể chứa dòng hỗn hợp — một số lẻ, một số sỉ
- Dòng sỉ hiện badge “Sỉ” hoặc “WS” trong giỏ
Hành vi kênh giá
Phần tiêu đề “Hành vi kênh giá”| Tính năng | Chế độ Lẻ | Chế độ Sỉ |
|---|---|---|
| Nguồn giá | product.retail_price | product.wholesale_price |
| Kiểm tồn | Tồn kho lẻ | Tồn kho sỉ (nếu kho riêng) |
| Badge giỏ | Không | “Sỉ” hoặc “WS” |
| Trộn dòng | Có thể thêm dòng sỉ | Có thể thêm dòng lẻ |
| Độc lập dòng | Mỗi dòng giữ kênh ban đầu | Mỗi dòng giữ kênh ban đầu |
Khi nào dùng kênh nào
Phần tiêu đề “Khi nào dùng kênh nào”Lẻ:
- Khách vãng lai
- Mua từng món
- Checkout standard
Sỉ:
- Khách B2B
- Đơn số lượng lớn
- Mua để bán lại
- Giá mỗi đơn vị thấp hơn
Lưu ý: Nếu sản phẩm không có giá sỉ và thêm ở chế độ sỉ:
- Fallback về giá lẻ
- Hiện toast cảnh báo
- Vẫn thêm vào giỏ (nhưng giá lẻ)
Bảng giá tuỳ chỉnh
Phần tiêu đề “Bảng giá tuỳ chỉnh”Dùng Bảng giá (dropdown cạnh bật/tắt kênh giá):
- Giá catalog (mặc định) — Dùng giá cơ bản lẻ/sỉ
- Bảng giá đặt tên — Áp dụng quy tắc giá riêng theo phân khúc khách
Khi bảng giá active: ghi đè cả giá lẻ VÀ sỉ; hiện tên bảng giá trên toolbar; có thể kết hợp với kênh giá.
Panel giỏ (phải)
Phần tiêu đề “Panel giỏ (phải)”Dòng giỏ
Phần tiêu đề “Dòng giỏ”Mỗi dòng hiện:
- Tên sản phẩm (kèm biến thể nếu có)
- Badge kênh giá — “Sỉ” hoặc “WS” cho dòng sỉ
- Stepper số lượng — tăng/giảm hoặc gõ giá trị
- Đơn giá — chỉnh được (nếu cho phép ghi đè)
- Thành tiền dòng — tự tính
- Nút xoá (icon thùng rác)
Hàng đơn vị tính (cân, đo): hiện sl theo lb, kg hoặc đơn vị tuỳ chỉnh; ô sl chỉnh được; tự tính thành tiền.
Sản phẩm khuyến mãi: Badge “KM” hoặc “Promo”; tự thêm khi điều kiện thoả; giá khoá (không sửa); hiện quy tắc kích hoạt; tự xoá nếu dòng kích hoạt bị xoá.
Tổng giỏ
Phần tiêu đề “Tổng giỏ”Dưới các dòng giỏ hiện:
- Tạm tính — Tổng dòng trước thuế/giảm
- Giảm dòng — Giảm cấp catalog cấu hình trên sản phẩm
- Giảm thành viên — Áp dụng khi khách đã gắn
- Giảm — Giảm cấp đơn (tay hoặc coupon)
- Coupon — Giảm theo mã coupon (nếu có)
- Thuế — Tính theo cấu hình cửa hàng (vd 9.15% sales tax)
- Tổng — Số phải thu cuối cùng

Tính thuế:
- Chỉ áp dụng cho sản phẩm chịu thuế (cấu hình trên sản phẩm)
- Hàng không chịu thuế (tạp hoá, thuốc) loại khỏi cơ sở thuế
- Thuế suất cấp cửa hàng (thường 9.15% cho hầu hết vùng)
- Tính trên tạm tính sau giảm dòng
Tóm tắt thuế & thao tác giỏ
Phần tiêu đề “Tóm tắt thuế & thao tác giỏ”Dưới dòng giỏ:
- Tạm tính — tổng dòng trước thuế
- Thuế — thuế 9.15% (mặc định, cấu hình theo cửa hàng) chỉ áp dụng cho dòng chịu thuế
- Giảm — tổng giảm (catalog + coupon)
- Tổng cuối — số phải thu

Chi tiết thuế:
- Mở “Xem chi tiết thuế” để thấy tóm tắt thuế theo thuế suất
- Hiện số chịu thuế và thuế mỗi suất (vd “9.15% trên 50.00 đ = 4.58 đ”)
- Bill in rõ số thuế và thuế suất
Ghi chú cấu hình thuế:
- Thuế suất cấp cửa hàng (Admin → Cài đặt cửa hàng → Thuế)
- Sản phẩm đánh dấu chịu/không chịu thuế riêng
- Khách miễn thuế có cờ bỏ qua tính thuế
Thao tác giỏ
Phần tiêu đề “Thao tác giỏ”- Gửi WBS — Gửi đơn tới Bảng lấy hàng kho (nút trên Thanh toán)
- Xoá giỏ — Xoá tất cả dòng (cần xác nhận)
- Lưu nháp — Lưu giỏ thành nháp có tên
- Thanh toán — Mở modal checkout
Luồng Gửi WBS: Khi cần nhân viên kho lấy hàng trước khi hoàn tất bán:
- Thêm hàng vào giỏ
- Bấm “Gửi WBS” (trên nút Thanh toán trong panel giỏ)
- Đơn xếp ngay vào Bảng lấy hàng kho
- Giỏ trống, sẵn sàng khách kế tiếp
- Toast xác nhận: “Đã gửi đơn lên bảng lấy hàng kho”

Giảm giá, Coupon & Khuyến mãi
Phần tiêu đề “Giảm giá, Coupon & Khuyến mãi”POS hỗ trợ nhiều loại giảm giá có thể kết hợp:
1. Giảm cấp sản phẩm (catalog)
Phần tiêu đề “1. Giảm cấp sản phẩm (catalog)”Cấu hình bởi: Admin trong cài đặt sản phẩm Áp dụng: Tự động khi thêm sản phẩm vào giỏ Hiển thị: Hiện trong tổng giỏ dưới “Giảm dòng”
Loại:
- Giảm phần trăm — vd 10% off (giảm đơn giá theo %)
- Giảm số tiền cố định — vd 2 đ off mỗi đơn vị
- Giá khuyến mãi — Sản phẩm gắn badge “Promo” trong catalog
Tính toán:
Dòng giảm 10% item discount: Đơn giá: 10.00 đ Giảm dòng: -1.00 đ (10%) Giá thực: 9.00 đ/đơn vị SL: 3 Thành tiền: 27.00 đHiển thị trong giỏ:
- Hiện dưới “Giảm dòng” trong tổng
- Mỗi dòng liên quan hiện giảm trên đơn vị
- Sản phẩm khuyến mãi hiện badge “Promo”
2. Giảm cấp đơn
Phần tiêu đề “2. Giảm cấp đơn”Cấu hình bởi: Thu ngân tại checkout Áp dụng: Bằng tay qua ô giảm hoặc tự động qua khuyến mãi Hiển thị: Hiện là “Giảm” trong tổng giỏ
Cách nhập:
- Bấm ô Giảm trong panel giỏ
- Nhập số tiền hoặc phần trăm
- Áp dụng toàn đơn
Tính toán:
Giảm đơn 10%: Tạm tính (sau giảm dòng): 100.00 đ Giảm đơn: -10.00 đ (10%) Tạm tính sau giảm: 90.00 đPhân quyền:
- Cài đặt cửa hàng cho phép sửa giảm hay không
- Nếu tắt, hiện: “Cài đặt cửa hàng không cho phép đổi giảm đơn”
3. Mã Coupon
Phần tiêu đề “3. Mã Coupon”Cấu hình bởi: Admin trong marketing/khuyến mãi Áp dụng: Khách cung cấp mã, thu ngân nhập Hiển thị: Hiện là “Coupon” trong tổng kèm tên mã
Cách áp dụng:
- Khách cung cấp mã (in trên giấy, email, SMS)
- Bấm ô Coupon trong panel giỏ
- Nhập mã (vd
SAVE20,SUMMER10) - Bấm Áp dụng
- Hệ thống kiểm tra:
- Mã tồn tại và active
- Chưa hết hạn
- Đạt đơn tối thiểu
- Khách đủ điều kiện
- Giảm áp dụng, toast “Áp dụng coupon thành công”
Loại coupon:
- Giảm phần trăm — vd 20% off toàn đơn
- Giảm số tiền — vd 10 đ off đơn
- Miễn phí ship — Bỏ phí giao hàng
- Mua X tặng Y — Tự thêm dòng thưởng (xem Khuyến mãi)
Lỗi validation:
- ❌ “Không tìm thấy mã” — Sai hoặc hết hạn
- ❌ “Chưa đạt đơn tối thiểu” — Đơn dưới ngưỡng
- ❌ “Đã dùng” — Mã dùng 1 lần đã được redeem
- ❌ “Không đủ điều kiện” — Khách bị hạn chế
Xoá coupon:
- Bấm Xoá cạnh ô coupon
- Hoặc xoá luôn ô giảm
4. Khuyến mãi Mua X Tặng Y
Phần tiêu đề “4. Khuyến mãi Mua X Tặng Y”Cấu hình bởi: Admin trong promotions Áp dụng: Tự động khi điều kiện thoả Hiển thị: Dòng tự thêm với badge “Promo”
Cách hoạt động:
- Khách thêm sản phẩm kích hoạt vào giỏ (vd 2 đơn vị Product A)
- Hệ thống kiểm tra quy tắc:
- Mua 2 tặng 1 (cùng SP)
- Mua 2 Product A tặng 1 Product B
- Dòng thưởng tự thêm:
- Badge “Promo”
- Giá khoá $0.00
- Ghi chú: “Khuyến mãi (tự thêm)”
- SL theo quy tắc
- Nếu SP kích hoạt bị xoá → dòng thưởng tự xoá
Ví dụ — Mua 2 tặng 1 (cùng SP):
Giỏ:├─ Product A (qty 2) @ 10 đ = 20.00 đ ← Kích hoạt└─ Product A (qty 1) @ 0.00 đ [Promo] ← Thưởng tự thêm Ghi chú: "Mua 2 tặng 1 (cùng sản phẩm)"Ví dụ — Mua 2 tặng SP khác:
Giỏ:├─ Product A (qty 2) @ 15 đ = 30.00 đ ← Kích hoạt└─ Product B (qty 1) @ 0.00 đ [Promo] ← Thưởng tự thêm Ghi chú: "Mua 2 Product A tặng 1 Product B"Badge khuyến mãi trong catalog:
- SP trong KM active hiện badge “Promo”
- Hover hiện quy tắc: “Mua 2 tặng 1”
Toast:
- Khi dòng thưởng tự thêm: “Đã thêm 1 dòng khuyến mãi vào giỏ”
Hiển thị trên bill:
- Sản phẩm khuyến mãi in với ghi chú: “+1 free (promo)” hoặc “+1 Product B (free)”
5. Giảm giá thành viên
Phần tiêu đề “5. Giảm giá thành viên”Cấu hình bởi: Admin trong customer/membership settings Áp dụng: Tự động khi khách gắn vào đơn Hiển thị: Hiện là “Giảm thành viên” trong tổng
Cách hoạt động:
- Thu ngân chọn khách (bấm Chọn khách)
- Nếu khách có membership active:
- Áp dụng giảm theo hạng (vd Gold = 5% off)
- Hiện trong tổng giỏ
- Giảm áp dụng trên tạm tính sau giảm dòng
Tính toán:
Giảm thành viên (Gold 5%): Tạm tính: 100.00 đ Giảm thành viên: -5.00 đ (5%) Tạm tính sau thành viên: 95.00 đThứ tự cộng dồn giảm
Phần tiêu đề “Thứ tự cộng dồn giảm”Khi nhiều giảm áp dụng, thứ tự tính:
1. Giảm dòng catalog ↓3. Tạm tính (sau giảm dòng) ↓4. Giảm thành viên (% tạm tính) ↓5. Giảm đơn (tay) ↓6. Giảm coupon ↓7. Tạm tính (sau tất cả giảm) ↓8. Tính thuế ↓9. Tổng cuốiVí dụ đầy đủ:
Dòng 1: Product A (qty 2) @ 10 đ, 10% giảm dòng → Thành tiền: 18.00 đ (sau 2 đ giảm dòng)
Dòng 2: Product B (qty 1) @ 50 đ, không giảm dòng → Thành tiền: 50.00 đ
Tạm tính: 68.00 đ
Giảm thành viên (5%): -3.40 đ → Tạm tính: 64.60 đ
Giảm đơn (10%): -6.46 đ → Tạm tính: 58.14 đ
Coupon (5 đ off): -5.00 đ → Tạm tính: 53.14 đ
Thuế (8%): +4.25 đ → Tổng cuối: 57.39 đKhắc phục sự cố giảm & coupon
Phần tiêu đề “Khắc phục sự cố giảm & coupon”| Vấn đề | Nguyên nhân | Cách xử lý |
|---|---|---|
| Không sửa được ô giảm | Cài đặt cửa hàng tắt | Nhờ chủ bật trong cài đặt |
| Coupon bị từ chối | Sai / hết hạn | Kiểm tra chính tả mã, hạn dùng |
| Coupon “chưa đạt tối thiểu” | Đơn dưới ngưỡng | Thêm hàng hoặc bỏ coupon |
| Sản phẩm KM không tự thêm | Chưa đủ SL kích hoạt | Thêm đủ SP kích hoạt |
| SP KM bị xoá | SP kích hoạt bị xoá | Thêm lại SP kích hoạt |
| Không thấy giảm thành viên | Khách chưa gắn | Chọn khách trên thanh trên |
| Sai số tiền giảm | Nhiều giảm cộng dồn | Xem chi tiết breakdown tổng |
Quét mã vạch
Phần tiêu đề “Quét mã vạch”Phương pháp quét
Phần tiêu đề “Phương pháp quét”- Máy quét USB (HID): Quét trực tiếp vào ô tìm đang focus
- Quét camera: Bấm icon camera → webcam scanner inline (cần quyền)
- Keyboard wedge: Desktop lắng nghe sự kiện wedge toàn cục
Xử lý quét
Phần tiêu đề “Xử lý quét”Khi phát hiện mã:
- EAN-13/UPC: Tra cứu khớp chính xác trong catalog
- Code128: SKU hoặc mã tuỳ chỉnh
- Mã cân (format nội bộ): Trích PLU + cân nặng, thêm vào giỏ với sl gắn trong
- Mã nhúng giá: Trích giá, ghi đè giá catalog
Nếu không tìm thấy sản phẩm:
- Hiện toast “Không tìm thấy sản phẩm”
- Ô tìm xoá
- Có thể thêm tay qua Quick Add
Luồng thanh toán
Phần tiêu đề “Luồng thanh toán”Bước 1: Mở thanh toán
Phần tiêu đề “Bước 1: Mở thanh toán”Bấm Thanh toán trong giỏ (dưới panel giỏ)
Kịch bản chặn:
- Giỏ trống → Thanh toán tắt
- Thiếu cửa hàng/quầy → Banner chặn
- Vượt hạn mức nợ (khách gắn) → Modal cảnh báo, có thể ghi đè hoặc huỷ
Bước 2: Chọn phương thức
Phần tiêu đề “Bước 2: Chọn phương thức”Modal thanh toán hiện tuỳ chọn theo cấu hình cửa hàng và ngữ cảnh đơn.
Phương thức có sẵn
Phần tiêu đề “Phương thức có sẵn”| Phương thức | Hiển thị | Icon | Khi nào có | Dùng cho |
|---|---|---|---|---|
| Tiền mặt | “Tiền mặt” | 💵 | Luôn | Tiền mặt |
| Thẻ | “Thẻ” | 💳 | Luôn | Terminal thẻ (PAX/CodePay) |
| Séc | “Séc” | 📝 | Lẻ & Sỉ | Séc ngân hàng |
| Ví | “Ví” | 👛 | Lẻ & Sỉ | Ví điện tử |
| Nợ | “Nợ” | 📒 | Chỉ Sỉ | Công nợ B2B |
Bán tại quầy (màn này):
- Lẻ: Tiền mặt, Thẻ, Séc, Ví
- Sỉ: Tiền mặt, Thẻ, Séc, Ví, Nợ (nếu cho phép)
Đơn giao hàng (tạo từ luồng riêng):
- Tiền mặt → nhãn “COD” (Thu hộ)
- Thẻ → nhãn “Thẻ từ xa”
Thanh toán tiền mặt
Phần tiêu đề “Thanh toán tiền mặt”- Chọn tab Tiền mặt (💵)
- Nhập số tiền khách đưa
- Hệ thống tự tính tiền thừa
- Bấm Hoàn tất thanh toán
Nút tiền nhanh: mệnh giá có sẵn (10,000 / 20,000 / 50,000 / 100,000 / 500,000), chạm để tự điền số tiền nhận, hiện tính tiền thừa real-time.
Tính tiền thừa:
Nhận: 500,000 đTổng: 478,500 đThừa: 21,500 đ ← Hiện nổi bậtPhím tắt: Ctrl + P mở modal thanh toán.

Tổng quan phương thức:

Modal thanh toán hiện tất cả phương thức dưới dạng tab có icon. Bán lẻ tại quầy hiện Tiền mặt, Thẻ, Séc, Ví. Chế độ sỉ thêm Nợ cho B2B.
Terminal thẻ (PAX / CodePay)
Phần tiêu đề “Terminal thẻ (PAX / CodePay)”- Chọn tab Thẻ (💳)
- Bấm Gửi tới terminal
- Terminal hiện số tiền
- Khách quẹt/cắm thẻ
- Hệ thống đợi phản hồi terminal
Chỉ báo trạng thái:
- 🔵 Kết nối — Terminal sẵn sàng
- 🟡 Đang xử lý — Đợi khách thao tác
- 🟢 Thành công — Duyệt thanh toán
- 🔴 Lỗi — Từ chối hoặc lỗi terminal
Xem Cài đặt Terminal thẻ.
Thanh toán séc
Phần tiêu đề “Thanh toán séc”- Chọn tab Séc (📝)
- Nhập số séc hoặc tham chiếu
- (Tuỳ chọn) Ghi ngân hàng và chi tiết séc
- Bấm Hoàn tất thanh toán
Dùng cho: Khách trả bằng séc ngân hàng; thu ngân ghi nhận séc để ký quỹ.
Ghi chú: Thanh toán đánh dấu hoàn tất ngay; séc clearing xảy ra khi đối chiếu ngân hàng.
Thanh toán ví (E-wallet / số)
Phần tiêu đề “Thanh toán ví (E-wallet / số)”- Chọn tab Ví (👛)
- Khách quét mã QR hoặc hiện xác nhận thanh toán
- Nhập mã giao dịch ví hoặc tham chiếu
- Bấm Hoàn tất thanh toán
Ví hỗ trợ (thị trường Việt Nam):
- MoMo
- ZaloPay
- VNPay
- ShopeePay
- Ví số khác
Dùng cho: Khách hoàn tất trong app ví; thu ngân ghi nhận mã tham chiếu.
Thanh toán nợ (chỉ sỉ)
Phần tiêu đề “Thanh toán nợ (chỉ sỉ)”- Chọn tab Nợ (📒)
- Hệ thống kiểm tra hạn mức khách
- Số tiền đơn cộng vào công nợ khách
- Bấm Hoàn tất thanh toán
Yêu cầu:
- Khách phải gắn vào đơn
- Khách có hạn mức khả dụng
- Chế độ sỉ phải bật
Kịch bản chặn:
- Vượt hạn mức → Modal cảnh báo, không thể tiếp tục
- Không gắn khách → Tuỳ chọn Nợ tắt
- Chế độ lẻ → Không hiện tuỳ chọn
Dùng cho: Khách B2B sỉ có hạn mức công nợ được duyệt. Số dư theo dõi trong sổ cái khách.
Tách nhiều phương thức
Phần tiêu đề “Tách nhiều phương thức”Với đơn trả bằng nhiều phương thức (vd một phần tiền mặt + thẻ):
- Bấm bật/tắt Tách nhiều phương thức
- Thêm phương thức đầu → Nhập phần tiền
- Bấm Thêm phương thức khác
- Chọn phương thức 2 → Hệ thống hiện số dư còn lại
- Hoàn tất từng phương thức
Ví dụ:
Tổng: 1,500,000 đP1: Tiền mặt 500,000 đP2: Thẻ 1,000,000 đGiới hạn:
- Tối đa 3 phương thức mỗi đơn
- Không thể tách trong cùng 1 phương thức (vd 2 lần tiền mặt)
- Terminal thẻ phải hỗ trợ partial amounts
Nợ khách (công nợ)
Phần tiêu đề “Nợ khách (công nợ)”Yêu cầu:
- Khách gắn vào đơn
- Có hạn mức khả dụng
- Cửa hàng cho phép trả nợ
- Chọn tab Nợ
- Hiện số dư hiện tại và hạn mức khả dụng của khách
- Bấm Tính vào khách
- Đơn hoàn tất, số tiền cộng vào nợ khách
Kiểm tra hạn mức:
- Chặn nếu
nợ_hiện_tại + tổng_đơn > hạn_mức - Ghi đè bằng mật khẩu quản lý
Thanh toán nợ: Khách trả nợ qua Khách hàng → Ghi nhận thanh toán.
E-wallet & phương thức khác
Phần tiêu đề “E-wallet & phương thức khác”Phương thức bổ sung (nếu cấu hình):
- Momo — Ví di động Việt Nam
- ZaloPay — Ví di động Việt Nam
- VNPay QR — Thanh toán QR
Quy trình giống chuyển khoản: hiện QR, khách quét và trả, thu ngân xác nhận.
Bước 3: Xác nhận & đặt đơn
Phần tiêu đề “Bước 3: Xác nhận & đặt đơn”Sau khi chọn phương thức:
-
Xem lại tóm tắt đơn:
- Dòng sản phẩm, số lượng, giá
- Tóm tắt thuế
- Phương thức thanh toán và số tiền
-
(Tuỳ chọn) Thêm chi tiết hoá đơn:
- Tên khách (nếu chưa gắn)
- Mã số thuế cho VAT
- Tên và địa chỉ công ty
- Email gửi bill
-
Bấm Đặt đơn
Bước 4: Bill & hoàn tất
Phần tiêu đề “Bước 4: Bill & hoàn tất”Màn thành công
Phần tiêu đề “Màn thành công”Hiện:
- ✅ Số đơn (vd
#POS-2024-00123) - Tổng thanh toán và tiền thừa (tiền mặt)
- Tóm tắt phương thức
- Trạng thái bill (đã in/lỗi)
Thao tác:
- Bán mới — Xoá giỏ, bắt đầu đơn kế tiếp
- In bill — In lại nếu in tự động lỗi
- Gửi bill email — Gửi cho khách
In bill
Phần tiêu đề “In bill”In tự động (mặc định):
- Bill in ngay tới máy in đã cấu hình
- Nếu máy in offline, hiện lỗi + tuỳ chọn in tay
In tay:
- Bấm In bill trong màn thành công
- Hoặc từ Đơn hàng → chi tiết → In
Bill gồm:
- Tên cửa hàng, địa chỉ, MST, điện thoại
- Số đơn và thời gian
- Dòng sản phẩm với sl và giá
- Chi tiết thuế theo dòng (9.15% trên dòng chịu thuế)
- Tổng thuế (tổng thuế tất cả dòng)
- Phương thức thanh toán
- Tiền thừa (tiền mặt)
- Tên thu ngân
- Mã vạch hoá đơn (Code128, không EAN-13)

Ghi chú format mã vạch:
- Dùng Code128 (không EAN-13) cho id client order compact
- Quét được cho đổi trả, tra cứu, đối chiếu
- In dưới tổng để quét dễ
Minh bạch bill:
- Mỗi dòng chịu thuế hiện tính thuế
- Dòng không chịu thuế ghi “No tax”
- Tổng thuế tóm tắt dưới
- Tuân thủ báo cáo sales tax

Checkout offline
Phần tiêu đề “Checkout offline”Nếu không có internet:
- Checkout tiến hành bình thường
- Đơn lưu vào outbox queue
- Bill in với ghi chú “(Offline - đang đồng bộ)”
- Tự đồng bộ khi mạng trở lại
Trạng thái outbox:
- Xem đơn chờ trong Cài đặt → Dữ liệu local
- Đồng bộ tay: Bấm “Đồng bộ ngay”
- Lỗi đồng bộ → Thử lại hoặc liên hệ hỗ trợ
Luồng đặc biệt
Phần tiêu đề “Luồng đặc biệt”Đổi trả từ màn bán
Phần tiêu đề “Đổi trả từ màn bán”- Tìm đơn gốc (theo mã vạch hoá đơn hoặc khách)
- Mở modal chi tiết đơn
- Bấm “Đổi trả” → luồng đổi trả (xem Đổi trả)
Tiếp tục nháp
Phần tiêu đề “Tiếp tục nháp”- Bấm Drafts dưới giỏ
- Chọn nháp từ danh sách
- Dòng nháp nạp vào giỏ
- Sửa tiếp hoặc thanh toán
Sản phẩm tuỳ chỉnh (ad-hoc line)
Phần tiêu đề “Sản phẩm tuỳ chỉnh (ad-hoc line)”- Bấm Quick Add (icon dấu cộng) → “Sản phẩm tuỳ chỉnh”
- Nhập tên, giá, số lượng
- Chọn xử lý thuế
- Thêm vào giỏ
Phím tắt
Phần tiêu đề “Phím tắt”| Phím | Thao tác |
|---|---|
/ | Focus ô tìm |
Ctrl + P | Mở modal thanh toán |
F2 | Hoàn tất tiền mặt (trong modal) |
Escape | Xoá tìm / đóng modal |
Enter | Gửi tìm / xác nhận modal |
F3 | Focus tìm (thay thế) |
| Quét mã | Thêm sản phẩm vào giỏ |
Lỗi thường gặp
Phần tiêu đề “Lỗi thường gặp”Sản phẩm không thêm vào giỏ
Phần tiêu đề “Sản phẩm không thêm vào giỏ”Nguyên nhân: Kiểm tra tồn thất bại hoặc sản phẩm không active Cách xử lý: Kiểm tra trạng thái sản phẩm trong Hàng hoá, xác nhận tồn nếu bật theo dõi
Nút Thanh toán tắt
Phần tiêu đề “Nút Thanh toán tắt”Nguyên nhân:
- Giỏ trống
- Chưa chọn cửa hàng
- Chưa chọn quầy (cửa hàng nhiều quầy)
- Ca làm việc bắt buộc nhưng chưa mở
Cách xử lý: Xử lý điều kiện chặn, banner giải thích cần gì
Sai giá
Phần tiêu đề “Sai giá”Nguyên nhân: Chọn sai cửa hàng hoặc lệch bảng giá Cách xử lý: Kiểm tra bộ chọn cửa hàng, kiểm giá sản phẩm trong Dashboard → Catalog