Home / Applications

SaleFlex Applications

Three focused applications, each owning a distinct layer of the retail stack. Use one, two, or all three — the ecosystem is designed for incremental adoption.

SaleFlex.PyPOS

Touch-Screen Point-of-Sale Application

v1.0.0b7 Beta  |  Active Development

SaleFlex.PyPOS is a modern, Python-based POS system for retail businesses, restaurants, and service-oriented establishments. Built with PySide6 (Qt), it offers a touch-optimised interface, cross-platform compatibility, and a rich set of operational capabilities — all running against a local database with zero mandatory network dependency.

Key Capabilities

Multi-Payment Processing

Cash, credit/debit card, mobile, prepaid, on-account, bank transfer, loyalty bonus. Split tenders until balance reaches zero.

Smart NumPad — 4 Modes

Barcode/PLU lookup, inline quantity, X multiplier pre-set, and payment amount entry. PLU inquiry shows price and per-warehouse stock.

Campaign Engine

Basket discount, product discount, time-based, Buy-X-Get-Y, and payment-method promotions. Coupon activation with global and per-customer usage limits.

Loyalty Programs

Tiered membership (Bronze / Silver / Gold / Platinum). Earn points on purchase, redeem at payment (BONUS button). Full audit trail per customer.

Customer Management

Search by name, phone, or email. Assign customer to an active sale via FUNC → CUSTOMER. Activity history and point movement tabs.

Inventory Control

Real-time stock deduction on sale, low-stock alerts, goods receipt, manual adjustment, and movement history — per warehouse location.

End-of-Day Closure

Session-based closure tracking, Z-report on ESC/P printer, country-specific closure templates (Turkey e-fatura, USA state tax, EU VAT).

Item Discount & Markup

Dual-function DISC % / MARK % and DISC AMT / MARK AMT buttons. Dialog with embedded keypad. Line cancelled and re-inserted with recalculated VAT.

Suspend & Resume (Market Mode)

SUSPEND parks the cart as pending, opens a new draft. SUSPENDED_SALES_MARKET lists parked receipts; ACTIVATE restores them to the sale form.

System Requirements

Software
  • Python 3.13 or higher
  • PySide6 6.11.0 (Qt framework)
  • SQLAlchemy 2.0.48
  • Requests 2.33.0
Supported Databases
  • SQLite (default — included)
  • PostgreSQL
  • MySQL & Oracle
  • Microsoft SQL Server, Firebird, Sybase
Supported Platforms
  • Windows (touch screen devices)
  • Linux (touch screen devices)
  • Single or dual display configurations
Peripheral Hardware
  • ESC/P compatible receipt printers
  • 2D and 3D barcode scanners
  • Weighing scales
  • Cash drawers & line displays

Quick Start

git clone https://github.com/SaleFlex/SaleFlex.PyPOS.git
cd SaleFlex.PyPOS
python3 -m venv venv
# Windows:  venv\Scripts\activate.bat
# macOS/Linux: source venv/bin/activate
pip install -r requirements.txt
python saleflex.py
Default Login Credentials
UsernamePasswordRole
adminadminAdministrator — full access, can manage all cashier accounts
jdoe1234Standard Cashier — can update own password only

SaleFlex.OFFICE

Back-Office Management Application

Foundation Implemented  |  Active Development

SaleFlex.OFFICE is a PySide6 desktop back-office application providing static manager and admin forms, local store operations, POS data backup, and integration orchestration between store terminals and central systems. Unlike PyPOS (touch-first), OFFICE is a keyboard-first operations console for predictable manager workflows.

Management Modules

Cashier Management

Spreadsheet-style cashier list with CRUD operations, performance target definition, and transaction metrics — filtered per cashier.

Product Management

Product CRUD, catalog listing, manufacturer, unit, attribute, variant, and barcode management — all in one workspace.

Campaign Management

Campaign CRUD, type and rule management, product associations, usage tracking, and a dedicated campaign operations window.

Customer Management

Customer CRUD, segment and member management, loyalty CRUD, point transaction history, and a dedicated customer operations window.

Loyalty Management

Full CRUD for loyalty programs, tiers, earn rules, program policy, and redemption policy — with dedicated loyalty operations form.

Warehouse Management

Warehouse and location CRUD, product stock levels, stock movements, stock adjustments, and aggregated warehouse operations.

POS Terminal Management

POS terminal list and CRUD, per-terminal settings, virtual keyboard definitions — with multi-terminal store support.

Form Management

Form and control CRUD, tab definitions, POS-scoped form assignment (single terminal or all terminals), and new form creation flow.

Deployment Modes

 Standalone

OFFICE works as a local store control center without requiring SaleFlex.GATE. All data stays on-premises.

 Gate-Connected

OFFICE is connected to SaleFlex.GATE and synchronizes master data and operational events upstream via REST/JSON.

High-Level Data Flow

  1. Managers define products, campaigns, loyalty rules, and settings in OFFICE.
  2. PyPOS terminals pull bootstrap definitions from OFFICE over REST/JSON.
  3. PyPOS pushes completed transactions and closures back to OFFICE.
  4. OFFICE stores data locally — acting as in-store backup during internet outages.
  5. When internet is available, OFFICE syncs required data to/from SaleFlex.GATE.

Quick Start

git clone https://github.com/SaleFlex/SaleFlex.OFFICE.git
cd SaleFlex.OFFICE
pip install -r requirements.txt
python saleflex.py

Default users: admin / admin  ·  jdoe / 1234  ·  jpace / 1234

SaleFlex.GATE

Central API Hub and Integration Gateway

Target Architecture  |  In Development

SaleFlex.GATE is the central hub for the SaleFlex ecosystem — a Django and Django REST Framework backend that ties together stores, terminals, mobile apps, and optional third-party systems. It provides multi-tenant company/store/terminal management, versioned REST APIs, and a web portal.

Key Capabilities

Multi-Tenant Architecture

Company → Store → Terminal hierarchy. Data partitioned and API-scoped by company and store boundaries.

REST API (Django REST Framework)

Versioned JSON APIs for device auth, product/price distribution, transaction ingestion, closure sync, and warehouse events.

Web Portal

Public landing + session login/register, company creation, join-by-slug requests, multi-owner deletion approvals, and dashboard stub.

Integration Gateway

Front ERP, loyalty, campaign, and payment adapters behind clear service interfaces — so edge clients stay simple.

Mobile Client Support

Same REST surface supports management dashboards, stocktake sessions, and waiter/order flows for mobile applications.

Django Admin

Built-in staff admin site for direct ORM and data management. Not the primary end-user interface — that is the web portal.

Tenancy Model

Company → Store → Terminal — This hierarchy is the basis for authorization, data partitioning, and API scoping.
  • A registered user creates one or more companies, or joins an existing company via admin approval.
  • Each company has one or more stores (physical locations).
  • Each store registers one or more POS terminals (PyPOS instances) and optionally kitchen display systems.
  • JWT / API keys are bound to company, store, and device scope.

System Requirements

Runtime
  • Python 3.12 or newer
  • Django (latest)
  • Django REST Framework
Database
  • SQLite — default for local development
  • PostgreSQL — recommended for production

Quick Start

git clone https://github.com/SaleFlex/SaleFlex.GATE.git
cd SaleFlex.GATE
python -m venv .venv
# Windows:   .venv\Scripts\activate.bat
# macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic --noinput
python manage.py createsuperuser   # optional — for Django Admin
python manage.py runserver

Public site: http://127.0.0.1:8000/  ·  Django Admin: http://127.0.0.1:8000/admin/

Shared Foundation

 MIT License

All repositories are open-source and licensed under MIT — free for personal and commercial use with attribution.

 Modular Adoption

Start with PyPOS only and add OFFICE or GATE when your needs grow. No component forces the others.

 Repository Documentation

Each repository ships its own docs/ folder with architecture, configuration, and API references.

 REST/JSON Contracts

All inter-application communication uses REST APIs and JSON payloads — making integration straightforward.