All core e-commerce features are self-contained with support for multiple payment gateways, SMS services, and PDF generation.
Please note: The following third-party services are NOT included with the purchase. You will need to purchase your own subscriptions and API credentials separately:
These services require active subscriptions and are the sole responsibility of the buyer to set up and maintain.
ZupCart is a single unified application where the Customer Web App, Admin Panel, and API are all part of the same Laravel + React codebase. No separate installations needed.
Welcome to ZupCart, a complete end-to-end single-owner beauty e-commerce platform built with modern technologies. It enables retail shop owners to digitize their business, allowing customers to browse and order beauty products with multiple payment options — all managed through a powerful centralized admin dashboard. Designed for retail businesses looking to launch or scale their e-commerce operations.
This platform is distributed as a white-label solution, allowing complete customization of branding, configurations, categories, and content to match your business requirements.
warning All third-party services listed below require separate subscriptions and are NOT included with the purchase.
Basic understanding of React-based website development, Laravel backend setup, API integration, and payment gateway configuration is recommended before installation and customization.
ZupCart integrates with essential third-party services to provide payment processing, SMS notifications, PDF generation, location services, and push notifications. These services require configuration with your own API credentials. All core marketplace features are self-contained with support for multiple payment gateways and communication channels.
Please read carefully: The third-party services listed below are NOT included in the purchase price of ZupCart. You will need to:
These services require active subscriptions and are the sole responsibility of the buyer to set up, maintain, and pay for.
| Service | Status | Purpose | Config Location | Subscription |
|---|---|---|---|---|
| Payment Gateways | ||||
| Stripe | Active | Card payments | .env + DB stripe_key | Required |
| Razorpay | Active | UPI payments (India) | DB razorpay_key (client-side) | Required |
| Flutterwave | Active | Card/mobile money/USSD | .env + DB flutterwave_key | Required |
| PayPal | Partial (Test Mode) | International payments | DB paypal_client_id | Required |
| Notification Services | ||||
| Firebase FCM | Broken | Push notifications | .env FIREBASE_FILE, FIREBASE_DB, FCM_SENDER_ID | Required |
| Firebase RTDB | Active | Real-time order status sync | .env FIREBASE_DB + JSON key | Required |
| Cheerio | Active | SMS + WhatsApp Business API | .env CHEERIO_API_KEY, CHEERIO_BASE_URL | Required |
| Twilio | Active | SMS for OTP & notifications | .env TWILIO_SID, TWILIO_TOKEN, TWILIO_FROM | Required |
| Map & Location Services | ||||
| RouteMappy | Active | Map tiles + geocoding + autocomplete | Hardcoded in constants/constant.js | Required |
| Google Maps | Configured | Maps, geocoding, places autocomplete | Hardcoded in constants/constant.js | Required |
| Protomaps | Active | Map sprites/fonts CDN | CDN URLs in RouteMappy.jsx | Not Required |
| Leaflet + OSM | Active | Admin zone polygon drawing | CDN URLs in Blade views | Not Required |
| PDF / Barcode / Excel | ||||
| DomPDF | Active | PDF generation (invoices, reports, barcodes) | composer.json package | Not Required |
| Picqer Barcode | Active | Barcode SVG generation | composer.json package | Not Required |
| Filament Excel | Active | Admin Excel exports | composer.json package | Not Required |
| Email Services | ||||
| SMTP (Gmail) | Active | Transactional emails | .env MAIL_* | Required |
| Included (No Subscription Required) | ||||
| Laravel Sanctum | Active | API authentication | Laravel default | Not Required |
| Spatie Permission | Active | Role-based access control | config/permission.php | Not Required |
| Filament Shield | Active | Auto-generate admin permissions | config/filament-shield.php | Not Required |
| i18next | Active | Multi-language (8 languages) | resources/react/src/i18n.js | Not Required |
What's Included (No Subscription): Laravel Sanctum, Spatie Laravel Permission, Filament Shield, Database Queue, DomPDF, Picqer Barcode, Filament Excel, and i18next are all included with the Laravel/Filament installation and require no additional subscriptions or payments.
What You Need to Purchase Separately: You will need your own accounts, subscriptions, and API credentials for the following services: Stripe, Razorpay, Flutterwave, PayPal, Twilio, Cheerio, RouteMappy, Google Maps, and Firebase.
Email Service: SMTP/Gmail credentials are also required and must be provided by the buyer.
Hosting: Web hosting, domain registration, and SSL certificates are the responsibility of the buyer and are not included with the purchase.
warning The buyer is solely responsible for all costs associated with third-party services and subscriptions.
Ensure the following software versions are installed before proceeding:
| Tool/Software | Minimum Version | Recommended Version | Purpose |
|---|---|---|---|
| PHP | 8.2 | 8.3+ | Laravel backend |
| Laravel | 12.0 | 12.x | PHP Framework |
| React | 19.0 | 19.x | UI Library |
| Node.js | 18.0 | 20.x LTS | React & npm scripts |
| MySQL/MariaDB | 10.4 | 10.6+ | Database |
| Composer | 2.0 | 2.8+ | PHP dependency manager |
| npm | 9.0 | 10+ | Package management |
| Vite | 7.0 | 7.x | Build tool & development server |
| Tailwind CSS | 4.0 | 4.x | Utility-first CSS framework |
| Filament | 5.0 | 5.x | Admin Panel Framework |
| Git | 2.30 | Latest | Version control (optional) |
| Modern Browser | Chrome 90+, Firefox 88+, Safari 14+ | Latest version | Testing & debugging |
{
"$schema": "https://getcomposer.org/schema.json",
"name": "laravel/laravel",
"type": "project",
"description": "The skeleton application for the Laravel framework.",
"keywords": ["laravel", "framework"],
"license": "MIT",
"require": {
"php": "^8.2",
"barryvdh/laravel-dompdf": "^3.1",
"bezhansalleh/filament-shield": "^4.2",
"filament/filament": "~5.0",
"kreait/firebase-php": "^7.0",
"laravel/framework": "^12.0",
"laravel/tinker": "^2.10.1",
"mcamara/laravel-localization": "*",
"picqer/php-barcode-generator": "^3.2",
"pxlrbt/filament-excel": "^3.6",
"spatie/laravel-permission": "^7.4",
"spatie/laravel-translatable": "*",
"stripe/stripe-php": "^21.0",
"twilio/sdk": "^8.11"
},
"require-dev": {
"fakerphp/faker": "^1.23",
"laravel/pail": "^1.2.2",
"laravel/pint": "^1.24",
"laravel/sail": "^1.41",
"mockery/mockery": "^1.6",
"nunomaduro/collision": "^8.6",
"phpunit/phpunit": "^11.5.3"
}
}
{
"$schema": "https://www.schemastore.org/package.json",
"private": true,
"type": "module",
"scripts": {
"build": "vite build",
"dev": "vite"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^7.0.0",
"@fortawesome/free-brands-svg-icons": "^7.0.0",
"@fortawesome/free-solid-svg-icons": "^7.0.0",
"@fortawesome/react-fontawesome": "^0.2.3",
"@react-google-maps/api": "^2.20.8",
"@reduxjs/toolkit": "^2.11.2",
"axios": "^1.13.5",
"firebase": "^12.9.0",
"framer-motion": "^12.23.24",
"i18next": "^26.3.6",
"i18next-browser-languagedetector": "^8.2.1",
"leaflet": "^1.9.4",
"maplibre-gl": "^5.18.0",
"rc-slider": "^11.1.9",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-helmet-async": "^3.0.0",
"react-hot-toast": "^2.6.0",
"react-i18next": "^17.0.11",
"react-icons": "^5.5.0",
"react-leaflet": "^5.0.0",
"react-phone-input-2": "^2.15.1",
"react-redux": "^9.2.0",
"react-router-dom": "^7.7.1",
"react-toastify": "^11.0.5",
"use-places-autocomplete": "^4.0.1",
"uuid": "^13.0.0"
},
"devDependencies": {
"@eslint/js": "^9.30.1",
"@tailwindcss/vite": "^4.1.18",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0",
"autoprefixer": "^10.4.21",
"concurrently": "^9.2.4",
"eslint": "^9.30.1",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"globals": "^16.3.0",
"laravel-vite-plugin": "^2.0.0",
"postcss": "^8.5.6",
"tailwindcss": "^4.1.18",
"vite": "^7.0.7"
}
}
Note: It's necessary to have a basic knowledge in both server side and frontend development.
Run these commands in your terminal/command prompt to confirm all required tools are properly installed:
# Check Node.js version
node --version # Should show v18.x or higher
# Check npm version
npm --version # Should show v9.x or higher
# Check PHP version
php --version # Should show 8.2 or higher
# Check Composer version
composer --version # Should show 2.x or higher
# Check MySQL version
mysql --version # Should show 10.4 or higher
Check composer.json:
composer show --installed
Check package.json:
npm list --depth=0
If all commands show the correct versions (or higher), your environment is ready for installation.
If any command returns "not found" or shows an older version, please install or update the corresponding software before proceeding.
ZupCart is built using modern and scalable technologies to power the unified Customer Website, Admin Panel, and API operations within a single codebase.
Before installing and running the application, ensure the following technologies and tools are installed with the recommended versions.
| Technology | Version | Purpose |
|---|---|---|
| PHP | 8.3.6 | Server-side language |
| Laravel | 12.56.0 | Backend framework |
| React | 19.1.0 | UI framework (Customer SPA) |
| Filament | ~5.0 | Admin panel |
| Node.js | 20.20.2 | JavaScript runtime |
| npm | 10.8.2 | Package manager |
| Vite | 7.0.7 | Build tool & dev server |
| Tailwind CSS | 4.1.18 | Utility-first CSS framework |
| MySQL | (via XAMPP/LAMPP) | Primary database |
| Category | Technology | Version | Purpose |
|---|---|---|---|
| Backend Core | |||
| Language | PHP | 8.3.6 | Server-side programming |
| Framework | Laravel | 12.56.0 | Backend framework |
| Database | MySQL | (via XAMPP/LAMPP) | Primary relational database |
| Dependency Manager | Composer | 2.x | PHP package management |
| Frontend (Customer Website) | |||
| Framework | React | 19.1.0 | UI library |
| DOM Rendering | React DOM | 19.1.0 | DOM rendering |
| State Management | Redux Toolkit | 2.11.2 | Global state management |
| React-Redux | React Redux | 9.2.0 | React-Redux bindings |
| Routing | React Router DOM | 7.7.1 | Client-side routing |
| Build Tool | Vite | 7.0.7 | Build tool & development server |
| CSS Framework | Tailwind CSS | 4.1.18 | Utility-first CSS framework |
| Animations | Framer Motion | 12.23.24 | UI animations & transitions |
| Map Libraries | MapLibre GL / Leaflet | 5.18.0 / 1.9.4 | Map rendering & location services |
| Internationalization | i18next | 26.3.6 | Multi-language support (8 languages) |
| HTTP Client | Axios | 1.13.5 | API requests |
| Admin Panel | |||
| Admin Framework | Filament | ~5.0 | Admin dashboard |
| RBAC | Spatie Permission | ^7.4 | Role-based access control |
| Admin Security | Filament Shield | ^4.2 | Auto-generate admin permissions |
| Payment Gateways | |||
| Stripe | Stripe PHP SDK | ^21.0 | Card payments |
| Razorpay | Razorpay JS SDK | Client-side | UPI payments (India) |
| Flutterwave | Flutterwave JS SDK | Client-side | Card/mobile money/USSD |
| PayPal | PayPal JS SDK | Client-side | International payments |
| Notification Services | |||
| Firebase | Firebase PHP SDK / JS SDK | ^7.0 / 12.9.0 | Realtime DB & Push notifications (FCM) |
| Twilio | Twilio SDK | ^8.11 | SMS (OTP, verification) |
| Cheerio | Cheerio API | HTTP API | SMS + WhatsApp Business |
| Map / Location Services | |||
| MapLibre GL | maplibre-gl | 5.18.0 | Map rendering engine |
| RouteMappy | RouteMappy API | HTTP API | Map tiles + geocoding |
| Google Maps | @react-google-maps/api | 2.20.8 | Maps + geocoding + places |
| Leaflet | react-leaflet / leaflet | 5.0.0 / 1.9.4 | Admin zone polygon drawing |
| PDF / Barcode / Excel | |||
| DomPDF | barryvdh/laravel-dompdf | ^3.1 | PDF generation (invoices, reports) |
| Barcode | picqer/php-barcode-generator | ^3.2 | Barcode SVG generation |
| Excel | filament-excel | ^3.6 | Admin Excel exports |
| SMTP | Laravel Mail (SMTP) | Built-in | Transactional emails |
| Included (No Subscription) | |||
| Laravel Sanctum | Laravel Sanctum | Built-in | API authentication |
| Spatie Permission | Spatie Laravel Permission | ^7.4 | Role-based access control |
| Localization | mcamara/laravel-localization | * | Server-side locale switching |
| Database Cache | Database Cache | Built-in | Default cache driver |
| Database Queue | Database Queue | Built-in | Default queue driver |
PHP Files
React Components
API Endpoints
Database Tables
Admin Resources
Admin Permissions
Languages
Third-Party Services
Install all required SDKs, development tools, and dependencies using the recommended versions before beginning the installation process. Version mismatches may result in build or runtime issues.
Pro Tip: Use Node Version Manager (NVM) for managing Node.js versions.
ZupCart is a unified application where the Customer Website, Admin Panel, and API are all part of the same Laravel + React codebase. All dependencies are managed within a single project:
React 19 SPA with Redux Toolkit
Laravel 12 + Filament 5
API: Laravel 12 REST API with Sanctum authentication (60+ endpoints)
Deployment: Single deployment — Customer Web App, Admin Panel, and API served from the same Laravel installation
The customer website is built with React 19 + Redux Toolkit and uses the
following dependencies from package.json:
| Package | Version | Purpose |
|---|---|---|
| Core React | ||
| react | ^19.1.0 | UI Library |
| react-dom | ^19.1.0 | React DOM rendering |
| react-router-dom | ^7.7.1 | Client-side routing & navigation |
| State Management | ||
| @reduxjs/toolkit | ^2.11.2 | Global state management |
| react-redux | ^9.2.0 | React bindings for Redux |
| HTTP & API | ||
| axios | ^1.13.5 | HTTP client for API requests |
| Internationalization (8 Languages) | ||
| i18next | ^26.3.6 | Internationalization framework |
| react-i18next | ^17.0.11 | React bindings for i18next |
| i18next-browser-languagedetector | ^8.2.1 | Browser language detection |
| Maps & Location Services | ||
| maplibre-gl | ^5.18.0 | Map rendering engine |
| leaflet | ^1.9.4 | Interactive maps library |
| react-leaflet | ^5.0.0 | React bindings for Leaflet |
| @react-google-maps/api | ^2.20.8 | Google Maps API integration |
| use-places-autocomplete | ^4.0.1 | Google Places autocomplete hook |
| Firebase Services | ||
| firebase | ^12.9.0 |
Order Status Updates (Realtime DB): Real-time order tracking for
customers Push Notifications (FCM): Order confirmation, dispatch, and delivery alerts |
| UI Components & Utilities | ||
| framer-motion | ^12.23.24 | UI animations & transitions |
| react-icons | ^5.5.0 | Icon library |
| @fortawesome/react-fontawesome | ^0.2.3 | Font Awesome icons for React |
| react-phone-input-2 | ^2.15.1 | Phone number input with country codes |
| react-hot-toast | ^2.6.0 | Toast notifications |
| react-toastify | ^11.0.5 | Toast notifications (alternative) |
| react-helmet-async | ^3.0.0 | Document head manager (SEO) |
| rc-slider | ^11.1.9 | Slider component for price filters |
| uuid | ^13.0.0 | UUID generation for unique identifiers |
| Dev Dependencies | ||
| @vitejs/plugin-react | ^4.6.0 | Vite plugin for React |
| vite | ^7.0.7 | Build tool & dev server |
| tailwindcss | ^4.1.18 | Utility-first CSS framework |
| @tailwindcss/vite | ^4.1.18 | Tailwind CSS Vite plugin |
| eslint | ^9.30.1 | JavaScript linting |
| @types/react | ^19.1.8 | React TypeScript types |
| @types/react-dom | ^19.1.6 | React DOM TypeScript types |
| postcss | ^8.5.6 | CSS processing |
| autoprefixer | ^10.4.21 | CSS vendor prefixes |
| concurrently | ^9.2.4 | Run multiple dev commands simultaneously |
| laravel-vite-plugin | ^2.0.0 | Laravel-Vite integration |
The admin panel and API are built with Laravel 12 and Filament 5, using
the following PHP dependencies from composer.json:
| Package | Version | Purpose |
|---|---|---|
| Core PHP & Laravel | ||
| php | ^8.2 | Server-side scripting language |
| laravel/framework | ^12.0 | Laravel PHP Framework (API & Core) |
| laravel/tinker | ^2.10.1 | Artisan REPL & interactive shell |
| Admin Panel (Filament) | ||
| filament/filament | ~5.0 | Admin panel framework (72 resources) |
| bezhansalleh/filament-shield | ^4.2 | Auto-generate 886 admin permissions |
| Role-Based Access Control | ||
| spatie/laravel-permission | ^7.4 | User roles & permissions management |
| spatie/laravel-translatable | * | Model translations |
| Localization | ||
| mcamara/laravel-localization | * | Server-side locale switching (8 languages) |
| PDF, Barcode & Excel | ||
| barryvdh/laravel-dompdf | ^3.1 | PDF generation (invoices, reports, labels) |
| picqer/php-barcode-generator | ^3.2 | Barcode SVG generation for products |
| pxlrbt/filament-excel | ^3.6 | Excel import/export for admin (bulk operations) |
| Payment Gateways | ||
| stripe/stripe-php | ^21.0 | Stripe card payments integration |
| razorpay/razorpay | (client-side JS SDK) | Razorpay UPI payments |
| flutterwave/flutterwave | (client-side JS SDK) | Flutterwave card/mobile money/USSD |
| SMS & Notifications | ||
| twilio/sdk | ^8.11 | Twilio SMS for OTP, notifications, alerts |
| cheerio/cheerio | (HTTP API) | Cheerio SMS & WhatsApp Business API |
| Firebase (Order Status) | ||
| kreait/firebase-php | ^7.0 |
Realtime Database: Real-time order status updates (admin → customer
sync) FCM Push: Order confirmation, dispatch, delivery notifications |
| Development Dependencies | ||
| fakerphp/faker | ^1.23 | Fake data generation for testing |
| laravel/pail | ^1.2.2 | Log viewer |
| laravel/pint | ^1.24 | PHP code style fixer |
| laravel/sail | ^1.41 | Docker development environment |
| mockery/mockery | ^1.6 | Mocking framework for tests |
| nunomaduro/collision | ^8.6 | Error handling for console |
| phpunit/phpunit | ^11.5.3 | PHP testing framework |
Realtime DB Path: /orders/{order_id}/status
Firebase Config: .env with FIREBASE_FILE,
FIREBASE_DB, FCM_SENDER_ID
Complete guide for customers using the ZupCart single-vendor beauty e-commerce platform. Learn how to browse products, place orders, manage your account, and more.
/)Landing page that introduces the store and encourages visitors to browse and shop products.
/category)Main product browsing page where customers filter, sort, and find products to purchase.
/product/{name})Shows complete information about a single product so the customer can decide to buy it.
/cart)Shows all items the customer has added to their shopping cart and lets them apply discounts before checkout.
/checkout-address)Lets the customer select or add a delivery address before proceeding to payment.
/checkout-payment)Lets the customer choose a payment method and place their order.
/order-confirmed)Shows order confirmation details after the customer successfully places an order.
/account)Customer's personal dashboard for managing profile, orders, addresses, wallet, and support.
/wishlist)Shows all products the customer has saved for later purchase.
/login)/register)/otp)
/forgot-password): Phone number
input/reset-password): New password +
confirm/contact)/blog)/faq)
/about)/privacy): Full privacy policy
content/terms): Full terms content
/returns): Return and refund policy
/shipping): Shipping policyComplete order flow from browsing to order confirmation.
/)/category?cat=X)/product/:productName)
/login/cart)/checkout-address)
orders tableorder_items tableitems table/account) → My Orders tab| Page | URL | Purpose |
|---|---|---|
| Home | / |
Landing page with categories, products, and promotions |
| Category/Shop | /category |
Browse products with filters and sorting |
| Product Detail | /product/{name} |
Complete product information |
| Cart | /cart |
Manage cart and apply discounts |
| Checkout Address | /checkout-address |
Select or add delivery address |
| Checkout Payment | /checkout-payment |
Choose payment method and place order |
| Order Confirmed | /order-confirmed |
Order confirmation details |
| Account Dashboard | /account |
Profile, orders, addresses, wallet, support |
| Wishlist | /wishlist |
Saved products |
| Login | /login |
Sign in to account |
| Register | /register |
Create new account |
| OTP | /otp |
Phone number verification |
| Forgot Password | /forgot-password |
Start password reset |
| Reset Password | /reset-password |
Set new password |
| Contact | /contact |
Contact store |
| Blogs | /blog |
View blog posts |
| FAQ | /faq |
Frequently asked questions |
| About Us | /about |
About the store |
| Privacy Policy | /privacy |
Privacy policy |
| Terms & Conditions | /terms |
Terms and conditions |
| Return Policy | /returns |
Return and refund policy |
| Shipping Policy | /shipping |
Shipping policy |
The Admin Panel provides complete control over the ZupCart single-vendor beauty e-commerce platform. Below is the detailed menu structure and functionality for managing the platform.
| Menu Section | Table | Key Columns |
|---|---|---|
| Dashboard | ||
| Dashboard | (aggregated data) | — |
| Customer | ||
| Customers | customers | id, customer_name, profile_picture, email, password, phone_number, phone_with_code, overall_rating, wallet, status |
| Customer Addresses | customer_addresses | id, customer_id, address, landmark, lat, lng, address_type, zone_id, pin_code, city, state, status |
| Customer Wallet Histories | customer_wallet_histories | id, customer_id, type, message, transaction_type, amount |
| Customer Cart Items | customer_cart_items | id, customer_id, product_id, options, qty |
| Customer Promo Histories | customer_promo_histories | id, customer_id, promo_id |
| Favourite Items | favourite_items | id, customer_id, item_id |
| Inventory | ||
| Categories | categories | id, created_by, category_name, category_image, status, description, recommended_by_admin, parent_id |
| Brands | brands | id, brand_name, logo, status |
| Tags | tags | id, tag_name |
| Unit Measurements | unit_measurements | id, unit, status |
| Products (Items) | items | id, item_name, item_description, base_price, in_stock, item_image, stock, special_price, sku, category_id, brand_id, tax_id, unit, purchase_price, wholesale_price |
| Product Catalogue | item_catalogues | id, item_id, image |
| Purchase | ||
| Suppliers | suppliers | id, supplier_name, supplier_image, supplier_email, supplier_phone, gst_type, gst_number, billing_address, wallet, status |
| Purchase Orders | purchase_orders | id, invoice_no, supplier_id, supplier_email, supplier_phone, date, payment_method, sub_total, tax, discount, total, payment_status, status, notes |
| Purchase Returns | purchase_returns | id, purchase_order_id, invoice_no, supplier_id, date, payment_method, sub_total, tax, discount, total, payment_status, status, notes |
| Orders | ||
| Orders | orders | id, customer_id, address_id, total, sub_total, discount, tax, promo_id, delivery_charge, order_type, order_date, status, payment_mode, items, items_data, tracking_number, shipment_status, awb_number |
| Order Items | order_items | id, order_id, item_id, item_name, quantity, price_per_item, total, options |
| Order Statuses | order_statuses | id, slug, status, status_for_customer |
| Barcode Templates | barcode_templates | id, name, page_width, page_height, label_width, label_height, columns, rows, barcode_type, show_product_name, show_sku, show_price, show_brand, show_category, status |
| Promo Codes | promo_codes | id, customer_id, promo_name, promo_code, description, promo_type, discount, min_purchase_price, max_discount_value, redemptions, status |
| Promo Types | promo_types | id, type_name |
| Accounts | ||
| Customer Payments | customer_payments | id, customer_id, type, amount, reference_type, reference_id, payment_type_id, date, notes |
| Payment Modes | payment_modes | id, payment_type_id, slug, payment_name, icon, status |
| Payment Types | payment_types | id, type_name |
| Reports & Transactions | ||
| Transactions | transactions | id, ref_number, type, date, amount, description, payment_method, transaction_type |
| Stock Summary | items | stock, base_price, special_price, category_id, brand_id |
| Sale/Purchase Report | orders + purchase_orders | (aggregated data) |
| Category Wise Stock Summary | items + categories | (grouped by category) |
| Item Wise Profit & Loss | items + transactions | (profit calculation) |
| Purchase Report | purchase_orders | (filtered report) |
| Mode Wise | transactions | (grouped by payment mode) |
| Customer Wise | transactions | (grouped by customer) |
| Product Wise | transactions + items | (grouped by product) |
| Overall Profit and Loss | transactions | (income vs expenses) |
| Settings | ||
| App Settings | app_settings | id, app_name, app_logo, default_currency, currency_short_code, max_cash_allowed, opening_time, closing_time, capital_lat, capital_lng |
| Customer App Settings | customer_app_settings | id, app_name, app_logo, default_currency, currency_short_code, opening_time, closing_time, delivery_charge_per_km, app_version, flutterwave_key, stripe_key, capital_lat, capital_lng |
| Address Types | address_types | id, type_name, icon |
| Zones | zones | id, name, polygon |
| Statuses | statuses | id, slug, status_name |
| Taxes | taxes | id, tax_name, percentage, status |
| Import Excels | import_excels | id, type, file |
| Languages | languages | id, code, name, native_name, dir, is_default, is_active, sort_order |
| Privacy Policies | privacy_policies | id, privacy_type, title, description, status |
| CMS (Site Configs) | site_configs | id, key, value, type |
| Users | users | id, name, email, email_verified_at, password, remember_token |
| Map Settings | map_settings | id, tiles, routing, places, geo_code, reverse_geo_code |
| Website Settings | ||
| Website Settings | website_settings | id, title, description, banner_image, playstore_link, appstore_link, store_image, store_title, store_description, website_color |
| Blogs | blogs | id, title, description, image |
| Contact Settings | contact_settings | id, phone_number, email, address, whatsapp_number |
| FAQ Categories | faq_categories | id, faq_type, icon, category_name, description, status |
| FAQs | faqs | id, question, answer, image, faq_category_id |
| Social Settings | social_settings | id, facebook_link, instagram_link, twitter_link, youtube_link, whatsapp_link, email_link |
| Testimonials | testimonials | id, name, image, message, role, ratings |
| Who We Ares | who_we_ares | id, title, description, image |
| Terms And Conditions | terms_and_conditions | id, user_type, title, description |
| Shipping Policies | shipping_policies | id, title, description, status |
| Refund Policies | refund_policies | id, title, description, status |
| Banners | banners | id, image, badge, title, subtitle, link, status |
| Contact Messages | contact_messages | id, name, email, subject, category, status, created_at |
| Roles & Permissions | ||
| Roles | roles | id, name, guard_name, permissions |
This admin panel requires PHP 8.2+. Please ensure you have the correct version installed before proceeding.
php --version # Should show PHP 8.2.x or higher
The complete project structure for the ZupCart platform, including both backend (Laravel) and frontend (React) components.
ZupCart/
│
├── app/ ← Backend Application
│ ├── Console/
│ ├── Filament/ ← Admin Panel
│ │ ├── Pages/ ← 18 Page Files
│ │ │ ├── Dashboard.php
│ │ │ ├── StockSummary.php
│ │ │ ├── SalePurchaseReport.php
│ │ │ ├── CategoryWiseStockSummary.php
│ │ │ ├── ItemWiseProfitAndLoss.php
│ │ │ ├── PurchaseReport.php
│ │ │ ├── PaymentModeTransactions.php
│ │ │ ├── CustomerWiseTransactions.php
│ │ │ ├── ItemWiseTransactions.php
│ │ │ ├── ProfitAndLoss.php
│ │ │ ├── LoanReport.php
│ │ ├── Resources/ ← 97 Resource Directories
│ │ │ ├── Customers/
│ │ │ ├── Orders/
│ │ │ ├── Items/
│ │ │ ├── Categories/
│ │ │ ├── Brands/
│ │ │ ├── Taxes/
│ │ │ ├── PaymentModes/
│ │ │ ├── SiteConfigs/
│ │ │ ├── Blogs/
│ │ │ ├── Faqs/
│ │ │ ├── Banners/
│ │ │ └── ... (90+ more)
│ ├── Http/
│ │ ├── Controllers/ ← 19 Controllers
│ │ └── Middleware/
│ ├── Models/ ← 103 Eloquent Models
│ ├── Providers/
│ │ └── Filament/
│ │ └── AdminPanelProvider.php
├── bootstrap/
│
├── config/ ← Configuration Files
│
├── database/
│ ├── migrations/ ← 114 Migrations
│ └── seeders/ ← 53 Seeders
│
├── public/
│
├── resources/
│ ├── views/
│ │ ├── filament/
│ │ │ ├── pages/ ← 16 Blade Files
│ │ ├── mail_templates/ ← 6 Files
│ │ └── pdf/ ← 7 Files
│ └── react/ ← Frontend React App
│ ├── src/
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ ├── i18n.js
│ │ ├── Theme.js
│ │ ├── Components/ ← 18 JSX Files
│ │ │ ├── Header.jsx
│ │ │ ├── Footer.jsx
│ │ │ ├── SearchComponent.jsx
│ │ │ ├── CartModal.jsx
│ │ │ ├── AddressModal.jsx
│ │ │ ├── WhatsAppIcon.jsx
│ │ │ ├── GoogleTranslate.jsx
│ │ │ ├── Toptoscroll.jsx
│ │ │ ├── NotificationPermission.jsx
│ │ │ ├── AuthGuard.jsx
│ │ │ ├── BarcodePreview.jsx
│ │ │ ├── GoogleMapsComponent.jsx
│ │ │ ├── AutoCompletePlaces.jsx
│ │ │ ├── CurrentLocationFetcher.jsx
│ │ │ ├── RouteMappy.jsx
│ │ │ ├── StaticRoutemappy.jsx
│ │ │ └── Payments/
│ │ │ ├── StripeCheckout.jsx
│ │ │ ├── FlutterwavePayment.jsx
│ │ │ ├── RazorpayButton.jsx
│ │ │ └── PayPalButton.jsx
│ │ ├── Pages/ ← 25 Main Pages
│ │ │ ├── Home.jsx
│ │ │ ├── Category.jsx
│ │ │ ├── Products.jsx
│ │ │ ├── Cart.jsx
│ │ │ ├── Checkout.jsx
│ │ │ ├── Payment.jsx
│ │ │ ├── Orderconfirm.jsx
│ │ │ ├── Wishlist.jsx
│ │ │ ├── Account.jsx
│ │ │ ├── Aboutus.jsx
│ │ │ ├── Blogs.jsx
│ │ │ ├── BlogDetails.jsx
│ │ │ ├── Contact.jsx
│ │ │ ├── Faq.jsx
│ │ │ ├── Privacy.jsx
│ │ │ ├── Terms.jsx
│ │ │ ├── Return.jsx
│ │ │ ├── Shipping.jsx
│ │ │ ├── Refer.jsx
│ │ │ ├── CmsPage.jsx
│ │ │ ├── home/ ← 21 Components
│ │ │ │ ├── HeroSection.jsx
│ │ │ │ ├── CategoryShowcase.jsx
│ │ │ │ ├── FeaturedProducts.jsx
│ │ │ │ ├── BestSellingProducts.jsx
│ │ │ │ ├── PromotionalBanner.jsx
│ │ │ │ ├── TestimonialsSection.jsx
│ │ │ │ ├── DealsSection.jsx
│ │ │ │ ├── RecommendedProducts.jsx
│ │ │ │ ├── ProductsByCategories.jsx
│ │ │ │ ├── AnnouncementBar.jsx
│ │ │ │ └── ... (12 more)
│ │ │ ├── Authpages/ ← 5 Pages
│ │ │ │ ├── Login.jsx
│ │ │ │ ├── Register.jsx
│ │ │ │ ├── Otp.jsx
│ │ │ │ ├── Forget.jsx
│ │ │ │ └── Reset.jsx
│ │ │ └── Dashboard/ ← 8 Sections
│ │ │ ├── DashboardOverview.jsx
│ │ │ ├── MyOrders.jsx
│ │ │ ├── AddressesSection.jsx
│ │ │ ├── WalletSection.jsx
│ │ │ ├── PaymentsSection.jsx
│ │ │ ├── ProfileSection.jsx
│ │ │ ├── HelpSection.jsx
│ │ │ └── Navigation.jsx
│ │ ├── context/ ← 5 Providers
│ │ │ ├── AuthContext.jsx
│ │ │ ├── CartContext.jsx
│ │ │ ├── FavoriteContext.jsx
│ │ │ ├── LanguageContext.jsx
│ │ │ └── ThemeContext.jsx
│ │ ├── locales/ ← 8 Languages
│ │ │ ├── en/translation.json
│ │ │ ├── ar/translation.json
│ │ │ ├── hi/translation.json
│ │ │ ├── ta/translation.json
│ │ │ ├── fr/translation.json
│ │ │ ├── de/translation.json
│ │ │ ├── es/translation.json
│ │ │ └── pt/translation.json
│ │ ├── constants/
│ │ │ └── constant.js
│ │ ├── layers/
│ │ │ └── Layers.js
│ │ └── route/
│ │ └── ProtectedRoute.jsx
│ └── package.json
│
├── routes/
│ ├── web.php ← 10 Routes
│ └── api.php ← 162 API Routes
│
├── storage/
├── tests/
│
├── .env ← Environment Configuration
├── .env.example
├── artisan
├── composer.json
└── README.md
Note: The project uses a single-owner architecture with support for customers, suppliers, and purchase management. The admin panel is built with Filament v5, while the frontend is a React SPA with multilingual support (8 languages).
Set up the Laravel backend and Filament admin panel
Extract the downloaded source files to your working directory.
Copy the admin folder and paste it inside XAMPP → htdocs.
Rename your project folder (e.g., ZupCart).
Navigate to your project folder:
cd C:\xampp\htdocs\ZupCart
Run the following command to install all PHP dependencies:
composer install
When finished, verify the vendor folder
has been created in your project.
Follow these steps in phpMyAdmin:
http://localhost/phpmyadmin
in your browserzupcart_db)
Import the SQL file located at database/zupcart.sql
using phpMyAdmin:
zupcart.sql
file from your projectRun the following command to generate a unique application key:
php artisan key:generate
If .env file is not
visible, enable "show hidden files" in your system settings. Update the .env file in
your project root with the following settings:
APP_NAME=enter_your_app_name
APP_ENV=local
APP_DEBUG=true
APP_URL=http://127.0.0.1:8000
APP_TIMEZONE=Asia/Kolkata
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=enter_your_database_name
DB_USERNAME=root
DB_PASSWORD=
DB_SOCKET=/opt/lampp/var/mysql/mysql.sock
MAIL_MAILER=smtp
MAIL_HOST=enter_your_smtp_host
MAIL_PORT=587
MAIL_USERNAME=enter_your_email@example.com
MAIL_PASSWORD=enter_your_email_password_or_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=enter_your_email@example.com
MAIL_FROM_NAME="${APP_NAME}"
STRIPE_SECRET=enter_your_stripe_secret_key
FLUTTERWAVE_SECRET=enter_your_flutterwave_secret_key
TWILIO_ACCOUNT_SID=enter_your_twilio_sid
TWILIO_AUTH_TOKEN=enter_your_twilio_token
TWILIO_PHONE_NUMBER=enter_your_twilio_number
CHEERIO_API_KEY=enter_your_cheerio_api_key
CHEERIO_BASE_URL=enter_your_cheerio_base_url
Firebase is required for push notifications, real-time database features, and other Firebase services. Before using the application, configure your own Firebase project.
your-app-name-firebase-adminsdk.json).
Copy the downloaded Firebase JSON file into the following directory:
config/your-app-name.json
FIREBASE_FILE=your-app-name.json
FIREBASE_DB=https://your-project.firebaseio.com
FCM_SENDER_ID=enter_your_fcm_sender_id
FCM_SERVER_KEY=enter_your_fcm_server_key
Firebase Connected
Once the JSON file is uploaded and the .env
values are updated, the application will automatically connect to your
Firebase project.
Security Notice
Never share your Firebase Service Account JSON file or upload it to a public Git repository. This file contains sensitive credentials with administrative access to your Firebase project.
Important: Replace all placeholder values with your actual credentials before running the application.
Open config/app.php
and update the timezone based on your region:
'timezone' => env('APP_TIMEZONE', 'Asia/Kolkata'),
You can also set the timezone in your .env file:
APP_TIMEZONE=Asia/Kolkata
Asia/Kolkata
— India Standard Time (IST)America/New_York
— Eastern Time (ET)America/Los_Angeles
— Pacific Time (PT)Europe/London
— Greenwich Mean Time (GMT)Europe/Paris
— Central European Time (CET)Australia/Sydney
— Australian Eastern Time (AET)Asia/Dubai
— Gulf Standard Time (GST)Asia/Singapore
— Singapore Time (SGT)Run the following command to create the database tables:
php artisan migrate
Run the following command to seed the database with default data:
php artisan db:seed --force
--force flag
is used to run the seeder in production environments. For local development, you can
omit it.
Run the following command to generate all Shield permissions:
php artisan shield:generate --all --option=permissions --panel=admin
After generating permissions, run this command to assign the super admin role to your admin user:
php artisan tinker --execute="
$role = DB::table('roles')->where('name','super_admin')->first();
$perms = DB::table('permissions')->pluck('id')->toArray();
$rows = array_map(fn($id) => ['permission_id'=>$id,'role_id'=>$role->id], $perms);
DB::table('role_has_permissions')->insertOrIgnore($rows);
DB::table('model_has_roles')->insertOrIgnore(['role_id'=>1,'model_type'=>'App\\Models\\User','model_id'=>1]);
echo 'Done: Admin assigned to super_admin role';
"
Run the following command to optimize the application for production:
php artisan optimize
Set up the React frontend website located inside the admin project
Create a .env file in
the
website
folder
and add the following configurations:
# API Configuration (Points to the admin backend)
APP_NAME=YourApplication
APP_ENV=local
APP_KEY=base64:YOUR_APP_KEY
APP_DEBUG=true
APP_URL=http://127.0.0.1:8000
WEB_URL=https://yourwebsite.com
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=public
QUEUE_CONNECTION=database
CACHE_STORE=database
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=your_mail_host
MAIL_PORT=587
MAIL_USERNAME=your_mail_username
MAIL_PASSWORD=your_mail_password
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=your-region
AWS_BUCKET=
VITE_APP_NAME="${APP_NAME}"
FIREBASE_CREDENTIALS=
FIREBASE_DATABASE_URL=
FCM_SENDER_ID=
APP_MODE=LIVE
CHEERIO_API_KEY=
CHEERIO_BASE_URL=
STRIPE_SECRET=your_stripe_secret_key
FLUTTERWAVE_SECRET=your_flutterwave_secret_key
.env
file before running the application.APP_URL
to your application's domain or local URL..env
file, run php artisan optimize:clear
followed by php artisan optimize.
In a separate terminal, navigate to the admin project root and serve the Laravel backend:
php artisan serve
The Laravel backend runs at http://localhost:5173
admin@gmail.com
admin
Run these commands in sequence to set up both admin panel and website:
# Navigate to admin project
cd C:\xampp\htdocs\Zupkart_admin
# Install PHP dependencies
composer install
# Generate application key
php artisan key:generate
# Run migrations
php artisan migrate
# Seed the database
php artisan db:seed --force
# Generate Shield permissions
php artisan shield:generate --all --option=permissions --panel=admin
# Optimize the application
php artisan optimize
# Start Laravel server (in one terminal)
php artisan serve
# Navigate to website folder
# Create .env file with configurations
# (Copy .env.example to .env and update values)
If the application is not working correctly, verify:
.env
file exists in the project root.APP_URL
points to your application URL.APP_TIMEZONE
is correctly set.php artisan optimize:clear
after modifying the .env file.
Verify the following:
.env file
are correct.DB_SOCKET
path is correct for your system.php artisan migrate
if the tables have not been created.If uploaded images or files are not displayed:
php artisan storage:link.
storage
directory has write permission.FILESYSTEM_DISK
is set to public.php artisan optimize:clear.
If payment processing is not working:
.env file
are correct.If SMS notifications are not working:
.env file
are correct.If push notifications are not working:
.env file
are correct.FCM_SERVER_KEY
is correct.If recent changes are not reflected:
php artisan optimize:clear.
php artisan optimize.
php artisan serve.
This guide shows you exactly where to edit every piece of content on your website. Simply navigate to the specified admin section, make your changes, and they'll appear on the frontend instantly — no coding required!
Home Page — Manage banners, categories, featured products, and testimonials
| What to Edit | Where to Find It in Admin | What Changes |
|---|---|---|
| Hero Banner Images | Website Settings → Banners | The sliding banner images at the top |
| Hero Text Content | Settings → CMS → "Hero Section Content" | Badge, heading, description, and button text |
| Hero Watermark Text | Settings → CMS → "Hero Watermark Text" | Background watermark text on hero section |
| Announcement Bar | Settings → CMS → Announcement Keys | Scrolling messages at the top of the page |
| Category Showcase | Inventory → Categories | Category images, names, and display order |
| Category Section Title | Settings → CMS → "Category Section Content" | Badge and title above categories |
| Featured Products | Inventory → Products → Set item_tag = 1 |
Products shown in "Featured" section |
| Featured Section Title | Settings → CMS → "Product Trending Content" | Badge and title above featured products |
| Promotional Banner | Settings → CMS → "Promo Banner Content" | Mid-page banner image, badge, title, description |
| Best Sellers | Inventory → Products → Set item_tag = 2 |
Products shown in "Best Sellers" section |
| Customer Testimonials | Website Settings → Testimonials | Customer reviews, names, photos, and ratings |
Product Detail Page — Manage product information, images, pricing, and variants
| What to Edit | Where to Find It in Admin | What Changes |
|---|---|---|
| Product Name | Inventory → Products → item_name |
Product title on detail and listing pages |
| Product Description | Inventory → Products → item_description |
Detailed product description |
| Product Images | Inventory → Products (Main Image) + Inventory → Product Catalogue (Gallery) | Main product image and additional gallery images |
| Product Videos | Inventory → Products → YouTube/Facebook/Instagram links | Video embeds on product detail page |
| Product Price | Inventory → Products → base_price, special_price |
Regular and discounted prices |
| Product Stock | Inventory → Products → stock, in_stock |
Stock count and availability status |
| Product Options (Size/Variant) | Settings → Product Options → item_options |
Variant options with individual prices |
| Product Category | Inventory → Products → category_id |
Which category the product belongs to |
| Product Brand | Inventory → Products → brand_id |
Brand name displayed on product |
| Product Unit | Inventory → Products → unit |
Unit of measurement (kg, pcs, liters, etc.) |
| Product Tag | Inventory → Products → item_tag |
Tag as Featured (1) or Best Seller (2) |
| Product Tax | Inventory → Products → tax_id |
Tax rate applied to the product |
| Related Products | Auto-populated from same category → Inventory → Products | Products shown in "You May Also Like" section |
| Product Rating | Auto-calculated from Orders → Order Ratings | Star rating shown on product cards |
Shop/Category Page — Manage product listings, filters, and sorting
| What to Edit | Where to Find It in Admin | What Changes |
|---|---|---|
| Shop Page Title | Settings → CMS → "Shop Page Content" | Title and subtitle at top of shop page |
| Category Filters | Inventory → Categories | Category list with product counts in sidebar |
| Brand Filters | Inventory → Brands | Brand list with product counts in sidebar |
| Product Listings | Inventory → Products | All products displayed in the shop grid |
| Price Range Filter | Auto from Inventory → Products prices | Min/max price slider values |
Cart Page — Manage cart items, promo codes, and checkout settings
| What to Edit | Where to Find It in Admin | What Changes |
|---|---|---|
| Promo Codes | Orders → Promo Codes | Discount codes customers can apply at checkout |
| Payment Methods | Accounts → Payment Modes | Payment options shown at checkout (COD, Card, etc.) |
| Payment Method Icons | Accounts → Payment Modes → icon |
Icons displayed next to payment methods |
| Delivery Charge | Settings → Customer App Settings → delivery_charge_per_km |
Delivery fee calculated based on distance |
| Store Location | Settings → Customer App Settings → capital_lat, capital_lng |
Origin point for delivery distance calculation |
| Tax Rates | Settings → Taxes | Tax name and percentage applied to products |
| Address Types | Settings → Address Types | Labels for address types (Home, Office, Other) |
| Order Status Messages | Orders → Order Statuses → status_for_customer |
Text shown to customer for each order status |
Account Dashboard — Manage customer orders, addresses, wallet, and profile
| What to Edit | Where to Find It in Admin | What Changes |
|---|---|---|
| Customer Orders | Orders → Orders | All orders visible in customer's order history |
| Order Status Options | Orders → Order Statuses | Filter options on order history page |
| Invoice Logo | Settings → Customer App Settings → app_logo |
Logo on downloadable invoice PDFs |
| Invoice Address | Website Settings → Contact Settings | Store address on invoice PDFs |
| Customer Addresses | Customer → Customer Addresses | Saved addresses in customer's account |
| Wallet Balance | Customer → Customers → wallet |
Customer's wallet balance displayed |
| Transaction History | Customer → Customer Wallet Histories | Credit/debit records in wallet |
| Customer Profile | Customer → Customers | Name, email, phone, photo on account page |
| FAQ in Help Tab | Website Settings → Faq Categories + FAQs | Questions and answers in help section |
| Contact Info in Help Tab | Website Settings → Contact Settings | Phone and email in help section |
Blog Page — Manage blog posts, About Us, Contact, FAQs, and policy pages
| Page | Where to Find It in Admin | What Changes |
|---|---|---|
| Blog Posts | Website Settings → Blogs | Blog title, content, images, and metadata |
| About Us | Website Settings → Who We Ares | About page content, images, and mission |
| Contact Page | Website Settings → Contact Settings | Phone, email, address, and map location |
| FAQ Page | Website Settings → Faq Categories + FAQs | Categories, questions, and answers |
| Privacy Policy | Website Settings → Privacy Policies | Privacy policy content and last updated date |
| Terms & Conditions | Website Settings → Terms And Conditions | Terms and conditions content |
| Shipping Policy | Website Settings → Shipping Policies | Shipping rules and information |
| Refund/Return Policy | Website Settings → Refund Policies | Refund and return policy content |
| Social Media Links | Website Settings → Social Settings | Facebook, Instagram, Twitter, YouTube links |
Global Settings — Manage app name, logo, theme color, currency, and more
| Setting | Where to Find It in Admin | What It Controls |
|---|---|---|
| App Name | Settings → Customer App Settings → app_name |
Site title in header and browser tab |
| App Logo | Settings → Customer App Settings → app_logo |
Logo displayed in header and invoices |
| Theme Color | Website Settings → Website Settings → website_color |
Primary color for buttons, links, and accents |
| Currency Symbol | Settings → Customer App Settings → default_currency, currency_short_code |
Currency shown throughout the site (₹, $, etc.) |
| Store Location | Settings → Customer App Settings → capital_lat, capital_lng |
Origin for delivery distance calculation |
| Delivery Charge | Settings → Customer App Settings → delivery_charge_per_km |
Delivery fee per kilometer |
| Store Pin Code | Settings → Customer App Settings → pin_code |
Store's pincode for shipping |
| Languages | Settings → Languages | Available languages in header selector |
| Payment Gateway Keys | Settings → Customer App Settings → razorpay_key, flutterwave_key, stripe_key |
API keys for online payment processing |
| Footer Tagline | Settings → CMS → "Footer Section Content" | Tagline text in footer |
| Footer Contact Info | Website Settings → Contact Settings | Phone, email, address in footer |
| Footer Social Links | Website Settings → Social Settings | Social media icons and links in footer |
| Copyright Text | Website Settings → Contact Settings | Copyright notice in footer |
| Navigation Menu Labels | Settings → CMS → nav_*_label keys |
Text on navigation menu items |
Go to Settings → CMS → Find the content key you want to edit
Go to Website Settings → Banners or Inventory → Products
Go to Inventory → Products → Select the product
Go to Website Settings → Website Settings → website_color
Go to Website Settings → Choose the policy type
Go to Website Settings → Social Settings
Everything you see on the website is controlled from the admin panel. Add, edit, or delete content in the admin, and it reflects on the frontend instantly. No code changes required for content management.
Find answers to common questions and solutions to frequently encountered issues during installation, configuration, and daily operation of ZupCart platform.
Unified Application: Both Admin Panel and Customer Website are served from the same domain
Admin URL: https://yourdomain.com/admin | Website
URL: https://yourdomain.com
Cause: Missing or outdated PHP version, or unstable internet connection.
Solution:
composer install
rm -rf vendor composer.lock
composer install
Cause: Missing or incomplete environment
configuration in .env file.
Solution:
.env.example to .env.APP_NAME=ZupCart
APP_URL=https://yourdomain.com
APP_TIMEZONE=Asia/Kolkata
DB_DATABASE=zupcart_db
DB_USERNAME=root
DB_PASSWORD=
MAIL_HOST=smtp.gmail.com
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
php artisan optimize:clear
after updating .env.Cause: PHP version mismatch, missing dependencies, or permission issues.
Solution:
composer install
to install all dependencies.php artisan key:generate.
php artisan migrate.
storage
and bootstrap/cache.
storage/logs/laravel.log
for detailed errors.Cause: Products are inactive, out of stock, or not properly configured.
Solution:
php artisan optimize:clear.
Cause: Wrong credentials, database issues, or session problems.
Solution:
admin@gmail.com
/ admin.
php artisan db:seed --force
to re-seed admin user.php artisan session:clear.
.env for SESSION_DRIVER=database
and run migrations.Cause: Permission issues or Filament Shield configuration missing.
Solution:
php artisan shield:generate --all --option=permissions --panel=admin.
Cause: Categories/Products are set to inactive or not properly configured.
Solution:
php artisan optimize:clear.
Cause: SMTP mail configuration is incomplete or email service is down.
Solution:
.env:MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@gmail.com
php artisan tinker
then Mail::raw('Test', fn($m) => $m->to('test@email.com')->subject('Test'));
Cause: Email authentication issues or content flagged as spam.
Solution:
MAIL_FROM_NAME
that matches your brand.Cause: MySQL service not running or incorrect credentials.
Solution:
.env database settings:DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=zupcart_db
DB_USERNAME=root
DB_PASSWORD=
DB_SOCKET=/opt/lampp/var/mysql/mysql.sock
php artisan migrate
to create tables.Cause: Permission issues or missing PHP extensions.
Solution:
chmod -R 755 storage bootstrap/cache.
composer install --optimize-autoloader --no-dev.
php artisan optimize.
Cause: File size exceeds server limits, unsupported file format, or storage link not created.
Solution:
php artisan storage:link
to create symbolic link.APP_URL
in .env is correct for asset paths.FILESYSTEM_DISK
is set to public.
Cause: Incorrect Stripe API keys or environment configuration.
Solution:
.env:STRIPE_SECRET=your_stripe_secret_key
sk_test_....
Cause: Incorrect Flutterwave API keys or environment configuration.
Solution:
.env:FLUTTERWAVE_SECRET=your_flutterwave_secret_key
FLWSECK_TEST-....
Cause: Incorrect Razorpay API keys or environment configuration.
Solution:
razorpay_key
is set correctly.rzp_test_....
If you encounter any issues that are not covered in this documentation, please contact our support team.
Monday – Friday
Response Time: Within 24–48 Business Hours
This will help us provide faster and more accurate assistance.
composer install — Install PHP dependenciesphp artisan key:generate — Generate app keyphp artisan migrate — Run migrationsphp artisan db:seed — Seed databasephp artisan optimize:clear — Clear all cachephp artisan optimize — Optimize applicationphp artisan serve — Start Laravel serverphp artisan config:clear — Clear config cachephp artisan cache:clear — Clear application cachephp artisan route:clear — Clear route cachephp artisan view:clear — Clear view cachephp artisan queue:work — Process queue jobsphp artisan tinker — Interactive REPLphp artisan storage:link — Create storage symlinkphp artisan migrate:fresh — Fresh migrationphp artisan db:wipe — Drop all tablesphp artisan migrate:refresh — Rollback & migratephp artisan shield:generate --all --option=permissions --panel=admin
— Generate permissionsphp artisan config:cache — Cache configphp artisan route:cache — Cache routesphp artisan view:cache — Cache viewsTrack all updates, improvements, and fixes for the ZupCart single-vendor beauty e-commerce ERP platform.
The following services require separate subscriptions and are NOT included with the purchase: Stripe, Flutterwave, Twilio, Cheerio, RouteMappy, and Firebase. See full details →
If you encounter an error that is not listed above, please feel free to contact our support team for further assistance. We’re here to help.
If you need any custom work, additional features, or modifications to this application, our team is ready to help you build and scale your project efficiently.
Custom feature development based on your business needs
UI/UX design improvements and branding customization
Third-party API integrations (payment, SMS, maps, etc.)
Performance optimization and scalability improvements
Full project setup and deployment assistance
Building large-scale applications from scratch
You can hire our development team for complete project development, from idea to deployment, including frontend, backend, and server setup.
+91 9150 441 443
sales@menpanitech.com
Custom development services may involve additional cost and timeline depending on the scope and complexity of the project.
We’re happy to collaborate and bring your ideas to life