berkayk/laravel-cart

Laravel shopping cart management in an easy way.

v1.2 2018-11-10 20:43 UTC

README

Latest Stable Version Total Downloads License

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:

  1. You are looking for an easy to use solution which provides cart feature for users as well as guests.
  2. You want to make sure that the carting can work via APIs as well to support mobile applications.
  3. You want features like Shipping charges, tax, discount, round off, etc.
  4. You want to store cart data in Database, session or at a custom place.
  5. You like using the packages which are more like the Laravel way

Installation

  1. Install the package by running this command in your terminal/cmd:
composer require freshbitsweb/laravel-cart-manager
  1. Import config file by running this command in your terminal/cmd:
php artisan vendor:publish --tag=laravel-cart-manager-config
  1. Import migrations files by running these commands in your terminal/cmd:
php artisan vendor:publish --tag=laravel-cart-manager-migrations
php artisan migrate
  1. 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

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