Station 4 of 10
The purchase cycle in ERPNext
What you leave this station with
A purchase run end to end by your own hand, and the ability to read what each document produced in both ledgers rather than memorising which button came next.
Every station before this one built something that does not move. This one produces the first movement, and with it the skill the rest of the path stands on: reading what the document generated, not what you typed into it.
Purchasing comes before selling deliberately. You cannot sell what you have not bought, and you cannot understand cost of goods sold before you understand how cost entered in the first place.
Six documents and what each one does
The two right-hand columns are the whole station. They are also the difference between someone who knows the system and someone who understands it.
| # | Document | Stock ledger | General ledger |
|---|---|---|---|
| 1 | Material request | Nothing | Nothing |
| 2 | Request for quotation, and the supplier quotation | Nothing | Nothing |
| 3 | Purchase order | Nothing — an expected quantity only | Nothing |
| 4 | Purchase receipt | An inbound line at its value | An entry — if perpetual inventory is on |
| 5 | Purchase invoice | Nothing | An entry, always |
| 6 | Payment entry | Nothing | An entry, always |
Three readings of that table are worth writing down.
The first three documents move nothing. An approved purchase order is a commercial commitment, not an accounting event. Anyone surprised that a million-riyal order does not appear on the balance sheet has not yet worked out when accounting begins.
The receipt moves both ledgers — conditionally. The condition is the perpetual inventory switch you turned on at station three. Without it the stock ledger moves alone and the general ledger sits still until you post an entry yourself. Forget that condition and you lose a day asking why the balance sheet will not move.
The invoice moves the general ledger and not the stock ledger, because the goods arrived at receipt. What the invoice does is convert a provisional obligation into a debt in the supplier’s name.
The entry that deserves five minutes
Submitting a purchase receipt under perpetual inventory produces a two-sided entry:
- Debit: the warehouse stock account — goods came in, so assets rose.
- Credit: goods received not invoiced — you owe something, but not yet a debt in the supplier’s name.
And here is the question to ask, because it recurs in interviews: why is the supplier not credited directly?
Because his invoice has not arrived. The value you booked the receipt at came from the purchase order, and it may differ from what he eventually bills. The company knows it owes and does not know the final figure — so the amount is parked in an intermediate account whose name says exactly that: received, not invoiced.
Submitting the supplier invoice then reverses the intermediate:
- Debit: goods received not invoiced — the provisional obligation closes.
- Credit: creditors — it becomes a debt in his name, at his figure, with a due date.
The payment entry finally settles the debt and reduces cash.
The rule you leave this station holding
Read the behaviour of goods received not invoiced once more: it fills at receipt and empties at invoice.
So what does a large balance sitting in it at month end mean? Exactly one thing: goods were received whose invoices never arrived. Not a fault in the system, and not a configuration error.
That is the most useful sentence at this station, and it returns at station seven as the first item you check at the close. Someone who knows what an intermediate account balance means diagnoses it in two minutes; someone who does not raises a support ticket.
Three-way matching
The fundamental control in purchasing, and it exists in every serious system: the purchase order, the receipt and the supplier invoice must agree on item, quantity and price.
ERPNext links the three explicitly — the invoice is built from the receipt, the receipt from the order, and each document carries the reference of the one before it. Which turns “did we invoice more than we received?” into a report rather than an investigation.
Run the anomaly on purpose in your own environment: raise a purchase order at one price, then an invoice at a higher one. You will not appreciate what matching is for until you watch the system object, and you will not understand the effect of the difference until you read where it went.
The four cases that make the difference
Everybody learns the clean cycle. The difference sits in these four, and you should run all of them.
Partial receipt. An order for a hundred units, a receipt for sixty. Read what the order now says about the remaining forty, and take the point: the purchase order stays open with a residual quantity that the stock ledger knows nothing about.
A return to the supplier. Receive, then send part of it back. A return in ERPNext is a purchase receipt with negative quantities linked to the original. Read its entry: it reverses the receipt entry by the returned amount rather than posting a fresh entry to some other account.
An invoice with no receipt. A service or an expense. No stock movement at all, and the entry runs from the expense account straight to creditors with no intermediate. That single comparison explains why the intermediate account exists in the first place.
Landed costs on a shipment. Freight, customs and insurance are costs belonging to the goods, not to the period. ERPNext distributes them across the items on the shipment and lifts their valuation. Run it once and compare item valuation before and after — the difference is the margin you would have lost without noticing.
The three commonest errors
Invoicing before receiving, as a habit. It is permitted, it makes the cycle work, and it costs you the entire control — leaving goods-received-not-invoiced holding reversed balances nobody can explain.
Editing the price on the invoice with no written reason. The difference goes either into the valuation of the goods or into a price variance, and those are two different things. Someone who edits without intending to does not know which one happened.
Forgetting that a submitted document cannot be edited. The repair is cancel, then an amended copy, as at station two. Anyone who tries to edit directly concludes the system is broken while it is protecting him.
The acceptance test for this station
- Run the full cycle: material request, purchase order, receipt, invoice, payment.
- Open both ledgers after every document and write on one sheet: the document, its effect in the stock ledger, and its entry in the general ledger. That sheet is a portfolio piece — keep it.
- Open the goods received not invoiced report and explain its balance in one sentence.
- Run a partial receipt and a return, read the return’s entry and confirm it is a reversal rather than a new entry.
- Add a freight cost to a shipment and measure its effect on item valuation before and after.
The same cycle with its accounting logic independent of any product is set out in procurement, requisition to payment. What this product covers of that cycle and what falls outside it is detailed in the ERPNext guide.
What comes next
You know how goods enter and how they are booked. The next station reverses the direction: the sales cycle — the difference between available and reserved quantity, when revenue is recognised, and the entry that delivery generates which nobody opens.
