Retail & commerce platform

StoreQL

The platform for running a retail business — stock, stores, and sales, online and in person, for as many independent businesses as want to use it. One live picture of inventory shared by the storefront, POS, and back office. Engineered under the codename Shelf-J.

Java 21 Helidon MP 4.x Consul Kafka PostgreSQL 16 Flutter Multi-tenant SaaS

Tenant → Store → Zone

Every business is modelled three levels deep — stores and warehouses with internal zones that pin down exactly where stock sits.

Product Catalog

Variants, brands, categories, barcodes, and bulk import — one shared truth behind both the storefront and POS.

Inventory & Warehouse

Batch/lot/serial tracking with expiry and genealogy, plus cycle counts, ABC analysis, and EOQ reorder planning.

Pricing & VAT

Channel-scoped price lists, time-bound promotions, and UK-style VAT modelling with Making Tax Digital returns.

Storefront & POS

A public online storefront and a full point-of-sale, scanning to till reconciliation, sharing one order pipeline.

25 Screens, Four Shells

Admin back office, storefront, POS, and platform console — one Flutter codebase, four distinct experiences.

What it does

A business selling physical goods usually stitches together separate systems for inventory, the till, and an online store — none of which agree about what's actually in stock. StoreQL is built to be all three at once: one catalog, one set of stock levels, one set of orders, whether the sale happened on a phone at home or at a counter in the shop.

Tenant → Store → Zone

Every business is modelled three levels deep — a tenant owns stores/warehouses, each with an address, geo, hours, and internal zones (aisle, rack, cold room) that pin down exactly where stock sits.

Product catalog

Products with variants, brands, categories, barcodes, and bulk CSV import — the shared truth behind both the storefront and POS, entered once.

Inventory & warehouse

Batch/lot/serial tracking with expiry, splits, merges, and genealogy; cycle counts, ABC analysis, reorder-point/EOQ planning, kanban and PAR replenishment.

Pricing, promotions & VAT

Channel-scoped price lists, time-bound promotions, one-call price resolution with tax breakdown, and UK-style VAT modelling with Making Tax Digital returns.

Purchasing

Suppliers, purchase orders, and goods receipt that turns deliveries into receivable stock — with intercompany invoices and a read-only nominal ledger.

Storefront & POS

A public online storefront (browse, cart, checkout, pickup or delivery) and a full point-of-sale — scanning, split tender, holds, till reconciliation — sharing one order pipeline.

Orders & returns

One order model for both channels: placed → confirmed → fulfilled, with returns, layaway, gift cards, and special orders all built on the same lifecycle.

Customers & loyalty

Profiles and addresses, automatic loyalty accrual and redemption, store credit, and a right-to-be-forgotten anonymization flow.

Reporting

On-hand inventory, supply-vs-demand coverage, movement statistics, and sales summaries — refreshable, whole-tenant snapshots.

Inside the app

One Flutter codebase, four different experiences — each shell signs in on its own and talks to the same dozen services behind the gateway.

Admin back office 14 screens

Dashboard, products & catalog, categories, inventory, pricing, procurement, orders, sales, customers, staff, stores, bulk CSV import, and tenant-wide reports — the full operator toolkit, plus a shared sign-in screen for staff.

Storefront 4 screens

Product list, product detail, cart, and order history — the public buying flow, pickup or delivery.

Point of sale 3 screens

Cart, cash drawer, and split-tender checkout — built for a till, not a browser tab.

Platform console 3 screens

Its own sign-in, a cross-tenant dashboard, and tenant management — for us to operate the platform itself.

Under the hood

Strict microservices behind a single API gateway, with Consul for discovery and a centralized config service — pattern borrowed from red2n/home, re-implemented on Helidon MP. Twelve business services (identity, tenants, catalog, inventory, pricing, cart, orders, payments, purchasing, customers, notifications, reporting) sit behind that gateway, each owning its own schema and talking over REST and Kafka events.

Want the full service breakdown, database schema, or deployment model? Email us — happy to walk through it.

12business microservices
~290REST endpoints
25screens across 4 app shells
8interface languages, incl. RTL