Step-by-step guide to installing, configuring and deploying the complete Shopy multi-vendor platform.
Shopy is a comprehensive multi-vendor ecosystem engineered to power food delivery, online grocery shopping, pharmacy orders, and general e-commerce marketplaces under a single unified backend.
When you unzip your purchase package from CodeCanyon, you will find the following directory structure:
shopy-main/
├── backend/ # Laravel REST API Backend & Super Admin / Seller Web
│ ├── app/ # Controllers, Models, Middleware, Services
│ ├── config/ # App, database, services, auth configs
│ ├── database/ # Migrations and Seeds
│ ├── public/ # Public assets & entry point (index.php)
│ ├── routes/ # api.php, web.php, channels.php
│ └── .env.example # Sample environment variables
├── customer_app/ # Customer Mobile Flutter Project
│ ├── lib/ # Flutter UI screens, state management, API services
│ ├── android/ # Android native project files
│ └── ios/ # iOS native Xcode project files
├── delivery_boy_app/ # Delivery Partner Mobile Flutter Project
│ ├── lib/ # Driver UI, location tracking, order acceptance
│ ├── android/ # Android native project files
│ └── ios/ # iOS native project files
└── documentation/ # Offline documentation & help resources
mod_rewrite) or NginxUpload the contents of the backend/ folder to your web root (e.g. public_html or /var/www/shopy). Ensure web server points to the public/ folder.
# Set directory permissions on Linux server
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
composer install --no-dev --optimize-autoloader
php artisan migrate --seed
php artisan storage:link
php artisan key:generate
Copy .env.example to .env and fill in your database and service details:
APP_NAME=Shopy
APP_ENV=production
APP_KEY=base64:...
APP_DEBUG=false
APP_URL=https://api.yourdomain.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_shopy_db
DB_USERNAME=your_db_user
DB_PASSWORD=your_db_password
# Firebase Cloud Messaging
FCM_SERVER_KEY=your_firebase_server_key
# Google Maps API
GOOGLE_MAP_API_KEY=your_google_maps_api_key
# Payment Credentials
STRIPE_KEY=your_stripe_publishable_key
STRIPE_SECRET=your_stripe_secret_key
PAYPAL_CLIENT_ID=your_paypal_client_id
PAYPAL_SECRET=your_paypal_secret
To handle automatic driver assignment, order timeout checks, scheduled discounts, and email queues, configure a cron job on your server:
* * * * * cd /path-to-your-backend && php artisan schedule:run >> /dev/null 2>&1
Follow these steps for both customer_app and delivery_boy_app:
flutter pub get in the terminal to fetch all dependencies.lib/config/api_constants.dart and set your backend URL:// lib/config/api_constants.dart
class ApiConstants {
static const String baseUrl = 'https://api.yourdomain.com/api/v1/';
static const String appName = 'Shopy';
static const String defaultCurrency = '$';
}
android:label="Your App Name" in android/app/src/main/AndroidManifest.xml.applicationId in android/app/build.gradle (e.g., com.yourbrand.shopy).ios/Runner.xcworkspace in Xcode.google-services.json, and place it in android/app/.GoogleService-Info.plist, and add it via Xcode to the Runner folder..env file under FCM_SERVER_KEY.Enable the following APIs in Google Cloud Console: Maps SDK for Android, Maps SDK for iOS, Places API, Directions API, and Geocoding API.
<!-- android/app/src/main/AndroidManifest.xml -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_GOOGLE_MAPS_API_KEY" />
// ios/Runner/AppDelegate.swift
import GoogleMaps
GMSServices.provideAPIKey("YOUR_GOOGLE_MAPS_API_KEY")
Shopy supports 5 payment methods out of the box:
| Gateway | Config Location | Features Supported |
|---|---|---|
| Stripe | Admin Panel > Settings > Payments / .env |
Credit/Debit cards, Apple Pay, Google Pay, 3D Secure |
| PayPal | Admin Panel > Settings > Payments / .env |
PayPal Express checkout, global currencies |
| Razorpay | Admin Panel > Settings > Payments / .env |
UPI, Netbanking, Cards, Wallets |
| In-App Wallet | Enabled by default in Super Admin | Customer top-up, cashback, refunds, instant pay |
| Cash on Delivery (COD) | Admin Panel > Settings > Payments | Pay on delivery with OTP verification confirmation |
Check storage permissions (chmod -R 775 storage bootstrap/cache) and verify that .env exists and APP_KEY is generated.
Ensure billing is active on your Google Cloud project and the Maps SDK is enabled with unrestricted package SHA-1 fingerprints.
Run flutter build appbundle --release in the customer_app or delivery_boy_app directory.
Our dedicated team is here to assist you with setup and customization inquiries.