Sell event tickets and merch on one site without Eventbrite fees
- Type
- Applies to
- Medusa v2.x
- Updated
Short answer
Medusa lets you sell event tickets and merch from your own store with no per-ticket platform fee, so you pay only your payment provider. Its official ticket booking tutorial covers venues, seat maps, show dates, QR tickets and check-in. Seat limits use native inventory and discount codes use the native Promotion Module.
What selling tickets costs on Eventbrite, Ticket Tailor, and your own Medusa store
Ticketing platforms charge a fee on every paid ticket, on top of card processing. A store you run on Medusa charges no per-ticket platform fee, so you pay only your payment provider and your hosting. The figures below are from each vendor's own pricing page, as of October 2026.
For a $40 ticket, Eventbrite's service fee is $3.27 (3.7% of $40 plus $1.79) before processing. On Medusa with Stripe, a single $40 order costs $1.46 in Stripe fees and nothing else per ticket. The trade-off is that you build and run the store, while Eventbrite also brings event discovery and a ready-made checkout.
How ticketing features map to Medusa
Medusa has no built-in ticketing product type. The official ticket booking tutorial builds a Ticket Booking module on top of Medusa's products, inventory, carts, and orders, with full code on GitHub.
What changes when you add merch to the ticket checkout
The ticket booking tutorial builds a ticket-only checkout. Its storefront removes the shipping address and shipping method steps, and its custom cart completion step rejects any cart item with a quantity other than 1, which also blocks merch bought in multiples.
Medusa itself supports mixed carts. Each item's shipping requirement comes from its product's shipping profile or its inventory item's Copy to clipboardrequires_shipping flag, as described in Configure Selling Products. To sell merch alongside tickets, you:
- Limit the quantity check in Copy to clipboard
validateTicketOrderStepto items that carry seat metadata. - Show the shipping steps in the storefront only when the cart contains an item that requires shipping.
- Keep tickets on Copy to clipboard
requires_shipping: falseso they never need a shipping method.
The docs don't ship a mixed ticket and merch example yet, so treat this as custom work on top of the tutorial.
How Medusa stops a seat from selling twice
Medusa checks available inventory when an item is added to a cart and creates a reservation when the order is placed, according to the Inventory Module flows. It does not hold stock while an item sits in a cart.
The tutorial adds seat-level checks with the Copy to clipboardvalidate hook of Copy to clipboardaddToCartWorkflow and again in a custom cart completion workflow. If a seat sells while it sits in another buyer's cart, that buyer's order fails validation and is canceled. The completion lock is keyed on the cart, so for high-demand on-sales add a lock keyed on the seat and show date. A timed seat hold, such as "this seat is yours for 10 minutes", is custom work.
When Medusa is not the right choice for ticketing
- You run a few events a year, have no developer, and want listings on a discovery marketplace. Eventbrite or Ticket Tailor gets you selling today.
- You need a ready-made box office, scanning app, and payouts to promoters without writing code.
- Your fee savings are smaller than the cost of building and hosting a store. Medusa fits when you sell enough tickets for the per-ticket fee to matter, or when tickets are one part of a larger store.
Common questions
Does Medusa charge a fee per ticket?
No. Medusa's core is open source under the MIT license and Medusa Cloud charges a 0% GMV fee, so a ticket sold through a Medusa store pays only the payment provider's processing fee.
Can Medusa sell tickets and merch in the same cart?
Yes, Medusa's cart supports items that need shipping next to items that don't. The official ticket booking tutorial builds a ticket-only checkout, so you adapt its storefront and its quantity check to add merch.
Does Medusa support reserved seating?
Yes, through the official ticket booking tutorial. It adds venues with rows and seats, a seat selector in the Next.js Starter Storefront, and validation that a seat sells once per show date.
How do discount codes work for tickets in Medusa?
Ticket products are regular Medusa products, so the native Promotion Module applies to them. You create percentage or fixed discounts with rules, and group them in campaigns with start and end dates and budgets.
Can I scan tickets at the door with Medusa?
The ticket booking tutorial emails a QR code per ticket and adds an API route that verifies a scanned code and marks the ticket as scanned. You connect your own scanner app to that route.