Custom POS System for Retail & Franchise Operations

Custom POS Systems for Retail Chains and Franchise Networks

Industry
Retail (Nutrition)
Technology Leveraged
Visual Studio 2017, .NET Framework 4.5, MS SQL Server 2016, jQuery 3.2, Bootstrap, SignalR

Summary

We build custom point-of-sale systems for retail chains and franchise networks. A platform of this kind is really three products in one shell: a counter terminal that must complete a sale quickly and correctly whatever the network is doing, an inventory ledger tracking stock movement across locations, and an administration portal where head office maintains the catalogue, prices, users and reporting. This kind of engagement covers all three, plus the peripherals, payments and accounting flows around them.

The Challenge

Off-the-shelf systems are usually abandoned for specific reasons: pricing or promotion logic they cannot express, hardware they will not talk to, accounting flows that do not match how the business actually books revenue, or a franchise structure the product has no concept of. A custom build is justified when those constraints are permanent features of the business.

Peripheral support is where builds of this type lose time. Barcode scanners, receipt printers, cash drawers, scales and label printers each have their own driver and command-set behaviour, and none of it can be validated on a developer machine.

Franchising changes the data model. Catalogue, SKUs, vendors and stock allocation must cascade from a central definition to franchise levels while allowing controlled local variation in price, availability and promotions. Reporting has to roll up across the network without exposing one operator to another. Deployment matters too, since franchise staff cannot be expected to configure software, so a single-click installer with server discovery is a genuine requirement.

The dominant failure mode is loss of connectivity. A till that cannot sell when the link drops is unusable, so offline tolerance with a local queue and a defined reconciliation path on reconnect is designed in from the start, together with the conflict rules that follow from it.

The Solution

Terminal and portal

A native desktop application for the till paired with a web portal for administration is a durable pattern. On a Windows estate a .NET desktop application gives direct, reliable access to peripherals, while the portal and its relational database hold the master catalogue and reporting. A persistent messaging channel between server and terminals, such as a WebSocket-based push layer, lets price and product changes reach the floor without a restart or a polling loop.

Privilege model

The privilege model is explicit rather than emergent. A workable separation is:

  • a system administrator managing companies and account recovery
  • a business administrator owning employees, departments, terminals, stock locations, vendors, brands, units of measure, products and categories
  • an accounting role limited to reporting
  • a cashier role with sales and returns, constrained inventory edits, price-tag and label printing, and stock counts

Every override at the till, from a manual discount to a no-sale drawer opening, is an audited event, and permissions are enforced server-side rather than by hiding buttons.

Payments and accounting

Payment terminals are integrated semi-integrated, meaning the application sends an amount and receives an approval result while card data stays inside the certified device, which keeps the software out of the deepest PCI DSS scope. Accounting integration with a package such as QuickBooks means mapping sales, tax, refunds, discounts and payouts to the right accounts and posting on a schedule that survives retries without double-booking.

Inventory and mobile

We treat inventory as an immutable movement ledger with derived balances rather than a mutable quantity column, which makes shrinkage, audits and reconciliation tractable. Sales are written locally first and synchronised with idempotent identifiers. Companion mobile applications extend the system to the shop floor for stock adjustment, receiving and audits, so the inventory API accepts concurrent adjustments from several devices and resolves them deterministically.

What This Delivers

Speed at the counter and correctness of the ledger outrank everything else. A system built this way keeps selling when the link drops, centralises tax and rounding rules and tests them against real receipts, reverses inventory and accounting in one atomic action on a return, rolls franchise reporting up cleanly, and gives every terminal an unambiguous identity so a discrepancy can be traced to a device, a shift and a user.

Technologies and Tools

  • .NET desktop application on Windows for the till
  • Web administration portal over a relational database
  • WebSocket-based push channel for live catalogue and price updates
  • Semi-integrated payment terminals under PCI DSS scope reduction
  • QuickBooks accounting integration
  • Barcode scanners, receipt and label printers, cash drawers and scales
  • Companion mobile applications for stock operations