{{ number_format($stats['stalled_nodes']) }} node(s) are pending/fetching with nothing queued to process them — likely left behind by a "Stop JLR Jobs" click. They will not resolve on their own. Click Extract All to resume.
@if($tok['has_refresh'])
{{-- Refresh token present → session can always auto-renew, access token expiry is irrelevant --}}
Session active · auto-refresh
@elseif($tok['has_token'] && !$tok['expired'])
Token valid
@else
Not authenticated — click Authenticate
@endif
@if($tok['email'])
Logged in as: {{ $tok['email'] }}
@endif
{{-- EPC API token status (idp_access_token — used for catalogue extraction) --}}
@if($tok['has_epc_token'] && !$tok['epc_expired'])
EPC token valid
@if($tok['epc_expires_in'] !== null)
· {{ (int)($tok['epc_expires_in'] / 60) }} min remaining
@endif
@elseif($tok['has_epc_token'] && $tok['epc_expired'])
EPC token expired (auto-refreshes on next extraction)
@else
No EPC token — authenticate to obtain one
@endif
Use Authenticate above to log in with your JLR EPC trade account. The EPC catalogue token is obtained automatically during login and refreshed every ~5 minutes during extraction.
{{-- Quick actions --}}
Extraction Guide
Authenticate once with your JLR EPC credentials to bootstrap the 90-day refresh token.
Sync Vehicles to import the vehicle list from the SFCC catalogue API.
Extract All to queue a full recursive hierarchy + parts extraction for every vehicle. This runs in the background — monitor via the Console panel.
Browse Catalogue to navigate the stored data without hitting the live API.
Note: Extraction respects the rate limit setting ({{ app(\Webkul\JlrEpc\Settings\JlrEpcSettings::class)->rate_limit_ms }}ms between requests). Diagram images are downloaded immediately during extraction since the signed URLs expire.