Easy Tickets & Events docs

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:

  1. On the event settings, toggle Shared inventory.
  2. Set the total shared pool (e.g. 100).
  3. 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":

  1. Create a ticket type with Group size = 4.
  2. Customers buying one of this type get one ticket entry but four admissions counted against inventory.
  3. 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":

  1. Create a ticket type with Is bundle = true and Bundle size = 10.
  2. On purchase, the buyer gets one ticket (the primary) plus nine unique claim links.
  3. The buyer forwards each claim link to a friend.
  4. Each friend clicks the link, fills in their own attendee info, and gets their own QR code.
  5. Until claimed, the nine other tickets sit in pending_claim status.

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:

  1. Create one ticket type per time slot.
  2. Toggle Is time slot on each.
  3. Set Slot start time and Slot end time per ticket.
  4. (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).