escolalms/vouchers

Escola LMS 代金券

0.1.21 2024-02-14 13:41 UTC

README

swagger codecov phpunit downloads downloads downloads Maintainability

用途

此包允许您定义可以在下订单之前应用于用户购物车的优惠券,根据多个可配置的规则计算折扣。

安装

  • composer require escolalms/vouchers
  • php artisan migrate
  • php artisan db:seed --class="EscolaLms\Vouchers\Database\Seeders\VoucherPermissionsSeeder"

依赖项

此包依赖于(并扩展)EscolaLms/Cart 包,不能单独使用。

用法

优惠券规则

每个优惠券定义了一组规则,当用户尝试将优惠券添加到购物车时进行检查。只有当所有条件都满足时,优惠券(折扣)才能应用于特定的购物车内容。某些条件根据优惠券类型的不同而有所不同。

  • 最小/最大金额 - 购物车金额必须至少为 "最小" 金额,如果购物车金额超过 "最大" 金额,则折扣仅按 "最大" 水平计算
  • 使用限制 - 优惠券在达到全局或用户限制后不能使用
  • 排除促销 - 如果购物车中有已打折价格的产品,则不能使用优惠券

优惠券类型

此包定义了四种折扣类型,代表了四种不同的折扣计算策略。有两种类型与整个购物车相关,有两种类型与指定的产品相关。

固定购物车金额优惠券

类型为 EscolaLms\Vouchers\Enums::CART_FIXED 的优惠券从购物车总价格中扣除固定金额。请参阅 EscolaLms\Vouchers\Strategies\CartFixedDiscountStrategy

  • 购物车中必须包含 "包含产品" 之一
  • 购物车中不能包含 "排除产品" 之一
  • 购物车中必须包含 "包含类别" 之一
  • 购物车中不能包含 "排除类别" 之一

百分比购物车金额优惠券

类型为 EscolaLms\Vouchers\Enums::CART_PERCENT 的优惠券从购物车总价格中扣除基于百分比的金额,但仅针对不在 "排除产品" 或 "排除类别" 列表中的产品。请参阅 EscolaLms\Vouchers\Strategies\CartPercentDiscountStrategy

  • 购物车中必须包含 "包含产品" 之一
  • 购物车中必须包含 "包含类别" 之一

固定产品优惠券

类型为 EscolaLms\Vouchers\Enums::PRODUCT_FIXED 的优惠券从产品价格中扣除固定金额,但仅针对 "包含产品" 中的唯一产品。产品必须在 "包含产品" 中指定。请参阅 EscolaLms\Vouchers\Strategies\ProductFixedDiscountStrategy

百分比产品优惠券

类型为 EscolaLms\Vouchers\Enums::PRODUCT_FIXED 的优惠券从产品价格中扣除基于百分比的金额。产品必须在 "包含产品" 中指定。请参阅 EscolaLms\Vouchers\Strategies\ProductPercentDiscountStrategy

如何使用优惠券

可以使用 POST /api/cart/voucher/ 端点将优惠券添加到购物车。

端点

所有端点都在 swagger 中定义。

测试

运行 ./vendor/bin/phpunit 来运行测试。请参阅 tests 目录。

测试详情 codecov phpunit

事件

此包没有发出任何事件。

监听器

在此包中未指定任何监听器。

如何在前端使用此功能

管理面板

菜单

Menu

优惠券列表

List of Coupons

创建/编辑优惠券

Creating/editing Coupon

权限

权限在 枚举 中定义,并在 种子器 中初始化。

路线图。待办事项。故障排除

  • 从购物车中删除优惠券的端点