1. Giới thiệu về bán offline
Bán offline là chế độ hoạt động của kênh POS khi thiết bị không có kết nối internet ổn định hoặc hệ thống gặp sự cố. Dữ liệu giao dịch được lưu tạm trên thiết bị và tự động đồng bộ khi có mạng trở lại.
Khi hệ thống phát hiện sự cố hoặc thiết bị mất kết nối, POS có thể tự chuyển sang chế độ bán offline.
Khi mạng chập chờn, người dùng có thể chủ động chuyển sang offline để tránh lỗi giữa chừng.
Đơn offline được lưu local và đưa vào danh sách chờ đồng bộ khi mạng hoạt động trở lại.
2. Điều kiện tiên quyết để dùng POS Offline
Tính năng Offline chỉ hoạt động ổn định khi POS đã có dữ liệu cần thiết trong bộ nhớ tạm và trình duyệt không chặn cơ chế lưu cache. Bấm vào từng nhóm bên dưới để xem chi tiết khi cần.
2.1 Chuyển offline do mất mạng
Phải đăng nhập và tải xong dữ liệu khi đang có mạng
Bạn phải truy cập vào màn hình bán hàng (POS) ít nhất một lần khi mạng ổn định để trình duyệt tải được bộ khung giao diện và đồng bộ danh sách sản phẩm, giá cả, khách hàng vào bộ nhớ tạm (Local Storage). Nếu bạn chưa mở trang POS mà mạng đã mất, tính năng Offline sẽ không hoạt động.
Trình duyệt phải hỗ trợ và không bị chặn Cache
- Không dùng trình duyệt ẩn danh.
- Không cài đặt tự động xóa lịch sử.
- Sử dụng trình duyệt hiện đại: ưu tiên Google Chrome hoặc Cốc Cốc phiên bản mới nhất để tương thích tốt nhất với Sapo.
Trạng thái mạng phải là “Disconnected” (Mất kết nối hoàn toàn)
Hệ điều hành phải báo trạng thái No Internet. Nếu mạng chập chờn (kiểu có sóng Wifi nhưng không có dữ liệu), trình duyệt sẽ liên tục cố gắng gửi yêu cầu lên máy chủ và bị treo.
2.2 Chuyển offline do sự cố hệ thống
Màn POS được xây dựng cơ chế chủ động phát hiện sự cố từ hệ thống để chủ động chuyển sang offline
- Checkout đơn hàng
- Khách hàng
- Thanh toán
- Phương thức thanh toán
- Phiên bản sản phẩm
- Kho
3. Offline hỗ trợ được gì và chưa hỗ trợ được gì?
Bảng dưới đây giúp bạn nắm nhanh những nghiệp vụ cửa hàng vẫn có thể thực hiện khi mất mạng, và những phần cần chờ có kết nối để xử lý tiếp.
Chi tiết nghiệp vụ offline dùng được
🧾 Tạo đơn hàng mới
Thêm sản phẩm, số lượng, ghi chú. Đơn được lưu tạm trên thiết bị và nằm trong danh sách chờ đồng bộ.
Dùng được💵 Thu tiền mặt và các phương thức thanh toán thủ công
Nhập số tiền khách đưa hoặc ghi nhận các phương thức thanh toán thủ công, tính tiền thừa và hoàn tất đơn ngay cả khi không có internet.
Dùng được🖨️ In hóa đơn bán hàng
In bill qua máy in Bluetooth hoặc máy in kết nối cục bộ (USB/LAN nội bộ). Không cần internet để in.
Dùng được➕ Thêm sản phẩm tùy chỉnh
Chỉ thêm được sản phẩm tùy chỉnh vào đơn đang bán, không tạo mới sản phẩm vào danh mục chính.
Có giới hạn🏷️ Giảm giá thủ công
Nhân viên có quyền có thể giảm giá theo phần trăm hoặc số tiền cố định trực tiếp trên đơn.
Dùng được🔎 Tìm sản phẩm / khách hàng
Tìm theo tên, barcode hoặc dữ liệu đã được lưu cache trước đó trên thiết bị.
Dùng được👤 Thêm khách hàng mới
Có thể thêm mới thông tin khách hàng khi tạo đơn offline để lưu cùng giao dịch và đồng bộ sau khi có mạng.
Dùng được💳 Bán theo bảng giá
Hệ thống vẫn áp dụng giá bán theo bảng giá đã có trong dữ liệu cache của POS.
Dùng đượcChi tiết các nghiệp vụ offline không hỗ trợ
📲 Không hỗ trợ các phương thức thanh toán tích hợp: VietQR, VNPay, MoMo, ZaloPay,...
Cần xác thực real-time với cổng thanh toán.
Không hỗ trợ🧑💼 Quản lý ca bán hàng
Khi tạo đơn offline không check ca.
Khi online: Trước khi đơn hàng được đồng bộ sẽ yêu cầu mở ca (nếu chưa có ca nào đang mở). Đơn hàng khi đồng bộ lên hệ thống sẽ được ghi nhận vào ca đang mở ở chi nhánh đồng bộ đơn, doanh thu và thanh toán ghi nhận theo tài khoản đồng bộ đơn.
Không hỗ trợ🧾 Phát hành hóa đơn điện tử
Cần ký số và gửi dữ liệu tới cơ quan thuế qua API nên không thể xử lý khi mất mạng.
Thay thế: In bill tạm, phát hành hóa đơn điện tử sau khi đơn đã đồng bộ online.
Không hỗ trợ📦 Tạo sản phẩm mới vào danh mục
Tạo sản phẩm mới cần ghi nhận và đồng bộ dữ liệu với hệ thống trung tâm.
Thay thế: Dùng sản phẩm tùy chỉnh trong đơn hoặc tạo sản phẩm mới khi có mạng.
Không hỗ trợ📊 Báo cáo cuối ngày / dashboard
Báo cáo cần dữ liệu tổng hợp từ server, nên dữ liệu chỉ đầy đủ sau khi đồng bộ.
Thay thế: Xem báo cáo sau khi hệ thống online và các đơn offline đã đồng bộ thành công.
Không hỗ trợ🔍 Tra cứu đơn hàng, tra cứu tồn kho, đổi trả hàng, chỉnh sửa giá, cấu hình
Các nghiệp vụ này cần kết nối hệ thống để lấy dữ liệu mới nhất, kiểm tra đơn gốc, tồn kho, quyền thao tác và đồng bộ thay đổi cấu hình.
Không hỗ trợ🔐 Đăng nhập tài khoản mới / đổi mật khẩu
Các thao tác xác thực tài khoản cần kết nối tới server.
Thay thế: Đăng nhập trước khi vào khu vực mất mạng và không đổi mật khẩu trong thời gian offline.
Không hỗ trợ🎁 Loyalty: tích điểm, đổi điểm
Điểm tích của khách hàng sẽ được cộng sau khi đồng bộ đơn offline thành công.
Không hỗ trợ🎟️ Áp dụng các chương trình khuyến mãi tự động, mã khuyến mãi vào đơn hàng
Cần server xác thực điều kiện, số lần dùng và tính hợp lệ của chương trình/mã khuyến mãi.
Thay thế: Áp giảm giá thủ công nếu được phép.
Không hỗ trợ💰 Sổ quỹ
Cần dữ liệu hệ thống để ghi nhận và đối soát thu chi chính xác.
Không hỗ trợ📒 Hiển thị công nợ khách hàng
Dữ liệu công nợ cần truy vấn hệ thống để đảm bảo số liệu hiện tại.
Ghi nhận: Khi online, đơn chưa thanh toán hoặc thanh toán thiếu vẫn được ghi nhận vào công nợ sau đồng bộ.
Không hỗ trợ“Khi mất mạng, cửa hàng vẫn tạo đơn, thanh toán thủ công và in bill bình thường. Một số phần cần kết nối mạng để xử lý như thanh toán VietQR, hóa đơn điện tử… sẽ được thực hiện sau khi có mạng trở lại.”
4. Cơ chế đồng bộ dữ liệu offline → online
Khi có mạng trở lại, dữ liệu đơn hàng offline sẽ được đồng bộ theo 1 trong 3 cách sau.
(Thông dụng nhất) Hệ thống tự động đồng bộ đơn hàng khi chuyển từ bán hàng offline sang online.
Trong trường hợp đơn hàng chưa được đồng bộ ngay lập tức khi có mạng, đơn sẽ được đồng bộ theo tiến trình đồng bộ của phần mềm, chạy mỗi 30 phút 1 lần.
Khi chuyển sang bán hàng online, vào mục Danh sách đơn hàng chưa đồng bộ → chọn Đồng bộ tất cả.
5. Lỗi phổ biến & cách xử lý
Mã lỗi:
[{"message":"access_denied UserId 836236 does not have permission manage_fulfillments at locationId 872465","key":"unknown","code":"unknown","field Path":"unknown"}]
Nguyên nhân: Tài khoản không được phân quyền manage_fulfillments / đóng gói.
Mã lỗi:
[{"message":"Available of inventoryItemId 207466636 at locationId 527076 is out of stock.","fieldPath":"base","code":"inventory_level_out_of_stock_rule","key":"base.inventory_level_out_of_stock_rule"}]
Nguyên nhân: Sản phẩm không còn hàng tại kho tương ứng. Sản phẩm không cho phép bán âm nhưng đã bị bán âm khi offline.
6. FAQ - Câu hỏi thường gặp
Q1. Mất mạng rồi thì làm thế nào để vào được kênh POS bán hàng?
Khi onboard khách hàng POS, cần thực hiện lúc vẫn có mạng: tạo shortcut màn POS vào máy tính và duy trì đăng nhập tài khoản. Nếu khách đã đăng xuất, cơ chế offline không áp dụng được.
Ấn vào dấu 3 chấm góc trên cùng bên phải của trình duyệt → chọn Cast, save, and share → chọn Create Shortcut.
Q2. Vì sao có mạng rồi nhưng vẫn ở chế độ offline?
Hệ thống đôi khi không tự chuyển online được. Người dùng có thể chuyển thủ công sang bán online.
Q3. Tại sao không thể dùng MoMo/thẻ khi offline?
Các phương thức thanh toán qua cổng payment như MoMo, ZaloPay, thẻ ngân hàng cần kết nối internet real-time để xác thực giao dịch với ngân hàng/ví điện tử. Vì vậy không thể thực hiện ngoại tuyến.
Q4. Có thể áp khuyến mãi hoặc mã giảm giá khi offline không?
KHÔNG áp dụng được mã khuyến mãi/voucher cần xác thực từ server. Tuy nhiên, nhân viên có thẩm quyền CÓ THỂ áp giảm giá thủ công (% hoặc số tiền cố định) trực tiếp trên đơn hàng mà không cần mạng.
Q5. Khách mua lúc offline có được tính điểm tích lũy không?
Khi đơn hàng được đồng bộ lên hệ thống thì sẽ tính điểm tích lũy theo cơ chế của hệ thống.
Q6. Khách mua offline muốn xuất hóa đơn điện tử thì xử lý thế nào?
Offline chưa hỗ trợ phát hành hóa đơn điện tử. Sau khi đơn đồng bộ lên hệ thống, vào module đơn hàng → chi tiết đơn offline → yêu cầu hóa đơn để xuất hóa đơn điện tử.
Q7. Đơn offline chưa thanh toán hoặc thanh toán một phần có ghi nhận công nợ không?
Có. Khi hệ thống online trở lại và đơn được đồng bộ, đơn chưa thanh toán hoặc thanh toán thiếu vẫn được ghi nhận vào công nợ khách hàng.
Q8. Vì sao mất mạng rồi mà hệ thống vẫn không tự động chuyển offline?
Thông thường hệ thống sẽ tự động chuyển sang offline khi không có mạng.
Có 1 số nguyên nhân dẫn đến không chuyển được sang offline:
- Dữ liệu chưa kịp lưu vào Local Storage: nếu bạn vừa mở máy lên, chưa kịp load danh sách sản phẩm thì bản sẽ không có gì để hiển thị khi mất mạng.
- Trạng thái “Mất mạng giả” (lỗi DNS hoặc Wifi yếu): Máy tính của bạn vẫn hiển thị biểu tượng Wifi (vẫn có kết nối tới Modem) nhưng Modem lại không có Internet. Sapo chỉ chuyển sang Offline khi trình duyệt nhận được tín hiệu “Disconnect” hoàn toàn từ hệ điều hành. Nếu tín hiệu chập chờn hoặc “có sóng nhưng không có mạng”, hệ thống sẽ rơi vào trạng thái chờ (Loading) vô tận để cố gắng gửi dữ liệu lên Server.
- Nhấn F5 (tải lại trang) khi đã mất mạng: Khi có mạng, trình duyệt tải dữ liệu từ Server về. Khi mất mạng, trình duyệt sẽ dùng dữ liệu “nằm chờ” trong bộ nhớ đệm (Cache). Nếu bạn nhấn F5 hoặc load lại trang lúc không có mạng, trình duyệt sẽ cố gắng kết nối với Server để lấy dữ liệu mới. Vì không có mạng, nó sẽ trả về trang báo lỗi “Không có kết nối Internet” (hình con khủng long). Lúc này, chế độ Offline chính thức bị vô hiệu hóa.
Cách xử lý:
- Luôn đảm bảo bạn đã đăng nhập và tải xong danh mục sản phẩm khi có mạng ổn định trước khi bắt đầu ca làm việc.
Lưu ý: Bản Web lưu dữ liệu bán hàng tạm thời vào Local Storage của trình duyệt. Nếu bạn cài đặt trình duyệt tự động xóa dữ liệu khi đóng hoặc dùng Tab ẩn danh, chế độ Offline sẽ không bao giờ hoạt động. - Bạn hãy chủ động ngắt kết nối Wifi hoặc rút dây mạng ra khỏi máy tính. Khi máy tính xác nhận hoàn toàn “No Internet”, trình duyệt sẽ kích hoạt Service Worker (trình chạy ngầm của Sapo) để chuyển sang giao diện bán hàng offline.
- Nếu lỡ F5 mà bị ra màn hình trắng: tạm thời phát 5G từ điện thoại cho máy tính truy cập 1 vài phút, chỉ cần qua được màn trắng, sau đó có thể thao tác chuyển sang offline. Hoặc chuyển qua tạo đơn bằng mobile hoặc ghi chép lại chờ khi có mạng ổn định, bạn vào phần mềm và tạo đơn bù để trừ kho và lưu doanh thu.
Q9. Bán offline có áp dụng được bảng giá không?
Có. Offline vẫn áp dụng bảng giá như khi bán online.