Shopping cart for Laravel Application.
ibrand/laravel-shopping-cart is a Laravel package for shopping cart for laravel application..
It currently has 38 GitHub stars and 5.641 downloads on Packagist (latest version v1.3.4).
Install it with composer require ibrand/laravel-shopping-cart.
Discover more Laravel packages by ibrand
or browse all Laravel packages to compare alternatives.
Last updated
购物车在电商场景中基本是必须的一个模块,本包是基于 overtrue/laravel-shopping-cart 进行扩展开发,主要实现了以下扩展:
已经完成了 Session 和 Database 模式下的单元测试,而且正在果酱小店产品线上使用中. 可放心使用.
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
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 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 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 the items.
Collection Cart::all();
example:
$items = Cart::all();
Get the specified item.
Item Cart::get(string $rawId);
example:
$item = Cart::get('8a48aa7c8e5202841ddaf767bb4d10da');
Remove the specified item by raw ID.
boolean Cart::remove(string $rawId);
example:
Cart::remove('8a48aa7c8e5202841ddaf767bb4d10da');
Clean Shopping Cart.
boolean Cart::destroy();
boolean Cart::clean(); // alias of destroy();
example:
Cart::destroy();// or Cart::clean();
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();
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
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 by property.
Collection Cart::search(array $conditions);
example:
$items = Cart::search(['color' => 'red']);
$items = Cart::search(['name' => 'Item name']);
$items = Cart::search(['qty' => 10]);
bool Cart::isEmpty();
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'
Collection and Overtrue\LaravelShoppingCart\Item are instanceof Illuminate\Support\Collection, Usage Refer to:Collections - Laravel doc.
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.And methods:
rawId() - Return the raw ID of item.| Event Name | Parameters |
| ------- | ------- |
| 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
});
全网真正免费的IT课程平台
专注于综合IT技术的在线课程,致力于打造优质、高效的IT在线教育平台
课程方向包含Python、Java、前端、大数据、数据分析、人工智能等热门IT课程
300+免费课程任你选择