Purchasing & suppliers
The engine room that keeps inventory stocked: suppliers and their catalog, requisitions, purchase orders and receiving, reorder suggestions, RFQs, returns and budgets.
🏭 The purchasing flow
🤝 Suppliers & catalog
Each supplier stores the terms you trade on: payment terms, lead time, minimum order quantity (MOQ), whether they're preferred, and a computed performance score (on-time, accuracy, damage). Archive suppliers you no longer use.
For each supplier you keep a catalog of the products they offer:
| Catalog field | Why it matters |
|---|---|
| Supplier SKU | Their part number for your product. |
| Cost | Drives PO lines and landed-cost comparison. |
| Lead time | How long until it arrives. |
| MOQ / case pack / reorder qty | Order sizing rules. |
| Preferred / discontinued | Which offer wins on autofill. |
Because the catalog knows cost & supplier SKU, building a PO is mostly autofill — and on any product you can see every supplier offer side-by-side to buy from the best source.
🧾 Purchase requests
A lightweight requisition step so anyone can ask to buy, and a manager approves before money is committed.
📥 Purchase orders & receiving
When goods arrive, record what actually showed up, line by line:
| Captured | What it does |
|---|---|
| Received qty | Adds stock (a receive ledger row). |
| Shortage / overage | Records the discrepancy vs the PO line. |
| Damage on receipt | Logs damaged/quarantined units so they don't become sellable. |
| Bin location | Queues a putaway task so the floor knows where it goes. |
Receiving stock auto-reserves any waiting backlog — units you owed to open orders are committed the moment they land, so fulfilment unblocks itself. A PO can't be received twice.
📈 Reorder suggestions & RFQs
Reorder suggestions watch stock against each product's reorder point and surface a live "buy now" list, factoring in recent movement. From a suggestion you can raise a PO in one click, pre-filled from the preferred supplier's catalog.
When you want competitive pricing first, run an RFQ:
- Open an RFQ for the items you need.
- Collect quotes — record each supplier's price & terms.
- Compare landed cost — FurnFlow lines them up so the true cheapest is obvious.
- Award — creates the purchase order to the winning supplier. The RFQ then locks (no more cancellations).
↩️ Supplier returns & budgets
Supplier returns (RMA)
Each RMA holds the RMA number, the disposition (credit vs replace), the credit amount and tracking.
Budgets & spend control
Set a purchase budget per period (and branch). When a new PO would push committed spend over budget, FurnFlow blocks it with a "budget exceeded" message. A manager can deliberately override — recorded in the audit log — but the default protects the budget.
Purchasing lives in the Purchasing module and is driven by the buyer role (plus managers/owners). Receiving is shared with warehouse.
🔑 Who can do what
| Action | Roles |
|---|---|
| Raise a purchase request | Sales and most operational roles. |
| Approve a request | Manager, owner, admin. |
| Manage suppliers & catalog | Buyer, manager, admin. |
| Create / receive POs | Buyer creates; warehouse + manager receive. |
| Set budgets / override | Manager, owner, admin (override is audit-logged). |
❓ FAQ
My PO is blocked — "budget exceeded".
Committed spend + this PO exceeds the period's budget. Reduce it, wait for the next period, or have a manager deliberately override (it's logged in the audit log).
I received a PO but can't receive it again.
A PO can only be received once. If more arrives later, record it as an overage on the original receipt, or raise a new PO.
Where do received units go?
Onto the shelf (a receive ledger row) and, if you set a bin, into a putaway task. Any backlog waiting on that stock is auto-reserved.