@extends('layouts.admin', ['title' => 'Products']) @section('admin-content')

Products & app integrations

Create products, configure the integration credentials your commercial apps will use, and manage release channels without crowding the screen.

Stable releases
{{ $versionStats['stable'] }}
Beta releases
{{ $versionStats['beta'] }}
Forced updates
{{ $versionStats['forced'] }}
@csrf
@foreach ($products as $product)

{{ $product->name }}

{{ $product->is_active ? 'Active' : 'Paused' }}

{{ $product->description ?: 'No description provided yet.' }}

{{ $product->sku }} {{ $product->api_identifier }} {{ $product->licenses_count }} licenses {{ $product->latest_version ?: 'No release yet' }}
@csrf @method('DELETE')
Plan mode
{{ ucfirst($product->default_plan_type) }}
Trial days
{{ $product->trial_days }}
Offline validation
{{ $product->supports_offline_validation ? 'Enabled' : 'Disabled' }}
Domain locking
{{ $product->requires_domain_lock ? 'Required' : 'Optional' }}

Integration kit

Base API
{{ config('app.url') }}/api/v1
Product Identifier
{{ $product->api_identifier }}
Verification Token
{{ $product->verification_token }}
Required App Flow
1. Installer sends `email`, `password`, `license_key`, `product_identifier`, `domain`.
2. Central server verifies ownership and binds the install.
3. App stores encrypted offline cache and revalidates periodically.

Integration settings

@csrf

Add release

@csrf

Release history

@forelse ($product->versions->sortByDesc('released_at') as $version)
Version: {{ $version->version }}
Channel: {{ ucfirst($version->release_channel) }}
Forced: {{ $version->is_forced ? 'Yes' : 'No' }}
Released: {{ $version->released_at?->format('Y-m-d') ?: 'Pending' }}
@empty
No releases added yet.
@endforelse
@endforeach
{{ $products->links() }}
@endsection