Ecommerce inventory management is keeping one true stock figure for what you sell online, so the website never sells goods you don't have. For a shop with a counter too, the risk is the time between a sale and the moment the other channel's stock hears of it.
This guide works that gap out for a shop in Johannesburg. It then gives seven methods with their formulas, the returns that slip past the count, and the steps in ArmPOS.
What is ecommerce inventory management?
Ecommerce inventory management covers what you hold, where it sits, and what you have promised to online buyers but not yet sent. It runs from receiving stock to putting returns back on the shelf.
Who holds the stock decides what you track:
| Set-up | Who holds the stock | What you must track |
|---|---|---|
| You sell from your own shelves, online and at a counter | You | One figure for both channels, changed by every sale and return |
| A fulfillment company stores and ships for you | The fulfillment company | Their count against yours, and what they have shipped |
| A supplier ships straight to your buyer | The supplier | The supplier's stock, before you accept an order |
The second and third set-ups are compared in order fulfillment strategies and dropshipping explained. This page is about the first: one shop selling online and in person from one stock.
Several branches and channels run as one pool, with click and collect between them, is omnichannel inventory management.
Why ecommerce inventory management matters: the oversell gap
It matters because a buyer who pays for something you can't send often doesn't come back. In a worldwide study of retail out-of-stocks by Gruen, Corsten and Bharadwaj, 31% of shoppers bought elsewhere and 9% didn't buy at all.
Repeat failures cost more. At a second stockout, the share who switch stores or give up rises from 30% to 50%, and to 70% at a third (a 2017 journal paper summarises both).
The oversell gap, worked out
An oversell happens when the shelf empties before the website hears about it. The test fits on one line:
Sales before the next update = sales per hour × hours until the website's stock next updates
A product whose stock is below that number will run out on the shelf while the website still offers it.
For example, a phone accessories shop in Johannesburg sells at its counter and on its WooCommerce website. It sends its stock to the website at 08:00 and again at 13:00, five hours later. The figures are illustrative.
| Product | Stock at 08:00 | Sales per hour | Sales by 13:00 | Shelf empty at | Still offered online before 13:00 for |
|---|---|---|---|---|---|
| USB-C charger | 30 | 1 | 5 | Not today | None |
| Screen protector | 12 | 2 | 10 | 14:00 | None |
| Phone case, model A | 4 | 1 | 5 | 12:00 | 1 hour |
| Earphones, brand B | 3 | 1 | 5 | 11:00 | 2 hours |
Two of the four lines can be sold online after the last one has left the shelf. Two earphone orders in that window, at R 450 each, would mean R 900 to refund and two buyers let down.
The test starts again at every sync. At 13:00 the screen protectors are down to 2, selling 2 an hour, so the website needs to hear about them again by 14:00.
How to close the gap
- Sync at opening, midday and closing, and whenever a line sells its last unit at the counter.
- Watch the short list. Any line with less stock than a morning's sales goes on a note by the till.
- Mind the other direction. In ArmPOS's own online store, the counter and the website share one stock. A new online order, though, takes no stock until someone confirms it, so the counter can still sell that unit.
So confirm online orders at least as often as you would sync. An order placed at 10:30 and confirmed at 15:00 waits 4.5 hours, long enough for a line selling 1 an hour to empty.
7 best ecommerce inventory management methods
Seven methods keep an online shop's stock right: safety stock, bundles, demand planning, storage, reorder points, ABC analysis and regular counts. The two formulas are worked through with the same Johannesburg shop.
1. Set safety stock
Safety stock is the extra you hold for days when sales jump or the supplier is late. The quick formula takes the worst case of each:
Safety stock = (maximum daily sales × maximum lead time) − (average daily sales × average lead time)
For example, the shop sells 6 USB-C chargers a day on average, counter and website together, and 10 on its busiest days. Its distributor delivers in 5 days on average and 8 at worst.
Safety stock = (10 × 8) − (6 × 5) = 80 − 30 = 50 chargers, about 8 days of average sales.
The formula assumes the busiest day and the longest delay arrive together, so it errs high. Use it for your best sellers, and the statistical method in the reorder point formula for the rest.
2. Bundle slow sellers with fast ones
Kitting sells a slow product inside a bundle with a fast one. Pair an overstocked phone pouch with a charger as a value pack, priced below the two apart.
Give the bundle its own code, so the website and the till sell the same thing.
3. Plan for demand
Plan purchases from the same weeks last year, then add your own campaign dates. Online sales jump when you advertise, so a promotion with no stock behind it buys you refunds.
Mark month-end paydays, school terms and festive weeks in the plan as well.
4. Store fast sellers near the packing table
Put the lines that sell most online nearest the packing table, and give every shelf a code. A picker who walks less packs more orders before the courier collects.
5. Set reorder points
A reorder point is the stock level that triggers an order, so new stock lands before the safety stock is used up.
Reorder point = (average daily sales × lead time) + safety stock
For the chargers: (6 × 5) + 50 = 80. When stock falls to 80, order.
6. Apply ABC inventory analysis
Rank products by their share of sales value: A lines bring most of it, C lines little. Count, reorder and sync A lines most often, as the 80/20 rule in inventory works through.
7. Do regular stocktakes
Count fast sellers weekly in a cycle count, and the whole stock monthly or quarterly. Correct the records the same day.
An online shop finds a missing item only when a customer has paid for it, so its counts matter more than a counter's.
Returns and cancelled orders: where online stock goes missing
A returned item is back in stock only once someone records it, and until then the website can't sell it. Each kind of return reaches the count by a different route.
| Event | What happens to stock | What to do |
|---|---|---|
| A customer returns an item bought at your counter or in your ArmPOS store | It goes back into the sale's warehouse once the return is recorded as Received | Record it the day it arrives |
| A pending online order is cancelled | Nothing moves: a pending order took no stock | Refund an online payment the way it was paid |
| A Shopify order is cancelled | Its stock comes back in ArmPOS, once | Nothing to do |
| A Shopify order is refunded but not cancelled | Nothing comes back by itself | If the item came back, adjust the stock yourself |
| A returned item comes back broken | It mustn't go back on sale | Take the return, then record the item as damaged |
The steps are in the Help center: Returns and refunds, Online orders and Record damaged stock.
Tools for ecommerce inventory management
Spreadsheets work until the counter and the website sell the same item on the same day. After that you need inventory software that keeps one figure for both, and says plainly how counter sales reach the website.
What to look for in a tool
| Check | Why it matters online | Ask the vendor |
|---|---|---|
| How counter sales reach the website | It sets your oversell gap | Does a till sale change the website's stock by itself, or on a button? |
| How products are matched | A product with two codes gets two stock figures | Which field matches them: SKU, barcode or name? |
| Refunds and returns | Stock comes back only if recorded | Does a refund on the website return stock to the till's count? |
| Low stock alerts | You reorder before the website shows zero | Who gets the alert, and on which device? |
| Selling offline | The counter mustn't stop when the internet drops | Does the till keep selling, and sync without duplicates later? |
| Exports | You compare channels and check the count | Can every report go to Excel? |
One code per product on every channel is the rule barcodes are built on. GS1's GTIN exists so a company can "uniquely identify all of its trade items".
ArmPOS
ArmPOS is a cloud point-of-sale (POS) and inventory system for shops in South Africa and 30 other African countries. Its own online store sells from the same stock as the counter.
It also links to WooCommerce and Shopify. WooCommerce's stock moves only when someone clicks Sync stock now. Shopify's moves when you press Send on its Sync tab, or every hour once you tick Sync on its own. With Send changes at once on, each sale reaches Shopify within about a minute. Products match by SKU, which is the product Code in ArmPOS.
Both Help center guides say they were written from ArmPOS's screens and code, not run against a real shop.
Common ecommerce inventory mistakes to avoid
Most online stock errors come from seven habits, and each has a cheap fix.
| Mistake | What it costs online | The fix |
|---|---|---|
| Guessing demand | The line your advert promotes runs out | Plan from last year's same weeks and your campaign dates |
| Running on spreadsheets | Two people edit one figure and one edit is lost | One system for the till and the website |
| Forgetting to sync channels | The website sells what the counter already sold | Sync at opening, midday, closing and at every last unit |
| Reordering too late | A best seller shows out of stock for days | A reorder point per product |
| Ignoring slow stock | Cash sits in boxes behind stale listings | Bundle it, discount it or stop reordering it |
| Skipping counts | The website sells goods that were stolen or broken | Weekly cycle counts of fast sellers |
| Not training the team | Returns never reach the stock figure | A written routine for orders, returns and syncs |
How to manage ecommerce inventory in ArmPOS
ArmPOS keeps the counter and its online store on one stock, and records every step from order to delivery. These are the steps, each with its Help center guide.
- Give every product one Code and a Stock Alert. Use the same code as its SKU on any other website: Add your first products.
- Set up the store. In Store › Settings, check the Default Warehouse that online orders take stock from, and keep Allow overselling off: Set up your online store.
- Confirm orders promptly. In Store › Online Orders, Confirm turns an order into a sale and takes the stock: Online orders.
- Keep other websites in step. On WooCommerce, click Sync stock now at opening, midday and closing. On Shopify, turn on Send changes at once: WooCommerce and Shopify.
- Track each delivery. Edit Shipping moves a sale's shipment from Packed to Shipped to Delivered: Shipments and deliveries.
- Watch low stock. Read Product Quantity Alerts, and turn on alerts on your phone: Stock reports and Get alerts on your phone.
- Count and correct. Count Stock makes a counting sheet, and an adjustment fixes the difference: Count and adjust stock.
The online store, WooCommerce and Shopify come with some plans only, as the pricing page shows.
Frequently asked questions
What is the best way to manage inventory for an online store?
Keep one stock figure for every channel, change it with every sale and return, and count it on a schedule. Then set a reorder point per product, so new stock arrives before the website shows zero.
How do I stop overselling online?
Make the website hear about counter sales before the shelf empties: sync at least as often as your fastest lines sell out. Keep overselling switched off in the store's settings.
How often should an online shop count its stock?
Count fast sellers weekly and the whole stock monthly or quarterly. Count again after a big campaign, when errors pile up fastest.
Does a dropshipping store need inventory management?
Less of it, but you still need the supplier's stock figure before you accept an order. Otherwise you sell what the supplier has run out of.
Do I need WooCommerce or Shopify to sell online with ArmPOS?
No. ArmPOS has its own online store on the same stock as the counter, on plans that include it. The WooCommerce and Shopify links suit shops that already sell there.
Find your oversell gap this week: list the lines with less stock than a morning's sales, and note when your website last heard about them. Then create a free ArmPOS account and add your products with one code each and a stock alert.