mohammad-alavi / laravel-shoppingcart
Laravel购物车实现
Requires
- php: ^7.4|^8.0
- laravel/framework: ^8.28.1
- moneyphp/money: ^3.3.1
Requires (Dev)
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-09-15 23:21:35 UTC
README
Laravel购物车实现。
基于johannesschobel laravel-shoppingcart
安装
通过Composer安装此包。
composer require mohammadalavi/laravel-shoppingcart
然后,您只需使用以下命令添加提供的migration
文件
php artisan vendor:publish --provider="MohammadAlavi\ShoppingCart\ShoppingCartServiceProvider" --tag="migrations"
然后,您使用以下命令迁移您的数据库
php artisan db:migrate
如果您想,您可以使用以下命令覆盖此包的基本配置
php artisan vendor:publish --provider="MohammadAlavi\ShoppingCart\ShoppingCartServiceProvider" --tag="config"
这将把shoppingcart
配置文件复制到您的config
文件夹中。使用此文件,您可以自定义包的各种参数。目前可用的并不多,但我将不断增加;)
用法
ShoppingCart
门面提供了一些处理购物车的一些便捷方法。这些方法包括
从数据库中加载ShoppingCart
ShoppingCart::load($identifier, $name = null);
从数据库中加载带有identifier
和name
的购物车。如果没有提供name
,将使用默认名称default
。如果不存在购物车,将返回一个空购物车。只要没有存储项目,这个购物车就保持临时状态。
清除ShoppingCart
ShoppingCart::clear();
从数据库中删除当前购物车实例。
向购物车添加项目
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欧元到购物车。客户指定了颜色和尺寸。
然而,您可以将Buyable
接口添加到您的产品中,以简化此过程。这需要您在模型上实现额外的方法(您可以通过添加CanBePurchased
特性来“最佳猜测”)。
这将允许您仅添加一个特定的产品
$product = Product::find(1234); // remember, Product must implement the Buyable interface! ShoppingCart::addBuyable( $product, 10, ['size' => 'large', 'color' => 'black'] );
将得到与上面相同的购物车。但是,id
、name
、price
和uri
直接从模型中获取!
从购物车中删除项目
ShoppingCart::removeItem($row)
要从购物车中删除项目,您需要其rowId
。此rowId
可以通过例如使用ShoppingCart::load()
或ShoppingCart::getContent()
方法获取。
$rowId = "30168b5f5a78bc48d08b4d5a125a9d90"; ShoppingCart::removeItem($rowId);
更新购物车中的项目
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()