@extends('layouts.app') @section('title', 'System Settings') @section('content')

System Settings

Configure global system preferences

@csrf @method('PUT')

Company Information Source

Choose which company information to display on invoices and shipping labels (AWB).

Important Note

Make sure to update company information in your profile settings. This setting only controls which company information to use, not the information itself.

Server DateTime / Timezone

Set the timezone for your application. This is especially useful if you're using an offshore server in a different timezone.

Select the timezone that matches your business location. All dates and times will be displayed in this timezone.

Current Server Time

{{ now()->format('l, F j, Y - H:i:s (T)') }}

Timezone: {{ config('app.timezone') }}

Offshore Server Note

If you're using an offshore server (e.g., USA, Europe) but your business is in Malaysia, set the timezone to "Asia/Kuala Lumpur" so all order timestamps match your local business hours.

Global Order ID Prefix

Set a custom prefix for all global order IDs (OMS ID) in your system.

@error('global_id_prefix')

{{ $message }}

@enderror

Use 2-10 characters. Letters, numbers, dash and underscore only. Will be converted to uppercase.

Preview:

{{ strtoupper($globalIdPrefix) }}25100001 (Example Global ID)

Branding Settings

Customize your system's appearance and branding.

This will appear in the browser tab and as the main site title.

Short name displayed in the header/logo area and welcome page.

@if($siteLogo)

Current Logo:

Logo
@endif

Supported formats: PNG, JPG, GIF, SVG, WebP. Max size: 2MB. Recommended: 200-400px width.

Enter full URL if logo is hosted elsewhere. Upload takes priority over URL.

This message appears on the login page.

This appears at the bottom of every page.

Registration Settings

Control who can register new accounts.

COD Shipping Rates (Checkout Form)

Set default COD shipping charges for orders created via Checkout Form. These rates will auto-populate based on customer's state.

Applied to: Sabah, Sarawak, Wp Labuan

Applied to: All other Malaysian states

Note: These rates only apply to orders created via the Checkout Form. Orders from WooCommerce stores and webhooks use their own shipping rates.

Shipping Cost Estimation

Configure shipping cost per order for analytics and cost estimation. COD orders will use the COD rates above (based on state), while online payment orders (Online Banking, DuitNow QR) will use the rate below.

Applied to orders with tracking numbers using Online Banking or DuitNow QR payment methods

How This Works:

  • COD Orders: Use state-based rates (East Malaysia: RM{{ number_format($codRateEastMalaysia, 2) }}, Peninsular: RM{{ number_format($codRatePeninsular, 2) }})
  • Online Payment Orders: Use the flat rate above (RM{{ number_format($onlinePaymentShippingCost, 2) }} per order)
  • Only counted: Orders with tracking numbers (excludes failed/cancelled orders)
  • Displayed in: Dashboard Analytics section for cost estimation

BayarCash Payment Gateway

Configure BayarCash payment gateway for FPX (Online Banking) and DuitNow QR payments on sales pages.

Get this from your BayarCash account settings (max 255 characters)

Get this from your BayarCash account settings (max 1000 characters)

Used for verifying payment callbacks (max 255 characters)

Payment Gateway Fees (Default)

Configure default fees for online payment methods. These fees will be used when sellers/managers haven't configured their own payment gateway settings.

FPX (Online Banking)
@php $fpxFeeBearer = \App\Models\SystemSetting::get('fpx_fee_bearer', 'customer'); @endphp
DuitNow QR
@php $duitnowFeeBearer = \App\Models\SystemSetting::get('duitnow_fee_bearer', 'customer'); @endphp

Important: Keep your API credentials secure. Never share them publicly. Use sandbox mode for testing before going live.

PWA Push Notifications

Configure browser push notifications for new orders. Customize the message template, emojis, and sound settings.

When enabled, users will receive browser notifications for new orders

Available variables: {emoji}, {order_number}

Available variables: {total}, {customer}, {platform}

Emoji for orders below threshold

Emoji for high-value orders

Orders with total >= this amount will use the high value emoji (🎉 instead of 💰)

Adjust the volume of the "Kaching!" notification sound (0-100%)

Test how your notification will look and sound

Notification Sound Files

Sound files should be placed in /public/sounds/ directory. Currently using: kaching.mp3

Maintenance Mode

Put the site in maintenance mode during disaster recovery or system updates. Admins can still access the site while maintenance mode is active.

@if($maintenanceMode)

Site is DOWN

Maintenance mode is currently active. Regular users cannot access the site.

Important

Only bring the site back up after completing all disaster recovery steps (restore database, import orders, fix sequences).

@csrf
@else

Site is UP

The site is currently accessible to all users.

When to use Maintenance Mode

  • Before restoring database from backup
  • During disaster recovery (importing orders from Google Sheets)
  • When performing critical system updates
  • To prevent order conflicts during data fixes
@csrf
@endif

Quick Guide

@push('scripts') @endpush @endsection