aiarmada / filament-vouchers
A Filament v5 plugin for administering vouchers provided by the AIArmada vouchers package
v1.0.0
2026-03-21 04:17 UTC
Requires
- php: ^8.4
- composer-runtime-api: ^2.1
- ext-intl: *
Requires (Dev)
- akaunting/laravel-money: ^6.0
- anourvalar/eloquent-serialize: ^1.2
- chillerlan/php-qrcode: ^5.0
- filament/blueprint: ^2.0
- filament/filament: ^5.0
- filament/spatie-laravel-media-library-plugin: ^5.0
- filament/support: *
- guzzlehttp/guzzle: ^7.0
- larastan/larastan: ^3.0
- laravel/boost: ^2.0
- laravel/cashier: ^16.0
- laravel/framework: ^12.0|^13.0
- laravel/pint: ^1.0
- laravel/prompts: ^0.3.5
- league/csv: ^9.27
- league/flysystem-aws-s3-v3: ^3.0
- lorisleiva/laravel-actions: ^2.9
- nunomaduro/essentials: ^1.0
- nunomaduro/termwind: ^2.0
- openspout/openspout: ^4.23
- orchestra/testbench: ^10.0|^11.0
- owen-it/laravel-auditing: ^14.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phiki/phiki: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^2.1
- pragmarx/google2fa: ^8.0
- pragmarx/google2fa-qrcode: ^3.0
- rector/rector: ^2.0
- spatie/browsershot: ^5.0
- spatie/laravel-activitylog: ^4.10
- spatie/laravel-data: ^4.18
- spatie/laravel-health: ^1.34
- spatie/laravel-medialibrary: ^11.0
- spatie/laravel-model-states: ^2.8
- spatie/laravel-package-tools: ^1.92
- spatie/laravel-pdf: ^2.4
- spatie/laravel-permission: ^7.2
- spatie/laravel-ray: ^1.29
- spatie/laravel-settings: ^3.6
- spatie/laravel-sluggable: ^3.7
- spatie/laravel-tags: ^4.2
- spatie/laravel-webhook-client: ^3.4
- staudenmeir/belongs-to-through: ^2.5
- staudenmeir/eloquent-has-many-deep: ^1.7
- symplify/monorepo-builder: ^12.5
README
Filament v5 admin panel plugin for managing vouchers powered by the
aiarmada/voucherspackage.
Features
- Complete Voucher Management – create, edit, view, and delete vouchers with a rich Filament UI
- Usage Tracking – monitor redemptions, discounts applied, and user activity
- Wallet System – allow users to save vouchers for later use
- Dashboard Widgets – stats overview, redemption trends, and usage timelines
- Cart Integration – seamless voucher application when
aiarmada/filament-cartis installed - Multi-Tenant Support – owner-scoped resources for marketplace scenarios
- Targeting Configuration – define preset targeting rules for vouchers
- Stacking Rules – configure how vouchers combine with each other
Installation
composer require aiarmada/filament-vouchers
Register the plugin in your panel provider:
use AIArmada\FilamentVouchers\FilamentVouchersPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentVouchersPlugin::make(), ]); }
Publish the configuration:
php artisan vendor:publish --tag=filament-vouchers-config
Configuration
// config/filament-vouchers.php return [ // Navigation group for resources 'navigation_group' => 'E-commerce', // Default currency for monetary displays 'default_currency' => 'MYR', // Table polling interval (seconds or null to disable) 'polling_interval' => 60, // Resource navigation ordering 'resources' => [ 'navigation_sort' => [ 'vouchers' => 40, 'voucher_usage' => 41, ], ], // Order resource for linking (set class-string or null) 'order_resource' => null, // Owner types for multi-tenant voucher assignment 'owners' => [], ];
Resources
Voucher Resource
Manage vouchers with full CRUD operations:
- Code & Name – unique voucher identifier and display name
- Type – percentage, fixed amount, or free shipping
- Value – discount amount with currency support
- Usage Limits – global and per-user redemption limits
- Scheduling – start and expiry dates
- Conditions – target rules via DSL presets
- Owner Assignment – multi-tenant voucher ownership
Voucher Usage Resource
Track all voucher redemptions:
- User/redeemer information
- Discount amounts applied
- Redemption channel (automatic, manual, API)
- Order linking when configured
Widgets
The plugin provides these dashboard widgets:
| Widget | Description |
|---|---|
VoucherStatsWidget |
Overview stats (total, active, upcoming, redemptions) |
RedemptionTrendChart |
Redemption trends over time |
VoucherCartStatsWidget |
Cart-specific voucher metrics |
VoucherWalletStatsWidget |
Wallet entry statistics |
VoucherUsageTimelineWidget |
Redemption timeline for a voucher |
AppliedVoucherBadgesWidget |
Shows applied vouchers on a cart |
QuickApplyVoucherWidget |
Inline voucher application form |
VoucherSuggestionsWidget |
Smart voucher suggestions for carts |
AppliedVouchersWidget |
Table of applied vouchers on a cart |
Cart Integration
When aiarmada/filament-cart is installed, the plugin automatically enables:
- Deep linking from usage records to cart views
- Voucher application actions on cart pages
- Applied voucher widgets on cart detail pages
Using Cart Actions
Add voucher actions to your cart resource pages:
use AIArmada\FilamentVouchers\Extensions\CartVoucherActions; protected function getHeaderActions(): array { return [ CartVoucherActions::applyVoucher(), CartVoucherActions::showAppliedVouchers(), ]; }
Available actions:
applyVoucher()– modal form to enter and apply a voucher codeshowAppliedVouchers()– modal displaying currently applied vouchersremoveVoucher($code)– remove a specific voucher from cart
Multi-Tenant Ownership
Configure owner types to enable voucher assignment to specific entities:
// config/filament-vouchers.php 'owners' => [ [ 'label' => 'Store', 'model' => App\Models\Store::class, 'title_attribute' => 'name', 'subtitle_attribute' => 'email', // Optional 'search_attributes' => ['name', 'code'], ], [ 'label' => 'Vendor', 'model' => App\Models\Vendor::class, 'title_attribute' => 'company_name', 'search_attributes' => ['company_name', 'email'], ], ],
When configured, a searchable owner selector appears in the voucher form.
Documentation
- Overview – Package introduction and quick start
- Installation – Installation guide
- Configuration – All configuration options
- Usage – Resources, pages, and actions
- Widgets – Available widgets and customization
- Cart Integration – Voucher-cart integration guide
- Troubleshooting – Common issues and solutions
License
MIT License. See LICENSE for details.