Server Requirements
Before installing MarketOS, ensure your server meets the following minimum specifications.
| Requirement | Minimum Version | Recommended | Notes |
|---|---|---|---|
| PHP | 8.2 | 8.3+ | Required by Laravel 13 |
| Laravel | 13.x | 13.x | Included in the package |
| Database | MySQL 8.0 | MySQL 8.0+ / MariaDB 10.6+ | SQLite supported for local dev |
| Composer | 2.x | Latest | Dependency manager |
| Node.js | 18.x | 20 LTS | For asset compilation (Vite) |
| Web Server | Apache 2.4 / Nginx | Nginx | mod_rewrite enabled for Apache |
| PHP Extensions | BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, GD or Imagick | GD required for image processing | |
| Disk Space | 500 MB minimum | 2 GB+ | Including vendor & uploads |
Shared Hosting: MarketOS works on shared hosting that supports PHP 8.2+ and allows Composer. VPS or dedicated server is recommended for production workloads.
Installation
MarketOS ships with a built-in visual Setup Wizard that guides you through every step. You can also install manually via the command line.
Option A — Visual Setup Wizard Recommended
Requirements Check
Navigate to https://yourdomain.com/install. The wizard automatically scans your server
for PHP version, required extensions (openssl, pdo, mbstring, tokenizer, xml, ctype, json, bcmath,
curl, gd, zip, fileinfo), and verifies that storage/ and bootstrap/cache/
are writable. All items must show ✓ OK before proceeding.
Application & Database Settings
Enter your App Name, App URL, and select the environment (Production / Development). Choose your Database Driver (MySQL recommended for production, SQLite for local dev), then enter the Host, Port, Database Name, Username and Password. Click Next to test the connection.
Processing & Migration
After clicking Next, the wizard automatically runs three operations: Validates the
submitted data, Tests the database connection, and Saves the
configuration to .env and runs all migrations. This typically takes 10–30 seconds — do
not close the browser tab.
Language Selection
Select all languages your store will support (20 languages available including Arabic, English, French, Spanish, Chinese, Japanese, and more). Then choose the Default Language shown to visitors on first load. Arabic is selected by default, making it ideal for Arabic-first stores. You can add or remove languages later from the admin panel.
Admin Account Creation
Create your super-admin account. Enter First Name, Last Name, Email Address (used to login), and a strong Password. Optionally fill in address information (phone, country, state, city, street, ZIP) — this can be updated later from the admin profile. Click Finish to complete the wizard.
Installation Successful 🎉
The wizard displays a success screen confirming your application is fully configured and ready. Click
"Go to Application" to be redirected to your store. The install route is
automatically locked after this step — revisiting /install will redirect to the homepage.
Admin Dashboard — Ready to Go
You are now logged in as Admin. The dashboard shows Stat Cards (Orders, Revenue, Products, Customers), a Monthly Sales Chart, Quick-Access Tiles to every admin section, Latest Orders, Top Selling Products, Latest Customers, and a Low Stock Alert widget. Your store is live.
Configuration
All primary settings live in the .env file at the project root. Edit this
file before running migrations.
# ── Application ────────────────────────────── APP_NAME="My Store" APP_ENV=production APP_KEY=base64:... # auto-generated APP_DEBUG=false APP_URL=https://yourdomain.com APP_LOCALE=en # default language # ── Database ────────────────────────────────── DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=marketos_db DB_USERNAME=db_user DB_PASSWORD=secret # ── Mail (SMTP) ─────────────────────────────── MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=your_username MAIL_PASSWORD=your_password MAIL_FROM_ADDRESS="noreply@yourdomain.com" # ── Cache / Queue ───────────────────────────── CACHE_STORE=database # or redis QUEUE_CONNECTION=database # or redis/sqs SESSION_DRIVER=database
Production Warning: Always set APP_DEBUG=false and
APP_ENV=production on live servers to prevent sensitive data from being exposed in error
pages.
Admin Panel Access
After installation, the admin panel is available at:
https://yourdomain.com/en/admin # Replace "en" with your active language code
Folder Structure
MarketOS follows the standard Laravel directory layout with a Modules/
directory for plug-in functionality.
marketos/ app/ │ ├── Console/Commands/ # Artisan commands │ ├── Http/Controllers/ │ │ ├── Auth/ # Login, Register, Password │ │ ├── Control/ # Admin panel controllers │ │ ├── Theme/ # Storefront controllers │ │ └── Payments/ # Payment gateway handlers │ ├── Http/Middleware/ # Auth, Language, Security │ ├── Models/ # Eloquent models │ ├── Services/Order/ # Order, Shipping, Tax, Discount │ └── Traits/ # Translations, Module data ├── bootstrap/ ├── config/ ├── database/ │ └── migrations/ # Core DB schema ├── Modules/ # Pluggable feature modules │ ├── Blog/ │ ├── Brand/ │ ├── Category/ │ ├── Currency/ │ ├── Deals/ │ ├── Discount/ │ ├── FileManager/ │ ├── HomeBanner/ │ ├── HomeSlider/ │ ├── Newsletter/ │ ├── Page/ │ ├── Setting/ │ └── Shipping/ ├── packages/MarketOS/ # Private composer packages │ ├── setup-wizard/ # Install wizard │ └── laravel-lang-manager/ # Language manager ├── public/ # Web root — point server here ├── resources/ ├── routes/ │ └── web.php # All routes with /{lang} prefix └── .env # Environment config
Feature Overview
Everything you need to launch and scale a professional online store.
Setup Wizard
Browser-based installer checks requirements, configures the database, runs migrations, and creates the first admin — no CLI required.
Product Management
Rich product editor with TinyMCE, multiple images, SKU, price/sale price, stock quantity, downloadable images, and full translation support.
Product Attributes
Define custom attributes (Size, Color, Material…) with translatable values and assign them to products for variant-level filtering.
Shopping Cart
Session-based cart with quantity management, real-time totals, and inline checkout login — supporting both registered and guest users.
Wishlist & Compare
Customers can save favourite products and compare up to 4 products side-by-side across all attributes and specifications.
Ratings & Reviews
Customers leave star ratings and written reviews. Admins moderate submissions from the dashboard before they go live.
Order Management
Full order lifecycle: place, process, ship, complete, or cancel. Each order has a unique code, full line items, and email notifications.
Discount Coupons
Create percentage or fixed-amount discount codes with optional expiry dates, minimum order values, and usage limits.
Multi-Currency
Manage multiple currencies with a scheduled Artisan command to auto-refresh exchange rates. Customers switch currencies on the fly.
Tax Rules
Define tax rates per country/state, apply them globally or per product category, and display inclusive or exclusive pricing.
Shipping Rules
Configure shipping zones, flat-rate or weight-based methods, and free-shipping thresholds through the Shipping module.
Blog Module
Full-featured blog with categories, translatable posts, featured images, and rich-text content via TinyMCE.
Advanced Search
Live search with category, price range, brand, rating and attribute filters — results update without full page reload.
Sitemap Generator
Artisan command generates an XML sitemap of all products, categories, blog posts, and pages — ready for Google Search Console.
Security Headers
Built-in middleware adds CSP, HSTS, X-Frame-Options, X-Content-Type-Options, and Referrer-Policy headers on every response.
File Manager
Integrated media library for uploading, organising, and reusing images across products, banners, and pages.
Recycle Bin
Soft-delete any product, order, or user — restore or permanently remove from the admin Recycle Bin screen.
Analytics Dashboard
Real-time stat cards for total revenue, orders, products, and customers, plus latest-orders table and top-selling products widget.
Module System
MarketOS uses nwidart/laravel-modules to package every optional feature as an independent, enable/disable-able module. Each module ships with its own routes, controllers, models, migrations, and views.
Modules can be toggled from the admin panel under Admin → Plugins. Disabling a module hides its UI and routes without touching the database, so re-enabling it restores full functionality.
Managing Modules via CLI
# List all modules and their status php artisan module:list # Enable a module php artisan module:enable Blog # Disable a module php artisan module:disable Deals # Run a specific module's migrations php artisan module:migrate Blog
Payment Gateways
MarketOS ships with 10 payment integrations — global processors and popular Middle-Eastern / South-Asian gateways — all configurable from the admin settings panel.
Configuring a Gateway
Navigate to Admin → Settings →
Payments. Toggle the gateway active, enter your API keys, and save. Keys are stored encrypted in
the settings table.
STRIPE_KEY=pk_live_... STRIPE_SECRET=sk_live_... STRIPE_WEBHOOK_SECRET=whsec_...
All payment controllers implement CSRF protection, webhook signature verification, and PCI-safe flows (no card data stored server-side). Sensitive keys are never logged.
Multi-Language & RTL Support
MarketOS includes a custom Laravel Lang Manager package with full RTL support and seamless URL-based locale switching.
URL-Based Locale
Every URL is prefixed with the active language code, e.g. /en/shop, /ar/shop.
Language is resolved from URL → cookie → site default.
RTL Auto-Detection
When an RTL language (Arabic, Hebrew, etc.) is active, the layout and stylesheets automatically switch direction — no configuration needed.
Translatable Content
Products, categories, attributes, blog posts, banners, and pages all support per-language translations
stored in *_translations tables.
Add New Languages
Create a new language from Admin → Languages → Add. The system scaffolds translation keys automatically and adds the URL prefix.
Pre-Installed Languages
🇺🇸 English (en) — LTR 🇸🇦 Arabic (ar) — RTL ✓ Fully translated admin + storefront
Roles & Permissions
MarketOS uses Spatie Laravel Permission (v7) for fine-grained role-based access control.
| Role | Access Level | Capabilities |
|---|---|---|
| Admin | Full | All admin panel sections including users, roles, settings, all orders, all products, plugins, recycle bin |
| Seller | Partial | Admin panel access limited to their own products and orders; cannot access settings, users, or roles |
| Customer | Storefront only | Browse, add to cart, checkout, manage profile, view order history, write reviews, wishlist |
| Guest | Storefront only | Browse, add to cart, guest checkout (no account required) |
Creating Custom Roles
Navigate to Admin → Roles to create new roles and assign granular permissions. Role guards are enforced at middleware level — not just UI.
Admin Dashboard
The admin panel provides a real-time overview of your store's performance, with quick access to every management section.
Stat Cards
Total Revenue, Total Orders, Total Products, Total Customers — updated on every page load.
Latest Orders
The 5 most recent orders with customer name, email, amount, currency, and status — with a one-click link to the full order.
Top-Selling Products
Auto-calculated from order history. Shows product name, SKU, price, and units sold.
Quick Actions
Add Product, Add User, Clear Cache — accessible from every admin page via the top navigation bar.
The dashboard uses Yajra DataTables for all list views — providing server-side pagination, live search, and column sorting on Products, Orders, Users, and more, without loading thousands of records into memory.
Product Management
A powerful product editor covering every aspect of e-commerce catalogue management.
Basic Information
Enter the product name (with per-language translations), slug, short description, and full rich-text description via TinyMCE. Assign brand, category, and tags.
Pricing & Stock
Set Regular Price, Sale Price, SKU, quantity in stock, and low-stock threshold. Mark as featured, new arrival, or on-sale.
Images
Upload a main image and up to 8 gallery images. Intervention Image automatically generates optimised thumbnails in small, medium, and large sizes.
Attributes & Variants
Attach pre-defined attributes (Color, Size, Material…) with their specific values to each product. Attributes are also translatable.
SEO Settings
Set per-product meta title, meta description, and canonical URL for optimal search-engine visibility.
Orders & Tax Management
Complete order lifecycle management with flexible tax rule configuration.
Order Statuses
Pending → Processing → Shipped → Completed
↘ Cancelled (at any stage before Shipped)
Each status change triggers an email notification to the customer. Order details include: order code, billing address, items ordered, payment method, applied discount, shipping cost, tax, and grand total.
Tax Rules
| Field | Description |
|---|---|
| Tax Name | Label shown at checkout (e.g., "VAT 15%") |
| Rate (%) | Numeric tax percentage applied to the subtotal |
| Country / State | Apply tax only for specific geographic regions |
| Status | Enable or disable without deleting the rule |
Theme System
MarketOS supports multiple storefront themes that can be uploaded and switched from the admin panel without touching code.
Upload a Theme
Go to Admin → Templates → Upload. Themes are standard ZIP archives containing Blade views, CSS, and JavaScript. The system extracts and registers them automatically.
Activate a Theme
Click "Activate" next to the uploaded theme. The LoadActiveTemplate
middleware reads the active theme setting and serves all storefront routes from that theme's view
folder.
Customise
Each theme can have its own settings (colors, fonts, layout options) configurable from a dedicated settings panel — no FTP required.
Security
MarketOS is built with security as a first-class concern, following OWASP best practices throughout.
Security Headers
The SecurityHeaders middleware injects CSP, HSTS, X-Frame-Options,
X-Content-Type-Options, Permissions-Policy, and Referrer-Policy on every response.
CSRF Protection
All state-changing requests (POST/PUT/DELETE) are protected by Laravel's built-in CSRF token verification.
Input Sanitisation
mews/purifier (HTMLPurifier) sanitises all rich-text (TinyMCE) output, preventing XSS from user-generated content.
Password Hashing
All passwords are hashed with bcrypt (12 rounds by default). Reset tokens are single-use and expire after 60 minutes.
Role Guard
Every admin route is gated by both auth middleware and Spatie role checks. A logged-in
Customer cannot access any admin route.
Form Validation
All input is validated through dedicated FormRequest classes before reaching controllers —
no raw $request->all() in controllers.
Artisan Commands
MarketOS ships with three custom Artisan commands for common maintenance tasks.
# Generate XML sitemap for all products, categories, and pages php artisan sitemap:generate # Refresh all currency exchange rates from an external API php artisan currency:refresh # Download and cache product images locally php artisan products:download-images
Scheduling
Add the following cron entry to run the Laravel scheduler every minute. The scheduler will then fire currency refresh and sitemap generation on your chosen intervals.
* * * * * cd /var/www/marketos && php artisan schedule:run >> /dev/null 2>&1
Version History
- New Initial release with full e-commerce feature set
- New Visual setup wizard with requirement checker
- New 10 payment gateway integrations
- New 15 plug-in modules (Blog, Brand, Currency, Deals, Discount…)
- New Multi-language system with RTL support (EN + AR bundled)
- New Custom Laravel Lang Manager package
- New Roles & Permissions via Spatie (Admin, Seller, Customer)
- New OWASP security headers middleware
- New Sitemap generator, currency refresh Artisan commands
- New Switchable theme system with admin uploader
Storefront Features
A fully-featured shopping experience for customers — from discovery to post-purchase.
Homepage
Configurable sections: hero slider, home banners, featured products, deals countdown, new arrivals, top categories, and newsletter signup — all managed from the admin.
Category Pages
Hierarchical category browsing with breadcrumbs, product count, pagination, and live filter sidebar (price range, brand, attribute values, rating).
Search
Full-text search across product names with sort options: A→Z, Z→A, price low/high, newest. Results update without page reload using AJAX.
Product Detail Page
Image gallery lightbox, attribute selector, quantity picker, add-to-cart, add-to-wishlist, quick-compare, ratings summary, detailed description tabs, and related products.
Quick View
Modal quick-view overlay lets customers preview product details and add to cart without leaving the listing page — reduces friction and boosts conversions.
Blog
Full blog with category filtering, featured images, author info, and TinyMCE-powered rich-text posts. Translatable per active language.
Contact Page
Contact form with server-side validation. Submissions are stored in the database and accessible from Admin → Contact Messages.
Static Pages
Admin-managed CMS pages (About, Privacy Policy, Terms, etc.) with full TinyMCE editor, custom slugs, and SEO meta fields.
Checkout Flow
A streamlined, single-page checkout experience that supports both registered users and anonymous guests.
Cart Review
Customer reviews cart items, adjusts quantities, or removes products. Real-time totals update instantly. A coupon code field is shown if the Discount module is enabled.
Identity & Address
Registered users see their saved addresses. Guests enter billing/shipping details inline — no account required. The inline-login widget lets existing customers sign in without leaving the page.
Shipping Method
Available shipping options (Free Shipping, Flat Rate, Regional Rate) are calculated in real time based on the entered address. Customer selects preferred method; total recalculates via AJAX.
Payment
Customer selects an active payment gateway. Depending on the gateway, they are redirected to the provider's hosted page (PayPal, Tap, HyperPay…) or fill in card details inline (Stripe, Authorize.Net, Moyasar…).
Order Confirmation
On successful payment the cart is cleared, an order record is created with a unique order code, stock is decremented, and a confirmation email is sent to the customer and the admin.
Guest Checkout: Guests are assigned a temporary user_id via the
GuestCheckoutService. Their order history is accessible if they later register with the same
email.
Order Status Enum
'Pending' → Default on creation 'Pending Payment' → Payment initiated but not confirmed 'Processing' → Payment confirmed, order being prepared 'On Hold' → Awaiting manual review 'Completed' → Shipped and delivered 'Refunded' → Payment returned to customer 'Canceled' → Order voided
Customer Account
Registered customers get a full self-service account area accessible at
/account/profile.
Profile
Update name, email, profile photo, and password. Photo is processed through Intervention Image and
stored in storage/uploads/images/users/.
Address Book
Save multiple shipping/billing addresses with country and state selectors. One address is marked as primary and auto-populated at checkout.
Order History
Paginated list of all past orders with order code, date, total amount, payment method, and current status. Click any order to view full line-item details.
Wishlist
Products added to the wishlist are persisted per user in the favorites table. Customers
can move items directly from wishlist to cart.
Database Schema
MarketOS uses a clean, normalised relational schema. Below is a reference of every core and module table.
Core Tables
| Table | Key Columns | Purpose |
|---|---|---|
| users | id, first_name, last_name, email, password, photo, address_id |
All users (admins, sellers, customers, guests) |
| addresses | id, user_id, country_id, state_id, city, address, zip |
Billing & shipping addresses per user |
| products |
id, sku, supplier_price, sale_price, quantity, category_id, user_id, tax_id, images_small[], images_large[], deleted_at
|
Product catalogue with soft-delete |
| product_translations | id, product_id, locale, slug, name, short_description, featured, description |
Translatable product content per language |
| product_attributes | id, product_id, attribute_id, attribute_value_id, attribute_sale_price, quantity, sku
|
Product variant combinations |
| attributes | id + attribute_translations (locale, name) |
Attribute definitions (Color, Size…) with i18n |
| attribute_values | id, attribute_id + attribute_value_translations (locale, value) |
Values per attribute (Red, XL…) with i18n |
| orders |
id, transaction_id, user_id, address_id, product_id[], qty[], sale_price[], taxes[], amount, shipping_cost, discount, payment_method, payment_currency, status
|
Full order record — line items stored as JSON arrays |
| payments | id, order_id, transaction_id, amount, currency, gateway, status |
Payment gateway transaction log |
| taxes | id, name, rate, country_id, state_id, status |
Tax rules per region |
| favorites | id, user_id, product_id |
Customer wishlist entries |
| compares | id, user_id, product_id |
Product comparison list per user |
| ratings | id, user_id, product_id, rating (1–5), review, status |
Customer reviews with moderation status |
| templates | id, name, slug, path, active |
Registered storefront themes |
Module Tables
| Module | Table(s) | Purpose |
|---|---|---|
| Setting | settings, setting_translations |
All site settings + payment gateway keys |
| Category | categories, category_translations |
Hierarchical product categories |
| Brand | brands |
Product brands / manufacturers |
| Currency | currencies |
Currency codes, symbols, exchange rates |
| Shipping | shippings, free_flat_shippings |
Regional shipping rates + flat/free rules |
| Discount | discounts |
Coupon codes with rules and expiry |
| Deals | deals |
Time-limited deal prices per product |
| Blog | blog_categories, blog_posts, blog_post_translations |
Blog content with categories and i18n |
| Page | pages, page_translations |
CMS static pages |
| Contact | contacts |
Contact form submissions |
| HomeBanner | home_banners |
Promotional banner images on homepage |
| HomeSlider | home_sliders |
Hero carousel slides on homepage |
| Newsletter | newsletters |
Email subscriber list |
Relationships overview: products belongs to categories,
users (seller), and taxes. orders stores line items as JSON arrays
for historical accuracy — prices are snapshotted at order time so future price changes don't affect old
orders.
Entity Relationship Summary
Settings Reference
All global store settings are managed at Admin → Settings. Changes apply immediately without redeploying.
| Setting Group | Options |
|---|---|
| General | Store name, contact email, phone, physical address, Google Maps embed URL, site tags/keywords |
| Appearance | Site logo, favicon, primary/secondary/accent colors (color picker), default font, product grid layout (grid 1 / grid 2) |
| Currency | Default display currency, exchange rate API endpoint, auto-refresh interval (via scheduler) |
| Social Media | Facebook, Twitter/X, Instagram, LinkedIn, YouTube — links displayed in storefront footer and contact page |
| Payments | Toggle each gateway on/off; enter API keys for: PayPal, Stripe, Authorize.Net, Tap, Paymob, Moyasar, HyperPay, Fawry, Razorpay, 2Checkout |
| Languages | Add/remove languages, set default language, toggle RTL mode per language, manage translation keys inline |
| Email (SMTP) | Configured via .env: MAIL_HOST, MAIL_PORT,
MAIL_USERNAME, MAIL_FROM_ADDRESS |
Customisation Guide
MarketOS is built on standard Laravel conventions — any Laravel developer can extend it without proprietary knowledge.
Creating a Custom Module
# Generate a new module scaffold php artisan module:make Reviews # Generate a controller inside it php artisan module:make-controller ReviewController Reviews # Generate a model php artisan module:make-model Review Reviews # Generate a migration php artisan module:make-migration create_reviews_table Reviews
Overriding a Theme View
Theme views live in
resources/views/themes/{theme-name}/. Copy the file you want to change from the active theme
folder and edit it — never edit vendor files directly.
# Original file (do not edit) resources/views/themes/default/product/show.blade.php # Your override (create this file) resources/views/themes/my-theme/product/show.blade.php
Adding a Payment Gateway
Create the Controller
Add app/Http/Controllers/Theme/Payments/MyGateway_Controller.php. Implement
checkout(), callback(), and webhook() methods following the
existing gateway pattern (e.g., copy Stripe_Controller.php as a template).
Register Routes
Add your gateway routes to routes/web.php inside the /{lang}/checkout route
group.
Add Settings Fields
Add columns for your API keys to the settings migration and expose them in
Modules/Setting views and controller.
Key Service Classes
| Class | Responsibility |
|---|---|
| CurrencyService | Resolves the user's selected currency from request/cookie/default; converts prices between currencies via stored unit prices |
| DiscountService | Validates coupon codes, calculates discount amounts, enforces usage limits and expiry dates |
| ShippingService | Resolves shipping options (Free / Flat / Regional) based on customer address; converts shipping prices to user currency |
| TaxService | Resolves applicable tax rate: state-level first, country-level fallback; calculates tax amount on the subtotal |
| OrderService | Creates order records with stock-locking (lockForUpdate()), price snapshotting, and
tax/discount application |
| MediaService | Handles image uploads, resizing via Intervention Image, and deletion. Generates small/medium/large variants |
| ThemeGeneratorService | Handles theme ZIP extraction, registration, and view-path resolution for the active theme |
Troubleshooting & FAQ
Solutions to the most common issues encountered during installation and setup.
❓ White screen / 500 error after installation
Temporarily set APP_DEBUG=true in
.env, then run php artisan config:clear and refresh. The real error will now
display. Common causes: missing .env, wrong DB credentials, or unwritable
storage/ directory.
❓ Images not displaying (broken image icons)
Run php artisan storage:link to create the
symlink from public/storage to storage/app/public. Also ensure
APP_URL in .env matches your actual domain (with https:// if
applicable).
❓ 419 Page Expired on form submit
This is a CSRF token mismatch. Ensure
SESSION_DOMAIN in .env is set correctly (e.g., .yourdomain.com
with the leading dot for subdomains). Also check that your server clock is synchronised.
❓ How do I reset the admin password?
php artisan tinker >>> App\Models\User::find(1)->update([ 'password' => bcrypt('NewPassword123') ]);
❓ Emails are not being sent
Verify your MAIL_* settings in
.env. Test with php artisan tinker →
Mail::raw('Test', fn($m) => $m->to('you@example.com')). For production, use a transactional
service like Mailgun, Postmark, or SES rather than SMTP directly.
❓ How do I update MarketOS to a new version?
Back up your database: mysqldump -u root -p marketos_db > backup.sql
Replace all files except .env and the storage/ directory with the new
version.
Run:
composer install && php artisan migrate && php artisan config:cache && php artisan view:cache
❓ How do I put the store in maintenance mode?
# Enable maintenance mode php artisan down --secret="my-bypass-token" # Access the site while in maintenance: yoursite.com/my-bypass-token # Disable maintenance mode php artisan up
❓ Cache not updating after admin changes
Use the CacheClear module from the admin panel (Admin → Plugins → Cache Clear → Run), or run these commands:
php artisan cache:clear php artisan config:clear php artisan view:clear php artisan route:clear
Support
We are committed to providing prompt and helpful support for all licensed buyers.
How to get support: Open a support ticket through the CodeCanyon item page. Please include your purchase code, PHP/server version, and a detailed description of the issue. Response time is typically within 24 hours on business days.
Before opening a ticket: Check this documentation thoroughly, verify your server meets
all requirements, and ensure APP_DEBUG=true temporarily to read the exact error message.
Support does not cover: Customisations beyond the item's original features, third-party plugin conflicts, or issues caused by server misconfiguration. Custom development is available at an additional cost — please enquire via message.
| Type | Included |
|---|---|
| Bug fixes | ✓ Included |
| Feature updates | ✓ Included for 6 months |
| Installation assistance | ✓ Included |
| Custom modifications | ✗ Not included (available for hire) |
| Third-party integrations | ✗ Not included |