{{--
Chargeback Notification Email - Atomic Design System v2.0
Sent when a chargeback is created, updated, or closed
Note: $colors automatically injected via View Composer
--}}
@component('emails.layouts.base', [
'title' => 'Chargeback Notification',
'previewText' => 'Order ' . $orderNumber,
'colors' => $colors
])
@component('emails.atoms.h1', ['colors' => $colors])
@if($notificationType === 'created')
Chargeback Alert
@elseif($notificationType === 'updated')
Chargeback Update
@elseif($notificationType === 'closed')
@if($chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_WON)
Chargeback Won
@elseif($chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_LOST)
Chargeback Lost
@else
Chargeback Closed
@endif
@endif
@endcomponent
@component('emails.atoms.text', ['colors' => $colors])
Order {{ $orderNumber }}
@endcomponent
@if($requiresAction)
@component('emails.organisms.alert-box', [
'variant' => 'warning',
'title' => 'Action Required',
'colors' => $colors
])
Evidence Due: {{ $evidenceDueBy ? $evidenceDueBy->format('F j, Y g:i A') : 'Not specified' }}
This chargeback requires immediate attention and evidence submission to Stripe.
|
|
Review order details and customer communication
|
|
|
|
Gather proof of service/delivery (tickets, attendance records)
|
|
|
|
Submit evidence through Stripe Dashboard before deadline
|
|
|
|
Document all actions taken
|
|
@include('emails.atoms.spacer', ['height' => '12px'])
|
@component('emails.molecules.button', [
'href' => $adminDashboardUrl . '/orders/' . $order->id,
'variant' => 'primary',
'size' => 'medium',
'colors' => $colors
])
View Order Details
@endcomponent
|
@endcomponent
@else
@php
if ($notificationType === 'closed' && $chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_WON) {
$alertVariant = 'success';
$alertTitle = 'Chargeback Resolved';
} elseif ($notificationType === 'closed' && $chargeback->resolution_outcome === App\Model\Chargeback::OUTCOME_LOST) {
$alertVariant = 'error';
$alertTitle = 'Chargeback Resolved';
} else {
$alertVariant = 'warning';
$alertTitle = $notificationType === 'created' ? 'New Chargeback Received' : 'Chargeback Status Updated';
}
@endphp
@component('emails.organisms.alert-box', [
'variant' => $alertVariant,
'title' => $alertTitle,
'colors' => $colors
])
@if($notificationType === 'created')
A customer has disputed a charge through their bank/card issuer.
@elseif($notificationType === 'updated')
The status of this chargeback has been updated.
@elseif($notificationType === 'closed')
This chargeback has been closed and resolved.
@endif
@endcomponent
@endif
@include('emails.atoms.spacer', ['height' => '20px'])
@component('emails.atoms.h3', ['colors' => $colors])
Chargeback Details
@endcomponent
@component('emails.organisms.card', ['colors' => $colors])
|
Chargeback Amount:
|
{{ $chargebackCurrency }} {{ number_format($chargebackAmount, 2) }}
|
|
Status:
|
@component('emails.molecules.badge', [
'variant' => $requiresAction ? 'error' : ($chargeback->isResolved() ? 'success' : 'warning'),
'colors' => $colors
])
{{ $chargebackStatus }}
@endcomponent
|
|
Reason:
|
{{ $chargebackReason }}
|
@if($evidenceDueBy)
|
Evidence Due By:
|
{{ $evidenceDueBy->format('F j, Y g:i A') }}
|
@endif
@if($notificationType === 'closed' && $resolutionType)
|
Resolution:
|
{{ ucwords(str_replace('_', ' ', $resolutionType)) }}
|
|
Resolved At:
|
{{ $resolvedAt ? $resolvedAt->format('F j, Y g:i A') : 'N/A' }}
|
@endif
|
Dispute ID:
|
{{ $disputeId }}
|
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
@component('emails.atoms.h3', ['colors' => $colors])
Order Information
@endcomponent
@component('emails.organisms.card', ['colors' => $colors])
@component('emails.molecules.info-row', [
'label' => 'Order Number',
'value' => $orderNumber,
'colors' => $colors
])
@endcomponent
@component('emails.molecules.info-row', [
'label' => 'Order Date',
'value' => $orderDate->format('F j, Y g:i A'),
'colors' => $colors
])
@endcomponent
@component('emails.molecules.info-row', [
'label' => 'Order Total',
'value' => '€' . number_format($orderTotal, 2),
'colors' => $colors
])
@endcomponent
@component('emails.molecules.info-row', [
'label' => 'Event',
'value' => $eventName,
'colors' => $colors
])
@endcomponent
@component('emails.molecules.info-row', [
'label' => 'Customer Name',
'value' => $customerName,
'colors' => $colors
])
@endcomponent
@component('emails.molecules.info-row', [
'label' => 'Customer Email',
'value' => $customerEmail,
'colors' => $colors,
'removeBorder' => true
])
@endcomponent
@endcomponent
@include('emails.atoms.spacer', ['height' => '20px'])
@component('emails.atoms.h3', ['colors' => $colors])
Technical Details
@endcomponent
@component('emails.organisms.card', ['colors' => $colors])
@if($chargeId)
Charge ID: {{ $chargeId }}
@endif
@if($paymentIntentId)
Payment Intent ID: {{ $paymentIntentId }}
@endif
@endcomponent
@component('emails.atoms.h3', ['colors' => $colors])
Next Steps
@endcomponent
@component('emails.atoms.text', ['colors' => $colors])
@if($requiresAction)
Review the dispute in your Stripe Dashboard and submit evidence before the deadline. Contact the customer if needed to resolve the issue.
@elseif($notificationType === 'created')
Review the chargeback details and monitor for updates. You may need to submit evidence.
@elseif($notificationType === 'closed')
No further action required. Review the outcome and update internal records as needed.
@else
Monitor the chargeback status and be prepared to submit evidence if required.
@endif
@endcomponent
@component('emails.atoms.small', ['colors' => $colors])
This is an automated notification from Global Gala Ticketing System. For assistance, contact {{ $supportEmail }}
@endcomponent
@component('emails.atoms.small', ['colors' => $colors])
View Order in Admin Dashboard
@endcomponent
@endcomponent