itemvirtual/ecommerce-cart

Laravel 的购物车

1.0.1 2024-07-02 12:05 UTC

This package is auto-updated.

Last update: 2024-10-02 12:44:38 UTC


README

Latest Version on Packagist Total Downloads

这里应该放置你的描述。尽量限制为一两段话,并提及你支持的PSR,以避免用户和贡献者产生混淆。

安装

通过 composer 安装此包

composer require itemvirtual/ecommerce-cart

发布配置(使用 --force 选项更新)

php artisan vendor:publish --provider="Itemvirtual\EcommerceCart\EcommerceCartServiceProvider" --tag=config

你可以更改 config 中的 cart_session_nametaxes_included 的值

#ECOMMERCE_CART_SESSION_NAME="ecommerceCart"
ECOMMERCE_TAXES_INCLUDED=true
ECOMMERCE_CALCULATE_TOTALS=true

EcommerceCart 添加到你的 config/app 别名数组中

'EcommerceCart' => Itemvirtual\EcommerceCart\Facades\EcommerceCart::class,

用法

使用 EcommerceCart Facade

use Itemvirtual\EcommerceCart\Facades\EcommerceCart;

向购物车添加产品

EcommerceCart::addToCart([
    'id' => $Product->id,
    'title' => $Product->name,
    'price' => floatval($Product->price),
    'tax' => 21.0,
    'amount' => 1,
    'data' => [ // add your custom data here
        'tax_id' => 1
    ]
]);

增加或减少数量

EcommerceCart::incrementCartItem($Product->id);
EcommerceCart::decrementCartItem($Product->id);

从购物车中移除

EcommerceCart::removeCartItem($Product->id);

设置税率

EcommerceCart::setTax($float);

税率值将应用于购物车中的每个项目。要设置全局税率值,请使用 setCustomCartData()
它不会影响购物车项的总额计算,它只作为计算总额的数据。

EcommerceCart::setCustomCartData('tax', floatval($tax));

如果你保存了 tax_id 值,你可以使用 updateCartItemsDataValue() 来更改它

EcommerceCart::updateCartItemsDataValue($key, $value);
// EcommerceCart::updateCartItemsDataValue('tax_id', 1);

设置应用税率(例如,非欧洲国家)

EcommerceCart::setApplyTax($boolean);

获取总额

自定义总额计算

如果你需要计算购物车总额,请将你的 .env 文件中的 ECOMMERCE_CALCULATE_TOTALS 设置为 false

ECOMMERCE_CALCULATE_TOTALS=false

创建你的服务,并使用 EcommerceCart::getItems() 获取购物车内容

$cartItems = EcommerceCart::getItems();

总额计算

EcommerceCart::getTotal();
EcommerceCart::getSubtotal();
// return taxes array
EcommerceCart::getTaxTotals();
// return total tax amount
EcommerceCart::getTaxTotalValue();

// Get total without shipping
EcommerceCart::getTotalWithoutShipping();

运输

添加全球运输

$ShippingData = [
    'id' => $Shipping->id,
    'title' => $Shipping->title,
    'value' => $Shipping->value,
    'free_from' => $Shipping->free_from,
];
EcommerceCart::setShipping($ShippingData);

移除运输数据

EcommerceCart::removeShipping();

获取运输数据

EcommerceCart::getShipping();

// Returns an object with 4 or 5 properties
{
  +"id": 3
  +"title": "Europe"
  +"value": 10
  +"free_from": 200
  +"free": true
}

获取购物车项

$cartItems = EcommerceCart::getItems();

EcommerceCart::hasItems();
EcommerceCart::countItems();

销毁购物车

EcommerceCart::destroyCart();

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近的变化。

贡献

请参阅 CONTRIBUTING 了解详细信息。

鸣谢

许可

MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。