PHPackages                             ibrand/laravel-shopping-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. ibrand/laravel-shopping-cart

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ibrand/laravel-shopping-cart
============================

Shopping cart for Laravel Application.

v1.3.4(5y ago)385.6k↓100%9[1 issues](https://github.com/guojiangclub/laravel-shopping-cart/issues)1MITPHPPHP &gt;=7.0CI failing

Since Jan 18Pushed 4y ago2 watchersCompare

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

READMEChangelog (1)Dependencies (4)Versions (9)Used By (1)

[![Build Status](https://camo.githubusercontent.com/27bc7d348a6ef4860af4816ffcd85bde602d8afae069b63765552bc8d92363bf/68747470733a2f2f7472617669732d63692e6f72672f67756f6a69616e67636c75622f6c61726176656c2d73686f7070696e672d636172742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/ibrandcc/laravel-shopping-cart)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/ee4e8800ec2e533b4c8d3fcbba0d4b59a02f9ea8b49f10a00ff2b4c9dd43ab9c/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f67756f6a69616e67636c75622f6c61726176656c2d73686f7070696e672d636172742f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/guojiangclub/laravel-shopping-cart/?branch=master)[![Code Coverage](https://camo.githubusercontent.com/aba5971fe06806bf7160e0dd24441b321cbf23d8ed72052ed68302edd7dbfb77/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f67756f6a69616e67636c75622f6c61726176656c2d73686f7070696e672d636172742f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/guojiangclub/laravel-shopping-cart/?branch=master)[![Build Status](https://camo.githubusercontent.com/bc438013ee95c593769dc42a39ca25c4497dfcceb2943ae024878f35d63fd589/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f67756f6a69616e67636c75622f6c61726176656c2d73686f7070696e672d636172742f6261646765732f6275696c642e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/guojiangclub/laravel-shopping-cart/build-status/master)[![Latest Stable Version](https://camo.githubusercontent.com/9d74bf3baf6ffd06d2cce323ad457e4ed3dd546dd0821b51247317a317076123/68747470733a2f2f706f7365722e707567782e6f72672f696272616e642f6c61726176656c2d73686f7070696e672d636172742f762f737461626c65)](https://packagist.org/packages/ibrand/laravel-shopping-cart)[![Latest Unstable Version](https://camo.githubusercontent.com/7211370fc131772f5799952119e4f38102196c624d7f6d7240b8104989ec3e69/68747470733a2f2f706f7365722e707567782e6f72672f696272616e642f6c61726176656c2d73686f7070696e672d636172742f762f756e737461626c65)](https://packagist.org/packages/ibrand/laravel-shopping-cart)[![License](https://camo.githubusercontent.com/db7f45a81cb11983723c865aa5b29025e24293c5cde14af4b0fdbe5bfc652e04/68747470733a2f2f706f7365722e707567782e6f72672f696272616e642f6c61726176656c2d73686f7070696e672d636172742f6c6963656e7365)](https://packagist.org/packages/ibrand/laravel-shopping-cart)

购物车在电商场景中基本是必须的一个模块，本包是基于 [overtrue/laravel-shopping-cart](https://github.com/overtrue/laravel-shopping-cart) 进行扩展开发，主要实现了以下扩展：

1. 购物车数据支持 Database 存储
2. Item 增加 Model 属性返回。因为购物车可能是SPU或者SKU，因此直接通过 model 属性直接返回相关对象。
3. 支持多 Guard. 因为在果酱小店中有商城购物车和导购购物车。

> 已经完成了 Session 和 Database 模式下的单元测试，而且正在果酱小店产品线上使用中. 可放心使用.

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

[](#installation)

```
composer require ibrand/laravel-shopping-cart:~1.0 -vvv

```

```
php artisan vendor:publish --provider="iBrand\Shoppingcart\ServiceProvider"

```

低于 Laravel5.5 版本

`config/app.php` 文件中 'providers' 添加

```
iBrand\Shoppingcart\ServiceProvider::class

```

`config/app.php` 文件中 'aliases' 添加

```
'Cart'=> iBrand\Shoppingcart\Facade::class

```

Usage
-----

[](#usage)

### Select Storage

[](#select-storage)

You can change data Storage in `config/ibrand/cart.php` file.

```
'storage' => \iBrand\Shoppingcart\Storage\DatabaseStorage::class,

'storage' => \iBrand\Shoppingcart\Storage\SessionStorage::class,
```

If you use Database Storage, you need to execute `php artisan migrate`

### Add item to cart

[](#add-item-to-cart)

Add a new item.

```
Item | null Cart::add(
                    string | int $id,
                    string $name,
                    int $quantity,
                    int | float $price
                    [, array $attributes = []]
                 );
```

**example:**

```
$row = Cart::add(37, 'Item name', 5, 100.00, ['color' => 'red', 'size' => 'M']);
// Item:
//    id       => 37
//    name     => 'Item name'
//    qty      => 5
//    price    => 100.00
//    color    => 'red'
//    size     => 'M'
//    total    => 500.00
//    __raw_id => '8a48aa7c8e5202841ddaf767bb4d10da'
$rawId = $row->rawId();// get __raw_id
$row->qty; // 5
...
```

### Update item

[](#update-item)

Update the specified item.

```
Item Cart::update(string $rawId, int $quantity);
Item Cart::update(string $rawId, array $arrtibutes);
```

**example:**

```
Cart::update('8a48aa7c8e5202841ddaf767bb4d10da', ['name' => 'New item name');
// or only update quantity
Cart::update('8a48aa7c8e5202841ddaf767bb4d10da', 5);
```

### Get all items

[](#get-all-items)

Get all the items.

```
Collection Cart::all();
```

**example:**

```
$items = Cart::all();
```

### Get item

[](#get-item)

Get the specified item.

```
Item Cart::get(string $rawId);
```

**example:**

```
$item = Cart::get('8a48aa7c8e5202841ddaf767bb4d10da');
```

### Remove item

[](#remove-item)

Remove the specified item by raw ID.

```
boolean Cart::remove(string $rawId);
```

**example:**

```
Cart::remove('8a48aa7c8e5202841ddaf767bb4d10da');
```

### Destroy cart

[](#destroy-cart)

Clean Shopping Cart.

```
boolean Cart::destroy();
boolean Cart::clean(); // alias of destroy();
```

**example:**

```
Cart::destroy();// or Cart::clean();
```

### Total price

[](#total-price)

Returns the total of all items.

```
int | float Cart::total(); // alias of totalPrice();
int | float Cart::totalPrice();
```

**example:**

```
$total = Cart::total();
// or
$total = Cart::totalPrice();
```

### Count rows

[](#count-rows)

Return the number of rows.

```
int Cart::countRows();
```

**example:**

```
Cart::add(37, 'Item name', 5, 100.00, ['color' => 'red', 'size' => 'M']);
Cart::add(37, 'Item name', 1, 100.00, ['color' => 'red', 'size' => 'M']);
Cart::add(37, 'Item name', 5, 100.00, ['color' => 'red', 'size' => 'M']);
Cart::add(127, 'foobar', 15, 100.00, ['color' => 'green', 'size' => 'S']);
$rows = Cart::countRows(); // 2
```

### Count quantity

[](#count-quantity)

Returns the quantity of all items

```
int Cart::count($totalItems = true);
```

`$totalItems` : When `false`,will return the number of rows.

**example:**

```
Cart::add(37, 'Item name', 5, 100.00, ['color' => 'red', 'size' => 'M']);
Cart::add(37, 'Item name', 1, 100.00, ['color' => 'red', 'size' => 'M']);
Cart::add(37, 'Item name', 5, 100.00, ['color' => 'red', 'size' => 'M']);
$count = Cart::count(); // 11 (5+1+5)
```

### Search items

[](#search-items)

Search items by property.

```
Collection Cart::search(array $conditions);
```

**example:**

```
$items = Cart::search(['color' => 'red']);
$items = Cart::search(['name' => 'Item name']);
$items = Cart::search(['qty' => 10]);
```

### Check empty

[](#check-empty)

```
bool Cart::isEmpty();
```

### Specifies the associated model

[](#specifies-the-associated-model)

Specifies the associated model of item.

```
Cart Cart::associate(string $modelName);
```

**example:**

```
Cart::associate('App\Models\Product');
$item = Cart::get('8a48aa7c8e5202841ddaf767bb4d10da');
$item->product->name; // $item->product is instanceof 'App\Models\Product'
```

The Collection And Item
=======================

[](#the-collection-and-item)

`Collection` and `Overtrue\LaravelShoppingCart\Item` are instanceof `Illuminate\Support\Collection`, Usage Refer to：[Collections - Laravel doc.](http://laravel.com/docs/5.0/collections)

properties of `Overtrue\LaravelShoppingCart\Item`:

- `id` - your goods item ID.
- `name` - Name of item.
- `qty` - Quantity of item.
- `price` - Unit price of item.
- `total` - Total price of item.
- `__raw_id` - Unique ID of row.
- `__model` - Name of item associated Model.
- ... custom attributes.

And methods:

- `rawId()` - Return the raw ID of item.

Events
======

[](#events)

Event NameParameters`cart.adding`($attributes, $cart);`cart.added`($attributes, $cart);`cart.updating`($row, $cart);`cart.updated`($row, $cart);`cart.removing`($row, $cart);`cart.removed`($row, $cart);`cart.destroying`($cart);`cart.destroyed`($cart);You can easily handle these events, for example:

```
Event::on('cart.adding', function($attributes, $cart){
    // code
});
```

果酱云社区
-----

[](#果酱云社区)

 [ ![点击跳转](https://camo.githubusercontent.com/6359e5bd680f99c0f946287e22a32d5935d94a942ae2116a0b2f6f0c7a70ccca/68747470733a2f2f63646e2e67756f6a69616e672e636c75622f696d6167652f323032322f30322f31362f77755f316673306a62636f32313832673238306c317661676d376265362e706e67) ](https://guojiang.club/)

- 全网真正免费的IT课程平台
- 专注于综合IT技术的在线课程，致力于打造优质、高效的IT在线教育平台
- 课程方向包含Python、Java、前端、大数据、数据分析、人工智能等热门IT课程
- 300+免费课程任你选择

 [ ![点击跳转](https://camo.githubusercontent.com/8f168577f9682601d01cf6c726dbbccd911815b2b6d4f999e27475448f22a107/68747470733a2f2f63646e2e67756f6a69616e672e636c75622f696d6167652f323032322f30322f31362f77755f316673306c383261653170713131653433316a366e31376a7331767137362e706e67) ](https://guojiang.club/)

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 91.9% of commits — single point of failure

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 ~139 days

Recently: every ~227 days

Total

8

Last Release

2057d ago

PHP version history (2 changes)v1.1.0PHP &gt;=5.6

v1.3.4PHP &gt;=7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/05a4dd937f49471fe1d2cb4da6445668df23b2ad2422789b3aaed3ef9459c377?d=identicon)[shjchen](/maintainers/shjchen)

---

Top Contributors

[![chenbidepro](https://avatars.githubusercontent.com/u/9166101?v=4)](https://github.com/chenbidepro "chenbidepro (34 commits)")[![tangqi1916](https://avatars.githubusercontent.com/u/193469035?v=4)](https://github.com/tangqi1916 "tangqi1916 (3 commits)")

---

Tags

e-commercelaravelshopping-cartlaravelshoppingshopping cart

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[syscover/shopping-cart

Shopping Cart package

299.1k1](/packages/syscover-shopping-cart)[wearepixel/laravel-cart

A cart implementation for Laravel

1310.5k](/packages/wearepixel-laravel-cart)[ultrono/laravelshoppingcart-1

Laravel 11 and above Shopping cart

1110.0k](/packages/ultrono-laravelshoppingcart-1)

PHPackages © 2026

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