A robust multivendor e-commerce platform built with Django that allows multiple sellers to list and sell their products through a single marketplace.
- Multi-vendor Support: Multiple sellers can register and manage their stores
- Product Management: Sellers can add, edit, and manage their products
- Shopping Cart: Users can add products to cart and manage their shopping
- Order Management: Complete order processing system
- Payment Integration: Stripe payment gateway integration
- Email Notifications: SendGrid integration for email communications
- Responsive Design: Mobile-friendly interface
- Admin Dashboard: Separate admin interfaces for marketplace admin and sellers
- Backend: Django 3.2.3
- Database: SQLite (Development) / PostgreSQL (Production-ready)
- Payment Gateway: Stripe
- Email Service: SendGrid
- Frontend: HTML, CSS, JavaScript
- Image Processing: Pillow
multivendor-marketplace/
├── apps/
│ ├── cart/ # Shopping cart functionality
│ ├── multivendor/ # Core marketplace features
│ ├── order/ # Order management
│ ├── product/ # Product management
│ └── sellers/ # Seller management
├── galaxy/ # Main project configuration
├── static/ # Static files (CSS, JS, images)
├── media/ # User-uploaded files
└── requirements.txt # Project dependencies
- Python 3.6+
- pip (Python package manager)
- Virtual environment (recommended)
- Clone the repository:
git clone <repository-url>
cd multivendor-marketplace- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up environment variables:
- Create a
.envfile in the project root - Add the following variables:
# Django settings SECRET_KEY=your-secret-key-here DEBUG=True ALLOWED_HOSTS=localhost,127.0.0.1 # Stripe settings STRIPE_PUB_KEY=your-stripe-public-key STRIPE_SECRET_KEY=your-stripe-secret-key # Email settings (SendGrid) EMAIL_HOST=smtp.sendgrid.net EMAIL_HOST_USER=apikey EMAIL_HOST_PASSWORD=your-sendgrid-api-key EMAIL_PORT=587 EMAIL_USE_TLS=True DEFAULT_EMAIL_FROM=Galaxy <noreply@galaxy.com> - Make sure to replace all placeholder values with your actual credentials
- Never commit the
.envfile to version control - Keep your
.envfile secure and private
- Run migrations:
python manage.py migrate- Create a superuser:
python manage.py createsuperuser- Run the development server:
python manage.py runserver- Sign up for a Stripe account
- Get your API keys from the Stripe dashboard
- Update the
STRIPE_PUB_KEYandSTRIPE_SECRET_KEYin settings.py
- Create a SendGrid account
- Generate an API key
- Update the
EMAIL_HOST_PASSWORDin settings.py
- Access the admin interface at
/admin - Create seller accounts through the admin panel
- Sellers can access their dashboard at
/seller-admin - Customers can browse products and make purchases
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the repository or contact the maintainers.
- Django Documentation
- Stripe API Documentation
- SendGrid API Documentation