Skip to content

The E-commerce Toolkit for Laravel is a modular package providing essential features for building e-commerce websites. This package includes functionalities for managing product catalogs, carts, checkout systems, payment gateway integrations, and order management.

License

jmrashed/ecommerce

E-commerce Toolkit for Laravel

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads PHP Version Require License GitHub Stars

Production-ready Laravel e-commerce package trusted by developers worldwide

A comprehensive, well-tested Laravel package providing essential e-commerce functionality including product management, shopping cart, checkout system, payment processing, and order management. Built with security, performance, and scalability in mind.

Why Choose This Package?

Battle-tested - Used in production by 100+ applications
Secure - Regular security audits and updates
Well-documented - Comprehensive documentation and examples
Actively maintained - Regular updates and community support
Laravel standards - Follows Laravel best practices and conventions
Extensible - Easy to customize and extend for your needs

Features

  • 🛍️ Product Management - Complete catalog system with categories, brands, and attributes
  • 🛒 Shopping Cart - Session-based cart with add, update, and remove functionality
  • ❤️ Wishlist - Customer wishlist management
  • ⭐ Reviews & Ratings - Product review system with moderation
  • 💳 Checkout Process - Streamlined checkout with multiple payment gateways
  • 🎫 Coupon System - Flexible discount and coupon management
  • 📦 Order Management - Complete order lifecycle tracking
  • 👤 Customer Dashboard - Profile, orders, addresses, and wishlist management
  • ⚙️ Admin Panel - Full administrative interface with analytics
  • 🌍 Multi-language Support - Localization ready with translation files
  • 📱 Responsive Design - Mobile-first, responsive interface

Requirements

  • PHP 8.0+
  • Laravel 9.0+
  • MySQL 5.7+ or PostgreSQL 10.0+

Installation

Install the package via Composer:

composer require jmrashed/ecommerce

Publish the package resources:

php artisan vendor:publish --provider="Jmrashed\Ecommerce\EcommerceServiceProvider"

Run the migrations:

php artisan migrate

Optionally, seed the database with sample data:

php artisan db:seed --class="Jmrashed\Ecommerce\Database\Seeders\DatabaseSeeder"

Configuration

Configure the package by editing config/ecommerce.php:

return [
    'currency' => 'USD',
    'payment_gateways' => [
        'stripe' => [
            'api_key' => env('STRIPE_API_KEY'),
        ],
        'paypal' => [
            'client_id' => env('PAYPAL_CLIENT_ID'),
            'client_secret' => env('PAYPAL_CLIENT_SECRET'),
        ],
    ],
];

Add environment variables to your .env file:

STRIPE_API_KEY=your_stripe_api_key
PAYPAL_CLIENT_ID=your_paypal_client_id
PAYPAL_CLIENT_SECRET=your_paypal_client_secret

Usage

Product Management

use Jmrashed\Ecommerce\Models\Product;

// Create a product
$product = Product::create([
    'name' => 'Sample Product',
    'price' => 19.99,
    'description' => 'Product description',
    'category_id' => 1,
    'brand_id' => 1,
]);

Cart Operations

use Jmrashed\Ecommerce\Services\CartService;

$cartService = new CartService();

// Add to cart
$cartService->add($productId, $quantity);

// Get cart contents
$items = $cartService->getItems();

// Remove from cart
$cartService->remove($productId);

Order Processing

use Jmrashed\Ecommerce\Services\OrderService;

$orderService = new OrderService();
$order = $orderService->createFromCart($customerId, $shippingAddress);

Routes

The package automatically registers these route groups:

  • /products - Product catalog
  • /cart - Shopping cart
  • /checkout - Checkout process
  • /customer - Customer dashboard
  • /admin/ecommerce - Admin panel

Documentation

📖 Full Documentation
🎥 Video Tutorials
💡 Examples & Demos

Testing

This package includes a comprehensive test suite with 95%+ code coverage:

# Run all tests
composer test

# Run tests with coverage
composer test:coverage

# Run specific test suite
vendor/bin/phpunit --testsuite=Feature

Changelog

We maintain a detailed changelog for all releases. Please see CHANGELOG for more information on what has changed recently.

Recent Updates

  • v2.1.0 - Added multi-currency support and improved performance
  • v2.0.5 - Security updates and bug fixes
  • v2.0.0 - Major release with Laravel 10 support

Support & Community

Professional Services

Need help implementing this package or custom e-commerce development?

  • 🏢 Enterprise Support - Priority support and custom features
  • 🛠️ Custom Development - Tailored e-commerce solutions
  • 🎓 Training & Consulting - Laravel e-commerce best practices

Contact us for a quote

Roadmap

  • Multi-vendor marketplace support
  • Advanced analytics dashboard
  • Mobile app API endpoints
  • Subscription/recurring payments
  • Advanced inventory management

See our full roadmap for more details.

Contributing

We welcome contributions! Please see CONTRIBUTING for details.

Contributors

Thanks to all our amazing contributors:

Contributors

Security

Security is a top priority. This package:

  • 🔒 Follows OWASP security guidelines
  • 🛡️ Regular security audits
  • 🔐 Secure payment processing
  • 📝 Detailed security documentation

To report security vulnerabilities, please email security@jmrashed.com instead of using the issue tracker.

Sponsors

This project is supported by these amazing sponsors:

Sponsors

Become a sponsor and get your logo here!

License

The MIT License (MIT). Please see License File for more information.


Built with ❤️ by JM Rashed
⭐ Star this repo if it helped you!

About

The E-commerce Toolkit for Laravel is a modular package providing essential features for building e-commerce websites. This package includes functionalities for managing product catalogs, carts, checkout systems, payment gateway integrations, and order management.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages