escolalms / 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:52:41 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)应用中销售的具体事物的模型,例如课程。可销售产品必须实现可销售产品接口。
可销售产品
EscolaLms\Cart\Contracts\Productable
接口定义了代表可销售事物的模型如何表现以及它们必须包含哪些方法和关系。
定义可销售产品
要创建(并销售)产品,您需要定义可销售产品。可销售产品是实现EscolaLms\Cart\Models\Contracts
接口的模型(并可能使用EscolaLms\Cart\Contracts\ProductableTrait
)。在将此接口添加到您的模型后,您需要在您的服务提供者中的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 目录,因为它代表了 Productable 和 Productable Trait & Interface 的核心概念。
事件
EscolaLms\Cart\Events\AbandonedCartEvent
- 当计划任务找到24小时前非空的购物车时触发EscolaLms\Cart\Events\OrderCancelled
- 在支付处理被取消后触发,标记订单为已取消EscolaLms\Cart\Events\OrderCreated
- 当创建新订单时触发EscolaLms\Cart\Events\OrderPaid
- 订单支付后触发EscolaLms\Cart\Events\ProductableAttached
- 当 Productable 被附加到用户(例如,当包含该 Productable 的产品被附加到用户或使用管理端点管理 Productable 附加项时)后触发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
事件)
如何在前端使用此功能
管理面板
左侧菜单
产品列表
创建/编辑产品
订单列表
订单详情
权限
路线图。待办事项。故障排除
- ???