devShakib

ShopDesk

A point of sale for a small shop. Offline, free, and the data stays on the counter.

ShopDesk is a till for a small shop. It runs on the counter, works with the internet unplugged, and keeps the shop's entire history in one file on that computer — no account to create, nothing to activate, no monthly fee, and no server holding your takings.

It is free and MIT licensed, written in Python, and the source is public.

At the counter

Scan a barcode, or type a few letters and press Enter to take the top match. 3*cola adds three at once. Cash, card, mobile money or bank transfer, with the change worked out as you type what the customer handed you — plus quick-cash buttons so the common case is one key.

A sale can be held and picked up later, for when someone goes back for the milk they forgot. One-off lines cover the things that were never in the catalogue: a delivery charge, a photocopy. Discounts work whole-sale or per line, and are spread across the lines so tax and refunds stay correct afterwards.

It is keyboard-first, because a till that needs a mouse is slower than the queue: F1 search, F2 customer, F3 discount, F9 charge, Del remove line. A cash sale for a walk-in is a scan and one key.

Money and stock

Products carry a barcode, SKU, category, cost and selling price, and a low-stock level. Things can be sold by the piece, the kilo or the litre — 1.5 kg is a real quantity, not a rounding problem.

Stock is a ledger rather than a number. Every unit that moved has a row saying why it moved: a delivery received, a count corrected, damage written off, a return put back. When the shelf and the screen disagree, there is a history to read instead of a guess to make.

Returns refund in cash or credit the customer's account, and put the stock back. A sale can be voided with a reason, and the stock returns to the shelf.

Customers and credit

Walk-in is the default — attaching a customer is optional and never required, because most sales do not need one.

For the ones that do, a sale can go on the book, payments can be collected against the balance later, and each customer can have a credit limit. Every customer has a statement: what they bought, what they paid, and what is still owed.

Paperwork

Thermal receipts on 80mm or 58mm rolls, through any printer Windows already knows about. A4 PDF invoices carrying your logo, for the customers who need a document. Every list in the app exports to Excel.

Running the shop

A dashboard of net sales, gross profit, best sellers and how people paid. A day-close that says what the till should hold and compares it against what you counted.

Low stock, unpaid balances, and lines that have not sold in a month are surfaced without being asked for — the things you would only notice late, noticed early.

Admin and cashier roles: a cashier can sell but cannot change prices or see profit. Backups are one click, and restore works from any of them.

Light and dark, six accent colours, twenty currencies, and tax on or off.

Where the data lives

One SQLite file in %LOCALAPPDATA%\ShopDesk, on the shop's own computer. It never leaves. There is no cloud account to lose access to, no subscription that can lapse and lock the till on a Saturday morning, and nothing to migrate if you stop using it.

Before you install

Windows SmartScreen will warn about an unsigned application — choose More info, then Run anyway. It says Microsoft has not vetted this build, not that anything is wrong with it. The full source is on GitHub if you would rather read it or build it yourself.

There is an installer that adds a Start-menu entry and uninstalls cleanly, and a portable single file that runs from a USB stick. On macOS and Linux it runs from source.