Inventory Guide

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:

  1. Go to Inventory โ†’ Create New Stock
  2. 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.).
  3. 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:

  1. Go to Inventory โ†’ Import from Excel
  2. Upload your Excel file with columns: barcode, description, price, cost, category, quantity
  3. 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:

  1. Go to Inventory โ†’ Create Product Master
  2. Enter the shared details: brand name, default category
  3. 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:

  1. Open the pending invoice
  2. Review each line item
  3. 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:

  1. Right-click a product โ†’ Quick Top Up
  2. Enter the quantity and optionally the cost
  3. 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:

  1. The cashier scans products or searches by name
  2. The sale is processed and payment recorded
  3. 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:

  1. Go to Inventory โ†’ Transfer Stock to Another Store
  2. Select the items and enter quantities
  3. Choose the destination store
  4. 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.

  1. Go to Inventory โ†’ Record Write-Off (or right-click โ†’ Write Off)
  2. Select the items and enter the write-off quantity
  3. Choose the reason:
    • Damaged โ€” physically broken or unusable
    • Expired โ€” past expiry date
    • Missing โ€” unaccounted for after stock count
    • Stolen โ€” confirmed theft
  4. Add remarks explaining the write-off
  5. 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):

  1. Go to Inventory โ†’ Return to Supplier
  2. Select the items and return quantity
  3. Choose the reason for the return
  4. The system shows which specific batches from that supplier will be affected
  5. 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:

  1. Go to Inventory โ†’ Record Internal Consumption
  2. Select items and quantities
  3. Enter the purpose (e.g., “Office supplies”, “Staff lunch”, “Customer samples”)
  4. 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:

  1. Go to Inventory โ†’ Stock Adjustment
  2. Enter the actual counted quantity per item
  3. The system calculates the difference automatically:
    • Adjustment up โ€” counted more than system shows (found extra stock)
    • Adjustment down โ€” counted less than system shows (shrinkage)
  4. 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

  1. Go to Production โ†’ New Production Order
  2. Select the finished product
  3. Enter the target quantity (e.g., 200 pies)
  4. 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
  1. Review the cost breakdown and projected margin
  2. 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”

  1. Inventory โ†’ Receive Supplier Stock
  2. Select supplier, enter invoice number
  3. Add each product with quantity and cost
  4. Save (PENDING) โ†’ Review โ†’ Approve
  5. Stock is now on the shelf with batch tracking โœ…

“A customer returned a product”

  1. Process the return through POS or Inventory โ†’ Record Return
  2. Returned quantity goes back into inventory
  3. Return flow entry is recorded, customer gets credited โœ…

“I found damaged goods during a shelf check”

  1. Inventory โ†’ Record Write-Off
  2. Select damaged items, enter quantities
  3. Reason: “Damaged” โ€” Remarks: “Water damage from roof leak, Aisle 3”
  4. Post. Stock reduced, loss documented โœ…

“We need to send stock to our branch in Lagos”

  1. Inventory โ†’ Transfer Stock to Physical Store
  2. Select items, quantities, destination
  3. Set transfer pricing if needed
  4. Send โ€” stock leaves your shelf, data sent to Lagos via cloud
  5. Lagos branch reviews and accepts โœ…

“Our physical count doesn’t match the system”

  1. Inventory โ†’ Stock Adjustment
  2. Enter actual counted quantity per item
  3. System shows variance โ†’ Post adjustment โœ…

“Which products are about to expire?”

  1. Open Batch Stock Detail report
  2. Sort by expiry date โ€” soonest at top
  3. 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

  1. 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.

  2. Approve supply invoices promptly โ€” stock only enters inventory when approved. Pending = physically there but not tracked.

  3. Use write-offs for losses โ€” damaged, expired, or missing stock should be recorded. Silently absorbing losses makes your counts inaccurate.

  4. Do regular physical counts โ€” use stock adjustment to reconcile. The variance tells you how accurate your processes are.

  5. Check expiry dates using FEFO โ€” for perishable goods, ensure write-offs and sales use First Expired, First Out.

  6. Assign riders and staff to transactions โ€” when dispatching B2B deliveries, record the rider for traceability.

  7. Review reports weekly โ€” Stock Balance and Flow Ledger are your best tools for spotting problems: negative batches, sudden drops, or unusual write-off patterns.