Chapter 8
Products & Categories
8.1 Adding a product#
- Inventory → Products → “+ Add Product.”
- If selling services is on, choose the Type: Product, or Service for work you charge for, such as a repair (section 8.5).
- Enter a SKU (required — or click “Generate” to auto-create one) and, optionally, a Barcode: click in the Barcode field and scan the barcode on the pack, or type it. You can scan at any point while filling in the form — the scanner's Enter key doesn't save the product early. The same goes for the Barcode field when editing a product.
- Enter the Product Name and Description.
- Choose a Category and a Main Supplier (both required).
- Choose the Unit of Measure (Pieces, Bag, Box, Bottle, Kilograms, Liters, or Pack).
- Enter Cost Price and Selling Price — a live Profit Margin % is shown as you type.
- Enter an Initial Stock Quantity (added at your active branch) and a Reorder Level (the threshold that triggers a low-stock alert).
- If batch tracking is on and this product expires, tick “Track batches and expiry dates.” With opening stock, also enter its batch no. (optional) and expiry date (required).
- Click “Save Product.”
8.2 The product list and product page#
Stock figures on the product list and product page are for your branch (or the branch selected in the header). For a product tracked by batch, the list shows its nearest expiry date — red once expired, amber when expiring soon — and the product page has a batch table listing each batch's number, expiry date, status (“Expired”, “Expires in N days”), and quantity, earliest expiry first. The product's stock history also shows the batch for each movement.
8.3 Deactivating and reactivating a product#
Deleting a product that already has sales history, or is on a proforma, deactivates it instead of removing it, so past sales and quotes stay intact. A product with no sales history is deleted outright.
To bring a deactivated product back, find it in Inventory → Products and click its Reactivate button (the circular-arrows icon), then confirm. It's immediately available for sale and purchase again.
8.4 Categories#
Categories are added and edited the same simple way (a name, and a save button), and can be toggled active/inactive.
8.5 Services#
Shops that charge for work as well as goods — repairs, installation, labour, delivery, hire — can sell those services alongside their products. A service is set up and sold like a product, and counts in sales and profit, but it has no stock: it never runs out, and it isn't bought, counted, transferred, or valued as stock. It's optional and off by default.
Turning it on#
- Administration → Settings → Optional features.
- Switch on “Sell services as well as products” and click “Save settings.”
Setting up a service#
- Inventory → Products → “+ Add Product,” and choose Type: Service.
- Enter a SKU, a name such as “Generator repair,” and a Category. A Main Supplier isn't needed.
- Choose the Unit: Job, Hour, Day, Visit, Trip, or Each.
- Enter the Selling Price. If the price depends on the job, tick “Price set at sale”: the cashier types the price at the POS, and the selling price is only a suggestion (it can be 0).
- Optionally enter the Cost per service — what one costs you in labour or materials (see below).
- Click “Save Product.” There's no stock, reorder level, or expiry to enter.
Cost and profit#
A service's profit is its selling price less its Cost per service. Leave the cost at 0 to count the whole price as profit, or enter what one costs you, such as the technician's pay for the job or the parts it uses. As for products, each sale keeps the cost at the time, so changing the cost later doesn't change profit already reported.
Where services show, and where they don't#
- Product list — marked “Service” (or “Service · price at sale”) with “—” for stock. A filter shows Products only or Services only.
- POS and proformas — sold and quoted like any product (sections 3.6 and 4.6).
- Reports — counted in sales, Top Selling, and Profit & Loss like any product.
- Left out of everything about stock: Stock Management, Stock In, Stock Out, adjustments, purchases, direct deliveries, stock transfers, low-stock alerts, and the Stock Valuation, Low Stock, Stock by Branch, and Profit Margins reports.
Changing a product into a service#
A product that has stock can't become a service. If it really is a service, take its stock out first with Stock Out or a stock adjustment, then change its Type. A service can be changed back into a product, starting with no stock.
Turning it off#
Switching it off hides the Type choice and the service options. Services already set up keep selling, and keep their settings.
8.6 Prices at each branch#
If your business has more than one branch, each branch can sell a product at its own price — a town branch dearer than the main store, say. The product's Selling Price becomes its standard price, which every branch without a price of its own sells at. It's optional and off by default.
Turning it on#
- Administration → Settings → Optional features.
- Switch on “Set a different selling price at each branch” and click “Save settings.”
Setting a branch's price#
- Inventory → Products, and click Edit on the product.
- Under “Price at each branch,” type the price for each branch that sells it at its own price. Leave a branch blank to sell at the standard price there.
- Click “Update Product.”
Setting prices in bulk#
To set many prices at once, use a spreadsheet:
- Inventory → Products → “🏬 Branch Prices.”
- Click “Download Current Prices.” The file lists every product at each of your branches, with its standard_price and the branch's own price (blank means it sells at the standard price).
- In the price column, type a branch's new price, or standard to put it back on the standard price. Leave a price blank to keep it as it is.
- Save the file as CSV, upload it, click “Preview Import →,” check the rows, and confirm.
Who can change what#
- Company-wide users can set any branch's price, and the standard price.
- Branch-level users can set only their own branch's price. While branch prices are on they can't change the standard price, on the product page or in an import, because every other branch without its own price would change with it.
- Anyone who can add products can give a new product its first price.
- Every change is recorded in the Audit Log. Dropping a branch's price by 30% or more raises the usual alert on the Dashboard, naming the branch.
Where branch prices show#
- POS, proformas, and direct deliveries — each branch sells and quotes at its own price.
- Product list and product page — the price at the branch you're viewing, with the standard price under it when they differ.
- Reports — Stock Valuation, Profit Margins, Dead Stock, Damaged Stock, Low Stock, and Top Selling show the price at the branch you're viewing. With “All branches,” they show the standard price, and potential revenue and profit count each branch's stock at its own price.
- Sales already made keep the price they were sold at.
Turning it off#
Switching it off puts every branch back on the standard price. The branch prices are kept, and come back if you switch it on again.
8.7 Average cost per branch#
A product's cost for profit and stock value is its weighted-average cost: the average of what its stock cost, updated by each purchase. Normally the whole business shares one average cost. If your branches buy from different suppliers or at different prices, each branch can keep its own, so a dearer purchase at one branch doesn't change the cost, or the profit, at the others. It's optional and off by default.
Turning it on#
- Administration → Settings → Optional features.
- Switch on “Keep average cost per branch” and click “Save settings.”
What changes a branch's cost#
- A purchase — recorded, edited, voided, or imported — changes only the cost at the branch it belongs to.
- A stock transfer takes the sending branch's cost with it. When it's received, it's blended into the receiving branch's cost. If it's cancelled, it goes back into the sending branch's cost.
- Sales, Stock Out, and stock adjustments don't change the average, just as with one average for the whole business.
For example: both branches have a product at an average cost of 61.59. Kumasi holds 32 and buys 10 more at 80, so its cost becomes 65.97. Osu's stays at 61.59.
Where it's used#
- Each sale records the cost at the branch that sold it, so its profit in the Sales Report, Top Selling, Profit & Loss, and Branch Performance uses what that branch's stock cost.
- Stock Valuation, Stock by Branch, Profit Margins, Dead Stock, Damaged Stock, and the Expiry Report value each branch's stock at its own cost. With “All branches,” the cost shown is the branches' costs averaged by how much stock each holds.
- The product list, product page, and purchase screens show your branch's cost. The product page also shows the business-wide cost in brackets when it's different.
- Sales already made keep the cost they recorded.
Turning it off#
Switching it off goes back to one average cost for the whole business. Sales from then on record it; sales already made keep the cost they recorded.