Charge delivery fees with flat rates or postal-code zones
Set delivery and pickup fees per location in Settings, and see how those fees show up in the storefront cart and on orders you enter yourself.
Delivery and pickup fees are set per location, and they come in two shapes: one flat fee for everyone, or different fees per postal-code zone. Both are priced on the server, so the number the customer sees is the number the order gets.
Set the fees
1. Go to Settings › Pick-up & delivery and open the delivery pricing section.
2. If you have more than one location, pick the Location you are pricing. Each location keeps its own fees.
3. Choose the pricing mode: Flat or Zone.
4. In Flat mode, enter a Delivery fee and a Pickup fee. Every delivery at that location costs the same.
5. In Zone mode, click Add zone, give it a Zone name, enter the Delivery fee and Pickup fee, and add the Postal codes it covers. Repeat for each zone.
6. In zone mode, decide what happens outside all zones under Out of area: Refuse delivery or Charge a fallback fee (with a Fallback delivery fee and Fallback pickup fee).
7. Save.
Flat mode is the right call when your delivery cost barely changes by address. One number, no zones to maintain. Zone mode is worth the setup when some neighborhoods cost you real extra time. A flat fee that covers the worst zone overcharges your best customers, and a flat fee that doesn't leaves you eating the difference on long hauls.
If you have not set pricing for a location, delivery and pickup quote $0 there. That is expected while you are getting set up, not a bug.
How the fee appears in the storefront cart
When a customer chooses delivery at checkout, the cart shows delivery and pickup fee lines from a live quote. The lines are advisory while they shop: they are part of the displayed subtotal and are included in the tax estimate. The real fee is applied server-side when the order is created, so the numbers cannot drift apart.
When a customer's postal code is outside every zone and you chose Refuse delivery, checkout is blocked and the storefront says "We don't deliver to this postal code." If you chose Charge a fallback fee, they pay the fallback fees instead.
How the fee appears when you enter an order yourself
On intake, the Pickup or delivery toggle sets the fulfillment method. Choose Delivery, enter the address, and the fee lines are applied when the order is saved. Fee lines skipped in a duplicated draft are also re-applied on save, not lost.
On the saved order, a manager can edit or remove fee lines. Edited lines carry an Edited chip; untouched ones show Auto. If the address is outside every zone, the order surfaces an out-of-area warning and quotes $0 on the fee lines.
When the quote misbehaves
- The customer is outside your zones and checkout is blocked. That is the Refuse delivery setting doing its job. Either add their postal code to a zone or switch to Charge a fallback fee.
- You raised a fee, but a customer's open cart still shows the old one. The cart line is an advisory quote; the order itself is priced at save time on the server, so the final number is the current one.
- Fees show $0 on an order you entered. The location has no pricing row yet, or the address fell outside your zones under a refuse setting. Set the fees or the fallback and re-save.
Updated October 9, 2026