berkayk / laravel-cart
Laravel shopping cart management in an easy way.
Requires
- php: >=7.0.0
- illuminate/support: 5.5.*|5.6.*|5.7.*
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: 3.7.*
- phpunit/phpunit: ^7.0
README
Cart Manager for Laravel 5.5+
This package is an updated version of FreshBitsWeb's laravel-cart-manager package.
What's updated
- Each update to a cart item's quantity now dispatches
CartItemQuantityChanged
event.
Just another shopping cart package?
There are a few well maintained shopping cart packages available but I wanted to have a solution which feels like the Laravel way and is more coupled with the database and provides additional functionality like shipping charges, discount, tax, total, round off, guest carts, etc. out-of-box while staying a very easy to use package.
Why/when to use?
Let us decide when this package should be used:
- You are looking for an easy to use solution which provides cart feature for users as well as guests.
- You want to make sure that the carting can work via APIs as well to support mobile applications.
- You want features like Shipping charges, tax, discount, round off, etc.
- You want to store cart data in Database, session or at a custom place.
- You like using the packages which are more like the Laravel way
Installation
- Install the package by running this command in your terminal/cmd:
composer require freshbitsweb/laravel-cart-manager
- Import config file by running this command in your terminal/cmd:
php artisan vendor:publish --tag=laravel-cart-manager-config
- Import migrations files by running these commands in your terminal/cmd:
php artisan vendor:publish --tag=laravel-cart-manager-migrations
php artisan migrate
- Add a trait to the model(s) of cart items:
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Freshbitsweb\LaravelCartManager\Traits\Cartable; class Product extends Model { use Cartable; // ... }
Usage - As Easy as 1 2 3
// Add to cart $cart = Product::addToCart($productId); // Remove from cart $cart = cart()->removeAt($cartItemIndex); // Apply discount $cart = cart()->applyDiscount($percentage); // Fetch cart $cart = cart()->toArray();
Online Demo
The demo of the package can be found at - https://laravel-cart-manager.freshbits.in
Detailed Documentation
Checkout the full documentation.
Tests
Run this command to run the tests of the package:
composer test
Authors
- Gaurav Makhecha - Initial work
- Berkay Kaya - Updates
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE file for details
Special Thanks to
- FreshBitsWeb
- Laravel Community