Sapo POS Offline Guide

Hướng dẫn bán hàng Offline trên POS

Tài liệu giúp đội ngũ sale, support và khách hàng hiểu nhanh: khi nào POS chuyển offline, offline làm được gì, không hỗ trợ gì, cách đồng bộ dữ liệu và cách xử lý lỗi phổ biến.

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.

📴 Tự chuyển khi mất mạng

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.

🕹️ Có thể bật thủ công

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.

💾 Lưu tạm trên thiết bị

Đơ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.

Dấu hiệu nhận biết: POS hiển thị popup thông báo chuyển chế độ bán offline và icon wifi màu đỏ gạch chéo.

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
Điều kiện
Chi tiết kỹ thuật
Hành động nếu không đáp ứ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.

Cần mở POS và tải dữ liệu trước khi mất mạng.

Trình duyệt phải hỗ trợ và không bị chặn Cache

Tính năng Offline dựa vào công nghệ gọi là Service Worker:
  • 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.
Kiểm tra lại trình duyệt, cache và chế độ duyệt web trước khi bán offline.

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.

Để dùng offline ổn định, bạn cần chủ động ngắt kết nối (rút dây hoặc tắt Wifi) để hệ thống chuyển trạng thái ngay lập tức. Hạn chế F5 khi màn hình đang loading.
2.2 Chuyển offline do sự cố hệ thống
Điều kiện
Chi tiết kỹ thuật

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

Màn POS liên tục chạy để kiểm tra tính ổn định của hệ thống. Khi phát hiện sự cố ở một trong các service sau, màn POS sẽ 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 được

Chi 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ợ
Câu tư vấn ngắn gọn cho sale/support

“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.

1
Tự động đồng bộ

(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.

2
Đồng bộ theo tiến trình

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.

3
Đồng bộ thủ công

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ả.

Kiểm tra đồng bộ thành công: Vào mục Danh sách đơn hàng chưa đồng bộ → không còn đơn hàng nào chưa đồng bộ. Vào module danh sách đơn hàng trong Omni kiểm tra lại các đơn hàng có mã SOF (là các mã đơn offline) xem đã đầy đủ chưa.
Nếu đồng bộ thất bại: Đơn hàng chưa đồng bộ sẽ ở trạng thái “Đồng bộ thất bại” — màu đỏ; hệ thống thông báo nguyên nhân → xem nguyên nhân lỗi gây đồng bộ thất bại là gì để xử lý rồi bấm đồng bộ lại.

5. Lỗi phổ biến & cách xử lý

ERR-01Phân quyền

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.

Cách xử lý: Chủ cửa hàng vào Cấu hình → Quản lý nhân viên → Chọn nhân viên → Phân quyền đơn hàng → Chọn Đóng gói và giao hàng.
ERR-02Tồn kho

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.

Cách xử lý: Sau khi online, vào sản phẩm → tích cho phép bán âm → đồng bộ lại. Nếu khách không muốn bán âm thì bỏ tích sau khi đồng bộ thành công.

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:

  1. 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.
  2. 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.
  3. 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ý:

  1. 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.
  2. 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.
  3. 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.