For breweries, distilleries & tastings

Booking software for brewery tours and tastings on Shopify

A tasting is capped twice: seats at the table, and how much of the barrel-aged thing you are willing to open on a Tuesday. CapFlow Booking sells the smaller number through your existing Shopify checkout, prices the designated driver differently without losing count of them, and puts the upgrade flight in the same basket.

The way it actually goes wrong

A brewery runs a tour and tasting at 13:00 and 15:00 on Fridays and Saturdays, twenty seats in the tasting room, plus a Thursday evening beer and cheese night. On Shopify the obvious approach is a product per session with inventory set to twenty.

Without capacity

Inventory sits on a variant rather than on a Saturday at 15:00, so somebody rebuilds variants every time the season changes. Then a hen party of nine books nine tickets in one go on the 15:00, which was already at fourteen. Twenty-three people arrive at a room with twenty chairs, and the person who has to sort it out is a brewer who was going to be talking about mash temperatures. Two of the party stand up for an hour, or three of them get sent to the taproom with a voucher, and the review mentions it.

With CapFlow Booking

Capacity lives on the session and counts people, so a booking for nine takes nine of the twenty seats and the widget stops at twenty. Write one weekly rule for the season and CapFlow Booking generates every tour from it. Holds during checkout are atomic, so a group of nine and a couple racing for the last three seats cannot both get them.

Tour and tasting 15:00, tasting room
Members
Public
4 reserved16 open20 seats total

Four seats are held for bottle club members, who get first refusal on the small-batch pours. Twelve hours before the tour, any member seat nobody has claimed goes on public sale, so a quiet Thursday does not run with four empty chairs at the good end of the table.

Seats, counted properly

The tasting room is a resource, its weekly rule carries the number, and party size is every person on the booking. A group of nine is nine seats, not one ticket. That is the number the room has, and it is where the widget stops.

Drinkers and drivers priced apart

A service carries its own price bands. Set up a full tasting and a designated driver band at a lower price, each pointing at its own Shopify variant, and both count toward the seats. The driver takes a chair and pays for soft drinks, which is exactly what happens in the room.

Upgrade flights and glasses in the same cart

A service can carry one per-person add-on with its own price, which is where an upgrade flight or a cheese board goes. It lands in the same Shopify checkout as the seats, so the money is taken before anyone arrives rather than by a card machine mid-tour. One extra per service, so pick the one that sells.

Tap takeovers and member nights

One-off nights run as events with their own capacity, price and access rules, and they block the room, so an ordinary tour cannot be sold into the same chairs at the same hour. A members-only cask night can be restricted to pass holders, and each event gets its own signup link for a newsletter.

Private hire without ghost availability

When the taproom is hired out, block the places with a note. They leave public sale immediately, so the website is not offering seats at a wedding reception.

Which pours are worth the labour

Occupancy per session time, cancellation rate and peak hours, with CSV export. If the 13:00 Friday runs at 40 percent all winter while the 15:00 Saturday sells out on the Wednesday, the timetable should say so.

Two numbers, and the smaller one wins

Ask a brewery how many people fit a tasting and you get the chairs. Ask what they would actually like to pour and you sometimes get a smaller number, because the interesting cask is finite and a table of twenty drinks it in one sitting.

Both are real caps and only one of them is furniture. The useful thing about putting capacity on the schedule is that you decide which number goes in. Twenty chairs and enough of the barrel-aged stout for sixteen means the session is sixteen, and the widget will not argue.

That sounds obvious until you try it on plain Shopify inventory, where the number lives on a variant that has no idea what day it is. Then a group of nine walks into a room with three chairs left, and the person explaining it is the brewer.


What a brewery setup looks like

CapFlow concept In brewery language
Resource Tasting room, brewhouse tour, the taproom, the barrel cellar
Service Tour and tasting, tasting only, beer and cheese, guided flight
Price bands Full tasting, designated driver, soft drinks
Schedule Season hours, as weekly rules, each carrying the room’s cap
Timeslot One tour on one day
Add-on One per-person extra per service, such as an upgrade flight
Event Tap takeover, anniversary night, members-only cask night
Membership Bottle club, mug club, tasting card
Block Places taken by a private hire

Price bands are the part worth setting up carefully. The default is adult and child, and you can rename them, add more and point each at its own Shopify variant. For a tasting the useful split is usually the full pour against the designated driver, because the driver still occupies a seat and still needs something in their glass. Two bands, two prices, one head count each.


The age question, answered plainly

A booking system that sells alcohol tastings and cannot ask for a date of birth is worth being direct about.

CapFlow Booking has no custom booking fields. Not a restricted set, none. The widget collects a first name and a last name, holds the seats and hands the customer to your Shopify checkout. Nothing asks how old anybody is, and nothing could, because there is nowhere to put the answer.

What you can do is state the requirement in the service description, which shows in the widget before payment, and keep checking ID at the door the way you do now. What you cannot do is treat the booking as evidence that anybody is over eighteen. If you need a verified age gate in the purchase flow, that is a reason to choose something else, and it is better to know that on a quiet afternoon than after a licensing visit.


Honest limits

Where a brewery or distillery will feel the edges:

  • No age verification. No date of birth, no custom fields, no gate. ID at the door is still your job.
  • Single language. One language for the widget and the emails, which matters when half the room is visiting.
  • No OTA or channel manager. Direct sales through your own store only.
  • No minimum group size. A fixed party size, or nothing.
  • No waitlist. A sold-out Saturday has no queue.
  • Rescheduling keeps the tasting details fixed. Customers and staff can move the same booking to another available time. A different tasting, duration, party size, or resource still means cancel and rebook.
  • No deposits. Paid in full at the Shopify checkout.
  • No per-person names. One lead name and a party size, whatever the group.

A brewery whose tour volume comes from the OTAs, in four languages, should look elsewhere. A brewery selling its own tours off its own Shopify store, where the recurring annoyance is a room that oversold because a group counted as one ticket, is the case this was built for. The comparison pages cover the rest without flattering us.

Questions from tastings & breweries

Can CapFlow Booking check that customers are old enough to drink?

No. There is no age gate, no date of birth field and no custom booking fields of any kind, so nothing in the flow asks or verifies. The widget takes a first name and a last name. Age checking stays exactly where it is now, which for most breweries means looking at ID at the door. You can put the age requirement in the service description so it is on screen before someone pays, but treat that as a notice, not a control.

Can I set a minimum group size for a private tour?

Not a minimum, no. A service can have a fixed party size, which is a different thing: set it to eight and every booking of that service takes exactly eight seats and prices eight, whether six people or ten turn up. That works well for a package sold as a whole table. What the app cannot do is accept anything from six upward and refuse five.

Does it list our tours on Viator or GetYourGuide?

No. There is no OTA or channel manager integration, and no webhook or Zapier layer to build one with. CapFlow Booking sells your own direct inventory through your own Shopify store. If your channel sales and your direct sales have to draw down one live seat count, this is not the right tool, and the honest version is that for a lot of breweries the OTAs are most of the volume.

Half our visitors are tourists. Can the widget run in more than one language?

No. The booking widget and the notification emails are single language, with no translation layer and no per-language variant. Dates and prices format for your shop's locale, but the wording does not change. For a brewery whose Saturday tour is half international, that is a genuine reason to look at something else, and we would rather say so now.

Somebody cancels the morning of the tour. What happens to their money?

Whatever your windows say. Outside your free cancellation window they cancel themselves from the confirmation email and Shopify refunds them in full. Between the free window and your cut-off the refund goes out minus a per-person fee. Inside the cut-off the app declines the cancellation and the seats stay sold. You set all three numbers, and members can have a different set.

Is there a waitlist when a tour sells out?

No. A full tour shows as full and nobody is promoted when a booking drops. The freed seats simply return to public sale.