johannesschobel / laravel-shoppingcart
为Laravel实现的购物车功能
Requires
- php: >=7.0
- laravel/framework: ^5.4
- moneyphp/money: ^3.0
This package is not auto-updated.
Last update: 2024-09-20 01:31:48 UTC
README
为Laravel应用程序提供邀请机制。请注意,此包不处理如何将邀请发送给用户(例如,通过电子邮件)。
安装
首先,将相应的行添加到您的composer文件
"require" : { ... , "johannesschobel/laravel-shoppingcart": "0.*" , }
然后运行composer install
来安装新组件。
然后,将包中相应的ServiceProvider
添加到您的config/app.php
配置文件中,例如
'providers' => [ ... , JohannesSchobel\ShoppingCart\ShoppingCartServiceProvider::class, ],
并注册外观
'aliases' => [ ... , 'ShoppingCart' => JohannesSchobel\ShoppingCart\Facades\ShoppingCart::class, ],
然后,您只需使用以下命令添加提供的migration
文件
php artisan vendor:publish --provider="JohannesSchobel\ShoppingCart\ShoppingCartServiceProvider" --tag="migrations"
然后使用以下命令迁移您的数据库
php artisan db:migrate
如果您愿意,可以使用以下命令覆盖此包的基本配置
php artisan vendor:publish --provider="JohannesSchobel\ShoppingCart\ShoppingCartServiceProvider" --tag="config"
这将把shoppingcart
配置文件复制到您的config
文件夹中。使用此文件,您可以自定义包的各种参数。目前可用的选项不多,但我会继续添加更多;)
使用方法
ShoppingCart
外观提供了一些处理购物车的便捷方法。这些方法包括
从数据库中LOAD
购物车
ShoppingCart::load($identifier, $name = null);
使用数据库中的identifier
和name
加载购物车。如果没有提供name
,则使用默认名称default
。如果没有找到购物车,则返回一个空购物车。只要没有存储任何项目,此购物车将保持临时状态。
CLEAR
购物车
ShoppingCart::clear();
从数据库中删除当前购物车的实例。
向购物车中ADD
项目
ShoppingCart::addItem( $id, $name = null, $type = null, $qty = 1, Money $price = null, $uri = null, array $options = [] );
此方法允许向购物车中添加项目。基本用法允许您直接指定要设置的项目。例如
ShoppingCart::addItem( '1234', 'Basic T-Shirt', 'products', 10, new Money(999, new Currency('EUR')), // note the value is added in cents! '/products/1234', ['size' => 'large', 'color' => 'black'] );
将10件“基础T恤”(每件9.99欧元)添加到购物车中。客户指定了颜色和尺寸。
您可以将“可购买”接口添加到您的产品中,以简化此过程。这需要您在模型上实现额外的方法(您可以通过添加CanBePurchased
特质来做出“最佳猜测”)。
这将允许您添加特定产品
$product = Product::find(1234); // remember, Product must implement the Buyable interface! ShoppingCart::addBuyable( $product, 10, ['size' => 'large', 'color' => 'black'] );
将得到与上面相同的购物车。但是,id
、name
、price
和uri
直接从模型中获取!
从购物车中REMOVE
项目
ShoppingCart::removeItem($row)
要从购物车中删除项目,您需要其rowId
。此rowId
可以通过例如通过ShoppingCart::load()
或ShoppingCart::getContent()
方法获得。
$rowId = "30168b5f5a78bc48d08b4d5a125a9d90"; ShoppingCart::removeItem($rowId);
在购物车中UPDATE
项目
ShoppingCart::updateItem($row, $qty = 1, array $options = [])
允许您更新购物车中的给定行。此rowId
可以通过例如通过ShoppingCart::load()
或ShoppingCart::getContent()
方法获得。
$rowId = "30168b5f5a78bc48d08b4d5a125a9d90"; ShoppingCart::updateItem($rowId, 1, ['color' => 'red']);
将更新项目的数量和选项(例如,要购买的产品为“红色”而不是“黑色”)。
项目/价格/税费
购物车还提供了以下方法
- 获取购物车中项目的数量 =>
getItemCount()
- 获取购物车的内容。这返回购物车中的所有项目 =>
getContent()
- 获取当前购物车的价值
- 获取购物车的税费 =>
getTaxes()
- 获取总额(包含税费的价值)=>
getTotal()
- 获取小计(不含税费的价值)=>
getSubTotal()
- 获取购物车的税费 =>
- 获取“相关”的
Buyable
模型 =>resolveModel()