The modular
marketplace engine
Sellio is a modular marketplace ecosystem built with Laravel 12 and a service-oriented architecture. Activate eight marketplace verticals — products, properties, autos, events, jobs, services, and classifieds — from one unified admin core.
Live demo access
Explore the seeded demo environment before you deploy. These accounts are created by DatabaseSeeder when demo data is imported.
If you used the web installer, the admin account is the one you created on the final step (it may replace user ID 1). Partner and buyer demo accounts still exist when demo seeding ran. Rotate or remove all demo passwords before production.
Core Capabilities
Polymorphic data
Media, reviews, and analytics attach seamlessly to any listing type — whether it is a car, a property, or a job post.
Real-time metrics
High-performance analytics with atomic increments keeps view counts and engagement data accurate without blocking database threads.
Executive security
Role-based access control with default roles and custom permissions. Sanctum-ready for secure API access.
Environment Specification
Sellio requires a modern server environment. The web installer audits these automatically; use this list when preparing a host.
- PHP: 8.2+ (8.3 recommended)
- Database: MySQL 8.0+ or MariaDB 10.11+
- Server: Nginx or Apache with
mod_rewrite - Memory: 512MB RAM minimum (1GB+ for seeding)
- Functions:
execandpassthruenabled (web installer) - Writable:
storage/andbootstrap/cache/ - Extensions: BCMath, Ctype, Exif, Fileinfo, GD, Intl, Mbstring, OpenSSL, PDO, Tokenizer, XML, Zip
- Assets:
public/build/manifest.json(included in distribution ZIP)
Installation Pipeline
Choose your install method: Use FTP / cPanel if you are on shared hosting — the guided web installer handles everything in the browser. Use Expert CLI if you have SSH access and prefer running Artisan commands directly.
Asset extraction & dependency sync
From the monorepo, work inside apps/backend. On a production server after extracting the distribution package, run Composer in the uploaded backend root:
composer install --no-dev --optimize-autoloader
Environment setup
Initialize your environment variables and generate the secure application key:
cp .env.example .env && php artisan key:generate
Atomic schema deployment
Ensure your .env database credentials are set, then execute:
php artisan migrate --seed --force && php artisan storage:link
This runs the Golden Dataset Seeder, populating all enabled verticals with high-fidelity sample data.
Core Configuration
The primary configuration hub is the .env file. After any modification, run php artisan config:clear (or php artisan optimize:clear in production after testing).
Mail service setup
Configure SMTP in .env or use the optional mail fields in the web installer. Transactional providers like Mailgun or SendGrid are recommended.
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=postmaster@yourdomain.com
MAIL_PASSWORD=your-secure-password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=no-reply@yourdomain.com
CORS & API origins
Seller and buyer panels call the Laravel API from separate subdomains. Set allowed origins in Admin → Settings → General → API CORS Origins, or optionally seed CORS_ALLOWED_ORIGINS in .env as a fallback.
Portal Panels (Seller & Buyer)
Production deployments usually host the React seller and buyer panels on separate subdomains. Upload only the pre-built dist/ contents — no Node.js build is required on the server.
Upload panel builds
Deploy apps/seller/dist/ to your seller subdomain and apps/buyer/dist/ to your buyer subdomain (see distribution/SERVER-DEPLOY.md after running npm run prepare:distribution).
Edit public/config.js
Each panel reads runtime config from config.js — update this file in cPanel without rebuilding:
window.SELLIO_CONFIG = {
apiUrl: 'https://your-laravel-domain.com/api',
storefrontUrl: 'https://your-laravel-domain.com',
basePath: '' // e.g. '/buyer' when not on a dedicated subdomain
};
An amber setup banner appears on login when config.js still contains placeholder URLs. The buyer Settings → Backend tab shows the live values read from this file.
Background Orchestration
Expiration tracking, notifications, and queued jobs require the scheduler and (when using the database/redis queue driver) a long-running worker.
Scheduler (cron job)
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Runs cleanup tasks, recurring payments, and scheduled commands every minute.
Queue worker
php artisan queue:work --tries=3
Keep a worker process alive under Supervisor or systemd when QUEUE_CONNECTION is not sync. Use database on shared hosting if Redis is unavailable.
Maintenance & Updates
Follow this workflow to update your platform without data loss.
1. Payload swap
Replace all files in your installation directory except .env and storage/app/public.
2. Schema sync
Run php artisan migrate to sync new database columns and tables with your existing data.
3. Cache purge
Run php artisan optimize:clear to ensure new configuration and routing changes are registered.
Real Estate Intelligence
A sophisticated vertical designed for property brokers and stay-management agencies.
Amenity registry
Customizable attributes (e.g. infinity pool, smart home) that can be toggled per property type.
Stay engine
Integrated booking system with night-based pricing and availability calendars.
Automotive Hub
Engineered for dealership-grade car listing management.
Inquiry management
Buyers can request quotes, test drives, or service history directly from listing pages.
Vehicle matrix
Support for engine size, fuel type, transmission, drive train, and other dealership-grade specs.
E-Commerce Engine
A complete retail solution with cart, checkout, and inventory tracking.
Variation matrix
Multiple sizes, colors, and SKUs per product with independent pricing.
Order lifecycle
Full tracking from pending to processing to completed with automated buyer notifications.
Jobs & Talent
A recruitment vertical for employers and candidates with structured job listings and applications.
Job listings
Partners publish roles with salary bands, location, employment type, and rich descriptions.
Applicant pipeline
Applicants submit profiles and CVs; admins and partners review candidates from the dashboard.
Services & Booking
Bookable services for salons, clinics, consultants, and other appointment-based businesses.
Appointment slots
Configure availability windows, duration, and pricing per service offering.
Booking lifecycle
Buyers reserve slots; partners confirm, reschedule, or complete appointments from the seller panel.
Events & Tickets
Ticketed events, conferences, and venue listings with inventory-aware booking.
Ticket tiers
Multiple ticket types per event with independent pricing and capacity limits.
Booking manifest
Admins and partners review attendee bookings, payment status, and check-in data from the dashboard.
Classified Ads
General-purpose listings for local marketplaces, community boards, and peer-to-peer sales.
Flexible taxonomy
Category trees and location filters adapt to any non-specialized inventory type.
Lead capture
Buyers contact sellers through built-in messaging and inquiry flows shared across verticals.
Financial Ecosystem
Sellio manages capital flow between buyers, partners, and the platform admin. Partner wallets and withdrawals are managed from the admin panel; the buyer panel focuses on orders and bookings rather than wallet top-ups.
Partner wallet ledger
Powered by bavix/laravel-wallet, partner balances use double-entry bookkeeping to prevent discrepancies during concurrent payouts and commission deductions.
Withdrawal lifecycle
Payment gateways
Configure Stripe and PayPal secrets via Admin → Settings → APIs. Native webhook support is included for automated order fulfillment.
RBAC & Identity Framework
Sellio enforces strict data isolation and permission hierarchies.
| Role | Principal purpose | Access level |
|---|---|---|
| Super Admin | Platform owner | Unrestricted (bypass protocol) |
| Admin | Operations staff | Configurable module access |
| Partner | Vendors & agents | Private inventory management |
| User | Customers | Profile & order tracking |
Business Monetization Guide
Sellio provides three primary revenue streams out of the box:
1. Subscription plans
Charge partners monthly fees to list items on the platform.
2. Sales commissions
Automatically deduct a percentage from every e-commerce sale or booking.
3. Ad placements
Sell premium advertisement slots across the homepage and search results using the Ad module.
Advanced Backend Engineering
Sellio's codebase is designed to be modified and extended by developers.
Service layer pattern
Business logic is decoupled from the HTTP layer. Major modules (e.g. PropertyService, FinancialService) can be called from web, API, or CLI without rewriting logic.
Modular traits
API Integration
Sellio ships with a documented REST API consumed by the seller and buyer panels, plus optional mobile or headless clients.
Scramble documentation
Interactive OpenAPI docs are served at /docs/api on your Laravel host (dedoc/scramble). Endpoints reflect live validation rules and rate limits.
Sanctum authentication
Issue bearer tokens for SPA and mobile clients. API routes use throttled limiters (api, api-auth, api-write) for production safety.
Point portal config.js apiUrl values to https://your-domain.com/api and whitelist panel origins in admin CORS settings.
Post-install Security
Complete this checklist before accepting live traffic.
- Delete or rename
public/install/after setup (installed.lockblocks re-entry). - Set
APP_ENV=production,APP_DEBUG=false, andINSTALLER_DEBUG=falsein.env. - Rotate or remove all demo user passwords if sample data was imported.
- Run
php artisan storage:linkso uploaded media is publicly reachable. - Cache config, routes, and views in production (
php artisan optimize). - Configure cron + queue worker for mail, expirations, and background jobs.
- Ensure
storage/andbootstrap/cache/are writable by the web server.
Troubleshooting
Common issues and their resolutions.
404 errors on internal pages
Usually caused by missing .htaccess (Apache) or incorrect try_files (Nginx). Ensure mod_rewrite is enabled.
Blank screen / 500 error
Check storage/logs/laravel.log. This is often incorrect folder permissions — ensure storage and bootstrap/cache are writable (chmod 775).
Missing styles on login
Run npm run build in the backend to generate public/build/, or deploy the distribution ZIP which includes pre-built assets. A guest CSS fallback covers basic login styling when the Vite manifest is absent.
Seller / buyer panel shows empty data
Almost always incorrect public/config.js on the panel subdomain. Set apiUrl to your Laravel host + /api and add the panel origin to API CORS in admin settings.
Support & Changelog
Scope of support
Assistance is provided for platform bugs and documented features. Free support does not cover third-party customizations or server-side configuration issues.
Contact support via Envato