pos.eapp.vn · Web App · Point of Sale
eApp POS — Point of Sale System
Phần mềm bán hàng đa cửa hàng cho F&B/bán lẻ. Đặt món qua QR code, quản lý doanh thu theo ca/ngày, phân quyền nhân viên thu ngân, in bill nhiệt.
Web AppF&B · RetailMulti-storeQR Order
Features
- QR code ordering — khách tự đặt món tại bàn, không cần nhân viên
- Quản lý đa cửa hàng: doanh thu, tồn kho, nhân viên từng chi nhánh
- Ca làm việc: mở ca, chốt ca, báo cáo doanh thu theo ca
- Phân quyền: Admin, Manager, Cashier
- In bill nhiệt, xuất báo cáo cuối ngày PDF/Excel
Stack & Tools
- Backend: Python · Django · REST API
- Frontend: JavaScript · Tailwind CSS · PWA
- Database: SQLite / PostgreSQL
- Tích hợp: Máy in nhiệt · QR Generator · Google Cloud
Kiến trúc & Quy trình hoạt động
Hệ thống POS bán hàng phân tán (Distributed POS) hỗ trợ hoạt động ngoại tuyến (Offline-First). Thiết bị thu ngân kết nối trực tiếp với bếp qua WebSocket thời gian thực, đồng thời gửi mã điều khiển in hóa đơn dạng nhị phân ESC/POS trực tiếp đến máy in hóa đơn thông qua cổng mạng LAN/Wi-Fi.
Customer Scans QR ➔ Creates Order ➔ WebSocket Server
⬇
Kitchen Screen Update ⬅ Realtime Broadcast ⬅ POS Cashier Interface
⬇
Raw ESC/POS Bytes sent ➔ Thermal Printer
Thiết kế Cơ sở dữ liệu
Thiết kế cơ sở dữ liệu quan hệ chặt chẽ nhằm đảm bảo tính toàn vẹn của dữ liệu doanh thu, hàng tồn kho và lịch sử ca làm việc của nhân viên thu ngân:
- Branch (id, name, address, phone)
- Shift (id, branch_id, cashier_id, start_time, end_time, total_revenue)
- Product (id, category_id, name, barcode, price)
- Inventory (branch_id, product_id, stock_quantity)
- Order (id, shift_id, order_type [DineIn|TakeAway], total_amount, status)
- OrderItem (id, order_id, product_id, quantity, discount_rate)
Thách thức & Giải pháp kỹ thuật
- Thách thức: Cửa hàng bị mất kết nối Internet đột ngột trong giờ cao điểm làm thu ngân không thể ghi nhận đơn hàng và in hóa đơn thanh toán lên hệ thống Cloud.
- Giải pháp: Thiết kế mô hình lưu trữ Offline-First lưu đơn hàng trực tiếp trên LocalStorage / IndexedDB của trình duyệt dưới dạng hàng đợi (sync queue) và tự động đồng bộ hóa lên Cloud khi có kết nối trở lại thông qua Background Sync API.
Thành quả đạt được
- Hệ thống vận hành trơn tru tại các cơ sở bán lẻ thực tế, giúp giảm thiểu 30% thời gian chờ đợi thanh toán và gọi món tại bàn của khách hàng.
- Đảm bảo tính toàn vẹn dữ liệu doanh thu 100% không bị sai lệch số liệu ca.