Open retail systems should be
offline-ready, auditable, and modular
Modern retailers need checkout, back-office control, and central sync without turning every store into a cloud dependency. SaleFlex is one implementation of that model: PyPOS, OFFICE, GATE, KITCHEN, and mPOS as separable layers.
What is SaleFlex?
A POS ecosystem is more than a sale screen. It needs a local checkout runtime, a store management layer, and a central integration boundary. SaleFlex maps those responsibilities into independently deployable components.
Three Growth Stages
Start with a single terminal, add a store-level back office, then introduce a central hub for multi-store coordination. Three operating modes: standalone, office-connected, and GATE-connected.
Offline-First by Architecture
Sales, payments, and inventory never pause for a connectivity problem. Every transaction is persisted locally in SQLite and pushed to the back-office or cloud when the network returns.
Source-Available and Auditable
AGPLv3 license. Full source code on GitHub. No black-box firmware, no vendor dependency for security patches. The roadmap evolves publicly with community input.
Modular Adoption
Start with PyPOS alone. Add OFFICE when you need store management. Enable GATE when multi-store central APIs and ERP integration become a requirement. Each layer is independently deployable.
REST/JSON Throughout
PyPOS ↔ OFFICE ↔ GATE all communicate over the same REST/JSON protocol. ERP, loyalty platforms, and payment gateways plug into the same clean adapter interfaces.
Role-Aware Access
Cashier, manager, and admin roles are enforced at the form level. GATE adds per-company and per-store RBAC scoping for multi-tenant operations.
Ecosystem Components
Five focused components, each owning a distinct layer of the retail stack. PyPOS, OFFICE, GATE, and KITCHEN are AGPLv3; mPOS is commercial.
Kitchen order display and preparation workflow for restaurant scenarios. Registered per store as a terminal profile in GATE. Designed to connect to the same REST API surface as PyPOS.
Android companion to PyPOS built with Kotlin + Jetpack Compose. Landscape-first tablet UI, Room local database, Retrofit-based OFFICE integration. Commercial product — source code is not publicly released. Contact saleflex.pro for licensing.
How POS, back-office and cloud sync work together
A layered architecture — from the store floor to a central hub — with no single point of failure.
Store Floor
Cashiers run sales, payments, and inventory on PyPOS or mPOS. Fully operational offline on local SQLite / Room.
Store Manager
OFFICE distributes products, campaigns, and pricing to terminals via its built-in Flask REST API. Acts as local hub when internet is down.
Central Hub
GATE manages Company → Store → Terminal hierarchy with GateUser universal identity and versioned REST APIs for all clients.
Integrations
ERP, loyalty, and payment gateways connect through GATE's adapter framework — keeping PyPOS and mPOS thin and vendor-agnostic.
Core Capabilities
Everything required to run a modern retail operation — operational in PyPOS today.
Multi-Payment
Cash, card, mobile, loyalty bonus, on-account, bank transfer, cheque — split-tender supported.
Inventory Control
Real-time stock, goods receipt, adjustment, and movement history per warehouse location.
Loyalty Programs
Bronze / Silver / Gold / Platinum tiers. Earn and redeem points at checkout with full audit trail and policy caps.
Campaign Engine
5 campaign types: basket, product, time-based, Buy-X-Get-Y, payment-method. Coupon activation with usage limits and stacking rules.
Customer Management
Phone-normalized identity, activity history, point movements, segmentation, and walk-in placeholder.
End-of-Day Closure
ESC/P Z-reports with country-specific templates for Turkey (E-Fatura), USA state tax, and EU VAT.
Offline Outbox Pattern
Zero data loss. Transactions queue locally as SyncQueueItem and flush automatically when OFFICE or GATE becomes reachable.
Dynamic Form Runtime
Database-driven form definitions. Virtual keyboard, NumPad (4 modes), tab controls, and PLU buttons — all configurable without code changes.
Deployment Modes
Set app.mode in settings.toml. Start standalone, graduate to office or gate as the business grows.
standalone
PyPOS only. No network dependency. Operates entirely on a local SQLite database. Ideal for a single register, pop-up store, or initial evaluation. Built-in seed data starts automatically.
office
PyPOS connects to SaleFlex.OFFICE over LAN REST. First startup seeds from OFFICE. Every closed transaction and end-of-day closure is pushed to OFFICE. Post-closure master-data refresh automatically pulls updated products, prices, and campaigns.
gate
PyPOS connects directly to SaleFlex.GATE REST APIs. Multi-tenant central management, centralized campaign/loyalty engine, ERP and payment adapters. Best for multi-store chains.
How SaleFlex compares
A quick look at what matters when choosing a retail platform.
| Feature | SaleFlex | Typical SaaS POS | Legacy On-Premise |
|---|---|---|---|
| License cost | AGPLv3 open source (mPOS commercial) | Monthly subscription | Large upfront fee |
| Source code access | Full (AGPLv3) | — | Partial |
| Offline-first operation | Yes (local SQLite) | Limited | Yes |
| Self-hosted | Yes | — | Yes |
| Multi-store ready | Yes (via GATE) | Yes | Varies |
| Android mobile POS | Yes (mPOS, commercial) | Yes | Varies |
| ERP integration | Adapter stubs, roadmap | Varies | Usually yes |
| Restaurant / table mode | Planned (KITCHEN) | Yes | Varies |
| Python / open stack | Yes | — | — |
GitHub Links
Source repositories, roadmap status, and public issue tracking live on GitHub. Internal technical material is no longer linked from the public site.
SaleFlex.PyPOS
Python + PySide6 touch POS with offline-first local operation, campaigns, loyalty, inventory, and OFFICE/GATE integration.
SaleFlex.OFFICE
PySide6 back-office management for products, campaigns, customers, loyalty, warehouses, terminals, and transaction review.
SaleFlex.GATE
Django + DRF central hub for company, store, terminal, identity, portal, and integration gateway scenarios.
Commercial Support
SaleFlex open-source components are free. The team behind SaleFlex is available for professional support, custom development, and mPOS commercial licensing.
Professional Support
Priority support contracts, deployment assistance, and custom integration work through Mousavi.Tech.
Custom Development
ERP adapters, hardware drivers, custom campaigns, or additional POS modules built to specification.
mPOS Licensing
SaleFlex.mPOS Android is a commercial product. Production deployments require a valid commercial licence.
Ready to run your own retail stack?
Clone the repository, follow the Getting Started guide, and evaluate the local-first POS workflow on your own machine before adding back-office or central sync.