@if (session('success'))
{{ session('success') }}
@endif @if (isset($errors) && $errors->any())
{{ $errors->first() }}
@endif
@csrf
{{ __('Admin · Project settings') }}

{{ __('Shopify') }} {{ __('settings') }}.

{{ __('Configure Shopify app credentials so workspaces can connect their stores and receive WhatsApp notifications for orders, customers, and abandoned checkouts.') }}

{{ __('All settings') }}
{{-- ─────────────────────────────────────────────────────── Step-by-step "How to create your Shopify app" guide. Mirrors the setup-steps pattern on /shopify so admins see the same affordances customers see. ─────────────────────────────────────────────────────── --}}
{{ __('Getting started') }}

{{ __('How to create your Shopify app') }}

{{ __('Follow these six steps on the Shopify Dev Dashboard to issue the credentials you paste below. This only needs to happen once for the whole platform — every workspace then uses the same app via OAuth.') }}

    {{-- Step 1 --}}
  1. 1
    {{ __('Create a Shopify Partners account') }}

    Go to {{ __('partners.shopify.com/signup') }} and sign in with the email that will own this integration. Partners accounts are free.

  2. {{-- Step 2 --}}
  3. 2
    {{ __('Open the Dev Dashboard and create an app') }}

    From your Partner account open the {{ __('Shopify Dev Dashboard') }}{{ __('Apps → Create app') }}. Pick Public app (so any Shopify merchant can install). Name it after your platform.

    {{ __('Note (2026):') }} legacy custom apps created from {{ __('Shopify Admin → Apps') }} can no longer be created since Jan 1, 2026 — you must use the Dev Dashboard or Shopify CLI.

  4. {{-- Step 3 --}}
  5. 3
    {{ __('Set the App URL and Allowed redirection URL') }}

    In the app's {{ __('Configuration') }} tab, scroll to {{ __('URLs') }}. Paste these exactly — the redirect URL must match what we send to Shopify or OAuth fails with {{ __('redirect_uri mismatch') }}:

    {{ __('App URL') }}
    {{ __('Allowed redirection URL(s)') }}
  6. {{-- Step 4 --}}
  7. 4
    {{ __('Copy the API credentials') }}

    Open {{ __('Configuration → Client credentials') }}. Reveal both values and paste them into {{ __('Client ID') }} (a.k.a. {{ __('API Key') }}) and {{ __('Client secret') }} (a.k.a. {{ __('API Secret Key') }}) below. The secret is shown once — copy it carefully.

  8. {{-- Step 5 --}}
  9. 5
    {{ __('Add mandatory GDPR webhooks') }}

    In {{ __('Configuration → Compliance webhooks') }}, set all three URLs to the endpoint below. Shopify requires these before App Store submission and silently fails install otherwise.

    Topics: {{ __('customers/data_request') }}, {{ __('customers/redact') }}, {{ __('shop/redact') }}. Each Shopify webhook is HMAC-SHA256 signed with your Client Secret — we verify {{ __('X-Shopify-Hmac-Sha256') }} on every delivery.
  10. {{-- Step 6 --}}
  11. 6
    {{ __('Enable Shopify here & save') }}

    Tick the {{ __('Enable Shopify') }} switch in the credentials box and hit {{ __('Save changes') }}. Workspace owners can now connect their stores at /shopify.

{{ __('shopify · oauth credentials') }}

{{ __('App credentials') }}

{{ __('install-status') }}

{{ __('Install readiness') }}

@php $checks = [ 'credentials saved' => $clientId !== '' && $hasSecret, 'feature enabled' => $enabled, 'redirect set' => $redirectUri !== '', ]; @endphp @foreach ($checks as $label => $ok) {{ $ok ? '✓ ' : '○ ' }}{{ $label }} @endforeach
{{ __('usage') }}

{{ __('Live across workspaces') }}

{{ __('Stores connected') }}
{{ number_format($integrationsCount) }}
{{ __('Active automations') }}
{{ number_format($eventsCount) }}
{{ __('Webhook events received') }}
{{ number_format($logsCount) }}
{{-- Copy-button JS lives in resources/js/charts/admin-settings-shopify.js (auto-loaded via the page="admin-settings-shopify" key in app.js). --}}