FurnFlowDocs
Open the app →
Docs › Purchasing › Purchasing & suppliers

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

Left navFulfilSuppliers
1
Reorder signal
Stock below reorder point
2
Request / RFQ
Requisition or quote suppliers
3
Purchase order
Issued to a supplier
4
Receive
Count, log damage, putaway
5
Back on shelf
Backlog auto-reserved

🤝 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 fieldWhy it matters
Supplier SKUTheir part number for your product.
CostDrives PO lines and landed-cost comparison.
Lead timeHow long until it arrives.
MOQ / case pack / reorder qtyOrder sizing rules.
Preferred / discontinuedWhich 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.

open approved converted Or rejected — rejected requests can't be converted. Converted means it became a purchase order.

📥 Purchase orders & receiving

open partially_received received

When goods arrive, record what actually showed up, line by line:

CapturedWhat it does
Received qtyAdds stock (a receive ledger row).
Shortage / overageRecords the discrepancy vs the PO line.
Damage on receiptLogs damaged/quarantined units so they don't become sellable.
Bin locationQueues 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 awarded Or cancelled (only while still open — an awarded RFQ can't be cancelled).
  1. Open an RFQ for the items you need.
  2. Collect quotes — record each supplier's price & terms.
  3. Compare landed cost — FurnFlow lines them up so the true cheapest is obvious.
  4. Award — creates the purchase order to the winning supplier. The RFQ then locks (no more cancellations).

↩️ Supplier returns & budgets

Supplier returns (RMA)

open authorized shipped credited / replaced closed Or cancelled from any state before a terminal one.

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

ActionRoles
Raise a purchase requestSales and most operational roles.
Approve a requestManager, owner, admin.
Manage suppliers & catalogBuyer, manager, admin.
Create / receive POsBuyer creates; warehouse + manager receive.
Set budgets / overrideManager, 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.