@php $u = auth()->user(); $cfg = $u?->current_workspace_id ? \App\Models\WaProviderConfig::query()->forWorkspace($u->current_workspace_id)->first() : null; $cnameTarget = config('storefront.cname_target', parse_url(config('app.url'), PHP_URL_HOST) ?: 'localhost'); $settings = $sf->settings_json ?? []; @endphp
@include('user.store._sidebar', ['current' => 'storefront', 'cfg' => $cfg, 'sf' => $sf])
{{ __('Store / Storefront') }}

{{ __('Storefront') }} {{ __('design') }}

View live →
@if (session('status'))
{{ session('status') }}
@endif
@csrf @method('PUT') @if ($errors->any())
@foreach ($errors->all() as $e)
{{ $e }}
@endforeach
@endif
{{ __('Theme') }}
@foreach ($themes as $key => $name) @php $active = old('theme_key', $sf->theme_key) === $key; @endphp @endforeach
{{-- Currency --}}
{{ __('Currency') }}
{{-- Shipping --}} @php $shipping = $sf->shipping_json ?? []; @endphp
{{ __('Shipping') }}
{{-- Payment --}} @php $pay = $sf->payment_config_json ?? []; @endphp
{{ __('Payment link') }}

{{ __("Pick a payment provider and we'll append the payment link to every WhatsApp order message. Buyer pays via the link, you confirm in chat. No checkout flow built into the storefront.") }}

{{-- Razorpay API keys — only used when provider = "Razorpay (auto-generate)". Lets the store mint a real payment link per order + auto-mark paid via webhook. Secrets are encrypted at rest and never echoed back. --}} @php $hasRzpSecret = !empty($sf->payment_config_json['key_secret']); $hasRzpWh = !empty($sf->payment_config_json['webhook_secret']); @endphp
{{ __('Razorpay API (auto links)') }}
{{ __('In Razorpay dashboard, set the webhook URL to') }} {{ url('/webhooks/storefront-pay') }} {{ __('for the payment_link.paid event.') }}
{{-- Abandoned-cart recovery (S3) --}} @php $rc = is_array($sf->settings_json) ? $sf->settings_json : []; @endphp
{{ __('Abandoned-cart recovery') }}