All articles

Discount Codes: A Promotion Your Customers Can Type In at Checkout

By Andrew Hemphill · 14 September 2026

You want to put 10% off in the September newsletter. Until now that meant asking people to mention it when they order, watching for the ones who forget, and editing discounts onto quotes by hand afterwards. Puree now has discount codes: you create SEPT10 once, your customers type it at checkout, and the order arrives already discounted with the code named on it.

Discount codes are in beta, and switched on account by account while we watch how they behave in the wild.

Creating one takes about a minute

Codes live under Online → Order Forms, behind the Discount codes button above your list of forms. A code is a short word your customers type — letters, numbers, dashes — and a value, either a percentage off or a fixed amount off.

Everything after that is optional, and everything after that is a limit. Start and end dates, so the September code stops working in October without you remembering to switch it off. A total number of uses, if you are offering it to the first fifty. A limit per customer, counted by email address, so one person cannot run it through five orders. A minimum order, so the code only applies once the order is worth your while. And a ceiling on what a percentage code can take off, which is the one most people want on a big code: 20% off, but never more than $100.

Leave all of it blank and you have a code that works until you switch it off. That is a perfectly reasonable code.

The New discount code form: the code itself, a description only you see, the discount type and its percentage, and Starts and Ends dates; then the Limits half, holding Total uses, Uses per customer, Minimum order and Most it can take off.

Codes belong to your business, forms opt in

The code itself is kept once for your whole account, because a spring promotion is one promotion however many order forms you run. Each form then decides whether it honours codes, with Accept discount codes on this form in its settings.

That split is doing real work. Your public form can take the newsletter code while your corporate account form, where everyone is already on agreed pricing, quietly does not.

What your customer sees

A Have a discount code? box sits just above the totals at checkout. A code that holds up is confirmed on the spot and the totals redraw underneath it. A code that does not gets told why, in words rather than a shrug: not recognised, expired, already used, or that the order needs to reach $150 first.

The Confirm order step of an online checkout, with a Have a discount code? box and an Apply button between the ordered items and the delivery fee, subtotal, tax and total.

They can change their basket afterwards, and the discount is worked out again each time. Nobody carries a discount from a $400 order down to a $40 one.

It arrives as a real discount, not a note

This is the part that matters at the other end. The code does not leave you a message to action later. The discount is on the order when it lands, and it is the same kind of discount you would have typed in yourself, so the quote, the PDF, the customer’s copy and your Xero or QuickBooks export all say the same thing.

A percentage stays a percentage, too. Your accounting export says “10%”, not an amount that has lost the reason behind it.

Quote totals reading Sub Total, then a Discount (10.0%) line labelled with the code SPECIAL10, then Total after discount, GST charged on the discounted amount, and the total including GST.

The discount line names the code, so nobody has to remember what caused it.

Look at an online order in the builder and the discount panel names the code that caused it, so 12% off reads as a promotion rather than somebody’s typo. Change the figures yourself and the code steps aside — the record of the customer using it stays, but it stops being credited with money it is no longer paying for.

You can use a code yourself

The same box appears on the details step of the order builder. Someone rings up quoting the code from the newsletter, you type it into the quote, and they get the same deal as the people who ordered online. It fills in the discount for you, and it counts as a use like any other.

The Add Discount / Surcharge section of the order builder, with a Discount code box and an Apply button in the Visible adjustment panel, beside the hidden adjustment slider.

Puree still checks the code is real, switched on, in date and not exhausted — those are promises you made to somebody. It does not enforce the minimum order or the one-per-customer rule when you are the one applying it, because you can see the situation and the rules were standing in for you.

The counting is careful

A use is counted when an order is actually submitted, not when somebody types the code. Fifty means fifty orders, not fifty people who considered it. If an order is later declined or cancelled, the use goes back into the pool.

Every code keeps its own list of who used it, when, on which order, and how much it took off. It is the answer to “did that newsletter do anything”, and it is there without you exporting a thing.

Trying it

Discount codes are live for beta accounts now. If you would like them switched on for yours, get in touch — we are keen to see what people do with them, and the caterers in the beta are shaping what comes next.

Full detail is in the manual: Discount Codes.