PHPackages                             noxoua/filament-coupons - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. noxoua/filament-coupons

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

noxoua/filament-coupons
=======================

A flexible coupon management system for Filament

1.0.3(1y ago)4116[4 PRs](https://github.com/noxoua/filament-coupons/pulls)MITPHPPHP ^8.1CI passing

Since Jun 3Pushed 6mo agoCompare

[ Source](https://github.com/noxoua/filament-coupons)[ Packagist](https://packagist.org/packages/noxoua/filament-coupons)[ Docs](https://github.com/noxoua/filament-coupons)[ GitHub Sponsors](https://github.com/noxoua)[ RSS](/packages/noxoua-filament-coupons/feed)WikiDiscussions main Synced today

READMEChangelog (4)Dependencies (12)Versions (9)Used By (0)

[![Header](https://raw.githubusercontent.com/noxoua/filament-coupons/main/art/header.jpg)](https://raw.githubusercontent.com/noxoua/filament-coupons/main/art/header.jpg)

[![Latest Version on Packagist](https://camo.githubusercontent.com/125f5201b8c656e5d47eefd3687e8fe0595c2d3afa53c63ddbd01b0eb322c91a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e6f786f75612f66696c616d656e742d636f75706f6e732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/noxoua/filament-coupons)[![GitHub Tests Action Status](https://camo.githubusercontent.com/5021f25484523fafa88d3fcc3cd14c25229c0ee0dc9cb0490cba961a7c8ee35e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6e6f786f75612f66696c616d656e742d636f75706f6e732f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/noxoua/filament-coupons/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/0b343f9cd271ab3244b2360d85d969db2b957135cb0710adf677f76a99180c6c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6e6f786f75612f66696c616d656e742d636f75706f6e732f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/noxoua/filament-coupons/actions?query=workflow%3A%22Fix+PHP+code+styling%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/f2f91ed946ad95eb72831f7f208800c29aee637acca93d70e84830b5d08dc028/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e6f786f75612f66696c616d656e742d636f75706f6e732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/noxoua/filament-coupons)

Filament Coupons
================

[](#filament-coupons)

A flexible coupon management system for Filament 3.x with customizable strategies and usage tracking.

Installation
------------

[](#installation)

```
composer require noxoua/filament-coupons

php artisan filament-coupons:install
```

Setup
-----

[](#setup)

Add the plugin to your Filament panel:

```
use Noxo\FilamentCoupons\CouponsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            CouponsPlugin::make(),
        ]);
}
```

Usage
-----

[](#usage)

### Creating Strategies

[](#creating-strategies)

Create custom coupon strategies:

```
php artisan make:coupons-strategy FreeSubscription
```

Register in config:

```
// config/filament-coupons.php
'strategies' => [
    \App\Coupons\FreeSubscriptionStrategy::class,
],
```

### Strategy Example

[](#strategy-example)

```
class FreeSubscriptionStrategy extends CouponStrategy
{
    public function schema(): array
    {
        return [
            Forms\Components\TextInput::make('days')
                ->label('Days')
                ->numeric()
                ->required(),
        ];
    }

    public function apply(Coupon $coupon): bool
    {
        $user = auth()->user();
        $days = $coupon->payload['days'] ?? 7;

        // Your business logic
        $user->extendSubscription($days);

        // Configure notifications and redirects
        $this->successNotification(
            fn ($notification) => $notification
                ->title('Coupon Applied!')
                ->body("You got {$days} free days")
        );

        $this->successRedirectUrl('/dashboard');

        // Consume coupon
        return coupons()->consume($coupon, couponable: $user);
    }
}
```

**Available methods for strategies:**

- Custom notifications
    - `successNotification`
    - `failureNotification`
- Custom redirects
    - `successRedirectUrl`
    - `failureRedirectUrl`

### Using the Action

[](#using-the-action)

The package provides a ready-to-use `ApplyCouponAction` that can be integrated anywhere in your Filament application:

**In Livewire Components:**

```
use Noxo\FilamentCoupons\Actions\ApplyCouponAction;

class Dashboard extends Component implements HasActions
{
    use InteractsWithActions;

    public function applyCouponAction(): Action
    {
        return ApplyCouponAction::make()
            ->button()
            ->label('Apply Coupon');
    }

    public function render()
    {
        return view('dashboard');
    }
}
```

```
{{-- dashboard.blade.php --}}

    Dashboard
    {{ $this->applyCouponAction }}

```

**In Resource Pages:**

```
use Noxo\FilamentCoupons\Actions\ApplyCouponAction;

class ListPosts extends ListRecords
{
    protected function getHeaderActions(): array
    {
        return [
            Actions\CreateAction::make(),
            ApplyCouponAction::make(),
        ];
    }
}
```

**In Custom Pages:**

```
use Noxo\FilamentCoupons\Actions\ApplyCouponAction;

class SettingsPage extends Page
{
    protected function getHeaderActions(): array
    {
        return [
            ApplyCouponAction::make()
                ->label('Redeem Coupon')
                ->color('success'),
        ];
    }
}
```

### Manual Using

[](#manual-using)

```
$coupon = Coupon::where('code', 'WELCOME2012')->first();

// Validate
if (coupons()->isValid($coupon)) {
    // Apply
    coupons()->applyCoupon($coupon);
}
```

Testing
-------

[](#testing)

Run the test suite using:

```
composer test
```

The tests verify all aspects of coupon functionality, including strategy handling and integration with Filament. We recommend running tests after any changes.

Credits
-------

[](#credits)

- [Noxo](https://github.com/noxoua)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance58

Moderate activity, may be stable

Popularity14

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

396d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/65667294068acb85b212281e98936b60e6b91892940cfb983f0e90953058ffe5?d=identicon)[noxoua](/maintainers/noxoua)

---

Top Contributors

[![noxoua](https://avatars.githubusercontent.com/u/142592979?v=4)](https://github.com/noxoua "noxoua (23 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

laravelfilamentfilament-plugincoupons

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/noxoua-filament-coupons/health.svg)

```
[![Health](https://phpackages.com/badges/noxoua-filament-coupons/health.svg)](https://phpackages.com/packages/noxoua-filament-coupons)
```

###  Alternatives

[ysfkaya/filament-phone-input

A phone input component for Laravel Filament

3161.3M25](/packages/ysfkaya-filament-phone-input)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.6k](/packages/rawilk-profile-filament-plugin)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

274327.2k9](/packages/croustibat-filament-jobs-monitor)[stephenjude/filament-feature-flags

Filament implementation of feature flags and segmentation with Laravel Pennant.

122177.8k1](/packages/stephenjude-filament-feature-flags)[schmeits/filament-character-counter

This is a Filament character counter TextField and Textarea form field for Filament v4 and v5

34226.4k13](/packages/schmeits-filament-character-counter)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17760.2k3](/packages/stephenjude-filament-jetstream)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
