@php $ebayChannels = $this->getEbayChannels(); $shopifyOptions = $this->getShopifyChannels(); $recentSyncs = $this->getRecentSyncs(); @endphp {{-- ── Page header ──────────────────────────────────────────────────── --}}

eBay Order Sync

Polls eBay every 5 minutes for paid orders and routes them to the configured destination.

{{-- ── Per-channel config ────────────────────────────────────────────── --}} @if ($ebayChannels->isEmpty())
No eBay channels configured. Add an eBay channel in the Channels section first.
@else @foreach ($ebayChannels as $channel)

{{ $channel->name }}

Cursor: {{ $channel->ebay_orders_synced_to ? $channel->ebay_orders_synced_to->diffForHumans().' ('.$channel->ebay_orders_synced_to->format('d M Y H:i').')' : 'Not set — first run fetches the last 24 hours' }}

@if (($channelSettings[$channel->id]['destination'] ?? 'cydekick') === 'shopify')
Orders pushed to Shopify — the Shopify webhook imports them into Cydekick automatically.
@endif
@endforeach
@endif {{-- ── Recent sync history ────────────────────────────────────────────── --}}

Recent syncs

@if ($recentSyncs->isEmpty())
No sync runs yet — click Sync Now or wait for the scheduler to run.
@else
@foreach ($recentSyncs as $sync) @php $duration = null; if ($sync->started_at && $sync->finished_at) { $secs = \Carbon\Carbon::parse($sync->started_at) ->diffInSeconds(\Carbon\Carbon::parse($sync->finished_at)); $duration = $secs < 60 ? "{$secs}s" : round($secs / 60, 1).'m'; } @endphp @if ($sync->status === 'error' && $sync->error_message) @endif @endforeach
Channel Started Duration Status Imported Skipped Failed Destination
{{ $sync->channel_name }} {{ $sync->started_at ? \Carbon\Carbon::parse($sync->started_at)->diffForHumans() : '—' }} {{ $duration ?? '…' }} @if ($sync->status === 'ok') OK @elseif ($sync->status === 'error') Error @else Running @endif {{ $sync->orders_imported }} {{ $sync->orders_skipped }} {{ $sync->orders_failed }} {{ $sync->destination ?? 'cydekick' }}
{{ \Illuminate\Support\Str::limit($sync->error_message, 200) }}
@endif