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.
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 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.
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.

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.
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.

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.
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.

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.
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.
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.