PHPackages                             ivankovrlija/laravel-cart - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ivankovrlija/laravel-cart

ActiveLibrary

ivankovrlija/laravel-cart
=========================

Shopping cart package

v5.0.1(10y ago)010PHPPHP &gt;=5.3.0

Since Jun 17Pushed 5y agoCompare

[ Source](https://github.com/ivankovrlija/laravel-cart)[ Packagist](https://packagist.org/packages/ivankovrlija/laravel-cart)[ RSS](/packages/ivankovrlija-laravel-cart/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (3)Versions (4)Used By (0)

**THIS REPO IS BEING CONSIDERED FOR OWNERSHIP TRANSFER, PLEASE SEE HERE: [moltin#62 (comment)](https://github.com/moltin/laravel-cart/issues/62#issuecomment-328447136)**

Laravel Shopping Cart Package
=============================

[](#laravel-shopping-cart-package)

Laravel Facade and Service Provider for Moltin\\Cart

Installation
------------

[](#installation)

via Composer:

```
$ composer require moltin/laravel-cart

```

Add the following to your app/config/app.php to the service providers array:

```
'Moltin\Cart\CartServiceProvider',
```

Then add to the aliases array the following:

```
'Cart' => 'Moltin\Cart\Facade',
```

You should then be good to go and be able to access the cart using the following static interface:

```
// Format array of required info for item to be added to basket...
$items = array(
	'id' => 1,
	'name' => 'Juicy Picnic Hamper',
	'price' => 120.00,
	'quantity' => 1
);

// Make the insert...
Cart::insert($items);

// Let's see what we have have in there...
dd(Cart::totalItems());
```

\###Config settings (Optional) Publish the config file with `php artisan vendor:publish`

```
return array(
    'storage' => 'session', //session, cache, file

    // Cache
    // Laravel documentation for more information
    'cache_prefix' => 'moltin_cart_',
    'cache_expire' => '-1', //in minutes, -1  permanent caching

    // Filesystem
    // Folder Name inside the Storage Path
    'storage_folder_name' => 'moltin_cart',

    // Identifier
    // With a requestcookie (choose for storage: cache, the session will be expired), the cart could be reloaded from a http request, example: the customer could save his cart link (email, hyperlink) and reopen this later.
    // If there is no request, the cookie will be loaded.
    'identifier' => 'cookie', //cookie, requestcookie

    //Request Cookie
    'requestid' => 'CartID', //http input request identifier, example: your customer/backoffice could reload the cart in your shop controller, /public/shop?CartID=871f0bc18ca76e68bf7c3adf8f9426ef
);
```

### Setting the tax rate for an item

[](#setting-the-tax-rate-for-an-item)

Another key you can pass to your insert method is 'tax'. This is a percentage which you would like to be added onto the price of the item.

In the below example we will use 20% for the tax rate.

```
Cart::insert(array(
    'id'       => 'foo',
    'name'     => 'bar',
    'price'    => 100,
    'quantity' => 1,
    'tax'      => 20
));
```

### Updating items in the cart

[](#updating-items-in-the-cart)

You can update items in your cart by updating any property on a cart item. For example, if you were within a cart loop then you can update a specific item using the below example.

```
foreach (Cart::contents() as $item) {
    $item->name = 'Foo';
    $item->quantity = 1;
}
```

### Removing cart items

[](#removing-cart-items)

You can remove any items in your cart by using the `remove()` method on any cart item.

```
foreach (Cart::contents() as $item) {
    $item->remove();
}
```

### Destroying/emptying the cart

[](#destroyingemptying-the-cart)

You can completely empty/destroy the cart by using the `destroy()` method.

```
Cart::destroy()
```

### Retrieve the cart contents

[](#retrieve-the-cart-contents)

You can loop the cart contents by using the following method

```
Cart::contents();
```

You can also return the cart items as an array by passing true as the first argument

```
Cart::contents(true);
```

### Retrieving the total items in the cart

[](#retrieving-the-total-items-in-the-cart)

```
Cart::totalItems();
```

By default this method will return all items in the cart as well as their quantities. You can pass `true`as the first argument to get all unique items.

```
Cart::totalItems(true);
```

### Retrieving the cart total

[](#retrieving-the-cart-total)

```
$cart->total();
```

By default the `total()` method will return the total value of the cart as a `float`, this will include any item taxes. If you want to retrieve the cart total without tax then you can do so by passing false to the `total()` method

```
Cart::total(false);
```

### Check if the cart has an item

[](#check-if-the-cart-has-an-item)

```
Cart::has($itemIdentifier);
```

### Retreive an item object by identifier

[](#retreive-an-item-object-by-identifier)

```
Cart::item($itemIdentifier);
```

Cart items
----------

[](#cart-items)

There are several features of the cart items that may also help when integrating your cart.

### Retrieving the total value of an item

[](#retrieving-the-total-value-of-an-item)

You can retrieve the total value of a specific cart item (including quantities) using the following method.

```
$item->total();
```

By default, this method will return the total value of the item plus tax. So if you had a product which costs 100, with a quantity of 2 and a tax rate of 20% then the total returned by this method would be 240.

You can also get the total minus tax by passing false to the `total()` method.

```
$item->total(false);
```

This would return 200.

### Check if an item has options

[](#check-if-an-item-has-options)

You can check if a cart item has options by using the `hasOptions()` method.

```
if ($item->hasOptions()) {
    // We have options
}
```

### Remove an item from the cart

[](#remove-an-item-from-the-cart)

```
$item->remove();
```

### Output the item data as an array

[](#output-the-item-data-as-an-array)

```
$item->toArray();
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~245 days

Total

3

Last Release

3858d ago

Major Versions

v4.2 → v5.02015-08-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/0ccd34531f5082838ffd618e1f74e6b0251ccf71bf3bd2fb4ba4c44be312cfcc?d=identicon)[ajvan](/maintainers/ajvan)

---

Top Contributors

[![chrisnharvey](https://avatars.githubusercontent.com/u/619298?v=4)](https://github.com/chrisnharvey "chrisnharvey (24 commits)")[![djekl](https://avatars.githubusercontent.com/u/1119714?v=4)](https://github.com/djekl "djekl (15 commits)")[![outrunthewolf](https://avatars.githubusercontent.com/u/814246?v=4)](https://github.com/outrunthewolf "outrunthewolf (9 commits)")[![ivankovrlija](https://avatars.githubusercontent.com/u/35242188?v=4)](https://github.com/ivankovrlija "ivankovrlija (3 commits)")[![LensFettish](https://avatars.githubusercontent.com/u/3257228?v=4)](https://github.com/LensFettish "LensFettish (2 commits)")[![fteotini](https://avatars.githubusercontent.com/u/1193756?v=4)](https://github.com/fteotini "fteotini (2 commits)")[![theodh](https://avatars.githubusercontent.com/u/5831871?v=4)](https://github.com/theodh "theodh (1 commits)")[![jackmcdade](https://avatars.githubusercontent.com/u/44739?v=4)](https://github.com/jackmcdade "jackmcdade (1 commits)")[![philipbrown](https://avatars.githubusercontent.com/u/1579059?v=4)](https://github.com/philipbrown "philipbrown (1 commits)")[![ryross](https://avatars.githubusercontent.com/u/152982?v=4)](https://github.com/ryross "ryross (1 commits)")[![byordereurope](https://avatars.githubusercontent.com/u/2935226?v=4)](https://github.com/byordereurope "byordereurope (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ivankovrlija-laravel-cart/health.svg)

```
[![Health](https://phpackages.com/badges/ivankovrlija-laravel-cart/health.svg)](https://phpackages.com/packages/ivankovrlija-laravel-cart)
```

###  Alternatives

[anourvalar/eloquent-serialize

Laravel Query Builder (Eloquent) serialization

11320.2M21](/packages/anourvalar-eloquent-serialize)[namu/wirechat

A Laravel Livewire messaging app for teams with private chats and group conversations.

54324.5k](/packages/namu-wirechat)[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135192.6k5](/packages/statamic-rad-pack-runway)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
