Purchase orders
POs are how stock gets into your inventory. Every receive event traces back to a PO, which keeps your COGS clean and your accountant happy.
Creating a PO
Open Purchase Orders → New PO. The header collects:
- PO number — your own format. Usually a supplier code + date works (e.g.
MTMS-20251030) - Supplier — pick from your supplier list
- Order date — when you placed the order
- Expected arrival — optional but useful for the dashboard
- Shipping terms — FOB / CIF / DAP. Pre-fills from the supplier's default
Add line items: pick a product, set quantity ordered and unit cost. The line total updates as you type. Add freight, duties, and other costs at the bottom — these get allocated pro-rata across line items by line value, so each unit's landed unit cost reflects its share of inbound costs. Watch the Landed / unit column update as you change freight numbers.
Click Create purchase order to save.
Status flow
POs move through these statuses:
DRAFT— being built, no commitmentORDERED— you've placed it with the supplierIN_TRANSIT— supplier shipped, you're waiting on receiptPARTIALLY_RECEIVED— some lines received, others outstandingRECEIVED— fully received
Use the status dropdown on the detail page. The status affects which actions are available (e.g. you can't Receive a DRAFT PO).
Recording payments
The Payments section on a PO detail page tracks deposit and final payments. Add a payment with date, amount, and method (WIRE / CC / ACH / CASH). The detail page shows running paid vs. remaining at the top.
Receiving
When stock physically arrives, click Receive on the PO detail page. Choose:
- Received date — when the stock landed
- Destination location — usually your main warehouse
- Quantities — defaults to ordered qty; adjust if anything was damaged or missing
Click Confirm receipt. Behind the scenes:
1. Freight, duties, and other costs are allocated pro-rata across the received lines 2. Cost layers are created at the destination location with the correct landed unit cost (FIFO is the default; WAC and LIFO are configurable in Settings) 3. Inbound PURCHASE_RECEIPT movements are logged 4. PO status moves to RECEIVED (or PARTIALLY_RECEIVED) 5. Boxes are generated for box-level scanning (see Receiving & box scanning)
Reversing a receipt
If you need to undo a receipt — wrong qty entered, wrong location, anything — open the receipt detail page and click Reverse receipt. Reversal is gated by receipts:reverse (Owner/Admin) and requires typed-confirmation when boxes are still open.
Reversal:
- Restores the consumed cost layers
- Deletes the
PURCHASE_RECEIPTmovements - Returns the PO to
IN_TRANSIT
You can then receive again with the corrected data.
Linked assets
POs can include line items that aren't inventory — tooling, molds, equipment. These get tracked on the Assets page with depreciation. Link an asset to a PO so the supplier invoice reconciles.