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.
Most caterers end up running both, and mixing them up is the expensive mistake.
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.
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.
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.
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 type | Typical notice |
|---|---|
| Drop off platters and sandwich trays | 24 to 48 hours |
| Grazing tables, cold buffets | 48 to 72 hours |
| Hot buffets, served functions | One to two weeks |
| Weddings and bespoke menus | Enquiry, 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.
Three things Shopify genuinely cannot do, stated plainly so you do not go looking for an app that claims otherwise:
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.
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.
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.
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.
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