E-commerce Development ·6 Aug 2024 ·13 min

Retail Software Development: Systems, Stock and AI

A practical map of retail software development: the systems a retailer ends up running, why inventory accuracy sits under every other problem, what omnichannel costs to build, where AI helps today, and a phased sequence that keeps stores trading.

Pranav Begade By Pranav Begade
Retail Software Development: Systems, Stock and AI

A retail software project is almost never one system. It is five or six of them that have to agree about what a product is, where the stock physically sits, and what it costs right now. The expensive part of the work is the agreeing, not the screens.

If you run a retail business and someone has quoted you for "a retail app", the first useful question is which of those systems the quote covers and which it quietly assumes already exists and already works. Most of the time the proposal is a storefront, and the storefront is the cheapest thing in the stack.

What follows is a working description of what building software for a retailer involves: the systems you end up running, how they connect, the one data problem sitting underneath all the others, what omnichannel actually costs in engineering terms, where machine learning genuinely pays in a store today, and how to sequence a rebuild while the tills keep ringing.

It is written for the operator or technology lead on the retailer's side: the person deciding what gets built, what gets bought, and what gets left alone until next year.

The six systems a retailer ends up running

Nobody sets out to run six systems. You open with a point of sale, add a website, then a second store, then a marketplace channel, then click and collect, and one morning you have six databases with an opinion about the same jumper.

The useful discipline is to decide, once and in writing, which system is the authority on each fact. Everything else holds a copy, and a copy may be stale but is never allowed to be edited.

SystemAuthority onWhat goes wrong when something else claims it
Point of saleIn-store transactions, tenders, till reconciliationSales land twice or never, and the day's cash does not balance
Product catalogue (PIM)Product identity, attributes, images, category treeThe same item has three names and two barcodes across channels
Stock ledgerQuantity on hand, per location, per stateYou oversell online and cancel the order by email
Ecommerce storefrontOnline browsing, cart, checkout, contentPricing rules get reimplemented in a theme and drift from the tills
Order managementOrder state, allocation, fulfilment routing, returnsNobody can answer "where is my order" without opening four tabs
Customer and loyaltyIdentity, contact consent, points, purchase historyA customer is two records, and the one with the points is the wrong one

Fulfilment sits alongside these: a warehouse system if you have a warehouse, a picking app if stores fulfil online orders, and a carrier integration either way. Bigger retailers split it out entirely into a warehouse system of its own, which is a sensible boundary as soon as more than one site ships goods.

The other number worth writing on the wall is the integration count. Connect every system directly to every other and you are maintaining n(n-1)/2 links: six systems means fifteen. Route everything through one integration layer and it is six. That layer does not need to be a product you buy. It needs to be a decision that all traffic goes through one place, with one retry policy, one log, and one person who understands it.

Inventory accuracy is the problem under every other problem

Every interesting retail feature is a promise about stock. Click and collect promises the item is in that store. Ship from store promises a staff member can find it in the next two hours. Low stock badges promise the number on the screen is real. If recorded stock and physical stock disagree, every one of those features becomes a way of disappointing a customer faster.

The disagreement is normal and it accumulates quietly. It does not need theft to appear.

  • Goods received against the purchase order without anyone checking the carton contents.
  • Returns put back on the shelf but never put back in the system, or the reverse.
  • Damaged and expired stock written off on paper.
  • Mis-scans at the till, where the operator scans one of two similar items twice.
  • Items moved between stores informally because a colleague asked.
  • Online orders picked but not yet confirmed, so the units are neither available nor gone.
  • Offline tills that queue transactions and send them hours later, out of order.

Available to promise, not quantity on hand

The single most useful modelling change is to stop treating stock as one number. On hand is what the shelf holds. Available to promise is what you are willing to sell right now: on hand, minus reserved for picked orders, minus held for collection, minus a buffer per location, plus anything inbound that you trust enough to sell forward.

Once you write that as an explicit calculation in one service, you can tune it per channel. A store can hold back two units so the shop floor is never empty. A slow-moving line can be sold down to zero. A high-theft category can carry a larger buffer. Retailers who skip this step end up hard-coding a single global safety buffer, which is a blunt way of saying "we do not trust our own data" and which costs sales on every product that did not need it.

Cycle counts beat the annual stocktake

Counting everything once a year tells you the size of your problem long after it stopped being fixable. Counting a small slice continuously, weighted towards high value and fast moving lines, gives you a drift rate you can manage. In software terms: a counting task in the staff app, a variance report naming the location and the line, and a rule for when a variance triggers an investigation rather than a silent adjustment.

Treat accuracy as a metric with an owner. If you are building or replacing the stock layer, this is where dedicated inventory management software earns its keep, and it is worth getting right before anything downstream depends on it.

What omnichannel actually requires

Omnichannel is sold as a marketing idea. In engineering terms it is a specific list of promises, and each one has a cost. It helps to price them individually rather than approving the word.

  • Buy online, collect in store. Needs per-location stock, a reservation that holds units for a defined window, a staff-facing pick and hold queue, a collection point handover with proof, and an expiry rule that returns unclaimed units to sale.
  • Ship from store. Needs an order routing decision (which location fulfils, based on stock, distance, and how busy that store is), a picking app that works on a shop floor with patchy signal, packing materials at store level, and carrier label printing behind the counter.
  • Return anywhere. Needs one order record both channels can read, a refund path that can credit a card the store never charged, and a rule for which location's stock the returned unit joins.
  • One customer record. Needs identity resolution across an anonymous web session, a loyalty card, and an email address typed at a till, plus a consent record that travels with it.
  • Endless aisle. Needs a store device that can sell stock the store does not hold, which means the store colleague is now placing an online order and the commission and reporting rules have to say so.

Notice how little of that is customer-facing. The visible part is a button on a product page; the work is a reservation model, a routing rule, a staff app and a returns policy expressed as code. When a retail build comes in over budget, this is usually where it went: the storefront was estimated and the back of house was not. If the online side itself is being rebuilt, the shape of that work is covered separately in our notes on ecommerce application development.

Integrate with the point of sale you have, do not replace it first

The instinct of most software teams meeting a retailer is to replace the point of sale, because it is old and the interface is ugly. Resist it for at least a year. The till is the most load-bearing component in the business and the ugliest parts of it are usually the parts doing real work: hardware drivers for scanners, scales, cash drawers and card terminals, an offline mode that keeps trading when the line drops, fiscal and tax compliance for each country you trade in, and a set of keyboard habits your staff perform several hundred times a day without looking.

Replacing that is a retraining project, a hardware project and a compliance project wearing a software project's clothes. Integrating with it is usually a month of careful work. Before committing either way, get concrete answers to these:

  • Does it expose line-level sale events, or only end of day totals? Totals are enough for accounting and useless for stock.
  • Can an external system post stock adjustments back in, or is the till the only writer?
  • Is the interface push (webhooks, message queue) or pull (polling, nightly file)? A nightly file means your online availability is a day old.
  • What happens to events created while a till was offline? They will arrive late and out of sequence, and your stock service has to accept a backdated event without corrupting the current figure.
  • Is there a test environment, or does every integration test happen on a live till in a real shop?
  • Who owns the product mapping between till codes and catalogue identifiers, and what happens when a new line is created at the till?

That last one causes more grief than it deserves to. Staff create products at the till under time pressure, and those records arrive in your catalogue with no images, no category, and a name like MISC BLUE 2. Decide up front whether the till may create products at all, and if it may, build the queue where someone tidies them.

Where AI actually earns its place in a retail stack today

Plenty of retail AI is theatre. A few applications are ordinary, well understood, and worth paying for. The honest split is between things that run on transaction data you already have, which tend to work, and things that require new sensors in physical space, which tend to be expensive and fragile.

Demand forecasting and replenishment

The strongest case. Forecasting per line, per location, per week, then turning that forecast into order quantities, is a bounded problem with a clear success measure: fewer stockouts at the same or lower stock holding. It needs sales history over at least a couple of full seasons, a record of when a line was actually out of stock (otherwise the model learns demand was zero), a promotions calendar and price change history. Retailers often discover here that nobody kept the promo calendar in machine-readable form. Fixing that is the project.

Personalization and merchandising

Ranking, recommendations, and category sort order on the storefront. Real, measurable with a holdout group, and the most common first AI project because the data is already in one place. The implementation detail matters more than the model choice, which is why it has its own piece on storefront personalization rather than a paragraph here.

Search that understands the query

Underrated. Retail search is full of queries a keyword index answers badly: "waterproof jacket for a toddler", a misspelled brand, a product described by its use rather than its name. Embedding-based retrieval alongside keyword matching, with the catalogue attributes as filters, is a contained project with an obvious before and after. It also produces the best personalization signal you own, because a typed query states intent outright.

Loss prevention and anomaly detection

Most of the value here is in transaction data, not cameras. Refunds without a matching sale, voids concentrated on one operator, discount codes used in patterns no customer would produce, negative stock adjustments clustered by location and time. This is anomaly detection over your own ledger, it runs overnight, and it produces a queue for a human to review. No new hardware.

Back office document work

Supplier invoices matched against purchase orders and receipts, messy supplier feeds normalised into your catalogue schema, first drafts of product copy across thousands of lines. Language models handle this well with a review step, because the cost of an error is a person catching it rather than a customer seeing it.

Where in-store computer vision is still hard

Shelf monitoring, checkout-free stores and camera-based behaviour analytics are real technologies that are genuinely hard to operate, and the software is the smaller half. Each store needs cameras mounted and calibrated, lighting that does not change the model's behaviour between morning and evening, a view that shoppers and stacked pallets do not block, network capacity to move video or a small computer in the ceiling to avoid moving it, and someone to call when a camera gets knocked. Add biometric and privacy law, which varies by country and is stricter than most sales decks imply, plus ongoing labelling as the range changes. Judge these on cost and reliability across the whole estate, not on accuracy in a pilot store.

Build versus buy, system by system

The default answer is buy, because retail has mature products in every category and none of them is where your business is different. The exception is any system encoding a rule your competitors do not have. Custom work belongs at the point of difference and nowhere else.

SystemDefaultReasonWhen building is defensible
Point of saleBuyHardware, offline mode, fiscal complianceAn unusual selling model no product supports, such as service plus goods on one ticket
Accounting and payrollBuyRegulated, commoditised, auditedNever
Ecommerce storefrontBuy the platform, build the front endCheckout and payments are solved; the experience is yoursA headless front end over a bought commerce engine is the common middle
Product catalogueBuy if your range is standardWorkflow and validation are genericConfigurable, made to order, or heavily attributed ranges
Stock ledger and availabilityOften build a thin serviceYour reservation and buffer rules are specific to your operationUsually. This is where custom rules actually live
Order managementBuy, then extendOrder state machines are well troddenRouting logic that reflects an unusual estate or delivery promise
Store staff appsBuildThey encode how your shops actually workAlmost always, and they are small
Integration layerBuild or assembleNobody sells a connector for your exact combinationAlways yours to own, even if it uses bought pieces

Budget for the fact that this stack does not sit still. From operating Denti360, our own multi-branch clinic SaaS, the planning number we publish is ongoing engineering of 15 to 20 percent of the original build cost per year to keep a system current, before any new features. A retail stack with more third-party interfaces will not be cheaper. If a proposal shows a build cost and nothing after it, add that line yourself. Order-of-magnitude figures for the storefront side sit in our ecommerce build cost guide.

A sequence that does not stop trading

Retailers cannot take a quarter off to replatform. This sequence is ordered so each phase is useful on its own and nothing waits on a distant big bang.

  1. Measure stock accuracy before deciding anything. Count a representative sample across a few stores and compare with the system. The variance you find sets the ambition for everything else. If it is bad, the first project is not a storefront.
  2. Fix product identity. One identifier per sellable unit, one catalogue that owns names, attributes and images, and a rule about who may create a product. Every later integration is easier because of this, and every later integration is harder without it.
  3. Stand up the stock service and feed it from the till. One place that answers "how many, where, and how many can I sell". Read from it in one low-risk channel first while the old path stays live.
  4. Put the integration layer in before the third integration, not after the fifth. The cost of retrofitting it rises with every point-to-point link you have to unpick.
  5. Rebuild the storefront against the new services. By this point it is reading real availability, which is what makes it worth rebuilding.
  6. Add omnichannel promises one at a time. Click and collect in a handful of stores, measured, before it goes on every product page across the estate.
  7. Then the AI layer. Forecasting, search and ranking all sit on the clean data the earlier phases produced. Attempting them first is why so many retail AI pilots quietly end.

Three operational rules go around that sequence. Freeze changes through peak trading, and define peak generously. Run old and new in parallel with a daily reconciliation report rather than cutting over on faith. And pilot in stores, not in a meeting: one store, one region, then the estate.

One structural decision is worth making on day one because retrofitting it hurts. If you have more than one location, or might have, put the location identifier in the schema from the first migration: on stock, on orders, on prices, on permissions. We did exactly this with branch scoping in Denti360, and the retail equivalent is the same shape. Teams that add a store column later spend months hunting the queries that forgot it.

Smart store technology, grounded

The in-store technology worth attention is mostly unglamorous, and it is worth separating by how proven it is.

Working now, in ordinary shops. Handheld scanners and staff apps for counting, receiving and picking. Electronic shelf labels, which matter because price changes and promotions get pushed from one system instead of printed and walked around the shop. RFID at item level, the one in-store technology with a direct line to the accuracy problem, because it makes counting cheap enough to do weekly instead of annually and cheap counting is what closes the drift. Self checkout, a well understood product with well understood loss and staffing trade-offs. Mobile payment acceptance, so a colleague can take payment anywhere on the floor.

Real but capital-intensive. Camera-based checkout-free stores, shelf-scanning robots, automated micro-fulfilment. These work in the sense that they exist and operate. They are property and hardware programmes with a software component, priced per store, with installation lead times and maintenance contracts. They are evaluated by finance, not by an engineering team, and the software vendor's demo is the least informative part of the decision.

Usually theatre. Interactive mirrors and in-store screens nobody staffs or updates. Store apps that duplicate the website but worse. Anything whose business case is "customers will find it interesting". Two questions settle it: does it move a number the store manager is measured on, and who maintains it in month seven?

Choose by constraint. If stock accuracy is the binding constraint, RFID and a counting workflow beat every customer-facing gadget. If queueing is the constraint, more payment acceptance beats a screen. The broader shape of this work across stores and online sits in our retail and ecommerce development practice.


Trying to work out which retail system to fix first, and what it would cost to connect the point of sale, the stock and the storefront you already run? A Scoping Sprint ($2,300, two weeks) ends with an integration map and phased plan for your estate, a clickable prototype of the first piece, and a fixed quote for the build. Or just start a conversation.

Frequently asked

What does software development for retail actually involve?
Usually five or six connected systems rather than one application: point of sale, a product catalogue, a stock ledger that knows quantity per location, an ecommerce storefront, order management for allocation and returns, and a customer or loyalty record. Most of the engineering effort goes into deciding which system is the authority on each fact and keeping the copies honest, not into building screens.
What should I look for in a retail software developer?
Evidence they have worked behind the counter, not just on storefronts. Ask how they model available to promise versus quantity on hand, how they handle a till that was offline and sends transactions late and out of order, how they reconcile stock after a failed picking run, and what their integration layer looks like. Vague answers to those questions predict an over budget build.
How is AI used in retail stores today?
The applications that reliably pay run on transaction data you already hold: demand forecasting and replenishment, product ranking and recommendations, search that understands a described product rather than a keyword, and anomaly detection over refunds, voids and stock adjustments for loss prevention. Language models also handle supplier invoice matching and messy product feed cleanup with a human review step.
Is AI for retail stores worth it if our data is messy?
Not yet, and that is the useful answer. Forecasting learns nothing from history that does not record when a line was out of stock, and ranking cannot work across a catalogue where the same item exists under three names. Fixing product identity and stock accuracy first is not a delay before the AI project. It is the majority of the AI project.
Should we replace our point of sale system or integrate with it?
Integrate first, in almost every case. A till carries hardware drivers, an offline trading mode, fiscal and tax compliance, and keyboard habits your staff perform hundreds of times a day. Replacing it is a retraining, hardware and compliance project at once. Before deciding, confirm whether it emits line level sale events, whether an external system can post stock adjustments back, and whether a test environment exists.
Why is inventory accuracy so hard to get right across stores and online?
Because recorded stock drifts from physical stock for ordinary reasons: goods received without checking cartons, returns shelved but not recorded, write offs done on paper, mis-scans of similar items, informal transfers between stores, and picked orders that are neither available nor gone. Annual stocktakes find the gap far too late. Continuous cycle counting of high value and fast moving lines gives you a drift rate you can manage.
What does omnichannel actually require in engineering terms?
Each customer promise is a separate piece of work. Click and collect needs per location stock, timed reservations, a staff pick and hold queue, and an expiry rule. Ship from store needs order routing, a picking app that copes with weak in store signal, and label printing behind the counter. Return anywhere needs one order record and a refund path for a card the store never charged.
How much does retail and e-commerce software development cost to keep running?
Budget for ongoing engineering, not just the build. From operating our own multi branch clinic SaaS, Denti360, the planning number we publish is 15 to 20 percent of the original build cost per year to keep a system current before any new features. A retail stack with more third party interfaces will not be cheaper, so treat any proposal without a line after go live as incomplete.
Fixed price · $2,3002-week sprint

Building something in this space?

We turn ideas into buildable plans in 2 weeks: clickable prototype, technical plan, fixed quote. Fixed price, credited against the build.

See the Scoping Sprint

Encourage retailers to invest in AI technologies and explore innovative solutions to stay competitive.

Start a project →
Book a 15-min scoping call