Taking catering and event orders on Shopify

An event order is a normal order with three extra facts attached: a date you cannot move, a headcount that changes, and a balance that is not known yet.

Selling catering through Shopify works better than most people expect, right up to the point where a customer books a function for a Saturday you already gave away. The platform has no concept of a date being spoken for, so nothing stops it.

This is about the shape of that problem rather than a list of apps, because the biggest decisions here are about how you structure the product, not what you install.

Decide first: is this a product or an enquiry

Most caterers end up running both, and mixing them up is the expensive mistake.

Products, sold and paid in full

Platters, grazing boxes, buffet packages at a fixed price per head, drop off trays. Known contents, known price, a date and a time. These belong on the storefront exactly like any other product, and everything below applies to them.

Enquiries, quoted afterwards

Weddings, bespoke menus, anything with a site visit, staffing, hire or a tasting. Trying to force these through a product page produces orders you unpick by hand. The honest shape is a form or a deposit product that captures the date and the outline, with the real quote agreed after a conversation.

The dividing line: if you can price it without speaking to them, it is a product. If you cannot, it is an enquiry with a deposit. Almost every catering setup that goes wrong on Shopify went wrong here rather than in the software.

The date is the scarce thing

You do not run out of food, you run out of Saturdays. That is a capacity problem and Shopify has no answer for it at all.

Inventory does not stand in for it. Stock is one number with no date attached, so setting it to four does not say four on the 12th, it says four ever, and a customer who takes the last one in March has quietly taken a slot in June.

What you need instead:

Worth knowing about caps generally: they usually count orders rather than size. One booking for two hundred people and one for a tray of sandwiches consume the same slot. For a caterer that is often the wrong shape, so either keep small drop off orders on a separate product with its own capacity, or set the cap to the number of large jobs you can run and handle the small ones around them.

Notice, per product

A tray of sandwiches for tomorrow is fine. A hot buffet for eighty is not, and a whole hog is another thing again. One store wide notice period cannot describe that and it fails in the direction that costs you, by making the quick things look slow and the big things look quick.

Order typeTypical notice
Drop off platters and sandwich trays24 to 48 hours
Grazing tables, cold buffets48 to 72 hours
Hot buffets, served functionsOne to two weeks
Weddings and bespoke menusEnquiry, not a date picker

And the basket that mixes them, which is more common here than people expect: a platter for Friday and a buffet for the following Saturday, one order. What you want is each line keeping its own date rather than the whole order being dragged to the later one. Ask the question before you install, because the alternatives look identical until a real customer does it.

Headcount, deposits and the balance

Three things Shopify genuinely cannot do, stated plainly so you do not go looking for an app that claims otherwise:

  1. It cannot change the price of a paid order. A headcount that moves from sixty to seventy five after payment is a new order or a manual invoice. There is no supported mechanism for the original to follow.
  2. It has no deposit and balance flow for one line item. The usual workaround is a deposit product priced at the deposit, with the balance invoiced separately later.
  3. It cannot take a final headcount two weeks before an event it already sold. That is a reminder and a conversation, not a checkout field.

Build the process around those three facts and it runs smoothly. Try to automate past them and you will spend more time fixing orders than making food.

Delivery, collection and the fee

Shopify's local delivery does the postcode check and charges a flat fee per area, free, under Settings > Shipping and delivery, and you can add several areas to one location with different rates. It does not know about mileage beyond that, staffing, or a return trip for equipment.

Note that no app can read your local delivery configuration. Shopify does not expose zones, postcodes, radius or pricing through its Admin API, so any fee an app displays beside a date picker is a number you entered in that app and have to keep in step yourself.

Two things to check with any app

Does the date reach the line

A date stored only as a cart attribute can be dropped when Shopify issues a new cart token and does not show against the item in your admin. Stored as a line item property it stays with the product. Place a test order and look at the line itself.

Does it print

Shopify's default packing slip renders neither order note attributes nor line item properties, so the date can be entirely absent from the paperwork the kitchen works from. Edit the template before you rely on it.

Order of operations

  1. Split your offer into priced products and enquiries. Everything else depends on this.
  2. Turn on local pickup and local delivery in Shopify. Free.
  3. Add a required event date with a booking window long enough for how far ahead you are actually booked.
  4. Block dates you have already committed, as ranges.
  5. Add a cap per date, with overrides for the dates that are not normal.
  6. Add per product notice so a hot buffet is not offered for tomorrow.

We build Readyby for steps three to six: a required date, a booking window you set, closed dates and ranges, daily caps with per day overrides, per product lead times on the free plan, and optional time windows, for delivery and collection. The date is written to the order line, and a basket holding a Friday platter and a Saturday buffet keeps a date on each line.

Related: Order ahead for a butcher, deli or farm shop · Lead times for a bakery on Shopify · All guides