Training guide · Inventory & Purchasing
From what you sell to what you owe the supplier for it
Products and Categories are the catalogue. Suppliers is who you buy from. Purchasing is the ordering and receiving paper trail — including a real 3-way match against the supplier's actual invoice before anything posts to Accounts Payable. Inventory is the live stock view sitting on top of all of it, with its own adjustment and stock-count tools. This guide follows one product from its reorder point, through a Purchase Order, a goods receipt, and a matched supplier bill.
Inventory → Products & Categories
Products & Categories
The catalogue every other module reads from — Sales, eCommerce, Purchasing, and Inventory all point back to the same product record rather than keeping their own copy.
One product record, several purpose-built sections
+ Add Product opens a form organised into cards rather than one long list: core details up top, then Stock & Fulfilment (low stock alert, batch/lot or serial tracking, weighted-by-weight), Storage & Shelf Life (a storage zone and minimum shelf life used by receiving and putaway), Visibility & POS (Show on POS, Show on eCommerce), Barcodes, Packaging (inner/outer pack sizes with bulk-buy discounts), and Supplier & Reorder.
Stock & Fulfilment
Supplier & Reorder
Categories: a flat, renameable list
A category is nothing more than a name — there's no parent/child nesting. Renaming one cascades everywhere it's referenced (every product tagged with it, supplier category tags, POS/eCommerce filters, margin reports) rather than leaving old labels stranded. Deleting a category that still has products on it offers to reassign them to "Uncategorised" instead of an unexplained failure.
| Category | Products | Actions |
|---|---|---|
| 💊 Pharmacy | 142 | Edit · Delete |
| 🧴 Supplements | 58 | Edit · Delete |
Inventory → Suppliers
Suppliers
Who you buy from — contact details, payment terms, and the categories they supply — with a direct shortcut into raising a Purchase Order against them.
The supplier record
Fields cover the essentials — name, contact, ABN, GST number, postal and delivery addresses, and payment terms as quick-pick "Net N days" buttons (COD, 7, 14, 21, 30, 45, 60, 90). There's no performance scorecard (on-time %, quality rating) built in — this is a contact and terms record, not a vendor-rating system.
| Name | Contact | Terms | Categories | Status | Actions |
|---|---|---|---|---|---|
| City Pharma Wholesale | orders@citypharma.com.au | Net 30 | Pharmacy, Supplements | Active | Edit · Message · + PO · Del |
Inventory → Purchasing
Purchasing
Purchase Orders, from draft to a fully matched supplier bill. The lifecycle is built around one deliberate rule: receiving goods updates stock immediately, but the actual Accounts Payable liability only posts once a real supplier invoice is matched against what was ordered and received.
Draft → Ordered → Received
+ Create PO builds a draft; Save Draft keeps it editable. Send moves it to Ordered and stamps the send date. From there it becomes Partially Received or Received as goods come in — a partially-received order can be explicitly Closed to write off whatever's still outstanding rather than leaving it open forever.
| PO # | Supplier | Total | Status | |
|---|---|---|---|---|
| PO-0142 | City Pharma Wholesale | $1,200.00 | Partially Received | Receive More · Close PO |
Receiving goods: condition decides what happens to stock
Receive opens a per-line entry: quantity received, batch number and expiry date (if batch-managed), serials (if serial-tracked), and a Condition — Good, Short, Damaged, or Rejected. Only Good stock adds to available inventory; Damaged and Rejected route to a quarantine location instead and never increase stock on hand.
| Item | Expected | Received | Batch # | Expiry | Condition |
|---|---|---|---|---|---|
| Amoxicillin 500mg | 50 | 48 | B24071 | 05/2028 | Good |
| Amoxicillin 500mg | — | 2 | — | — | Damaged |
Supplier Bill & 3-way match: where AP actually gets created
Bill / 3-way Match is where the supplier's real invoice gets entered and checked against both the PO and what was actually received. The system flags Price Variance (billed more than ordered, beyond tolerance), Over-billed (billed more than received), or Not Received (a bill arrived before any goods did) — otherwise it's Matched or an acceptable Variance OK within the configured tolerance.
Ordered $1,200.00 · Received $1,152.00 · Billed $1,267.20 → Matched
Inventory → Inventory
Inventory
A stock-focused view over the same products — not a second catalogue — with the numbers that matter for "can I sell this right now": what's on hand, what's already spoken for, and what's actually available.
On Hand, Allocated, and Available are three different numbers
On Hand is physical stock. Allocated is how much of that is already reserved by open Sales Orders/eCommerce orders that haven't dispatched yet (click it to see exactly which orders). Available is what's actually left to sell — On Hand minus Allocated — and it's what a Sales Order checks against, not the raw on-hand count.
| SKU | Product | On Hand | Allocated | Available | Actions |
|---|---|---|---|---|---|
| AMX-500-100 | Amoxicillin 500mg Batch | 48 | 6 | 42 | Adjust · ↔ WMS |
| VITC-1000 | Vitamin C 1000mg | 0 | 0 | 0 | Adjust · Reorder |
Stock Adjustment vs. Stock Count — they're not the same tool
Adjust Stock is a deliberate, reasoned change — Add Stock (Receive), Remove Stock (Write-off), or Set Exact Count, each with a required reason — and it posts a proper GL entry, subject to the same period-lock and approval-threshold rules as any other accounting transaction. Stock Count is a quick, bulk "enter what you counted" sheet for a walkthrough tally.
Reorder Assistant: drafts a PO before you run out
Once a product's Low Stock Alert threshold and Preferred Supplier are both set, falling below that level triggers a draft Purchase Order automatically — visible in Purchasing tagged "Auto-drafted by Reorder Assistant from reorder-point levels," ready to review and send rather than build from scratch. An out-of-stock row's Reorder button jumps straight into that same flow.