HomeFAQ

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 is a free, open-source retail automation ecosystem. It consists of three applications:
  • 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.PyPOS, SaleFlex.OFFICE, SaleFlex.GATE, and SaleFlex.KITCHEN are free and open-source under AGPLv3. SaleFlex.mPOS is a commercial Android product — contact saleflex.pro for licensing.
Retail stores, fast food / quick-service restaurants, café chains, service businesses, and multi-location chains. The architecture is designed to scale from a single register to a full enterprise retail operation.
PyPOS, OFFICE, GATE, and KITCHEN are published under AGPLv3 (GNU Affero General Public License v3). AGPLv3 grants you the right to use, modify, and redistribute the software — including for commercial use — provided that any modified version you deploy over a network also makes its source code available under AGPLv3. No subscriptions, no hidden fees, no feature gates for these components.

SaleFlex.mPOS is a commercial product. Its source code is not publicly released. Contact saleflex.pro for pricing and licensing terms.
saleflex.dev is the ecosystem-level information site — what each app does, how they work together, architecture, and roadmap. Public repository summaries and setup notes live in each repository's 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.
No. Three PyPOS deployment modes let you adopt incrementally:

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.

PyPOS v1.0.0b8 is in active beta. Core POS — sales, multi-payment, inventory, loyalty, campaigns, closure, offline outbox — is operational and used in pilot deployments.

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.
PyPOS uses SQLAlchemy 2.0 which supports: SQLite (default), PostgreSQL, MySQL, Oracle, MSSQL, Firebird, and Sybase.

SQLite is recommended for evaluation. PostgreSQL is recommended for production deployments.
PyPOS: Python 3.13+  ·  OFFICE: Python 3.13+  ·  GATE: Python 3.12+
mPOS targets Android with Kotlin 2.0 — no Python required.

Architecture and features

Yes. PyPOS is offline-first by design. All operations complete against local SQLite with no network call. In office mode, 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.
Yes. GATE manages the Company → Store → Terminal hierarchy and scopes all data by those boundaries. OFFICE supports multi-terminal store management. PyPOS identifies itself by POS number and registers with the store and company via GATE.
Two modes:

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.
Tiers: Bronze / Silver / Gold / Platinum with earn multipliers.
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.

FeatureSaleFlexTypical SaaS POSLegacy On-Premise
License costFree — AGPLv3 (mPOS: commercial)Monthly subscriptionLarge upfront + maintenance
Source code accessFullPartial
Offline-firstYes (local SQLite)LimitedYes
Self-hostedYesYes
Multi-storeYes (GATE)YesVaries
Loyalty programsBuilt-in, tieredOften paid add-onVaries
Campaign engine5 types built-inOften paid add-onVaries
Python / open stackYes
Restaurant table modePlannedYesVaries

Setup, ERP, and contribution

Yes. GATE acts as the integration gateway. PyPOS ships base connector stubs (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.
Open issues, submit pull requests, improve documentation, or test and report findings. Crypto donation addresses are listed in each repository's README for financial support.
Created and primarily maintained by Ferhat Mousavi (@ferhat-mousavi) at Mousavi.Tech.
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 Support

Custom Development

ERP adapters, hardware drivers, custom campaigns, or additional POS modules built to specification.

Get a Quote

Repositories 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.PyPOS

SaleFlex.OFFICE

Back-office + Flask REST server for terminals — PySide6, 12 modules. AGPLv3

SaleFlex/SaleFlex.OFFICE

SaleFlex.GATE

Central API hub — Django 6.0 + DRF, multi-tenant, GateUser identity. AGPLv3

SaleFlex/SaleFlex.GATE

SaleFlex.KITCHEN

Kitchen display system for restaurant order workflows. AGPLv3

SaleFlex/SaleFlex.KITCHEN

SaleFlex.mPOS

Android mobile POS — Kotlin 2.0, Jetpack Compose, OFFICE REST integration. Commercial

saleflex.pro — Licensing