escolasoft / cart
Escola 无头 LMS 购物车
Requires
- php: >=7.4
- escolalms/auth: ^0 >=0.1.86
- escolalms/categories: ^0 >=0.1.21
- escolalms/core: ^1.2
- escolalms/files: ^0
- escolalms/payments: ^0 >=0.2.0
- escolalms/tags: ^0 >=0.1.14
- escolalms/templates: ^0 >=0.2.5
- laravel/framework: >=8.0
- maatwebsite/excel: ^3.1
- treestoneit/shopping-cart: ^1.4
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.10
- escolalms/courses: ^0
- nunomaduro/collision: >=5.5
- nunomaduro/larastan: >=0.7.6
- orchestra/testbench: >=7.0
- phpunit/phpunit: ^9.0
- dev-main / 0.x-dev
- 0.4.78
- 0.4.77
- 0.4.76
- 0.4.75
- 0.4.74
- 0.4.73
- 0.4.72
- 0.4.71
- 0.4.70
- 0.4.69
- 0.4.68
- 0.4.67
- 0.4.66
- 0.4.65
- 0.4.64
- 0.4.63
- 0.4.62
- 0.4.61
- 0.4.60
- 0.4.59
- 0.4.58
- 0.4.57
- 0.4.56
- 0.4.55
- 0.4.54
- 0.4.53
- 0.4.52
- 0.4.51
- 0.4.50
- 0.4.49
- 0.4.48
- 0.4.47
- 0.4.46
- 0.4.45
- 0.4.44
- 0.4.43
- 0.4.42
- 0.4.41
- 0.4.40
- 0.4.39
- 0.4.38
- 0.4.37
- 0.4.36
- 0.4.35
- 0.4.34
- 0.4.33
- 0.4.32
- 0.4.31
- 0.4.30
- 0.4.29
- 0.4.28
- 0.4.27
- 0.4.26
- 0.4.25
- 0.4.24
- 0.4.23
- 0.4.22
- 0.4.21
- 0.4.20
- 0.4.19
- 0.4.18
- 0.4.17
- 0.4.16
- 0.4.15
- 0.4.14
- 0.4.13
- 0.4.12
- 0.4.11
- 0.4.10
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.20
- 0.3.19
- 0.3.18
- 0.3.17
- 0.3.16
- 0.3.15
- 0.3.14
- 0.3.13
- 0.3.12
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.19
- 0.1.18
- 0.1.17
- 0.1.16
- 0.1.15
- 0.1.14
- 0.1.13
- 0.1.12
- 0.1.11
- 0.1.10
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-feature/attach-productable
- dev-qunabu-patch-1
- dev-feature/WELLMS-389
This package is auto-updated.
Last update: 2024-09-24 07:56:05 UTC
README
目的
此软件包允许您管理用户购物车,并定义什么是可购买的产品(以及什么是产品,即可销售的东西),然后可以添加到购物车中。此软件包还允许您的用户创建订单并购买购物车中的内容。
安装
composer require escolalms/cart
php artisan migrate
php artisan db:seed --class="EscolaLms\Cart\Database\Seeders\CartPermissionSeeder"
依赖关系
此软件包依赖于EscolaLms/Payments软件包来创建和处理订单的支付。
用法
产品
EscolaLms\Cart\Models\Product
是一个表示可以添加到购物车并购买的具体购买物品的抽象模型。产品本身除了可以购买和分配给用户外,没有其他功能。
产品由一个(单类型产品)或多个(捆绑类型产品)产品组成 - 这是指代表在您的(LMS)应用程序中销售的具体物品的模型,例如课程。产品必须实现Productable接口。
产品可购买
EscolaLms\Cart\Contracts\Productable
接口定义了表示可销售物品的模型如何表现以及它们必须包含哪些方法和关系。
定义产品可购买
要创建(并销售)产品,您需要定义产品可购买。产品可购买是一个实现了EscolaLms\Cart\Models\Contracts
接口的模型(并可能使用EscolaLms\Cart\Contracts\ProductableTrait
)。在将此接口添加到您的模型后,您需要在Service Providers的boot方法中调用EscolaLms\Cart\Facades\Shop::registerProductableClass(Productable::class)
。这将使您可以使用此产品可购买模型作为(产品的一部分)然后可以销售。
商店外观
商店外观包装EscolaLms\Cart\Services\ProductService
,提供与注册产品可购买和管理产品相关的方法。
购物车模型
EscolaLms\Cart\Models\Cart
是一个表示用户购物车的模型。每个用户在给定时间可以有一个活动的(现有)购物车。
要为给定的用户创建购物车(或检索当前活动的购物车),您需要调用EscolaLms\Cart\Services\ShopService::cartForUser($user)
方法。
购物车管理器
购物车及其内容是通过附加到该购物车的EscolaLms\Cart\Services\CartManager
类实例来管理的,而不是直接操作购物车对象。CartManager
由EscolaLms\Cart\Services\ShopService
使用(您可能不需要直接使用它,因为ShopService中的方法代表了所有合理的使用案例)。
商店服务
商店服务包含与购物车内容管理(添加/删除产品)以及购买购物车(将购物车数据存储为订单并处理支付流程)相关的功能。
端点
测试
运行./vendor/bin/phpunit
以运行测试。查看tests目录,因为它是一个很好的起点,可以了解此软件包的工作原理。特别是注意tests/Mocks目录,因为它代表了产品可购买和使用产品特征及接口的核心概念。
事件
EscolaLms\Cart\Events\AbandonedCartEvent
- 当计划任务找到一个24小时以上的非空购物车时触发EscolaLms\Cart\Events\OrderCancelled
- 在支付处理取消后触发,将订单标记为已取消EscolaLms\Cart\Events\OrderCreated
- 创建新订单时触发EscolaLms\Cart\Events\OrderPaid
- 订单付款后触发EscolaLms\Cart\Events\ProductableAttached
- 将可产品附加到用户后触发(例如,在包含该可产品的产品附加到用户后,或使用管理端点管理可产品附加时)EscolaLms\Cart\Events\ProductableDetached
- 与ProductableAttached类似EscolaLms\Cart\Events\ProductAddedToCart
- 产品添加到购物车时触发EscolaLms\Cart\Events\ProductAttached
- 产品附加到用户时触发(在购买产品或使用管理端点添加产品后)EscolaLms\Cart\Events\ProductBought
- 用户购买产品后触发EscolaLms\Cart\Events\ProductDetached
- 与ProductAttached类似EscolaLms\Cart\Events\ProductRemovedFromCart
- 与ProductAdded类似
监听器
EscolaLms\Cart\Listeners\PaymentSuccessListener
- 此监听器在为给定订单创建的支付被标记为已付款后处理将订单标记为已付款(监听EscolaLms\Payments\Events\PaymentSuccess
事件)
如何在前端使用此功能
管理面板
左侧菜单
产品列表
创建/编辑产品
订单列表
订单详情
权限
路线图。待办事项。故障排除
- ???