Features
Ticket types and inventory
Tiers, shared inventory pools, group packs, bundles, time slots, and check-in rules - everything that controls what tickets you sell and how many.
Updated May 20, 2026
The Ticket types page (inside the event settings) is where you define every variant customers can buy. This page covers every option.
Adding a ticket type
From the event detail page, click Settings → Ticket types. Click Add ticket type.
Fill in:
- Title - the variant name on the storefront ("General Admission", "VIP", "Member").
- Price - the customer-paid amount.
- Inventory - how many tickets exist at this tier.
- Group size - how many admissions one ticket grants. Default 1.
Save. Easy Tickets creates a corresponding Shopify variant under the event's backing product.
Per-tier vs shared inventory
By default, each ticket type has its own inventory pool. So 100 GA + 20 VIP = up to 120 attendees.
For events with a hard venue capacity that doesn't care about the mix:
- On the event settings, toggle Shared inventory.
- Set the total shared pool (e.g. 100).
- Each ticket type now sells against the shared pool.
The mix is decided by what customers actually buy.
Easy Tickets has a self-healing inventory recalculation that runs on every order, so even if a webhook is delayed, the inventory eventually reconciles against the live attendee count. You don't oversell.
Group packs
For "buy 4 tickets as one purchase, one QR, four admissions":
- Create a ticket type with Group size = 4.
- Customers buying one of this type get one ticket entry but four admissions counted against inventory.
- At check-in, the QR allows up to four scans (controlled by entrance limit).
Typical use: family packs, friend packs, table-of-X seating.
Bundles (table of 10, group buys)
For "buyer purchases 10 tickets, sends nine claim links to friends":
- Create a ticket type with Is bundle = true and Bundle size = 10.
- On purchase, the buyer gets one ticket (the primary) plus nine unique claim links.
- The buyer forwards each claim link to a friend.
- Each friend clicks the link, fills in their own attendee info, and gets their own QR code.
- Until claimed, the nine other tickets sit in
pending_claimstatus.
The buyer doesn't manage the 10 attendees' info themselves - each friend does it via self-service. See Ticket transfer and bundle claims for the full flow.
Time-slotted tickets
For events with multiple bookable time windows in a day:
- Create one ticket type per time slot.
- Toggle Is time slot on each.
- Set Slot start time and Slot end time per ticket.
- (Optional) set Slot date if different from the parent event date.
Customers see a calendar/time picker in the storefront popup. They select a slot, that slot's variant is added to cart.
Example: a wine tasting event with three slots:
- Tasting at 10am - ticket type "10:00 Tasting".
- Tasting at 2pm - ticket type "14:00 Tasting".
- Tasting at 6pm - ticket type "18:00 Tasting".
Each slot has its own inventory.
Ticket expiration
For tickets that should auto-expire (e.g. "good for 30 days after purchase"):
- Set Expires after days on the ticket type.
- After N days from issue, the ticket is invalid - check-in rejects it.
Use for vouchers, classes that customers self-schedule, multi-day passes that customers should redeem within a window.
Check-in rules per ticket type
Per ticket type:
- Check-in mode - Anytime, Scheduled (only during event hours), After start, or Custom window.
- Check-in start and Check-in end - the window if Custom.
- Entrance limit - how many scans this ticket allows. Default 1 (single entry). Higher for multi-day passes.
- Allow undo check-in - whether scanned tickets can be unscanned (useful for mistakes).
Common configurations:
- Single-entry event: entrance limit 1, check-in mode "Scheduled".
- Multi-day festival: entrance limit 3 for a 3-day pass, check-in mode "Custom" with the full festival window.
- Workshop: entrance limit 1, check-in mode "After start" (don't admit early arrivals).
See Web check-in PWA for how rules apply at scan time.
SKU templates
Each ticket needs a SKU. Easy Tickets auto-generates one using a template you set in shop settings:
- Default:
EASY-TICKET-<event-name>-<ticket-type>. - Custom: anything with
{{event-name}}and{{ticket-type}}placeholders.
This is mostly for your internal organisation - the SKU shows up in Shopify reporting and order line items.
What's next
Frequently asked questions
What's the difference between a group pack and a bundle?
A group pack is one purchase, one buyer, multiple admissions (e.g. "4-pack" = the buyer brings 3 friends, all four are admitted on the same QR code or a set of QRs sent to the buyer). A bundle is one purchase, one primary attendee, plus claim links - the buyer sends the other tickets to friends, each friend confirms their own details, each gets their own QR. Use group packs for "I'm bringing my crew", bundles for "I'm buying for the team".
How does shared inventory work?
Without shared inventory, each ticket type has its own stock (e.g. GA = 100, VIP = 20, total possible attendance = 120). With shared inventory on, all types pool into one total (e.g. shared pool = 100, sells in any mix). Useful when you have a real venue capacity and the mix doesn't matter for the door.
Can I cap how many tickets one person can buy?
Yes, via Shopify's native cart validation. Set the variant's "Maximum quantity per order" or use a Shopify Function rule. Easy Tickets also supports per-ticket entrance limits at check-in (one ticket = one entry, or one ticket = N entries for multi-day passes).