jackfinal/laravel-shopping-cart 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jackfinal/laravel-shopping-cart

最新稳定版本:v1.0.0

Composer 安装命令:

composer require jackfinal/laravel-shopping-cart

包简介

Shopping cart for Laravel Application.

README 文档

README

Shopping cart for Laravel Application.

Build Status Latest Stable Version Latest Unstable Version Scrutinizer Code Quality Code Coverage Total Downloads License

NOTICE

Thank you overtrue for adding cache driver storage CartCache::class and config to configure driver types. Config/cart.php default defaults to cache

php artisan vendor:publish --provider="Overtrue\LaravelShoppingCart\ServiceProvider"

return [

//默认存储渠道,session,cache
'default'=> 'cache'

];

use 

ShoppingCart::setName($user_id);

# Installation

$ composer require "jackfinal/laravel-shopping-cart:~1.0"


  or add the following line to your project's `composer.json`:

"require": {

"jackfinal/laravel-shopping-cart": "~1.0"

}


then

$ composer update


After completion of the above, add the follow line to the section `providers` of `config/app.php`:

Overtrue\LaravelShoppingCart\ServiceProvider::class,


And add the follow line to the section `aliases`:

'ShoppingCart' => Overtrue\LaravelShoppingCart\Facade::class,


# Usage

### Add item to cart

Add a new item.

Item | null ShoppingCart::add(

                string | int $id,
                string $name,
                int $quantity,
                int | float $price
                [, array $attributes = []]
             );

**example:**

$row = ShoppingCart::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 the specified item.

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


**example:**

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


### Get all items

Get all the items.

Collection ShoppingCart::all();


**example:**

$items = ShoppingCart::all();



### Get item

Get the specified item.

Item ShoppingCart::get(string $rawId);


**example:**

$item = ShoppingCart::get('8a48aa7c8e5202841ddaf767bb4d10da');


### Remove item

Remove the specified item by raw ID.

boolean ShoppingCart::remove(string $rawId);


**example:**

ShoppingCart::remove('8a48aa7c8e5202841ddaf767bb4d10da');


### Destroy cart

Clean Shopping Cart.

boolean ShoppingCart::destroy(); boolean ShoppingCart::clean(); // alias of destroy();


**example:**

ShoppingCart::destroy();// or ShoppingCart::clean();


### Total price

Returns the total of all items.

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


**example:**

$total = ShoppingCart::total(); // or $total = ShoppingCart::totalPrice();



### Count rows

Return the number of rows.

int ShoppingCart::countRows();


**example:**

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



### Count quantity

Returns the quantity of all items

int ShoppingCart::count($totalItems = true);


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

**example:**

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


### Search items

Search items by property.

Collection ShoppingCart::search(array $conditions);


**example:**

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


### Check empty

bool ShoppingCart::isEmpty();


### Specifies the associated model

Specifies the associated model of item before you add items to cart.

Cart ShoppingCart::associate(string $modelName);


**example:**

ShoppingCart::associate('App\Models\Product');

ShoppingCart::add(37, 'Item name', 5, 100.00, ['color' => 'red', 'size' => 'M']);

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



# 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

| Event Name | Parameters |
| -------  | ------- |
| `shopping_cart.adding`  | ($attributes, $cart); |
| `shopping_cart.added`  | ($attributes, $cart); |
| `shopping_cart.updating`  | ($row, $cart); |
| `shopping_cart.updated`  | ($row, $cart); |
| `shopping_cart.removing`  | ($row, $cart); |
| `shopping_cart.removed`  | ($row, $cart); |
| `shopping_cart.destroying`  | ($cart); |
| `shopping_cart.destroyed`  | ($cart); |

You can easily handle these events, for example:

Event::listen('shopping_cart.adding', function($attributes, $cart){

// code

});


## PHP 扩展包开发

> 想知道如何从零开始构建 PHP 扩展包?
>
> 请关注我的实战课程,我会在此课程中分享一些扩展开发经验 —— [《PHP 扩展包实战教程 - 从入门到发布》](https://learnku.com/courses/creating-package)

# License

MIT

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-07-30