Simple framework agnostic shopping cart
Clone or download
anam-hossain Merge pull request #11 from barmmie/patch-1
Update composer.json to allow symfony version 4 and 3
Latest commit 042f7c5 Feb 19, 2018


Simple framework agnostic shopping cart.


  • Simple API
  • Support multiple cart instances
  • Framework agnostic, with optional Laravel integration


  • PHP 5.4+


PHPCart is available via Composer

$ composer require anam/phpcart


Laravel 5.5+ integrations

Package Discovery

Anam\Phpcart utilize the Laravel's package auto discovery feature. So, you don't need to add manually Service provider and Facade in Laravel application's config/app.php. Laravel will automatically register the service provider and facades for you.

Laravel < 5.5 integrations

Although PHPCart is framework agnostic, it does support Laravel out of the box and comes with a Service provider and Facade for easy integration.

After you have installed the PHPCart, open the config/app.php file which is included with Laravel and add the following lines.

In the $providers array add the following service provider.


Add the facade of this package to the $aliases array.

'Cart' => 'Anam\Phpcart\Facades\Cart'

You can now use this facade in place of instantiating the Cart yourself in the following examples.


Add Item

The add method required id, name, price and quantity keys. However, you can pass any data that your application required.

use Anam\Phpcart\Cart;

$cart = new Cart();

    'id'       => 1001,
    'name'     => 'Skinny Jeans',
    'quantity' => 1,
    'price'    => 90

Update Item

    'id'       => 1001,
    'name'     => 'Hoodie'

Update quantity

$cart->updateQty(1001, 3);

Update price

$cart->updatePrice(1001, 30);

Remove an Item


Get all Items

// or

Get an Item


Determining if an Item exists in the cart


Get the total number of items in the cart


Get the total quantities of items in the cart


Total sum


Empty the cart


Multiple carts

PHPCart supports multiple cart instances, so that you can have as many shopping cart instances on the same page as you want without any conflicts.

$cart = new Cart('cart1');
// or
    'id'       => 1001,
    'name'     => 'Skinny Jeans',
    'quantity' => 1,
    'price'    => 90

    'id'       => 1001,
    'name'     => 'Jeans',
    'quantity' => 2,
    'price'    => 100