24 September 2026 · 6 min read
Fundamentals
How to Create an Invoice for Products and Services
A plumber and a printer can use the same invoice template and mean completely different things by their line items. Goods are counted, delivered and sometimes returned; services are performed, described and occasionally re-scoped. The invoice has to carry both kinds of truth without asking the client to guess which is which.
One invoice, two species of line
Physical goods and performed services share a column structure — description, quantity, rate — but the meaning of those columns diverges. A quantity of 12 could be boxes on a pallet or hours on a timesheet, and the client's expectation of what the number covers changes completely with the answer.
The invoice's job is to make the species obvious at a glance: what was supplied, counted in the right units, priced so the arithmetic can be checked. The 12-point invoice checklist covers the fields themselves; this guide is about the two species of line that live inside them.
Line items that answer questions before they are asked
| What each column must do | Goods example | Services example |
|---|---|---|
| Description names the thing specifically | A4 printer paper, 80gsm — box of 5 reams | Website copywriting — 8 pages, first draft |
| Quantity counts in a real unit | 12 boxes | 8 pages |
| The unit is named somewhere | box (5 reams) | page — or hours, if that is the measure |
| Rate matches the unit | R145 per box | R450 per page |
| Amount is derived, never asserted | R1,740 | R3,600 |
The last row is the quiet one: whenever a reader can multiply quantity by rate and arrive at the amount, the line has done its job. When they cannot, a query starts forming whether or not it is ever typed.
Units and quantities prevent most disputes
The word "unit" sounds bureaucratic until you have watched two reasonable people disagree about what "one" meant. An invoice line for "1 project" cannot be checked by anyone; a line for "12 hours" can be checked against a timesheet; a line for "1 print run" should say what a print run contains.
The editor gives every line a unit field precisely for this — hours, pages, boxes, visits, kilometres — and it prints under the quantity where the client can see the measure. Pick a unit for every line before you pick a price for any of them.
Itemise or bundle? The honest test
- Itemise when the client is comparing. If a quote, a catalogue or a competitor's breakdown exists, matching lines make your invoice easy to accept rather than easy to debate.
- Bundle when the client bought an outcome. A fixed-fee landing page does not become clearer because it is split into design minutes and typing minutes — it becomes arguable.
- Never bundle what has already been questioned. Once a client asks about a component, its cost is a live question; hiding it inside a package reads as evasion even when the total is fair.
Worked example: one invoice, both kinds
A garden service — not registered for VAT, so the invoice carries no tax line — bills a client after a full day. The same document contains counted goods, measured labour and one fixed-scope service:
| Line | Qty | Unit | Rate | Amount |
|---|---|---|---|---|
| Labour — clearing and levelling | 12 | hours | R180 | R2,160 |
| Compost, supplied | 6 | bags | R95 | R570 |
| Tree trimming — fixed scope, front yard | 1 | service | R850 | R850 |
| Total | R3,580 |
Each line sums itself: twelve hours at R180, six bags at R95, and a fixed job at a price the client approved in the quote. Nobody has to phone anyone to know what the R3,580 bought.
Using a catalogue so the typing never repeats
Repeat business should not mean retyping the same lines. Save recurring items — a standard bag of compost, a retainer hour, a print run — in the products catalogue, and adding one to an invoice copies it onto the line, where it stays editable for that document only. Update the catalogue entry later and past invoices are untouched; retire an item and it stops being offered.
Stock, shipping and the awkward extras
Charges that surround the goods deserve their own lines, or an explicit statement that they are already inside the price. Delivery is the classic case: a client who returns part of an order will expect a proportional answer, and the honest one is easier to give when the shipping was never smuggled into the item rate. If delivery is free, say so in words — "included" is a term, and terms are what the document is for.
Returns are where these choices get tested. A partial return is easiest to settle when the item, its unit and its delivery charge were shown separately, because each can be credited line by line; an all-in price forces both sides to invent a fair split after the fact, which is a negotiation nobody wanted.
Frequently asked questions
Should shipping be a separate line or included in the price?
Show it separately when the client can return items or change quantities, because the charge will need adjusting; include it deliberately — and say so — when the price is genuinely delivered-to-door. What you should never do is bury it inside an item rate and hope nobody asks.
Do I need product codes or SKUs?
Only if your clients use them — retailers and trade buyers often do, and a code makes matching painless. For everyone else a precise description and a named unit do the identifying, and an unnecessary code is just another number to mistype.
Can I give a discount on a bundle of products and services?
Yes, but decide where the discount lands before writing it: on the lines it applies to, or once against the document total after the subtotal. Both are legible; a mix of the two on one invoice is where the arithmetic starts looking negotiable. The discount guide works through which presentation to pick.
Line items, units, a reusable catalogue and automatic totals are built into the FreeInvoices editor — so a mixed invoice of goods and services stays checkable all the way to the A4 PDF.
Build an invoice with both