@extends('layouts.app') @section('content')

TikTok Shop Management

Simplified view of your TikTok Shop sales and advertising costs

Upload New Data
@if($availableShops->count() > 1)
@if($selectedShopId) Clear Filter @endif
@endif @if($shopSummaries && $shopSummaries->count() > 0)

All TikTok Shops Summary ({{ \Carbon\Carbon::parse($startDate)->format('M d') }} - {{ \Carbon\Carbon::parse($endDate)->format('M d, Y') }})

@php $totalOrders = 0; $totalRevenue = 0; $totalSettlement = 0; @endphp @foreach($availableShops as $shop) @php $shopData = $shopSummaries->get($shop->id); $orders = $shopData->total_orders ?? 0; $revenue = $shopData->total_revenue ?? 0; $settlement = $shopData->total_settlement ?? 0; $totalOrders += $orders; $totalRevenue += $revenue; $totalSettlement += $settlement; @endphp

{{ $shop->name }}

Orders: {{ number_format($orders) }}
Revenue: RM {{ number_format($revenue, 2) }}
Settlement: RM {{ number_format($settlement, 2) }}
@endforeach
@if($availableShops->count() > 1)
TOTAL (All Shops):
{{ number_format($totalOrders) }} orders RM {{ number_format($totalRevenue, 2) }} RM {{ number_format($totalSettlement, 2) }}
@endif
@endif
Total Orders
{{ number_format($summary->total_orders ?? 0) }}
{{ $summary->total_refunds ?? 0 }} refunds
Gross Revenue
RM {{ number_format($summary->total_revenue ?? 0, 2) }}
@if(($summary->total_refund_amount ?? 0) > 0)
- RM {{ number_format($summary->total_refund_amount ?? 0, 2) }} refunds
@else
Avg: RM {{ number_format($summary->avg_order_value ?? 0, 2) }}
@endif
TikTok Fees
RM {{ number_format(abs($summary->total_fees ?? 0), 2) }}
@php $feePercent = ($summary->total_revenue ?? 0) > 0 ? (abs($summary->total_fees ?? 0) / ($summary->total_revenue ?? 0)) * 100 : 0; @endphp
{{ number_format($feePercent, 1) }}% of gross
Bank Transfer Amount
RM {{ number_format($summary->total_settlement ?? 0, 2) }}
After refunds & fees
@if(($summary->total_refund_amount ?? 0) > 0)

Settlement Calculation

Gross Revenue ({{ number_format($summary->total_orders ?? 0) }} orders) RM {{ number_format($summary->total_revenue ?? 0, 2) }}
Less: Refunds ({{ $summary->total_refunds ?? 0 }} refunds) - RM {{ number_format($summary->total_refund_amount ?? 0, 2) }}
Less: TikTok Fees - RM {{ number_format(abs($summary->total_fees ?? 0), 2) }}
= Bank Transfer Amount RM {{ number_format($summary->total_settlement ?? 0, 2) }}
@endif @if($adsSpending && count($adsSpending) > 0)

Ads Spending by Month

@foreach($adsSpending as $month) @endforeach
Month Transactions Total Spent
{{ \Carbon\Carbon::parse($month->month . '-01')->format('F Y') }} {{ number_format($month->transaction_count) }} payments RM {{ number_format($month->total_spent, 2) }}
Total {{ number_format($adsSpending->sum('transaction_count')) }} payments RM {{ number_format($adsSpending->sum('total_spent'), 2) }}

This shows your TikTok Ads spending. Use this for manual ROI calculations across all sales channels.

@endif
@php $quickFilters = [ 'this_month' => ['label' => 'This Month', 'start' => now()->startOfMonth()->format('Y-m-d'), 'end' => now()->endOfMonth()->format('Y-m-d')], 'last_month' => ['label' => 'Last Month', 'start' => now()->subMonth()->startOfMonth()->format('Y-m-d'), 'end' => now()->subMonth()->endOfMonth()->format('Y-m-d')], '6_months' => ['label' => '6 Months', 'start' => now()->subMonths(6)->startOfMonth()->format('Y-m-d'), 'end' => now()->endOfMonth()->format('Y-m-d')], 'this_year' => ['label' => 'This Year', 'start' => now()->startOfYear()->format('Y-m-d'), 'end' => now()->endOfYear()->format('Y-m-d')], 'last_year' => ['label' => 'Last Year', 'start' => now()->subYear()->startOfYear()->format('Y-m-d'), 'end' => now()->subYear()->endOfYear()->format('Y-m-d')], ]; $isCustom = true; @endphp @foreach($quickFilters as $key => $filter) @php $isActive = ($startDate === $filter['start'] && $endDate === $filter['end']); if ($isActive) $isCustom = false; @endphp {{ $filter['label'] }} @endforeach
@if($selectedShopId) @endif

Filtering by settlement date (when TikTok paid you), not order date

Transactions ({{ $transactions->total() }})

@if($transactions->count() > 0)
@foreach($transactions as $transaction) @endforeach
Settled Date Order ID Type Revenue Fees Net Actions
{{ $transaction->settled_date ? $transaction->settled_date->format('Y-m-d') : '-' }} @if($transaction->order_date != $transaction->settled_date) Order: {{ $transaction->order_date->format('Y-m-d') }} @endif {{ Str::limit($transaction->order_id, 20) }} @if($transaction->type === 'Order') Order @else {{ $transaction->type }} @endif RM {{ number_format($transaction->total_revenue, 2) }} RM {{ number_format(abs($transaction->total_fees), 2) }} RM {{ number_format($transaction->net_settlement, 2) }}
@csrf @method('DELETE')
{{ $transactions->links() }}
@else

No TikTok Shop data yet

Upload Your First Report
@endif
@endsection