{{--
Complimentary Ticket Email - COMP-001
Sent when complimentary (guest) tickets are issued
Simplified version without payment details - focuses on ticket delivery
Note: $colors automatically injected via View Composer
--}}
@component('emails.layouts.base', [
'title' => 'Your Tickets',
'previewText' => 'Your complimentary tickets are ready',
'colors' => $colors
])
@component('emails.atoms.h1', ['colors' => $colors])
Your Tickets Are Ready
@endcomponent
@component('emails.atoms.text', ['colors' => $colors])
You've been issued {{ $ticketCount }} complimentary {{ $ticketCount === 1 ? 'ticket' : 'tickets' }} for {{ $eventName }}.
@endcomponent
@include('emails.atoms.spacer', ['height' => '16px'])
@component('emails.organisms.alert-box', [
'variant' => 'success',
'title' => 'Complimentary Guest Tickets',
'colors' => $colors
])
Your tickets have been confirmed. Please bring them to the venue entrance.
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
{{-- PDF Download / Attachment Notice --}}
@if($hasPdfAttachment)
@component('emails.organisms.alert-box', [
'variant' => 'info',
'title' => 'Your Tickets',
'colors' => $colors
])
Your tickets are attached to this email as a PDF. Please print or display on your mobile device at the venue.
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
@elseif($downloadUrl)
@component('emails.organisms.alert-box', [
'variant' => 'warning',
'title' => 'Download Your Tickets',
'colors' => $colors
])
Your tickets are ready for download. Click the button below to get your printable PDF.
@endcomponent
@include('emails.atoms.spacer', ['height' => '16px'])
|
@component('emails.molecules.button', [
'href' => $downloadUrl,
'variant' => 'primary',
'colors' => $colors
])
Download Tickets (PDF)
@endcomponent
|
@include('emails.atoms.spacer', ['height' => '20px'])
@endif
@include('emails.atoms.spacer', ['height' => '4px'])
@component('emails.atoms.h3', ['colors' => $colors])
Event Details
@endcomponent
@component('emails.organisms.card', ['colors' => $colors])
@component('emails.molecules.info-row', [
'label' => 'Reference',
'value' => $orderNumber,
'colors' => $colors
])
@endcomponent
@component('emails.molecules.info-row', [
'label' => 'Guest Name',
'value' => $order->customer_name,
'colors' => $colors
])
@endcomponent
@if($order->EventDetail)
@component('emails.molecules.info-row', [
'label' => 'Event',
'value' => $order->EventDetail->name,
'colors' => $colors
])
@endcomponent
@if($order->EventDetail->venue_name)
@component('emails.molecules.info-row', [
'label' => 'Venue',
'value' => $order->EventDetail->venue_name,
'colors' => $colors
])
@endcomponent
@endif
@if($order->EventDetail->start_date)
@php
$datePart = \Carbon\Carbon::parse($order->EventDetail->start_date)->format('Y-m-d');
$timePart = $order->EventDetail->start_time ?? '00:00:00';
$eventDateTime = $datePart . ' ' . $timePart;
@endphp
@component('emails.molecules.info-row', [
'label' => 'Date & Time',
'value' => \Carbon\Carbon::parse($eventDateTime)->format('l, F j, Y \a\t g:i A'),
'colors' => $colors,
'removeBorder' => true
])
@endcomponent
@endif
@endif
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
{{-- Seat Information --}}
@php
$tickets = $order->lineItems->where('item_type', 'ticket');
@endphp
@if($tickets->count() > 0)
@component('emails.atoms.h3', ['colors' => $colors])
Your Seats
@endcomponent
@component('emails.organisms.card', ['colors' => $colors])
@foreach($tickets as $index => $ticket)
@component('emails.molecules.info-row', [
'label' => 'Seat ' . ($index + 1),
'value' => $ticket->metadata['seat_number'] ?? $ticket->description ?? 'General Admission',
'colors' => $colors,
'removeBorder' => $loop->last
])
@endcomponent
@endforeach
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
@endif
{{-- Embedded Tickets with QR Code or Barcode --}}
@if($hasEmbeddedTickets)
@php
$codeType = $embeddedTickets[0]['code_type'] ?? 'qr';
$codeLabel = $codeType === 'barcode' ? 'barcodes' : 'QR codes';
@endphp
@component('emails.atoms.h2', ['colors' => $colors])
Your Tickets
@endcomponent
@component('emails.atoms.text', ['colors' => $colors])
Present these {{ $codeLabel }} at the venue entrance. Save this email for offline access.
@endcomponent
@include('emails.atoms.spacer', ['height' => '16px'])
@foreach($embeddedTickets as $ticket)
@component('emails.organisms.card', ['colors' => $colors])
{{-- Ticket Header --}}
Seat {{ $ticket['seat_number'] }}
{{ $ticket['description'] }}
|
@component('emails.molecules.badge', [
'variant' => 'success',
'colors' => $colors
])
GUEST
@endcomponent
|
{{-- QR Code or Barcode Section --}}
@if($codeType === 'barcode')
Scan Barcode at Venue
@else
Scan at Venue Entrance
@endif
|
Ticket: {{ $ticket['ticket_number'] }}
|
@endcomponent
@include('emails.atoms.spacer', ['height' => '16px'])
@endforeach
@component('emails.organisms.alert-box', [
'variant' => 'info',
'title' => 'Pro Tip',
'colors' => $colors
])
Screenshot this email or save it offline before arriving at the venue. Venue wifi may be unreliable.
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
@endif
@component('emails.organisms.alert-box', [
'variant' => 'info',
'title' => 'Important',
'colors' => $colors
])
Please keep this email as your ticket confirmation. Do not share your ticket codes with anyone.
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
@component('emails.atoms.small', ['colors' => $colors])
Questions? Contact us at {{ $supportEmail }}
@endcomponent
{{-- Email Open Tracking Pixel --}}
@if($trackingPixelUrl)
@endif
@endcomponent