@extends('layouts.app') @section('title', 'Offer – Setting') @section('content')

← Setting

Offer

When a customer submits an offer from the product page, you receive an email (to the address in .env DEALS_NOTIFICATION_EMAIL) and an SMS to the phone(s) below. Configure limits and validity for customer offers. Profit estimate fees are in Setting → Fees & profit.

@csrf @php if ($errors->any()) { $autoFlowChecked = old('auto_offer_flow_enabled') !== null && filter_var(old('auto_offer_flow_enabled'), FILTER_VALIDATE_BOOLEAN); } else { $autoFlowChecked = (bool) ($offerSettings->getAttribute('auto_offer_flow_enabled') ?? false); } @endphp
E.164 format (e.g. +17866084763). Leave empty to disable.
Optional second number. E.164 format.
Maximum number of offers (across different products) a customer can have active at once (pending or accepted, not expired). Default: 3.
When an offer is accepted, how many days the discount is valid before it expires. Default: 1.
A customer cannot submit another offer for the same product until the current one expires or is declined. Default: 1.
Pending offers older than this many days are automatically marked as expired. No email is sent to the customer. Default: 30.
After a coupon expires, wait this many days then permanently delete it from Shopify. Use 0 to never delete. Default: 1.

Declined by rules — daily digest

Send the same report as php artisan offers:declined-by-rules-daily-digest (PDF + email). Recipient: {{ $dealsNotificationEmail !== '' ? $dealsNotificationEmail : '(set DEALS_NOTIFICATION_EMAIL in .env)' }}. Report day uses Miami time ({{ \App\Services\DeclinedByRulesDailyDigestService::DISPLAY_TZ }}). Also scheduled daily at 8:00 AM.

@csrf
Default is yesterday (Miami). Same as the command without --for-date.
@push('styles') @include('setting.partials.section-styles') @endpush @endsection