moirei/laravel-vouchers

Manage ecommerce vouchers


README

An ecommerce voucher generator. It associates vouchers with one or more eloquent model and allows multiple models to own/redeem vouchers.

✔️ Requirements

  • Laravel ^8
  • PHP ^8.1

Documentation

All documentation is available at the documentation site.

💚 Unique Features

  • Associate one voucher with one or more items
  • Flexible redeemer models: vouchers can be redeemed by any model. User, Admin, Guest models.
  • Flexible voucher models: voucher can be associated with any model. Product, Variant, Ticket, whatever else.
  • Use vouchers once or multiple times
  • Limit access: can define model instances that are allowed or excluded from redeeming a Voucher
  • Multiple limit scheme; exhaust redeems per instance, per user or per product

Example usage:

$product = Product::find(1);
$voucher = $product->createVoucher();

$user->redeem($voucher);

Installation

You can install the package via composer:

composer require moirei/laravel-vouchers

Next publish the migration with

php artisan vendor:publish --tag="vouchers-migrations"

Then run the migrations:

php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="vouchers-config"

Notes

  • The allow_models and deny_models attributes mentioned above are actually saved as can_redeem and cannot_redeem internally. They are mutated on boot creating or updating.
  • If you manage your resources with Nova, Nova Multiselect can be used directly with the can_redeem and cannot_redeem attributes. Example code here.

Credits

License

The MIT License (MIT). Please see License File for more information.