Frequently Asked Questions
Everything you need to know about SaleFlex — licensing, architecture, application selection, production readiness, and how to contribute.
About SaleFlex
Core questions about what SaleFlex is and who it's for.
- SaleFlex.PyPOS — touch-screen POS for store-floor checkout operations.
- SaleFlex.OFFICE — desktop back-office management for managers and administrators.
- SaleFlex.GATE — Django-based central API hub for multi-tenant, multi-store orchestration.
SaleFlex.mPOS is a commercial product. Its source code is not publicly released. Contact saleflex.pro for pricing and licensing terms.
README.md on GitHub.
Choosing the right application
Which component to start with and how the deployment profiles work.
- Start with PyPOS for checkout operations — most complete component, best evaluation entry point.
- Use OFFICE for back-office management (products, campaigns, customers, terminals).
- Use GATE for building a multi-store central API or connecting ERP / loyalty / payment systems.
- Use KITCHEN for kitchen display and order preparation workflow in restaurant scenarios.
- mPOS is a commercial Android companion to PyPOS — contact saleflex.pro for access.
Standalone: PyPOS only — local SQLite, no network, no config needed.
Office mode: PyPOS + OFFICE — LAN sync, store-level coordination, post-closure master-data refresh, works without internet.
Gate mode: PyPOS + GATE — multi-tenant APIs, central campaign/loyalty, best for multi-store chains.
Add KITCHEN for restaurant table workflows. mPOS supplements PyPOS with an Android checkout device.
Status and databases
Current maturity levels and supported infrastructure.
OFFICE v0.1.0a2 is alpha. All 12 management modules are implemented and the embedded Flask REST server (for PyPOS terminal coordination) is production-quality.
GATE v0.1.0a1 is alpha. Portal, company/store/terminal tenancy, and Django Admin are in place. REST API endpoints are under active development.
mPOS v1.0.0-alpha1 is a commercial alpha. Core checkout, closure, and OFFICE integration are operational.
Verify the latest status in each GitHub repository before planning a production rollout.
SQLite is recommended for evaluation. PostgreSQL is recommended for production deployments.
mPOS targets Android with Kotlin 2.0 — no Python required.
Architecture and features
OfficePushWorker (QThread) flushes transactions and closures to OFFICE over LAN when reachable.
In gate mode, SyncWorker (QThread) pushes to GATE and pulls product/campaign updates.
Both workers use the SyncQueueItem outbox — zero data loss. mPOS uses the same pattern via SyncQueueEntity in Room.
Local engine (default):
CampaignService runs in-process in PyPOS. Supports Basket Discount, Product Discount, Time-based, Buy-X-Get-Y, and Payment-method campaigns.GATE-managed (optional): When
gate.manages_campaign = true, PyPOS sends a cart snapshot to GATE and applies returned discount proposals centrally.
Earning:
LoyaltyEarnService calculates points from document total, line items, or category/product rules after each completed sale.Redemption: Customer enters point amount, presses BONUS.
LoyaltyRedemptionService applies a LOYALTY discount with policy caps.Audit: Full point movement history on the Customer Detail panel.
How SaleFlex compares
A quick reference for the most common comparison questions.
| Feature | SaleFlex | Typical SaaS POS | Legacy On-Premise |
|---|---|---|---|
| License cost | Free — AGPLv3 (mPOS: commercial) | Monthly subscription | Large upfront + maintenance |
| Source code access | Full | — | Partial |
| Offline-first | Yes (local SQLite) | Limited | Yes |
| Self-hosted | Yes | — | Yes |
| Multi-store | Yes (GATE) | Yes | Varies |
| Loyalty programs | Built-in, tiered | Often paid add-on | Varies |
| Campaign engine | 5 types built-in | Often paid add-on | Varies |
| Python / open stack | Yes | — | — |
| Restaurant table mode | Planned | Yes | Varies |
Setup, ERP, and contribution
BaseERPConnector, BasePaymentGateway, BaseCampaignConnector). Concrete adapters for SAP, Oracle, Logo, iyzico, PayTR, Stripe, and Nets are on the roadmap. Extend the base classes for custom integrations.
Contact: info@mousavi.tech · Support: support@mousavi.tech
Professional services
SaleFlex is free and open-source. If your organization needs professional assistance, the team behind SaleFlex is available.
Priority Support
Support contracts, deployment assistance, and custom integration work available through Mousavi.Tech.
Contact SupportCustom Development
ERP adapters, hardware drivers, custom campaigns, or additional POS modules built to specification.
Get a QuoteRepositories and documentation
Public SaleFlex source repositories and README files are available on GitHub.
SaleFlex.PyPOS
Touch POS — Python 3.13, PySide6, SQLAlchemy 2.0, offline-first. AGPLv3
SaleFlex/SaleFlex.PyPOSSaleFlex.OFFICE
Back-office + Flask REST server for terminals — PySide6, 12 modules. AGPLv3
SaleFlex/SaleFlex.OFFICESaleFlex.GATE
Central API hub — Django 6.0 + DRF, multi-tenant, GateUser identity. AGPLv3
SaleFlex/SaleFlex.GATESaleFlex.KITCHEN
Kitchen display system for restaurant order workflows. AGPLv3
SaleFlex/SaleFlex.KITCHENSaleFlex.mPOS
Android mobile POS — Kotlin 2.0, Jetpack Compose, OFFICE REST integration. Commercial
saleflex.pro — Licensing