mortezaa97/inventories

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/mortezaa97/inventories

v1.0.2 2025-11-10 22:06 UTC

This package is auto-updated.

Last update: 2025-12-10 22:18:52 UTC


README

Latest Version on Packagist Total Downloads

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.