crumbls/subscriptions-filament
A Filament plugin for managing plans, subscriptions, and subscriber lifecycles in Laravel admin panels, with ready-made resources, widgets, and actions for viewing and controlling billing data.
crumbls/subscriptions 2.x is installed.php artisan vendor:publish and php artisan migrate.PlansTable to a Filament resource or page to manage subscription plans.MoneyField and CurrencyField in your plan create/edit forms.Where to look first: The package README for PlansTable, MoneyField, and CurrencyField usage examples. Check your Plan model to confirm it has a decimal price column (e.g., decimal:2 cast) and any required currency columns.
First use case: Create a Filament resource for your Plan model, replace the default table with PlansTable, and use MoneyField / CurrencyField in the form. As of v2.1.1, you no longer need to implement formattedPrice() on your Plan model—the package formats decimal prices automatically. If you already have a custom formattedPrice() method, it will still be honored.
PlansTable as the table in a Filament resource for your Plan model. It provides a ready-made table for listing plans with formatted prices, likely including columns for name, price, interval, etc.MoneyField for the price input and CurrencyField for currency selection in create/edit forms. These fields are now compatible with crumbls/subscriptions 2.x without requiring an unreleased currency service.formattedPrice() on your Plan model. The package will call it instead of its default decimal formatting.PlansTable with other Filament table columns/actions, or use the fields standalone in any form.19.99), not as integer cents. If your price column is stored in cents, either convert it to decimal or implement formattedPrice() to handle the conversion.formattedPrice(): If your Plan model already implements formattedPrice(), ensure it returns a string and does not rely on the removed currency service. The package will use it as-is, which can override the built-in formatting.crumbls/subscriptions 2.x. If you are on an older version, upgrade before using this package version.price column cast and whether formattedPrice() exists on your model. Use dd($plan->formattedPrice()) to see what the package receives.PlansTable, MoneyField, or CurrencyField classes if you need additional columns or validation. For currency behavior, consider overriding the field’s options or providing your own currency list via config if available.How can I help you explore Laravel packages today?