Feature

Purchase orders through to goods receipt

Order from a supplier, receive against the order, and have the costing and the bookkeeping happen as a consequence rather than as a second job.

The buying document

A numbered purchase order on a per-store sequence, one line per product, against a supplier with a recorded lead time. Lines can be uploaded from a spreadsheet and reviewed before the order is raised; a repeated SKU is an error rather than a silent quantity merge, because one line per product is enforced by the database.

Receiving

Receive fully or partially. Each receipt writes a ledger movement per line, updates the weighted-average cost, records what was actually invoiced on that delivery, and posts inventory against goods-received-not-invoiced so the liability exists before the vendor’s bill arrives.

Freight stays a period expense

Shipping and duty sit on the order header rather than being amortised into unit cost. Landed costing makes an item’s cost depend on what else happened to be on the same truck, which makes the same item cost different amounts for no reason you can explain to anyone later.

Then the vendor bill

When the invoice arrives, raise the bill against the order to clear goods-received-not-invoiced, or code it straight to an expense account. The bill is what the vendor actually charged, which is not always what the order said.

Questions, answered

Can I receive more than I ordered?

Receipts are checked against the order, and the ledger’s unique indexes are what make a receipt once-only rather than a status check that a race could slip past.

What if the price changed between ordering and delivery?

The receipt records the cost actually invoiced on that delivery, and that is what moves the weighted average. The purchase price variance against what you were carrying is one query away, because both the cost that went out and the average after it are stored on the movement row.

See it on your own numbers

Fourteen days with every feature unlocked, no card required.