Every unsold loaf was a decision made at four in the morning
A bakery is the only shop I can think of where the entire day's stock is decided before anyone has walked in, and where the whole lot is worthless by closing time. Bake too few and you turn people away at ten past nine. Bake too many and you are reducing at four and binning at five.
Most bakery websites do nothing about this. They are a photograph of a sourdough, a paragraph about the starter, and the opening hours. Lovely, and completely disconnected from the one number that decides whether the week made money.
Meanwhile the customers who would happily commit in advance, the Saturday regulars, the person who wants six cinnamon buns for an office on Friday, have no way to do it except to turn up and hope.
What I built instead
A counter you can reserve from. Today's bake is listed with what is still available, and you put your name on what you want for collection. There is no card payment: you pay in the shop, the way you already do.
The result is that by the time the ovens go on, some of the day is already sold. Not all of it, and that is fine. The point is to move the guess a little closer to a number.
Reserve, do not sell
Taking card payment online for a two pound loaf adds fees, refunds, and a chargeback risk on something worth less than the transaction. Reserving and paying at the counter keeps the money exactly where it already worked.
The bag is visible the whole time
A running bag with a count and a total sits at the edge of the screen while you browse. On a small order people forget what they have added, and a forgotten item is a smaller sale.
Availability is on the item, not in the small print
What is still going and what has gone is shown where you are choosing, not discovered at the end. Being told at checkout that the thing you came for is unavailable is how you lose a customer for the month, not the morning.
Opening hours are a fact, not a graphic
They are on the page as text, structured so a search engine can read them. A bakery's hours are the single most searched thing about it and they should never be trapped inside an image.
The order form asks for a note
One free text field. Nut allergies, a name to ice on a cake, collection at a particular time. Trying to build a form field for every eventuality in a bakery is a losing game.
The video of the bake is decoration and behaves like it
It sits behind the headline, it is muted, and the page is entirely usable before it loads. Nobody waits for a hero video, they leave.
Where this stops working
Pre-orders only help if people actually place them, and on day one nobody will. This needs a sign by the till and a line on the receipt for a month before the numbers mean anything. It also does not survive being ignored: a reservation list nobody checks at six in the morning is worse than no list at all, because you have now let someone down by name. If the morning routine cannot absorb one more check, do not build this.
See it working
The sample is live and fully usable. Put a registration in, add things to a basket, go through the checkout. Nothing charges you and nothing is sent.