mortezaa97 / inventories
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/mortezaa97/inventories
Requires
- php: ^8.2
- illuminate/container: ^8.12|^9.0|^10.0|^11.0|^12.0
- illuminate/contracts: ^8.12|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-12-10 22:18:52 UTC
README
A comprehensive Filament plugin for managing inventories and inventory logs with polymorphic tracking, full CRUD interface, and detailed history.
Features
- 📦 Inventory Management: Track stock levels across multiple warehouses
- 📊 Inventory Logs: Complete history of all inventory changes
- 🔗 Polymorphic Tracking: Link inventory changes to any model (products, orders, etc.)
- 🎯 HasInventoryLogs Trait: Easy integration with existing models
- 🔐 Authorization: Built-in policies for secure access control
- 🌐 API Ready: RESTful API endpoints for all resources
- 📈 Relation Manager: Built-in Filament relation manager for inventory logs
- 🇮🇷 Persian Support: Full RTL and Persian language support
Installation
1. Require the package via Composer
composer require mortezaa97/inventories
2. Register the Plugin
In your app/Providers/Filament/AdminPanelServiceProvider.php:
use Mortezaa97\Inventories\InventoriesPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ InventoriesPlugin::make(), ]); }
3. Run Migrations
php artisan migrate
4. Clear Caches
php artisan config:clear php artisan cache:clear
Configuration
Publish the configuration file:
php artisan vendor:publish --tag="inventories-config"
Publish migrations:
php artisan vendor:publish --tag="inventories-migrations"
Usage
See PLUGIN_USAGE.md for detailed usage instructions.
Quick Example
use Mortezaa97\Inventories\Models\Inventory; use Mortezaa97\Inventories\Traits\HasInventoryLogs; // Add trait to your model class Product extends Model { use HasInventoryLogs; } // Create inventory $inventory = Inventory::create([ 'name' => 'Main Warehouse', 'count' => 100, 'created_by' => auth()->id(), ]); // Increase inventory $product->increaseInventory($inventory->id, 50); // Decrease inventory $product->decreaseInventory($inventory->id, 10); // Get all logs $logs = $product->inventoryLogs;
Available Models
Inventory
- Tracks stock levels
- Has many inventory logs
- Soft deletable
InventoryLog
- Records all changes
- Polymorphic relationship to any model
- Tracks increase/decrease operations
- Soft deletable
Available Trait
HasInventoryLogs
Add inventory tracking to any model:
use Mortezaa97\Inventories\Traits\HasInventoryLogs; class YourModel extends Model { use HasInventoryLogs; // Available methods: // - inventoryLogs() // - addInventoryLog() // - increaseInventory() // - decreaseInventory() // - inventoryLogsFor() }
API Routes
/api/inventories- Inventory CRUD/api/inventory-logs- Inventory Log CRUD
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.