Skip to main content

Journey Overview

Preconditions

  • Event exists and registration is open
  • User is authenticated
  • Event has available tickets
  • For paid events: User can make payment

Journey Flow

Detailed Steps

1

Select Ticket Type

Member chooses from available ticket types:Displayed Information:
  • Ticket name and price
  • Description of what’s included
  • Availability count
  • Member vs non-member indicator
  • “Best Value” or “Popular” badges
2

Select Quantity

Member selects number of tickets:
  • Quantity selector (1-10 typically)
  • Maximum per order limit enforced
  • Running total displayed
  • “Add another ticket type” option
Bulk/Group Discounts:
  • Automatic discount applied for quantity thresholds
  • “Buy 5+, save 10%” messaging
3

Enter Attendee Details (Multi-Ticket)

For multiple tickets, capture attendee info:Per Attendee:Options:
  • “Same as purchaser” checkbox for first attendee
  • Copy details from previous attendee
  • Import from contacts (if enabled)
4

Apply Promo Code

Member enters promotional code:Validation:
  • Code exists and is active
  • Code applies to selected event
  • Code applies to selected ticket type(s)
  • Usage limits not exceeded
Discount Display:
Error Handling:
  • Invalid code: “This code is not valid”
  • Expired: “This code has expired”
  • Used: “You’ve already used this code”
  • Not applicable: “Code doesn’t apply to this event”
5

Review Order

Order summary before payment:
6

Complete Payment

For Paid Events:Stripe payment form:
  • Credit/Debit card
  • Apple Pay / Google Pay
  • Saved payment methods
3D Secure authentication if required.For Free Events:
  • Skip payment step
  • “Complete Registration” button
  • Terms acceptance still required
7

Registration Confirmed

Success page displayed:
  • Confirmation number
  • Event details summary
  • QR code for check-in
  • “Add to Calendar” buttons
  • “Download Tickets” button
  • “View My Tickets” link
Immediate Actions:
  • Confirmation email sent to purchaser
  • Individual tickets emailed to each attendee
  • Calendar invite attached
  • Receipt/invoice generated

Ticket Delivery

Each attendee receives: Email Contents:
  • Event name and details
  • Their ticket with unique QR code
  • Check-in instructions
  • Venue/access information
  • Add to calendar links
  • PDF ticket attachment
QR Code Contains:
  • Ticket ID (encrypted)
  • Attendee name
  • Ticket type
  • Event reference

Special Scenarios

Waitlist Registration

If event is sold out:
  1. Member joins waitlist
  2. Provides contact info
  3. Notified if spot opens
  4. Limited time to complete purchase

Member-Only Events

  • Only authenticated members can register
  • Member validation at registration
  • May have capacity limits per member

Early Bird Pricing

  • Time-limited ticket type
  • Countdown timer displayed
  • Auto-switches to regular price when expired

Acceptance Criteria

Frontend

  • Ticket type selection with pricing
  • Quantity selector with running total
  • Attendee details form (multi-ticket)
  • Promo code input with validation
  • Order summary with itemized breakdown
  • Terms acceptance checkboxes
  • Stripe payment integration
  • Success page with QR code
  • PDF ticket download
  • Mobile-responsive checkout

Backend

  • POST /api/events/{id}/register - Create registration
  • POST /api/events/{id}/validate-promo - Validate code
  • POST /api/payments/create-intent - Payment intent
  • Webhook: payment_intent.succeeded
  • Email service: Send confirmation + tickets

Permissions

  • Authenticated users can register
  • Member-only events enforce membership

Business Rules

  • Ticket availability decremented on registration
  • Promo codes validated against limits
  • Tax calculated based on location
  • Group discounts auto-applied
  • Free events skip payment

Error Handling

  • Sold out during checkout → Error + waitlist offer
  • Payment failed → Retry with preserved data
  • Duplicate registration check