Order ahead for a butcher, deli or farm shop

Most of the advice about selling food on Shopify assumes you post it in a box. If your customers collect from a counter, almost none of it applies.

A butcher, a deli and a farm shop have more in common with each other than any of them has with an online store. You sell things that are cut, weighed or picked to order. Your busiest days are fixed and known. Your customers turn up in person, often all at the same time, and once a year one weekend accounts for a serious share of the year's takings.

Shopify handles the payment and the product page perfectly well. The rest of that list it has no opinion about at all.

Start with what is free

Local pickup under Settings > Shipping and delivery costs nothing and takes ten minutes. Turn it on per location, write a real pickup instruction, and make sure your inventory is assigned to the location, which is the usual reason pickup does not appear at checkout.

What it will not do is ask which day. Shopify's expected pickup time is a sentence shown at checkout, not a date, not a constraint, and nothing about it reaches the order. For a shop open every day where collection means any time this week, that is genuinely enough. For everyone below it is not.

Collection days, not opening hours

This is the setting a farm shop needs first and most guides never mention, because most shops are open seven days and the question never comes up.

If you are at the farmers market on Saturday, closed Sunday and Monday, and only doing collections Thursday to Saturday, then Tuesday must not be selectable. Not discouraged in a note under the calendar. Not selectable.

Same for the fixed closures every shop like this has: the week between Christmas and New Year, the day of the county show, the fortnight in February. Those are ranges, and entering a fortnight as fourteen separate rows is the kind of thing that quietly stops getting done. Check whether an app takes a range before you commit, and whether an annual closure has to be re-entered every year, because several in this category make you do exactly that.

Cut to order is a lead time

Sliced ham from the counter is now. A whole lamb butchered into a box is not now. A twenty person cheese and charcuterie board is not now either, and it is also not the same as the lamb.

A single store-wide notice period cannot describe that, and the direction it fails in is predictable: it makes the quick things look slow, which costs you the impulse order on the way home, and it makes the big things look quick, which costs you a Saturday.

Notice belongs to the product. Roughly:

ProductTypical notice
Counter items, pre-packed, anything already cutSame day, after a cutoff
Cut to order joints, sausage made to a recipe24 to 48 hours
Platters, grazing boards, event catering48 to 72 hours
Whole or half animal boxes, dry aged to orderOne to several weeks

And then the basket that mixes them, which for this kind of shop is most baskets. A customer adds a platter for Saturday and a pack of bacon for tomorrow. The behaviour worth buying is that each line keeps its own date, so one order carries two collection dates. The alternatives on offer elsewhere are pushing the whole order out to the slowest item, or telling the customer to place two orders. Ask which one you are getting.

The weight problem, which no app solves

Shopify cannot reprice an order after it is paid. If you sell a joint at a price per kilo and the actual joint comes out at 1.34kg, there is no supported mechanism for the checkout total to follow the scale. No scheduling app changes this, and one that implies otherwise is overselling.

The three honest ways round it, in the order most shops try them:

  1. Fixed weight bands as variants. "Approx 1.2kg", "approx 1.8kg", each with its own price. Simple, works today, and it is what most shops settle on. Say approx on the product page and mean it.
  2. Sell by the unit and absorb the variance. Price the band slightly generously and stop thinking about it. Fine on small items, painful on expensive ones.
  3. Take a deposit and settle at the counter. Right for whole animal boxes and large event orders. It is a different product shape, not a Shopify setting.

Decide this before you look at apps, because it determines your product structure and nothing downstream can fix a wrong choice here.

The queue at the counter

Order ahead moves the queue rather than removing it. Everybody collecting at noon on Saturday is the same crowd you had before, holding receipts.

Time slots are the answer when that is genuinely happening, and overhead when it is not. A shop where people drift in over a morning does not need them. A shop where twenty orders are collected in forty minutes does.

The caveat applies to every app in this category, ours included: nobody reserves a slot while a customer is still in checkout. Two people can take the last noon slot at the same time and both get it, because the count goes up when the order exists rather than when the checkout begins. It is a limit of how Shopify checkout works. Worth knowing, not worth avoiding slots over.

Christmas, which is the real reason to do any of this

For a lot of butchers and farm shops, the Christmas order book is a meaningful slice of the year, and it is the one week where getting it wrong is expensive in both directions. Oversell and you are ringing customers on the 23rd. Undersell and you left money on the counter.

What that week actually needs:

Set this up in October. Testing a booking flow in the third week of December is not a plan.

Two things to check with any app

Does the date reach the line

A date stored only as a cart attribute can be discarded when Shopify issues a new cart token, and it does not show against the item in your admin. Stored as a line item property it stays with the product through checkout. Place a test order and look at the line itself, not the order notes. This is the most common quiet failure in the category and it takes thirty seconds to rule out.

Does it print

Shopify's default packing slip renders neither order note attributes nor line item properties, so a date captured correctly at checkout can be completely absent from the paper in the back. Edit the template before you depend on it, whichever app you use.

Order of operations

  1. Decide how you handle weight. Bands, absorb, or deposit. Everything else sits on top of this.
  2. Turn on local pickup. Free, and check inventory is assigned to the location.
  3. Set your collection days so the days you are not doing collections cannot be chosen.
  4. Add a cutoff set to when you actually lock the next day's list.
  5. Add per product notice when the gap between sliced ham and a platter starts costing you.
  6. Add daily caps and slots before the Christmas book opens, not during it.

We build Readyby for steps three to six: collection days, closed date ranges, cutoffs, per product lead times on the free plan, daily caps and optional time slots, for pickup and for local delivery. The date is written to the order line, express checkout is blocked until one is chosen, and a basket holding a 72 hour platter and same day bacon keeps a date on each line rather than moving them both out.

Related: Click and collect on Shopify · Lead times for a bakery on Shopify · All guides