Comprehensive guide to managing your organization's products and services.
Interface Overview
Typical "Create Item" workflow with advanced pricing and batch tracking.
Business Overview
Items are the building blocks of your sales and purchases. QOBooks distinguishes between Products (physical goods tracked for inventory) and Services (non-physical labor or professional fees).
Actions
1. Creating a New Item
- Go to Inventory > Items and click Add Item.
- Item Type: Select "Product" for physical stock or "Service" for labor.
- Identity: Enter the Item Name and a unique SKU/Barcode.
- Batch Tracking (PRO): Enable this if you need to track expiration dates or manufacturing batches.
2. Advanced Pricing Dynamics
Our system supports multi-dimensional pricing, allowing you to define different packaging units and customer pricing tiers (e.g., Retail, Wholesale, Box, Carton) in a single item profile.
The Pricing Grid
- Label / Unit: The name of the pricing tier or unit (e.g., "pc", "Box of 12", "Carton of 24", "Wholesale").
- Dim (Dimension): The quantity multiplier relative to the atomic base unit (dimension = 1).
- Example: If your base single item is
pc(Dim: 1), a "Box" containing 12 pieces has Dim12, and a "Carton" containing 24 pieces has Dim24.
- Example: If your base single item is
- Rate: The selling price charged for this unit/tier.
- Pricing Factor: Defines how the system calculates unit costs or markups relative to base price.
The Principal Multiple Pricing Tiers Cost Price Rule
[!IMPORTANT] Cost Price Must Represent the Highest Packaging Unit: When an item has multiple packaging tiers (
max_dim > 1), the system calculates the internal cost of an individual base piece as: Unit Cost per Base Piece = Cost Price / Maximum Dimension (max_dim)Therefore, Cost Price must ALWAYS represent the acquisition cost of the HIGHEST packaging unit, and must satisfy: Smallest Tier Rate (Piece Price) < Cost Price < Highest Tier Rate (Carton Price)
Correct Example (Cost Price = GH₵ 24.00)
- Tier 1 (Carton): Label:
ctn, Dim:24, Rate: GH₵ 36.00 - Tier 2 (Piece): Label:
pc, Dim:1, Rate: GH₵ 2.00 - Entered Cost Price: GH₵ 24.00 (The cost to buy 1 full carton of 24)
- Behind the scenes: System computes piece cost as GH₵ 24.00 ÷ 24 = GH₵ 1.00.
- Selling 1 Carton: Revenue = GH₵ 36.00, Cost = GH₵ 1.00 × 24 = GH₵ 24.00 → GH₵ 12.00 profit (33.3% margin - realistic).
- Selling 1 Piece: Revenue = GH₵ 2.00, Cost = GH₵ 1.00 × 1 = GH₵ 1.00 → GH₵ 1.00 profit (50% margin - realistic).
Wrong Example (Cost Price = GH₵ 1.00 - Erroneously entering piece cost)
- Tier 1 (Carton): Label:
ctn, Dim:24, Rate: GH₵ 36.00 - Tier 2 (Piece): Label:
pc, Dim:1, Rate: GH₵ 2.00 - Erroneous Cost Price: GH₵ 1.00 (User mistakenly entered the cost of 1 single piece)
- Behind the scenes: System computes piece cost as GH₵ 1.00 ÷ 24 = GH₵ 0.04167!
- Selling 1 Carton: Revenue = GH₵ 36.00, Cost = GH₵ 0.04167 × 24 = GH₵ 1.00 → GH₵ 35.00 profit (3,500% astronomical, distorted margin).
- Selling 1 Piece: Revenue = GH₵ 2.00, Cost = GH₵ 0.04167 → GH₵ 1.96 profit (98% margin instead of 50%).
- Severe Impact: Balance sheet inventory assets are understated by 24x!
3. Inventory & Branch Settings
- Quantity on Hand: Initial stock count when creating the item (expressed in base atomic units).
- Cost Price: Purchase cost for the highest packaging tier.
- Restock Level: The "Safe Zone". When stock hits this number, the item is flagged as "Low Stock".
- Shelf Location: Physical location coordinates (e.g.
📍 A01-R2-B04) assigned per branch to help warehouse managers, cashiers, and tellers immediately locate items. See Shelf Locations & Warehouse Layout. - Track Stock: Toggle this OFF if you want to sell the item without decreasing inventory counts (e.g., services or digital items).
- Negative Sell: Enable this if you want to allow sales even when recorded stock is 0 (useful for pre-orders).
4. Accounting Links
Expand the Advanced Accounting Settings to configure ledger accounts:
- Income Account: Where sales revenue is credited.
- Expense/COGS Account: Where purchase cost of goods sold is debited.
- Asset Account: Where inventory valuation is held on the Balance Sheet.
5. Bulk Importing Items from Spreadsheets
Bulk importing is the fastest way to get your products into Qotrack. It is ideal both for new organizations onboarding with inventory already typed out or exported in Excel, and for established businesses managing large catalogs or updating wholesale pricing:
- Go to Inventory > Items and click Import Items.
- Click Download CSV Template to get the standardized spreadsheet with pre-formatted headers and sample multi-tier rows.
- Select your Target Branch (where opening stock journal entries will post).
- Select your Duplicate Handling Rule:
- Skip Duplicates: Leaves existing catalog items untouched and only creates new items.
- Update Duplicates: Overwrites existing matching items (by SKU, Barcode, or Name) with new spreadsheet prices and attributes.
- Drag and drop your file into the dropzone. The system automatically inspects every row in real time:
- Verifies that multiple packaging tiers obey the Multiple Pricing Tiers Cost Price Rule.
- Displays an Error badge and blocks import if cost price bounds are violated.
- Prompts you to confirm duplicate actions before committing to the database.
[!TIP] For full column specifications, syntax examples, and pricing tier rules, see the dedicated Bulk Import & Pricing Rules documentation.
Modifying Items
Editing Items
- Direct Editing: Click the Edit Item button on the item details view to modify item information including name, SKU, pricing dimensions, and accounting settings.
- Stock Adjustments: For significant cost price changes, use the Adjust Stock feature instead of direct editing to preserve historical valuation and maintain accurate inventory records.
- Branch-Specific Pricing: Prices can be configured per branch, allowing different selling prices for different locations.
Disabling Items
- Active/Inactive Status: Toggle the "Active" status to hide items from active selection while keeping their complete transaction history.
- Effect: Inactive items won't appear in dropdowns for new transactions but will remain visible in reports and historical records.
Deleting Items
When deleting an item, Qotrack provides two operational modes to protect financial and ledger integrity:
-
Permanent Deletion:
- Completely erases the item and its pricing records from the database table.
- Constraint: Allowed only if the item has 0 transaction history (no sales receipts, customer invoices, supplier bills, stock movements, or stock adjustments).
- If an item has even 1 historical transaction, attempting permanent deletion triggers a guardrail error: "Cannot permanently delete this item because it is linked to X transaction(s). Use soft-delete (archive) instead."
-
Soft-Delete (Archive) — Recommended Standard:
- Hides the product immediately from the items catalog, POS cashier search, invoices, bills, and purchase forms.
- Frees up the original name, SKU, and barcode: The system archives the record and cleanly releases the item's identifiers so you can immediately create or import a brand-new item using the same title, SKU, or barcode without duplicate errors.
- Preserves all historical financial statements, tax records, and audit trails without data corruption.
Workarounds if you see "Cannot permanently delete because it is linked to transaction(s)":
- Workaround 1 (Recommended): Select "Soft-Delete (Archive)". In the confirmation dialog, choose Soft-Delete (Archive). The item will be hidden everywhere in daily operations and its name/SKU/barcode will be completely freed for reuse.
- Workaround 2: Void/Delete the Linked Transaction(s) First. Open the item's details view → History or Transactions tab to find the linked record (e.g. an Adjustment or Receipt). Navigate to that specific module, void or delete the transaction, and then return to Items → Delete → Permanent Deletion.
[!IMPORTANT] Disable vs Archive vs Permanent Delete:
- Disable (Mark as Inactive): Keeps the item visible in historical lists but greys it out so cashiers and buyers cannot select it in new transactions.
- Soft-Delete (Archive): Safely archives the item from active operations and releases its identifiers for reassignment, while protecting past financial reports.
- Permanent Delete: Hard-erases the database record. Only possible when the item has never been transacted.
Item Details View
Comprehensive item details with stock summary, transactions, and movement history.
Overview Tab
The Overview tab provides a complete snapshot of the item:
- Stock Summary: Displays current stock on hand, committed stock (reserved for orders), and available quantity
- Item Details: Shows item type (Inventory Item or Service), inventory account, and valuation method (FIFO)
- Order Status: Displays quantities to be invoiced and to be billed
- Purchase Information: Cost price and expense/COGS account
- Sales Information: Selling price with multi-dimensional pricing dropdown, and income account
- Inventory Controls: Reorder point settings and notification preferences
Transactions Tab
The Transactions tab shows all transactions involving this item:
- Transaction Types: Invoices, Bills, Transfers, Adjustments, Opening Stock, and Returns
- Search & Filter: Search by reference or entity name, filter by transaction type, and filter by date range
- Transaction Details: Date, type, reference number, entity name, quantity, and unit price
- Totals: Summary totals for filtered results showing total quantity and total value
History Tab
The History tab tracks all inventory movements for this item:
- Movement Tracking: Shows all stock additions (IN) and deductions (OUT) with running balances
- Reference Types: Opening Stock, Sales, Purchases, Transfers, Adjustments, Returns
- Balance Calculation: Displays balance before and after each movement
- Search & Filter: Search by reference, filter by movement type (IN/OUT), and filter by date range
- Summary: Total additions and deductions for the filtered period
[!TIP] Batch Tracking & Expiry: Using the "Track by Batch" feature allows the system to warn you about expiring stock on your dashboard before it becomes a loss.