immera / ecom-discount
这是一个在API端实现折扣的常用包。
0.0.3
2023-06-13 18:16 UTC
Requires
- php: >=8
- illuminate/support: >=8
This package is auto-updated.
Last update: 2024-09-13 20:46:22 UTC
README
这将为电子商务网站提供一个简单的折扣模块。
简介
一般来说,大多数电子商务网站都需要一个折扣模块来增强其产品。我提出的一个简单包,对于实现折扣非常有帮助。此模块的核心功能是确定折扣是否适用,然后应用它。在此包中,我们定义了两种方法:一种用于检查折扣是否适用,另一种用于应用折扣。
为确保折扣的有效性,我们包含了基本的验证。这些验证包括以下标准:
- 检查折扣是否当前有效。
- 验证订单是否满足折扣的最低数量要求。
- 确认订单是否满足设定的最低金额门槛。
- 限制特定用户使用折扣券的次数。
通过这些验证,我们可以确保只有在满足指定条件时才应用折扣。此包为将折扣模块集成到电子商务网站提供了一个坚实的基础,使实现过程更加顺畅。
安装
composer require immera/ecom-discount
使用
安装完成后,您将可以使用 Immera\EcomDiscount\Discount
类,您可以使用它与laravel应用解析器一起使用,例如
$discount = app(Immera\EcomDiscount\Discount::class)
来实例化折扣。现在,这个 $discount
将有两个方法:
check(string $code, DiscountableCart $cart, DiscounteeUser $user)
consume(string $code, DiscountableOrder $order, DiscounteeUser $user)
在使用此包之前,您需要了解一些术语。
string $code
- 这将是折扣券代码,我们将用它来识别单个折扣。
DiscountableCart $cart
- 这个 DiscountableCart 将是一个接口,因此您需要传递一个实现了此接口的类的对象。
DiscountableCart 接口需要以下方法
getQuantity()
应返回订单中的商品数量getAmount()
返回订单的最终总金额。
DiscountableOrder $order
这个 DiscountableOrder 也是一个接口,因此您需要传递一个实现了此接口的类的对象。
DiscountableOrder 接口需要 DiscountableCart 的所有方法,并且还需要以下方法
getId()
返回订单的iduseDiscount(DiscountCoupon $discount)
这里您需要更新订单,以考虑它使用了传递给参数的此折扣,这样您就可以在特定订单上使用折扣后执行一些操作。