Skip to content
ERP for retail

Retail ERP that head office and the store managers both believe

The tills work fine. What doesn't is everything after closing time. Stock counts never match, transfers between shops are arranged over WhatsApp, and the buyer reorders from a report that's two days old. Most retail ERP trouble starts at the back door, not the counter.

Example request from a retail team

ERPNext v16

Where standard ERP gets awkward in retail

Transfers with no receiving step

Twelve jackets leave Store A. Store C says it got ten. Neither store scanned anything, so the two missing jackets become shrinkage at the next stocktake.

Size and colour chaos

One style in five sizes and four colours is twenty SKUs. Buyers think in styles, the system thinks in SKUs, and reports rarely bridge the two.

Returns without a receipt

Store policy allows exchanges without proof of purchase. The POS doesn't track it, so head office never sees the customer who "returns" the same item at three branches.

Promotions the POS and accounts disagree on

A buy two get one free ran for a weekend. The till applied it one way, the margin report assumes another, and finance spends Monday reconciling.

The till is the easy part

Every retail ERP demo starts at the point of sale, because that’s where it looks good. Scan, pay, receipt. ERPNext has POS Profiles, POS Invoices and closing entries per shift. Odoo’s Point of Sale is one of its strongest apps. Selling a pair of shoes has been solved for a long time.

What separates a chain that trusts its numbers from one that doesn’t is the unglamorous stuff. How stock moves between stores. Who confirms it arrived. Whether a return was genuine. How a promotion hits the margin. That’s where we spend most of our time with retailers.

Rebalancing stock across four shops, worked through

Here’s a scenario that comes up constantly. You have four stores and a jacket that costs you $38. In size M, Store A has 14 on hand and sold 2 in the last four weeks. Store C has 1 on hand and sold 9.

The buyer’s replenishment report sees Store C running out and suggests a purchase order. Meanwhile Store A is sitting on months of stock.

A rebalancing module works on weeks of cover instead. Say the target is three weeks. Store C sells about 2.25 a week, so it wants 7 and has 1, a shortfall of 6. Store A sells 0.5 a week, so it wants 2 and has 14, a surplus of 12. The module proposes moving 6 from A to C. The area manager, Leila, approves it on her phone on Monday morning. Store A’s staff pick and dispatch, and the stock sits in an in-transit warehouse until Store C scans every jacket in.

That’s $228 of stock that didn’t need buying, on one size of one style. Run it across the range every week and it adds up. And because receiving is scanned, the two missing jackets from the earlier example get caught on Tuesday instead of at stocktake.

On ERPNext this uses Material Transfer stock entries through a transit warehouse, plus a new Transfer Proposal DocType and a scheduled job in hooks.py. On Odoo it’s an ir.cron that creates internal transfers between warehouses, with an approval state added to stock.picking.

Standard POS and inventory: leave most of it alone

We say this to almost every retailer. Don’t customise the cashier screen unless you really must. It’s the part that changes most between versions, and every tweak there is something to retest after an upgrade.

Things that work out of the box and rarely need code include item variants for size and colour, pricing rules and discounts, loyalty programs, gift cards (in Odoo), cash-up and shift closing, and stock reconciliation after a count. If your request is really a setting, our ERPNext customization and Odoo customization pages will help you tell the difference.

Where retail customisation earns its money

The modules that pay for themselves in retail sit behind the counter:

  • Transfer proposals and scanned receiving, as in the example above.
  • Return controls that flag receipt-less returns by customer phone number or card across stores.
  • Style-level reporting that rolls SKUs up to style and season, so buyers can see sell-through the way they plan.
  • Shrinkage by cause, separating damaged, expired, theft and admin error at stock count time.
  • Supplier returns for faulty stock, tracked until the credit note lands.

Most of these extend the inventory management module and the point of sale module rather than replacing them.

What belongs outside the ERP

Some things are better bought. Footfall counters, CCTV analytics, workforce scheduling for large store teams and full e-commerce storefronts all have specialist products that do the job better than a custom module would. Connect them through the API and keep the ERP as the record of stock and money. If you’re weighing whether to build more than that, read build vs buy for ERP before deciding.

Modules retail teams start with

Guides for retail teams

Terms used on this page

How it works

From a paragraph to a pull request

The long version
  1. 01

    Describe it

    In your own words. Paste the spreadsheet or a photo of the paper form if that's easier.

  2. 02

    Answer a couple of questions

    It asks only what it can't work out from your setup, like who's allowed to override.

  3. 03

    Try it on a sandbox

    A copy of your site with the module installed. Break it, then ask for changes.

  4. 04

    Merge when it's right

    Code lands as a pull request with tests. Your developer, or ours, reviews it first.

Retail ERP questions

Something missing? Email [email protected] and a person will answer.

Should a small retail chain use ERPNext or Odoo?

Odoo's Point of Sale is more polished for cashiers and has a larger app ecosystem for retail. ERPNext is cheaper to run with many users and its stock and accounting are strong. If the POS experience is your top priority, lean Odoo. If back office cost is, lean ERPNext.

Can erpfly connect our Shopify or WooCommerce store?

We can generate a sync for products, stock levels and orders over their APIs. Decide up front which system owns price and stock, because two-way edits on the same field cause most integration headaches.

Does the POS keep working if the internet drops?

That depends on the platform's POS, not on anything we generate. Test it on your own network before rollout. If connectivity at a store is poor, fix that first, because no custom module will make a disconnected till reliable.

Can we run loyalty points across stores and online?

Both platforms have loyalty programs built in. Custom work usually comes in when points need to follow a customer across channels or when tiers depend on rules the standard program doesn't support.

Other industries

Your next module is one paragraph away

Write it the way you’d explain it to a new hire. We’ll turn it into an app you can read, test and install.

ERPNext v16

Create your account

Free to start. No card needed.

By signing up you agree to our terms and privacy policy.