chuckbe / chuckcms-module-ecommerce

该包最新版本(v0.2.8)没有提供许可证信息。

ChuckCMS使用的电子商务模块

v0.2.8 2023-09-05 22:07 UTC

README

Latest Stable Version Total Downloads

扩展ChuckCMS以支持电子商务

将此包作为模块添加到您的ChuckCMS安装中,以添加电子商务功能。该包需要ChuckCMS和一个可用的电子商务模板(请查看chuckbe/chuckcms-template-london)。

如何安装?

使用Composer进行安装

composer require chuckbe/chuckcms-module-ecommerce

发布资源

php artisan vendor:publish --tag=chuckcms-module-ecommerce-public --force

发布配置文件

php artisan vendor:publish --tag=chuckcms-module-ecommerce-config --force

在发布的文件config/chuckcms-module-ecommerce.php中,您可以更改业务详情、语言和货币设置以及其他一般配置。

将模块添加到ChuckCMS

使用以下命令将模块发布到ChuckCMS。您可以使用相同的命令更新现有安装,但请注意,所有设置将被覆盖。

php artisan chuckcms-module-ecommerce:install

安装电子商务模块将与当前用户的角色冲突。请前往数据库并导航到'model_has_roles'表。将所有'model_type'值更改为Chuckbe\ChuckcmsModuleEcommerce\Models\User

为了使身份验证正常工作,您需要更新config/chuckcms.php。将所有控制器的命名空间从Chuckbe\Chuckcms\...更改为Chuckbe\ChuckcmsModuleEcommerce\...

迁移表

php artisan migrate

列表

  1. 将Mollie webhook URL添加到VerifyCsrfToken的可接受列表中

接口

ChuckCart

此门面控制与购物车功能相关的所有内容

  • 购物车
  • 购物车项
  • 购物车项折扣
  • 购物车项额外项
  • 购物车项选项
购物车

购物车可以包含商品和折扣,这些存储在会话中,可以使用相应的方法存储在数据库中。

方法

CartItem

购物车项可以具有选项、额外项和折扣,除了给定的属性外。

属性

  • $cartItem->rowId

返回唯一标识符。

  • $cartItem->id

返回给定的id(非唯一)。

  • $cartItem->name

返回给定的名称。

  • $cartItem->qty

返回数量。

  • $cartItem->price

返回包括或排除税收(根据设置)的价格(无折扣)。

  • $cartItem->tax

返回整个项目的最终税收。

  • $cartItem->_discount

返回总价折扣值。

  • $cartItem->total

返回小计 * 单价。

  • $cartItem->options

返回给定选项(所选属性)的商品。

  • $cartItem->extras

返回给定额外项的商品。

  • $cartItem->discounts

返回与商品相关联的CartItemDiscount集合。

  • $cartItem->model

  • $cartItem->taxRate

返回给定商品的模型或null。

  • $cartItem->isSaved

计算示例

        // NEW CART ITEM
        // TAXED            = TRUE
        // UNIT BASE        = 4.00          =           $ITEM->PRICE
        // TAXRATE          = 21            =           $ITEM->TAXRATE
        // UNIT EXTRAS      = 2.12          =           $ITEM->EXTRAS->TOTAL
        // UNIT RAW         = 6.120000      =           UNIT BASE + UNIT EXTRAS
        // UNIT             = 6.12          =           round(UNIT RAW)
        // QTY              = 6             =           $ITEM->QTY
        
        // TOTAL BASE       = 24.00         =           QTY * UNIT BASE
        // TOTAL EXTRAS     = 12.72         =           QTY * UNIT EXTRAS
        // TOTAL RAW        = 36.720000     =           QTY * UNIT RAW
        // TOTAL            = 36.72         =           QTY * UNIT
        
        // DISCOUNT BASE    = 2.400         =           calculateDiscount(TOTAL BASE)
        // DISCOUNT EXTRAS  = 1.272         =           calculateDiscount(TOTAL EXTRAS)
        // DISCOUNT RAW     = 3.672         =           calculateDiscount(TOTAL RAW)
        // DISCOUNT         = 3.67          =           round(calculateDiscount(TOTAL))
        
        // FINAL BASE       = 21.60         =           round(TOTAL BASE - DISCOUNT BASE)
        // FINAL EXTRAS     = 11.45         =           round(TOTAL EXTRAS - DISCOUNT EXTRAS)
        // FINAL RAW        = 33.048        =           TOTAL RAW - DISCOUNT RAW
        // FINAL            = 33.05         =           round(TOTAL RAW - DISCOUNT RAW)
        
        // TAX BASE         = 3.75          =           round( TAX BASE RAW )
        // TAX BASE RAW     = 3.74876033    =           ((TOTAL BASE - DISCOUNT BASE) / (100 + TAXRATE)) * TAXRATE
        // TAX EXTRAS       = 0.65          =           round( TAX EXTRAS RAW )
        // TAX EXTRAS RAW   = 0.65026415    =           ((TOTAL EXTRAS - DISCOUNT EXTRAS) / (100 + TAXRATE)) * TAXRATE
        // TAX RAW          = 4.40          =           TAX BASE RAW + TAX EXTRAS RAW
        // TAX              = 4.40          =           round(TAX RAW)
        
        // TAX RATES        = [21, 6]       =           taxRates()
        // TAX FOR RATE[21] = 3.75          =           taxForRate(21)
        // TAX FOR RATE[6]  = 0.65          =           taxForRate(6)