rezkonline/laravel-discounts

将折扣应用到Laravel的Eloquent模型中

安装: 4

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 2

类型:软件包

v1.0.0 2022-08-06 23:25 UTC

This package is not auto-updated.

Last update: 2024-09-16 08:23:59 UTC


README

GitHub Workflow Status Total Downloads License

此软件包受Marcel Pociot的Laravel Vouchers(https://github.com/beyondcode/laravel-vouchers)启发。

应用折扣到Laravel的Eloquent模型,可以在需要将折扣与特定金额关联到Eloquent模型时使用。

任何模型

<?php

use Rezkonline\Discounts\Traits\Discountable;

class Item extends Model
{
    use Discountable;
}

...

$item = Item::find(1);
$item->createDiscount(100);

要求

Laravel Discounts软件包需要PHP >= 7.2和Laravel >= 5.8。

安装

您可以通过composer安装此软件包

composer require zaratedev/laravel-discounts

该软件包将自动注册自己。

迁移

您可以发布迁移

php artisan vendor:publish --provider="Rezkonline\Discounts\DiscountsServiceProvider" --tag="migrations"

执行以下命令

php artisan migrate

使用方法

此软件包的基本概念是创建与特定模型关联的折扣。例如,您有一个订阅应用程序,前三个月必须对订阅价格应用折扣。

Rezkonline\Discounts\Traits\Discountable特质添加到您想要使用折扣的Eloquent模型中。

Rezkonline\Discounts\Traits\Discountable特质可以在数据库中兑换折扣。

创建折扣

使用外观

您可以使用Discounts外观创建一个或多个折扣

$subscription = Subscription::find(1);

$discounts = Discounts::create($subscription, 3, 100);

使用Eloquent模型

$subscription = Subscription::find(1);

// Returns an array of Discounts
$discounts = $subscription->createDiscounts(3, 100);

// Return a Discount model

$discount = $subscription->createDiscount(100);

具有到期日期的折扣

您可以创建具有到期日期的折扣。

$subscription = Subscription::find(1);

$subscription->createDiscounts(3, 100, today()->addMonths(4))

兑换折扣

当折扣被使用时,您可以兑换它。

$discount->redeem();

兑换折扣后,此软件包初始化了两个可观察事件redeemingredeemed,您可以根据应用程序的业务逻辑实现事件和监听器。

折扣已过期

如果尝试兑换已过期的折扣,该软件包将抛出以下异常:Rezkonline\Discounts\Exceptions\DiscountExpired

贡献

欢迎提交拉取请求。对于重大更改,请首先创建一个问题以讨论您想要更改的内容。

请确保适当更新测试。

联系方式

如果您在此软件包中发现问题,请发送电子邮件至zaratedev@gmail.com

许可证

MIT