| Package Data | |
|---|---|
| Maintainer Username: | cyvelnet | 
| Maintainer Contact: | cyvelnet@gmail.com (Cyvelnet) | 
| Package Create Date: | 2017-05-23 | 
| Package Last Update: | 2022-03-02 | 
| Home Page: | |
| Language: | PHP | 
| License: | MIT | 
| Last Refreshed: | 2025-10-29 03:03:36 | 
| Package Statistics | |
|---|---|
| Total Downloads: | 96 | 
| Monthly Downloads: | 0 | 
| Daily Downloads: | 0 | 
| Total Stars: | 3 | 
| Total Watchers: | 1 | 
| Total Forks: | 0 | 
| Total Open Issues: | 0 | 
This project is still under development, it is far from ready for production.
Require this package with composer using the following command:
composer require cyvelnet/laravel-easycart
After updating composer, add the ServiceProvider to the providers array in config/app.php
Cyvelnet\EasyCart\EasyCartServiceProvider::class,
and register Facade
And optionally add a new line to the aliases array:
'EasyCart' => Cyvelnet\EasyCart\Facades\EasyCart::class,
Add new product or update quantity on existing cart item
// Add product to cart
EasyCart::add($id, $name, $price, $qty);
// Add product to cart with attributes & weight
EasyCart::add($id, $name, $price, $qty, $attributes = [], $weight);
// Add multiple products
EasyCart::add([
    [
        'id' => '1'
        'name' => 'Product 1'
        'price' => '199.99'
        'qty' => '1',
        'attributes' => ['color' => 'red'],
        'weight' => 0.5
    ],
    [
        'id' => '2'
        'name' => 'Product 2'
        'price' => '299.99'
        'qty' => '1'
    ]
]);
Update cart item
An unique rowId is assigned to each cart item, use getRowId()on cart item to retrieves rowId*
// update qty
EasyCart::update($rowId, $qty);
// update other 
EasyCart::update($rowId, [
    'attributes' => ['color' => 'green'],
    'qty' => 2,
    'price' => 399.99
    
]);
Remove an item from cart
EasyCart::remove($rowId);
Get a row by rowId
EasyCart::get($rowId);
Wipe cart completely
EasyCart::destroy();
Get the total number of quantity in cart.
EasyCart::qty();
Get the cart subtotal before a condition value is being added, use EasyCart::total() to retrieves the final price
EasyCart::subtotal();
Get the cart total with condition values calculated
EasyCart::total();
Get the cart items EasyCart::content() is an aliase to EasyCart::items(), Cyvelnet\EasyCart\Collections\CartItemCollection instance is return
EasyCart::items()
Get the cart total weight
EasyCart::weight()
Find a cart item by product id, a Cyvelnet\EasyCart\CartItem instance is return
EasyCart::find($id);
Find a cart item by an array of ids, a Cyvelnet\EasyCart\Collections\CartItemCollection instance is return
EasyCart::findByIds($ids = []);
EasyCart support condition, which is essential to ECommerces application, either provides discount or add additional prices are supported.
Adding a condition is simple, just instantiate a Cyvelnet\EasyCart\CartCondition object and you are ready to go.
// Add a 50% discount to cart
$fiftyPercentDiscount = new CartCondition($name = '$50 Off', $value = '-50') // you have to use a - (minus sign) to indicate a discount is expected
EasyCart::condition($fiftyPercentDiscount);
Sometimes you want to only give an discount to only to a selected range of products instead of apply to the whole cart, it is easy
$fiftyPercentDiscount = new CartCondition($name = '$50 Off', $value = '-50');
$fiftyPercentDiscount->onProduct([1,2,3,4]);
EasyCart::condition($fiftyPercentDiscount);
Life is not always easy, what if you need to give an discount of 20% but with a maximum up to $50 ?
$fiftyPercentDiscount = new CartCondition($name = '20% Off', $value = '-20');
$fiftyPercentDiscount->maxAt(50);
EasyCart::condition($fiftyPercentDiscount);
Remove condition by type
EasyCart::removeConditionByType($type);
Remove condition by name
EasyCart::removeConditionByName($name);
EasyCart support multiple instances, no extra configuration is needed, just point it to instance and it works the same as normal
EasyCart::instance('wishlist')->add($id, $name, $price, $qty);
EasyCart::instance('wishlist')->destroy();
Sometimes a cart expiration is needed, maybe for reservation, or other usage, this is handful in EasyCart
// create a new instances with 15 minutes expiration
EasyCart::instance('reservation', \Carbon::now()->addMinutes(15));
To verify whether a cart is expired, use EasyCart::isExpired()
// check if a cart is expired
EasyCart::instance('reservation')->isExpired();
Since you may expire a cart, you might want to make a countdown too
EasyCart::instance('reservation')->expirationTimestamp();