@extends('layouts.admin') @section('title', 'Website CMS') @section('page-title', 'Website CMS') @section('content') @php $flat = $settings->flatten()->keyBy('key'); $field = fn(string $key, string $default = '') => optional($flat->get($key))->value ?: $default; $parseJson = function(string $key, array $default = []) use ($field) { $v = json_decode($field($key, ''), true); return is_array($v) ? $v : $default; }; $heroStatsList = $parseJson('hero_stats_json', [['label' => 'Fast Setup', 'value' => '1 Day'], ['label' => 'Multi Device', 'value' => 'Live Sync'], ['label' => 'Data Safety', 'value' => 'Backups']]); $featureCardsList = $parseJson('feature_cards_json', [['title' => 'Offline-first billing', 'body' => 'Keep selling even with unstable internet and sync changes later.'], ['title' => 'Inventory intelligence', 'body' => 'Track stock, purchases, adjustments, and product performance in one place.']]); $pricingList = $parseJson('pricing_json', [['name' => 'Free', 'price' => '0', 'tagline' => '1 store, 150 products, 1 device'], ['name' => 'Growth', 'price' => '1.99', 'tagline' => '5 stores, unlimited products, 2 devices'], ['name' => 'Pro', 'price' => '3.99', 'tagline' => 'Unlimited stores & products, 4 devices']]); $screenshotsList = $parseJson('screenshot_cards_json', [['title' => 'Fast checkout', 'body' => 'Ring up items, discounts, and payment methods without slowing the counter.', 'image' => ''], ['title' => 'Inventory view', 'body' => 'Monitor low stock, purchases, and stock movement from one command surface.', 'image' => ''], ['title' => 'Cloud status', 'body' => 'Track backups, sync health, and device activity across your operation.', 'image' => '']]); $downloadLinksList = $parseJson('download_links_json', [['label' => 'Google Play', 'url' => '#', 'caption' => 'Android phones & tablets', 'platform' => 'google_play'], ['label' => 'App Store', 'url' => '/contact', 'caption' => 'iPhone & iPad', 'platform' => 'app_store'], ['label' => 'Windows', 'url' => '#', 'caption' => 'Desktop & laptop', 'platform' => 'windows']]); $faqList = $parseJson('faq_json', [['question' => 'Does Quickro POS work offline?', 'answer' => 'Yes. The app remains usable locally and syncs later when connectivity returns.'], ['question' => 'Can I restore backups from the cloud?', 'answer' => 'Yes. Google Drive and Laravel cloud backup flows are both supported in the app.']]); $socialLinksList = $parseJson('social_links_json', [['label' => 'Facebook', 'url' => '#'], ['label' => 'Instagram', 'url' => '#'], ['label' => 'LinkedIn', 'url' => '#']]); @endphp

Public Website Content

Manage hero copy, pricing summaries, contact data, and WhatsApp routing.

Open Website
@csrf {{-- ── Branding ─────────────────────────────────────────────────── --}}

Branding

Upload your support logo. It appears in the website header and footer when set.

{{-- Preview --}}
Logo preview
{{-- Upload button --}}
No file chosen
{{-- Hidden input that stores the URL --}} @if($field('support_logo_url')) @endif

Hero

Control the above-the-fold message, buttons, and quick stats.

Stat counters shown below the hero buttons (e.g. value "1 Day", label "Fast Setup").

{{-- /grid --}}
{{-- /space-y-5 hero --}}

Features, Pricing, Screenshots

Edit the core marketing sections without touching templates.

Cards shown in the Features section. Each needs a title and short body text.

Each plan needs a name, base monthly price, and a one-line tagline.

Cards in the Screenshots section. Upload an image per card (optional — leave blank to hide image).

Supported platform values: google_play, app_store, windows. Leave blank for a generic icon.

Accordion questions shown on the public homepage.

Contact, Footer, Legal

Control contact details, social links, CTA, policy copy, and WhatsApp visibility.

Links shown in the footer. Use the exact label — Facebook, Instagram, LinkedIn, Twitter, YouTube, etc. — for the icon to appear correctly.

Policies

Use double line breaks to separate paragraphs on the public legal pages.

{{-- Hidden inputs: Alpine serialises arrays → JSON on every change --}}
@endsection