Resources

Help & articles

Guides, how-tos and news for your catering business.

Help topics

Online Features

Delivery Fees by Postcode

Apply different delivery fees based on where the customer is, and control which postcodes can place an order.

Automatically apply different delivery fees based on where your customer is located, control which postcodes can place an order, choose whether the fee is charged once or on every drop, and give free delivery over a figure you set.

Overview

The delivery postcodes section lets you define zones, each with its own fee. When a customer enters their postcode on the order form, Puree matches it against your zones and automatically shows — and charges — the correct delivery fee. Zones with a fee of zero show as free delivery.

The postcode table is found under Online → Order Forms, Manage on the form, then Settings → Delivery Postcodes. Two settings that apply to the fee however it was worked out — Charge the delivery fee and Free delivery over — sit on the main Settings tab, described below and in more detail in Delivery Fee Charging & Free Delivery.

Where the fee comes from

Puree has more than one way of knowing what delivery costs, so they are ranked. The first that answers wins:

  1. A fee you typed on the quote yourself. Yours, and never overwritten by any of the rules below.
  2. The saved address’s own default. A signed-in customer picking one of their saved addresses is charged the Default delivery fee kept on that address — see Customers, Contacts & Addresses. This is the route to use for regulars whose fee you have already agreed, and it does not depend on postcodes at all.
  3. The order form’s postcode rules. Used when no saved address is in play, matched against the postcode the customer types.
  4. Nothing at all. The checkout says the fee will be worked out once the order has been processed, rather than guessing at one.

Collection orders are never charged, whichever of these applies.

Setting Up Fee Zones

Each row in the table defines one zone:

  • Postcode pattern — defines which postcodes belong to this zone (see format guide below)
  • Delivery fee — the fee charged for deliveries to that zone. Enter 0 for free delivery

Click Add row to add more zones. Zones are matched top-to-bottom — the first matching row wins, so place more specific patterns above broader ones.

Postcode Pattern Formats

Patterns are flexible and support several formats:

Format Example Matches
Exact postcode 2000 Only 2000
Wildcard prefix SW1* SW1A, SW1P, SW1V, etc.
Numeric range 2000-2099 Any postcode between 2000 and 2099
Comma-separated list EC1A,EC1M,EC1N Any of the listed postcodes

Postcodes are matched case-insensitively and spaces are ignored, so SW1A 1AA and sw1a1aa both match SW1*.

Restricting Orders by Postcode

By default, the fee rows are used to look up delivery fees only — customers can still place an order regardless of their postcode. To enforce your delivery area, tick Restrict orders to postcodes listed above.

When restrictions are enabled, you choose how to handle postcodes outside your zones:

  • Show a warning — the customer sees a message but can still proceed with their order. The order goes through without a delivery fee, and you can follow up with them about delivery options.
  • Block the order — the customer cannot submit the form. They must enter a postcode that matches one of your zones before they can proceed.

You can customise the message shown to customers when their postcode isn’t in your delivery area.

Requiring a Postcode

When postcode restrictions are enabled, customers must enter a postcode before they can place an order. If they attempt to submit without one, they’ll see the message: “Please enter your postcode to continue.”

If restrictions are not enabled, the postcode field is optional — a delivery fee is still applied if the postcode matches a zone, but no error is shown if it’s left blank.

How It Behaves at Checkout

Situation Restrictions off Restrictions on — warn Restrictions on — block
No postcode entered Order proceeds, no fee Error: postcode required Error: postcode required
Postcode matches a zone Zone fee applied Zone fee applied Zone fee applied
Postcode doesn’t match Order proceeds, no fee Warning shown, order proceeds, no fee Error: order blocked

Testing Postcodes

Use the Test a postcode tool at the bottom of the settings page to check how a postcode will be handled before publishing. Enter any postcode to see whether it matches a zone and what fee would be applied.

How often the fee is charged

A fee covers a trip, and some orders are several trips. Charge the delivery fee, on the form’s Settings tab, decides how many times the fee above is charged:

  • Once per order — one fee, however many delivery times the order has. This is the default, and what every form did before the setting existed.
  • For each delivery time — an order with morning tea and lunch pays twice, and a week-long job pays for each day’s drop.

The order form's Settings tab: Charge the delivery fee, with Once per order selected and For each delivery time beneath it, then a Free delivery over box reading No free delivery, and below that the Accept discount codes on this form switch.

Only delivery times the customer has actually set are counted, and an order is never charged less than once — an order still being built has no delivery times yet and is still one delivery.

When the fee is charged more than once, the checkout shows the working next to the line — Delivery fee ($25.00 × 3) — because $75.00 on its own reads as a mistake.

Overriding it for one address

A saved address can disagree with the form. On the address, Charge it offers Same as the order form (the default), Once per order or For each delivery time. It only takes effect when that address is also supplying the fee — the fee and the number of trips it takes are the same fact about the same place.

Free delivery over a certain amount

Free delivery over, also on the form’s Settings tab, takes a figure in your own currency. An order that size or bigger isn’t charged for delivery. Leave it blank — No free delivery — to always charge.

A few things worth knowing:

  • It is measured on the order itself, not counting the delivery fee. A big enough fee would otherwise pay for itself.
  • It is applied to the whole charge, after the once-per-order or per-delivery-time multiplication. A per-drop fee on a qualifying order goes to zero, not down by one drop.
  • It only applies to a fee Puree actually knows. Where the fee is still unknown it stays unknown — “free” and “we haven’t worked it out yet” are different promises.

The checkout tells the customer where they stand while they can still do something about it: Spend $18.50 more for free delivery below the fee, replaced by Free delivery on orders over $200.00 once they get there. The fee is worked out again every time the basket changes.

How Fees Appear to Customers

As a customer fills in their details, their postcode is saved automatically. By the time they reach the cart summary, the delivery fee is shown as a separate line alongside the order subtotal. The total displayed — and charged — includes the delivery fee.

If no postcode has been entered yet, the cart shows the total excluding the delivery fee, with a note that the delivery fee will be added once their address is confirmed.

Collection orders are never charged a delivery fee regardless of postcode settings.

Delivery Fees and Stripe Payments

If you accept card payments via Stripe, the delivery fee is included in the amount charged to the customer’s card. This makes it important to set up your delivery zones before enabling Stripe on your order form — you want the correct total to be charged at the time of payment. See Online Order Form Payment Methods for more on payment methods.

Tax on delivery fees

The online order form’s Sales tax setting applies to delivery as well as items and packages. Choose Use account default, Includes sales tax or Excludes sales tax in the form settings.

Entered delivery fees stay unchanged. If prices exclude tax, the applicable tax is added on top. Delivery can use a different tax band from the items in the order; check its saved band and any quote-wide override when reviewing the resulting quote.

See Tax Rates for tax bands and Online Order Form for form pricing settings.