Bỏ qua để đến nội dung

FAQ — Offline & đồng bộ

import { Aside } from ‘@astrojs/starlight/components’;

Bán offline trên desktop nhưng trình duyệt không

Phần tiêu đề “Bán offline trên desktop nhưng trình duyệt không”

Đúng như thiết kế. Outbox (hàng đợi đơn) là tính năng chỉ có trên Vendor Desktop (Electron). Trình duyệt:

  • Không có SQLite local.
  • Không có outbox.
  • Mỗi đơn tạo ra phải gọi API trực tiếp — mất mạng = không đặt được.

Khi nào dùng gì:

Môi trườngOffline OK?
Vendor Desktop (Electron)✅ Có — SQLite + outbox
Trình duyệt vendor web❌ Không — cần mạng để đặt đơn

Xem: Offline & dữ liệu local.

Nguyên nhân: Khi mạng chập chờn, outbox gửi đơn 2 lần. Hệ thống cố gắng dedupe bằng client_order_id nhưng đôi khi thất bại.

Cách xử lý:

  1. Không bấm “Thanh toán” lần hai khi spinner đang quay — đó là dấu hiệu đơn đã vào outbox.
  2. Khi mạng lên, kiểm tra Đơn hàng với cùng client_order_id hoặc mã hiển thị trên bill.
  3. Nếu thực sự trùng, báo chủ cửa hàng để hủy 1 đơn từ dashboard.

Phòng tránh:

  • Đợi spinner kết thúc (2–5 giây) trước khi bấm gì tiếp theo.
  • Nếu nghi ngờ, mở Đơn hàng kiểm tra đơn vừa tạo trước khi bán tiếp.

Cách xử lý (2 phương án):

Phương ánCách làmKhi nào dùng
Refresh nhẹKéo xuống ở lưới sản phẩm, hoặc đổi cửa hàng rồi đổi lạiNghi ngờ catalog chưa sync
Reset cacheCài đặt → Dữ liệu local → Đặt lại cacheCache lỗi nặng, nhiều sản phẩm sai

Lưu ý: Reset cache sẽ tạo bản sao lưu trong thư mục user data. Có thể khôi phục nếu cần.

Xem: Đặt lại dữ liệu local.

Phân loại:

Loại nhápLưu ở đâuMất khi nào
Nháp server (submit_as: draft)Database trên serverBị hủy bởi cashier khác, hoặc bị xóa từ dashboard
Nháp local có tênSQLite trên Vendor DesktopClear browser data, reset DB local, hoặc cài lại app

Khôi phục:

  • Nháp server: hỏi chủ cửa hàng restore từ log.
  • Nháp local: không thể khôi phục sau khi reset. Bài học: đặt tên có ý nghĩa cho nháp quan trọng (ví dụ: “Bàn 5 - Anh Tuấn”).

Xem: Nháp & tab đơn.

Nguyên nhân: Reset cache xoá SQLite catalog. Một số prefs (như sản phẩm ghim, thứ tự tab) lưu cùng DB local.

Cách xử lý:

  1. Phòng tránh: trước khi reset, vào Cài đặt → Dữ liệu local → click “Sao lưu” để tạo snapshot.
  2. Khôi phục: cùng trang → “Khôi phục từ sao lưu” → chọn file gần nhất.

Xem: Đặt lại dữ liệu local.

Gửi chủ cửa hàng hoặc support@lionpos.com.