Home
/
@if($collection)
{{ $collection->title }}
/
@else
Shop
/
@endif
{{ $product->title }}
{{-- Gallery --}}
@php
$galleryImages = collect([$thumbnail])->filter()->merge($gallery)->unique('id')->values()
->map(fn ($m, $i) => [
'src' => $m->publicUrl() ?: ($m->path ? asset('storage/'.$m->path) : $primaryImage),
'alt' => $m->alt ?: $product->title.' — image '.($i + 1),
]);
if ($galleryImages->isEmpty()) {
$galleryImages = collect([['src' => $primaryImage, 'alt' => $product->title]]);
}
$imageCount = $galleryImages->count();
@endphp
@if($product->grade)
{{ $product->grade }} grade
@endif
Hover to zoom · click to expand
@if($imageCount > 1)
1 / {{ $imageCount }}
@endif
@if($imageCount > 1)
@foreach($galleryImages as $index => $image)
@endforeach
@endif
1 / {{ $imageCount }}
{{ $product->title }}
@if($imageCount > 1)
@endif
@if($imageCount > 1)
@foreach($galleryImages as $index => $image)
@endforeach
@endif
{{-- Buy box --}}
The Ring Authority
{{ $product->title }}
{{ $variant?->priceLabel() }}
@if($variant?->compare_at_cents)
{{ $variant->currency }} {{ number_format($variant->compare_at_cents/100, 2) }}
@endif
@if($variant && $variant->available && ($variant->inventory_qty ?? 0) > 0)
In stock · ships after production
@else
Made to order
@endif
@if($product->lead_days)
Lead time about {{ $product->lead_days }} days
@endif
Production-ready specs
AU & export freight
Custom branding available
{{-- Product details --}}
@php
$specIcons = ['surface' => 'layers', 'use' => 'target', 'material' => 'swatch-book', 'weight' => 'weight', 'finish' => 'sparkles', 'fastening' => 'link'];
$specRows = collect(is_array($product->material_specs) ? $product->material_specs : [])
->map(fn ($value, $key) => [
'label' => is_string($key) ? Str::headline($key) : 'Spec',
'value' => is_array($value) ? implode(', ', array_map('strval', $value)) : (string) $value,
'icon' => $specIcons[is_string($key) ? Str::lower($key) : ''] ?? 'list-checks',
])->values();
if ($product->grade) { $specRows->prepend(['label' => 'Grade', 'value' => $product->grade, 'icon' => 'award']); }
if ($product->product_type) { $specRows->push(['label' => 'Type', 'value' => $product->product_type, 'icon' => 'box']); }
if ($product->vendor) { $specRows->push(['label' => 'Made by', 'value' => $product->vendor, 'icon' => 'badge-check']); }
if ($product->lead_days) { $specRows->push(['label' => 'Lead time', 'value' => 'About '.$product->lead_days.' days', 'icon' => 'timer']); }
$variantCount = $product->variants->count();
$highlights = collect([
$product->grade ? ['icon' => 'award', 'value' => $product->grade, 'label' => 'Grade'] : null,
$product->lead_days ? ['icon' => 'timer', 'value' => $product->lead_days.' days', 'label' => 'Lead time'] : null,
$sizes->isNotEmpty() ? ['icon' => 'ruler', 'value' => $sizes->count(), 'label' => Str::plural('Size', $sizes->count())] : null,
$colours->isNotEmpty() ? ['icon' => 'palette', 'value' => $colours->count(), 'label' => Str::plural('Colour', $colours->count())] : null,
$variantCount > 1 ? ['icon' => 'layers-3', 'value' => $variantCount, 'label' => 'Options'] : null,
$product->custom_branding ? ['icon' => 'pen-tool', 'value' => 'Yes', 'label' => 'Custom branding'] : null,
])->filter()->take(4)->values();
$tabs = [
['id' => 'specs', 'label' => 'Specifications', 'icon' => 'clipboard-list', 'meta' => $specRows->count().' details'],
['id' => 'description', 'label' => 'Description', 'icon' => 'file-text', 'meta' => $description['minutes'] ? $description['minutes'].' min read' : 'Overview'],
['id' => 'faqs', 'label' => 'FAQs', 'icon' => 'message-circle-question', 'meta' => count($faqs).' answers'],
['id' => 'shipping', 'label' => 'Shipping & returns', 'icon' => 'truck', 'meta' => 'AU & worldwide'],
];
@endphp
Product details
Built to spec. Explained in full.
@foreach($tabs as $i => $tab)
{{ $tab['label'] }}
{{ $tab['meta'] }}
@endforeach
{{-- Specifications --}}
@if($highlights->isNotEmpty())
@foreach($highlights as $highlight)
{{ $highlight['value'] }}
{{ $highlight['label'] }}
@endforeach
@endif
Spec sheet
@if($variant?->sku)SKU {{ Str::beforeLast($variant->sku, '-') ?: $variant->sku }} @endif
@if($specRows->isNotEmpty())
@foreach($specRows as $row)
{{ $row['label'] }}
{{ $row['value'] }}
@endforeach
@endif
@if($sizes->isNotEmpty() || $colours->isNotEmpty())
@if($sizes->isNotEmpty())
Available sizes
@foreach($sizes as $size){{ $size }} @endforeach
@endif
@if($colours->isNotEmpty())
Colourways
@foreach($colours as $colour) {{ $colour }} @endforeach
@endif
@endif
{{-- Description --}}
count($description['toc']) > 1])>
@if(count($description['toc']) > 1)
@endif
@if($description['html'] !== '')
{!! $description['html'] !!}
@else
Premium TRA equipment engineered for training floors and fight night presentation.
@endif
{{-- FAQs --}}
@foreach($faqs as $i => $item)
{{ str_pad((string) ($i + 1), 2, '0', STR_PAD_LEFT) }}
{{ $item['q'] }}
@endforeach
{{-- Shipping & returns --}}
Step 01
Order or quote
Check out online or approve your quotation.
Step 02
Production
{{ $product->lead_days ? 'About '.$product->lead_days.' days, confirmed before we start.' : 'Timing confirmed before we start.' }}
Step 03
Quality check & pack
Inspected, folded and packed for freight.
Step 04
Delivered
Australia-wide and international freight.
Shipping
We ship Australia-wide with export options available. Freight is confirmed at checkout or on your quotation.
Shipping policy
Returns
Custom and made-to-order items follow our refund policy. Please review the terms before you order.
Refund policy
Order with confidence
Secure checkout, production-ready specs and a team that answers. Need freight for an event date? Ask us first.
Talk to us