autepos / discount
灵活的折扣接口
dev-main
2023-04-02 13:54 UTC
Requires
- php: ^8.0
Requires (Dev)
- laravel/pint: dev-main
- mockery/mockery: ^1.5
- phpunit/phpunit: 9.5
- symfony/var-dumper: 6.0.x-dev
This package is auto-updated.
Last update: 2024-10-01 00:07:18 UTC
README
这是一个PHP的零依赖灵活折扣库。它通常用于提供产品折扣,但也可以用于任何需要灵活性的折扣。
特性
- 零依赖
- 灵活折扣
- 可扩展
- 支持多种折扣类型
- 百分比
- 固定金额
- 买一送一 / 购买N件赠送M件 / 以N件的价格购买M件
- 以特定价格购买N件
- 折扣叠加:任何类型/多个折扣可以应用于单个/多个商品。无限制。
- 限制折扣
- 到特定商品
- 到最低购买金额
- 到最低数量
- 等等。
安装
使用以下命令安装最新版本:
composer require autepos/discount
基本用法
use Autepos\Discount\Processors\LinearDiscountProcessor; use Autepos\Discount\Contracts\DiscountableDevice; use Autepos\Discount\Contracts\DiscountInstrument; class Order implements DiscountableDevice { //... } class PromotionCode implements DiscountInstrument { //... } $discountableDevice = new Order(); $discountInstrument = new PromotionCode(); $processor = new LinearDiscountProcessor(); $processor->addDiscountableDevice($discountableDevice) ->addDiscountInstrument($discountInstrument); $discountLineList = $processor->calculate(); // Get the discount amount $discountAmount = $discountLineList->amount(); // Persist the discount $discountLineList->redeem();
添加自定义折扣处理器
use Autepos\Discount\Processors\Contracts\DiscountProcessor; class CustomDiscountProcessor implements DiscountProcessor { public function getProcessor(): string { return 'custom'; } //... }