lenius/laravel-ecommerce

适用于laravel 10 & 11的购物篮包

v2.0.5 2024-03-13 19:26 UTC

This package is auto-updated.

Last update: 2024-09-14 23:46:15 UTC


README

Latest Version on Packagist tests Code Coverage Total Downloads License

安装

您可以使用composer安装此包:

composer require lenius/laravel-ecommerce

然后您可以导出配置

php artisan vendor:publish --provider="Lenius\LaravelEcommerce\EcommerceServiceProvider" --tag="config"
php artisan vendor:publish --provider="Lenius\LaravelEcommerce\EcommerceServiceProvider" --tag="lang"
php artisan vendor:publish --provider="Lenius\LaravelEcommerce\EcommerceServiceProvider" --tag="views"

概述

查看以下主题以获取更多信息:

使用方法

购物车提供了以下方法供您使用:

Cart::insert()

向购物车添加商品非常简单,您只需使用insert()方法,该方法接受多种参数。

在其最基本的形式中,您可以指定要添加到购物车的商品的id、名称、数量和价格。

Cart::insert(new Item([
    'id'       => 'foo',
    'name'     => 'bar',
    'price'    => 100,
    'quantity' => 2,
    'weight'   => 300
]));

Cart::insert()接受实现ItemInterface的类

class CustomItem implements ItemInterface
{

}

向购物车中添加带有选项的商品

向购物车中添加商品非常简单。必需的键是id、name、price和quantity,尽管您可以传递任何您喜欢的自定义数据。如果选项商品包含价格或重量,则这些值将添加到产品的总重量/价格中。

Cart::insert(new Item([
    'id'         => 'foo',
    'name'       => 'bar',
    'price'      => 100,
    'quantity'   => 2,
    'weight'     => 300,
    'options'    => [
       [
        'name'   => 'Size',
        'value'  => 'L',
        'weight' => 50,
        'price'  => 10
       ],
     ],
]));

设置商品税率

您可以传递给insert方法的另一个键是'tax'。这是一个百分比,您希望将其添加到商品的价格上。

在下面的示例中,我们将使用25%的税率。

Cart::insert(new Item([
    'id'       => 'mouseid',
    'name'     => 'Mouse',
    'price'    => 100,
    'quantity' => 1,
    'tax'      => 25,
    'weight'   => 200
]));

更新购物车中的商品

您可以通过更新购物车项的任何属性来更新您的购物车中的商品。例如,如果您在一个购物车循环中,则可以使用下面的示例来更新特定的商品。

foreach (Cart::contents() as $item) {
    $item->name = 'Foo';
    $item->setQuantity(1);
}

销毁/清空购物车

您可以使用destroy()方法完全清空/销毁购物车。

Cart::destroy()

检索购物车内容

您可以使用以下方法循环购物车内容:

Cart::contents();

您还可以通过将true作为第一个参数传递来以数组的形式返回购物车项。

Cart::contents(true);

检查购物车是否包含商品

Cart::has($itemIdentifier);

从购物车中移除商品

Cart::remove($itemIdentifier)

增加购物车中的商品数量

Cart::inc($itemIdentifier)

减少购物车中的商品数量

Cart::dec($itemIdentifier)

事件

购物车还内置了事件。有五个事件可供您监听。

测试

使用以下命令运行测试:

composer psalm
composer stan
composer test
composer test-coverage

贡献

有关详细信息,请参阅CONTRIBUTING

安全性

如果您发现任何安全相关的问题,请通过电子邮件info@lenius.dk报告,而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件