What this guide covers
This guide explains how Storeharmony tracks your inventory. It’s written for store managers, stock controllers, accountants, and business owners โ not programmers. You don’t need to understand databases or code to follow along. Every section walks through what you do, what the system does behind the scenes, and what to expect on screen.
The basics โ how Storeharmony thinks about your stock
Every product is a “Shop Item”
Whether you sell shoes, bags of rice, litres of paint, or hours of service, each product in Storeharmony is called a Shop Item. A Shop Item is defined by its barcode, name, selling price, cost price, and the category it belongs to.
If you sell the same shoe in 5 colours and 4 sizes, each colour-size combination is a separate Shop Item โ but they can all be grouped under one Product Master (more on that later).
Stock is tracked in batches
When you receive 200 bottles of Coca-Cola on Monday and another 150 on Thursday, Storeharmony doesn’t just add them together and say “350.” It remembers them as two separate batches:
- Batch 1: 200 bottles, arrived Monday, cost โฆ120 each, expires Dec 2026
- Batch 2: 150 bottles, arrived Thursday, cost โฆ125 each, expires Feb 2027
Why does this matter? Because when you sell a bottle, the system needs to know which batch it came from โ so it can calculate your true cost of goods sold, warn you about expiring stock, and tell you exactly how much of each shipment is left.
First In, First Out (FIFO)
By default, when you sell or use stock, Storeharmony takes from the oldest batch first. This is called FIFO โ First In, First Out. If you sell 50 bottles, they come from Batch 1 (the Monday delivery) because it arrived first.
For perishable goods (food, medicine, cosmetics), the system can use FEFO โ First Expired, First Out instead. This takes from the batch closest to its expiry date, regardless of when it arrived. You configure this per operation.
Every movement is recorded
Nothing happens silently. Every time stock comes in, goes out, is moved, adjusted, or written off, Storeharmony creates a permanent record called a flow entry. Think of it like a bank statement for your stock โ every deposit, withdrawal, and transfer is logged with a date, time, the person who did it, the quantity, and the cost.
info Precision Pricing
All prices and costs are stored in minor currency units (kobo for Naira, cents for Dollar). When you see โฆ4,500.00 on screen, the system stores it as 450,000 kobo. This prevents rounding errors that accumulate over thousands of transactions. You don’t need to think about this โ the system handles the conversion automatically.
Setting up your products
Creating a new product
To add a product to your inventory:
- Go to Inventory โ Create New Stock
- Fill in the product details:
- Barcode โ scan it or type it. This is the unique identifier.
- Description โ the name customers and staff see.
- Selling Price โ what you charge customers.
- Cost Price โ what you paid the supplier.
- Category โ where this product sits in your catalogue.
- Shelf Location โ which shelf or bin it’s stored on (optional but useful).
- Unit of Measure โ how you count it (units, kg, litres, cartons, etc.).
- Click Save. The product now exists in your inventory with zero stock.
At this point the product is in the system, but there’s nothing on the shelf yet. Stock arrives through the receiving process (next section).
Importing products from Excel
If you have a spreadsheet of products (from a supplier list or another system), you can bulk-import:
- Go to Inventory โ Import from Excel
- Upload your Excel file with columns: barcode, description, price, cost, category, quantity
- The system creates all the products and (if quantities are included) posts the initial stock with batch records
tip Bulk Import
This is especially useful for first-time setup or when onboarding a new product line. Make sure your barcode column has no duplicates.
Product masters and variants
If you sell a product in multiple colours and sizes (e.g., a T-shirt in Red/Blue/Green and S/M/L/XL), you can group them under a Product Master:
- Go to Inventory โ Create Product Master
- Enter the shared details: brand name, default category
- Link the individual Shop Items (variants) to the master
The Product Master lets you view all variants together, compare stock levels across colours and sizes, and manage shared attributes in one place. Each variant still has its own barcode, price, and stock level.
Categories
Products are organised into categories (e.g., Electronics โ Mobile Phones โ Samsung). Categories are hierarchical โ you can nest them as deep as you need. Assign products to categories for easier browsing, reporting, and filtering.
Receiving stock from suppliers
This is how goods enter your inventory. The process has three stages: create the invoice, review it, and approve it. Stock only enters your inventory at the approval stage.
Stage 1: Create the supply invoice
Select supplier and invoice details
Go to Inventory โ Receive Supplier Stock. Select or create the Supplier (vendor name, contact, bank details). Enter the invoice number, date, and payment terms.
Add line items
For each product on the invoice: select the product (by barcode or search), enter the quantity received, the unit cost price, the unit selling price (optional), and the expiry date (for perishable goods).
Save as pending
Save the invoice. Status becomes PENDING. At this point your stock levels have NOT changed. The goods are recorded but not yet “in inventory.”
Stage 2: Review and edit (optional)
Before approving, you can modify quantities (if the delivered amount differs from the order), adjust cost prices, add or remove line items, and add remarks. Go to Inventory โ Review Pending Supplies to see all invoices waiting for approval.
Stage 3: Approve and post
This is the critical step. When you approve a supply invoice:
- Open the pending invoice
- Review each line item
- Click Approve
Behind the scenes, for each item on the invoice, the system:
- Creates a stock batch with the cost, expiry, and supplier reference
- Increases the stock level for that product at your location
- Records a flow entry (type: “Added Supplies”) in the movement ledger
- Creates a formal audit document recording who approved it and when
warn Important
Stock only enters your inventory when the invoice is approved. A pending invoice means the goods are physically there but not tracked. Always approve promptly to keep your numbers accurate.
Quick stock top-up
For small, informal arrivals (e.g., you bought 5 items from a local market), you don’t need a full supply invoice:
- Right-click a product โ Quick Top Up
- Enter the quantity and optionally the cost
- Click Post
This creates a batch and updates stock immediately, with a lighter audit trail.
Selling stock (how the POS reduces inventory)
When a sale happens at the point of sale:
- The cashier scans products or searches by name
- The sale is processed and payment recorded
- Behind the scenes: for each item sold, Storeharmony deducts from the oldest batch (FIFO). If Batch 1 has 30 remaining and the sale is for 50, it takes 30 from Batch 1 and 20 from Batch 2.
You don’t need to do anything โ the inventory reduction is automatic. The flow ledger records the sale with: item, quantity, cost, selling price, customer (if applicable), and date/time.
info Accurate COGS
Because the system records the exact cost from each batch, your Cost of Goods Sold is always accurate โ not an average or estimate.
Transfers between stores
If you operate multiple stores, warehouses, or branches, you can transfer stock between them.
Same-system transfers (virtual)
Both stores are on the same Storeharmony system:
- Go to Inventory โ Transfer Stock to Another Store
- Select the items and enter quantities
- Choose the destination store
- Click Transfer
The transfer happens instantly โ stock is deducted from your store (FIFO from batches) and created at the destination store with the same cost and expiry.
Physical store transfers (remote)
The destination is a separate store on its own system:
Select items and destination
Go to Inventory โ Transfer Stock to Physical Store. Select items, quantities, and the destination store.
Configure transfer pricing
Choose how the destination sees your prices:
| Setting | Effect |
|---|---|
| Standard | Destination sees your selling price |
| Cost price swap | Destination sees your cost price (useful for warehouses) |
| Markup | Add a % on top (e.g., 10% markup for inter-branch margin) |
| Zero cost | Destination sees โฆ0 cost (for franchises where cost is confidential) |
Send the transfer
Click Send. Stock is deducted from your shelves immediately and quarantined “in transit.” Transfer data is sent to the cloud.
Destination receives
The destination store sees a pending transfer notification, reviews the items (can adjust quantities if some arrived damaged), and clicks Receive. Stock appears in their inventory with full batch history.
The transfer shows as a payable โ the destination store “owes” the source store for the stock received, tracked like a supplier invoice.
Writing off stock
Stock sometimes needs to be removed without a sale: damaged goods, expired products, missing items, or theft.
- Go to Inventory โ Record Write-Off (or right-click โ Write Off)
- Select the items and enter the write-off quantity
- Choose the reason:
- Damaged โ physically broken or unusable
- Expired โ past expiry date
- Missing โ unaccounted for after stock count
- Stolen โ confirmed theft
- Add remarks explaining the write-off
- Click Post
The system deducts from batches (FIFO, or FEFO for expiry-based write-offs), records a flow entry with the specific reason, and creates a formal audit document. Write-offs appear in the Stock Write-Off Report.
Returning stock to suppliers
When you need to send goods back (defective, wrong order, overstock):
- Go to Inventory โ Return to Supplier
- Select the items and return quantity
- Choose the reason for the return
- The system shows which specific batches from that supplier will be affected
- Click Post Return
tip Targeted Batch Deduction
Unlike regular FIFO, supplier returns target batches that came from that specific supplier โ not random oldest batches. This keeps your batch history accurate.
Internal consumption
Stock used internally โ office supplies, staff meals, product samples, cleaning materials โ needs to be recorded:
- Go to Inventory โ Record Internal Consumption
- Select items and quantities
- Enter the purpose (e.g., “Office supplies”, “Staff lunch”, “Customer samples”)
- Click Post
Internal consumption appears in the Consumption Report.
Stock adjustments
After a physical stock count, if the counted quantity doesn’t match what the system shows:
- Go to Inventory โ Stock Adjustment
- Enter the actual counted quantity per item
- The system calculates the difference automatically:
- Adjustment up โ counted more than system shows (found extra stock)
- Adjustment down โ counted less than system shows (shrinkage)
- Click Post Adjustment
For upward adjustments, the system creates a new batch. For downward adjustments, it deducts from existing batches (FIFO). Both create flow entries and audit documents.
Production and manufacturing
If your business manufactures products from raw materials (e.g., a bakery making bread from flour, yeast, and water), Storeharmony tracks the entire production process.
Define the recipe (formula)
Each manufactured product has a composition โ the raw materials needed to make one unit. For example, a “Large Chicken Pie” might require:
- 0.5 kg flour
- 0.2 kg chicken
- 0.05 kg seasoning
- 0.1 L oil
This formula is set up once on the finished product’s record.
Create a production order
- Go to Production โ New Production Order
- Select the finished product
- Enter the target quantity (e.g., 200 pies)
- The system resolves the formula and shows material requirements with availability:
| Material | Required | Available | Status |
|---|---|---|---|
| Flour | 100 kg | 150 kg | โ Sufficient |
| Chicken | 40 kg | 45 kg | โ Sufficient |
| Seasoning | 10 kg | 8 kg | โ ๏ธ Short by 2 kg |
| Oil | 20 L | 25 L | โ Sufficient |
- Review the cost breakdown and projected margin
- Click Create Order โ Status: DRAFT
Issue materials โ Track WIP โ Complete
Issue materials
Click Issue Materials. Raw materials are deducted from inventory (FIFO). Status: ISSUED.
Track work in progress
During production, record actual consumption per material, scrap/waste, and return unused materials to inventory.
Complete and post
Enter the actual yield (e.g., 195 pies). The system calculates production cost per unit: total material cost รท actual yield = cost per pie. Click Post to Inventory โ finished goods are added as a new batch with the calculated cost.
info Accurate Manufacturing Costs
Your stock valuation report shows the true production cost, not an estimated selling price. When you sell a โฆ800 chicken pie that cost โฆ361 to produce, the system records โฆ361 as COGS.
Viewing your inventory
The main inventory table
The inventory table is the central hub showing all products with live data: product name and barcode, current stock quantity, cost and selling price, batch information, category, and stock value.
tip Performance
Some columns load instantly (name, barcode, price). Others load in the background (batch counts, cross-location totals) โ you’ll see “Loading…” briefly, then the real value appears. This keeps the screen responsive even with thousands of products.
Sorting and searching
- Click a column header to sort (click again for reverse)
- Type in the search bar to filter by name, barcode, or tags
- Use tag-based search for advanced filtering:
Category:Electronics,Supplier:ABC Trading
Item detail view
Right-click any product โ View Item Detail to see a deep-dive with 5 tabs:
| Tab | Shows |
|---|---|
| Batches | Every batch: quantity remaining, cost, expiry, supplier |
| Flow Ledger | Complete movement history: every in and out with dates |
| Price History | How the price changed over time |
| Stock by Location | Quantities at each store/warehouse |
| Supply History | All purchase invoices that included this product |
Reports
Storeharmony provides built-in reports accessible from Inventory โ Reports. Each report loads in the background, supports date filtering, search, Excel export, PDF export, and direct printing.
Available reports
| Report | What it shows |
|---|---|
| Stock Balance | Current stock level per item with cost and retail valuation |
| Batch Stock Detail | Individual batches: cost, expiry, supplier, remaining quantity |
| Supply Invoices | All purchase invoices by date and supplier |
| Supply Postings | Individual items posted from supply invoices |
| Stock Adjustments | All physical count adjustments (up and down) |
| Write-Offs | All stock write-offs with reasons |
| Supplier Returns | All goods returned to suppliers with reasons |
| Internal Consumption | Stock used internally |
| Store Transfers | All stock movements between locations |
| Flow Ledger | Complete movement history for any product or period |
Multi-location management
Store locations
Each physical store, warehouse, or branch is a Store Location. Stock levels are tracked independently per location โ you can have 50 units at your main store and 120 at the warehouse.
What each location tracks
- Its own aggregate stock levels per product
- Its own batches (separate from other locations)
- Its own flow ledger (movements at this location only)
- Its own reports (filterable by location)
Viewing stock across locations
The Stock by Location tab in Item Detail shows quantities at every location. The “Global Qty” column in the main table (if enabled) shows totals across all locations.
Understanding your costs
How cost is tracked
Every batch records its cost at arrival. When stock leaves (sale, transfer, write-off), the system records the cost from the specific batch deducted. Your COGS reflects actual purchase cost โ not an average or estimate.
Stock valuation
The Stock Balance Report shows two valuations:
- Cost value โ quantity ร cost per batch, summed across all batches (what you paid)
- Retail value โ quantity ร selling price (what it’s worth at current prices)
The difference is your potential gross margin.
Production costing
For manufactured products, cost is calculated from raw materials consumed. If you made 195 chicken pies using โฆ70,400 worth of materials, each pie costs โฆ361. This production cost is stored on the batch.
The audit trail
Storeharmony records two layers of audit information:
Layer 1: The flow ledger
Every stock movement creates a flow entry recording: product, quantity, direction (in/out), movement type, who did it, when, and the cost. Flow entries are permanent โ never edited or deleted. This gives you a complete, tamper-proof history.
Layer 2: Formal audit documents
For significant events (supply approvals, write-offs, transfers, adjustments), the system creates a formal audit document with a unique reference number, approving officer, and line-by-line details. These have a lifecycle: Created โ Posted โ (optionally) Reversed.
info Full Traceability
Every action records the user who performed it. You can always trace who approved a supply invoice, who posted a write-off, who initiated a transfer, and exactly when each action happened.
Common scenarios
“I just received a delivery from my supplier”
- Inventory โ Receive Supplier Stock
- Select supplier, enter invoice number
- Add each product with quantity and cost
- Save (PENDING) โ Review โ Approve
- Stock is now on the shelf with batch tracking โ
“A customer returned a product”
- Process the return through POS or Inventory โ Record Return
- Returned quantity goes back into inventory
- Return flow entry is recorded, customer gets credited โ
“I found damaged goods during a shelf check”
- Inventory โ Record Write-Off
- Select damaged items, enter quantities
- Reason: “Damaged” โ Remarks: “Water damage from roof leak, Aisle 3”
- Post. Stock reduced, loss documented โ
“We need to send stock to our branch in Lagos”
- Inventory โ Transfer Stock to Physical Store
- Select items, quantities, destination
- Set transfer pricing if needed
- Send โ stock leaves your shelf, data sent to Lagos via cloud
- Lagos branch reviews and accepts โ
“Our physical count doesn’t match the system”
- Inventory โ Stock Adjustment
- Enter actual counted quantity per item
- System shows variance โ Post adjustment โ
“Which products are about to expire?”
- Open Batch Stock Detail report
- Sort by expiry date โ soonest at top
- Take action: discount, relocate, write off, or use for production โ
“What’s my total inventory value?”
Open Stock Balance report โ summary row shows total cost value, retail value, item count, and total units โ
“A product is selling fast โ time to reorder”
Check the product’s reorder point setting. When stock falls below it, the system flags it. Filter Stock Balance report to show low-stock items โ
Tips for accurate inventory
Seven Golden Rules
-
Always receive stock through the system โ don’t put items on the shelf without a supply invoice or quick top-up. Unrecorded stock creates discrepancies.
-
Approve supply invoices promptly โ stock only enters inventory when approved. Pending = physically there but not tracked.
-
Use write-offs for losses โ damaged, expired, or missing stock should be recorded. Silently absorbing losses makes your counts inaccurate.
-
Do regular physical counts โ use stock adjustment to reconcile. The variance tells you how accurate your processes are.
-
Check expiry dates using FEFO โ for perishable goods, ensure write-offs and sales use First Expired, First Out.
-
Assign riders and staff to transactions โ when dispatching B2B deliveries, record the rider for traceability.
-
Review reports weekly โ Stock Balance and Flow Ledger are your best tools for spotting problems: negative batches, sudden drops, or unusual write-off patterns.