Inventory with a barcode scanner: receiving, stocktakes
In a small business, stock is often tracked by eye. The supplier's box goes onto the shelf, quantities occasionally get written into Excel, and once a year everything is counted. In between, a customer asks "do you still have any of these?" and someone goes to the stockroom to look.
That works as long as you sell in only one place. Once there's an online store as well, the stock level has to be right at every moment — otherwise the website sells goods that are no longer on the shelf.
Below is how I solved inventory management in the NUNDINAE platform. The principles apply even if you use some other system.
The stock and the online store are the same application
Before the tools, one thing matters: NUNDINAE has no stock program that integrates with an online store. The stock and the online store are one application with one stock level. When you receive goods, they are on sale online straight away; when the last one is sold at the till, it disappears from the online store at the same moment. You don't have to buy two applications or connect them — I wrote about this at more length in online store and inventory management in one application.
Which barcode scanner?
Any USB or Bluetooth barcode scanner that works "as a keyboard" — it reads the code and presses Enter. Most scanners do this by default. No extra software is needed. On a phone or tablet you can use the camera.
Every product and every variant has its own EAN field (8, 12, 13 or 14 digits). In the variants table you can scan the code straight into the cell. If the supplier's price list includes the codes, you add them in bulk: two columns side by side in Excel (SKU;EAN), save as CSV and import.
Receiving goods
When the supplier's box arrives:
- press "Receive goods (scanner)";
- scan each product from the box — every scan adds one unit, and quantities can also be corrected by hand in the table;
- check the list and save.
The stock level goes up, and unknown codes stay on the list in red so you can see straight away which items are missing an EAN.
"How many have we got?" with one beep
The most common stock question isn't a stocktake but "do we still have any?". You shouldn't need to open the product page for that.
Scan the product on any admin page — if the cursor isn't in a field, the scanner input opens the check box by itself. It shows the product's name, price and remaining stock in colour: green = in stock, orange = running low, red = out of stock. If there are actually fewer on the shelf (250 in the system, 230 on the shelf), type the correct quantity and save. The change is logged as a stocktake, with your name and the time.
Stocktakes
For a full stocktake there's a CSV import: rows of SKU;quantity or EAN;quantity, where the quantity is the new stock level, not an amount to add. Count the shelves, put the result in a spreadsheet and import it — the stock level is correct.
Every stock change is a record with a reason and the person who made it: incoming goods, sale, write-off, counting error. The stock level can't be changed without a reason. This isn't about keeping tabs on staff, it's the answer to "where did that go?". Correcting stock is a separate permission, so not everyone who sells also has to be able to change quantities.
An alert before something runs out
A low-stock alert appears when a product's available quantity is at or below its threshold. There's a general threshold in the settings (3 by default), but each product can have its own: 10 for a popular product, 1 for a slow one. On the dashboard you see how many products are out of stock and how many are running low; the bell icon in the top bar shows the number of alerts.
From there you put together a supplier order sheet with one click: all low-stock products, grouped by brand, with a suggested quantity. The suggestion comes from the product's reorder quantity, if you've set one. Adjust the quantities, print or download as CSV and send it to the supplier.
Weight and volume: when a unit isn't the right measure
Not everything is sold by the piece. If goods are used or sold by actual quantity, the price and the stock level can be kept in the same unit — grams, for example. Then the price is the price per gram (up to four decimal places) and a 60-gram pack means a stock level of 60. The actual amount used, say 35 grams, goes on the invoice, and exactly that much comes off the stock.
This suits materials used as part of a service: lubricants or care products in a workshop, massage oil in a studio. Such goods can be hidden in the shop, so they don't appear in the online store or in search, but they can be selected for an invoice in the admin. What this looks like in a workshop is covered in software for a car repair shop.
Why it matters
Accurate stock levels aren't accounting pedantry. If the online store sells goods you don't have, the result is an unhappy customer and a refund. If materials used don't make it onto the invoice, you pay for them yourself. And if the stock level is known, nobody has to recount the shelves at the end of the month.
If your stock is currently tracked by eye or in two places at once, order NUNDINAE or ask for a demo — I'll show you receiving and stocktakes using your own products.
