Download the PHP package elgibor-solution/laravel-inventory without Composer
On this page you can find all versions of the php package elgibor-solution/laravel-inventory. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download elgibor-solution/laravel-inventory
More information about elgibor-solution/laravel-inventory
Files in elgibor-solution/laravel-inventory
Package laravel-inventory
Short Description Inventory, costing (FIFO & Average), journal posting, multi-branch/warehouse/rack, configurable stages for Laravel.
License Apache-2.0
Informations about the package laravel-inventory
elgibor-solution/laravel-inventory
Comprehensive Laravel Inventory, Costing, and Journal Package
Multi-branch, multi-warehouse, multi-rack, configurable movement stages, FIFO & Average costing, with automatic journal posting.
๐ Overview
elgibor-solution/laravel-inventory is a full-featured Laravel package for managing inventory, accounting journal, and cost valuation (FIFO and Moving Average).
It is designed for ERP, POS, and SaaS platforms that require accurate, auditable, and multi-location stock control โ from branches and warehouses down to racks and stages.
โ Key Features
- Costing Methods: FIFO and Moving Average
- Multi-Location: Multi-branch, multi-warehouse, multi-rack
- Configurable Stages: Customizable per item type
- Full Document Set: Purchase, Sales, Returns, Stock Opname, Consignment, Transfers
- Automatic Journal Entries: Predefined account mapping for Dr/Cr
- Audit Trail: Immutable stock ledger
- Idempotent Posting: via
external_id - Modular Design: Easily extendable or integrated into existing GL/ERP
๐ฆ Installation
-
Install the package:
- Publish configuration & migrate tables:
โ๏ธ Configuration (config/inventory.php)
๐ง Core Concepts
1. Cost Valuation
- FIFO: First In First Out โ oldest stock layers consumed first.
- Average: Weighted moving average recalculated on every receipt.
2. Location Hierarchy
Every stock movement references branch, warehouse, and optionally rack.
3. Stages
Each item type can have its own movement stages.
Example:
| Item Type | Stages |
|---|---|
| Regular | pickup_admin_gudang โ carried_by_salesman โ delivered_to_store |
| Fast Move | warehouse_exit โ received_by_store |
๐ Supported Documents
| Document | Description | Stock Effect | Accounting Effect |
|---|---|---|---|
| Purchase | Goods received from supplier | IN | Dr Inventory / Cr AP |
| Sale | Goods delivered to customer | OUT | Dr COGS / Cr Inventory |
| Purchase Return | Goods returned to supplier | OUT | Dr AP / Cr Inventory |
| Sales Return | Goods returned from customer | IN | Dr Inventory / Cr COGS |
| Stock Opname | Physical stock adjustment | IN/OUT | Dr/C Inventory Gain/Loss |
| Consignment | Goods sent to consignment | OUT | Optional (On/Off Balance) |
| Transfer Rack | Move between racks | IN/OUT | No journal |
| Transfer Warehouse | Move between warehouses | IN/OUT | No journal |
| Transfer Branch | Move between branches | IN/OUT | Dr Inventory (Dest) / Cr Inventory (Src) |
๐งพ Usage Examples
(Examples section omitted here for brevity โ same as full README above)
๐ Suggested SQL View
๐ก๏ธ Best Practices
- Always post documents within a DB transaction.
- Never modify
inv_stock_ledgersorinv_cost_layersmanually. - Use
external_idto ensure idempotent synchronization. - Add indexes
(item_id, branch_id, warehouse_id, rack_id, created_at)for performance. lockForUpdate()is used to ensure cost consistency under concurrency.
๐งฐ Recommended Extensions
- Add
DocumentPostedevents for webhook integration. - Extend
JournalManagerto push entries to your accounting module. - Create
InventoryPolicyto control stage posting permissions by user role.
๐ License
Apache 2.0 License
ยฉ 2025 PT Elgibor Solusi Digital
All versions of laravel-inventory with dependencies
illuminate/support Version ^9.0|^10.0|^11.0|^12.0
illuminate/database Version ^9.0|^10.0|^11.0|^12.0
illuminate/events Version ^9.0|^10.0|^11.0|^12.0