Download the PHP package nomandev/noman-inventory without Composer

On this page you can find all versions of the php package nomandev/noman-inventory. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package noman-inventory

noman-inventory

Package: nomandev/noman-inventory · Namespace: Noman\Inventory

A production-grade, universal inventory management package for Laravel 11 and 12.

Built for multi-tenant, multi-warehouse environments across diverse business domains: cow farms, pharmaceutical distributors, pet shops, clinics, warehouses, general retail, and more.


Features

Feature Details
Append-only ledger All stock changes recorded as immutable movement rows. Never destructive.
Documents GRNs, Delivery Orders, Transfer Orders, Adjustments, Stock Counts, Reversals
Batches / Lots Full batch tracking with expiry date and FEFO/FIFO allocation
Serial Numbers Unit-level serial tracking for equipment and high-value items
Valuation FIFO, Weighted Average, Standard Cost
Reservations Soft-lock stock before issue; automatic expiry; reference linking
Stock Counts Full count session workflow with variance calculation and auto-adjustment
Reversals Compensating entries; original documents never modified
Projections Denormalised balance + snapshot tables for fast reporting
Multi-warehouse Hierarchical: Warehouse → Zone → Aisle → Rack → Shelf → Bin
Multi-tenant Pluggable TenantResolverContract; no tenancy package hard-coded
Industry Profiles Standard Goods, Pharma, Livestock Supply, Serialised Equipment, Pet Food
Policy Engine Global → item-type → item level policy overrides
REST API Full CRUD + all stock operations + reports
Blade UI Optional web UI: dashboard, items, warehouses, stock ops, documents, reports
Events 12 domain events; listeners for balance projection

Requirements


Installation

The package auto-discovers via Laravel's package discovery mechanism.

Use local package (for development or when publishing fails)

If you develop the package locally or Packagist has an older version, add a path repository in your app's composer.json:

Adjust ../inventoryPackage/... so it points from your app directory to the package. Then:

Installing from a local path (development)

If you develop the package locally (e.g. in a monorepo) and get a Failed to open stream error for routes/api.php, use a path repository so your app uses the local package:

  1. In your Laravel app composer.json, add:

Adjust the url path if your layout differs (e.g. ../../inventoryPackage/packages/noman-inventory).

  1. Remove the old package and reinstall:

Publishing Config & Migrations


Configuration Overview


Basic Setup

1. Create warehouses and items

2. Receive stock

3. Issue stock

4. Transfer stock between warehouses

5. Reserve stock

6. Adjust stock

7. Reverse a document

8. Check balance


Stock Count Workflow


Tenancy Integration

The package is fully multi-tenant ready but ships with a no-op NullTenantResolver. To enable tenancy, bind your own implementation:

Also set in .env:


Industry Profiles

Assign a profile to item types or items to automatically apply the right policy defaults:

Profile Batch Expiry Serial Location Allocation
standard_goods FIFO
pharma_goods FEFO
livestock_supply FEFO
serialized_equipment Manual
perishable_pet_food FEFO

Extension Points

Override any service implementation

Listen to inventory events

Custom item metadata

Use the metadata JSON column on inventory_items for host-app-specific fields:

Or use the inventory_custom_fields + inventory_custom_field_values tables for structured custom field definitions.


API Endpoints

All endpoints are prefixed with /inventory (configurable via route_prefix).

Method Endpoint Description
GET /inventory/items List items
POST /inventory/items Create item
GET /inventory/items/{id} Get item
PUT /inventory/items/{id} Update item
DELETE /inventory/items/{id} Delete item
POST /inventory/stock/receive Receive stock
POST /inventory/stock/issue Issue stock
POST /inventory/stock/transfer Transfer stock
POST /inventory/stock/adjust Adjust stock
POST /inventory/stock/reserve Reserve stock
DELETE /inventory/stock/reserve/{id} Release reservation
GET /inventory/documents List documents
GET /inventory/documents/{id} Get document
POST /inventory/documents/{id}/post Post document
POST /inventory/documents/{id}/reverse Reverse document
POST /inventory/stock-counts/start Start stock count
POST /inventory/stock-counts/{id}/complete Complete count
GET /inventory/reports/stock-on-hand Stock on hand report
GET /inventory/reports/stock-by-location Stock by location
GET /inventory/reports/stock-ledger Stock movement ledger
GET /inventory/reports/stock-card Stock card (running balance)
GET /inventory/reports/batch-expiry Batch expiry report
GET /inventory/reports/inventory-aging Inventory aging
GET /inventory/reports/valuation-summary Valuation summary
GET /inventory/reports/reservations Reservation status

Web UI (Blade)

The package includes an optional Blade-based web UI, using the same prefix as the API (default /inventory). Enable or disable it via config('inventory.routes_enabled'); middleware is set with config('inventory.web_middleware', ['web']).

URL Description
GET /inventory Dashboard
GET /inventory/items List items (create, edit, show, delete)
GET /inventory/warehouses List warehouses (create, edit, show, delete)
GET /inventory/stock/receive Receive stock form
GET /inventory/stock/issue Issue stock form
GET /inventory/stock/transfer Transfer stock form
GET /inventory/stock/adjust Adjust stock form
GET /inventory/documents Stock documents list and detail
GET /inventory/stock-counts Stock count sessions; start new count
GET /inventory/reports Reports index (stock on hand, by location, ledger, batch expiry, reservations)

Views live in the package under resources/views and are registered with the noman-inventory view namespace. To customise the UI, publish the views:

Then edit the published Blade files in resources/views/vendor/noman-inventory/.

Views not updating after composer update?

If you pushed changes to the package and ran composer update in your app but the UI still shows the old design, try this:

  1. Clear Laravel caches (the app may be serving cached compiled views):

  2. Published views override the package. If you (or someone) ran vendor:publish --tag=noman-inventory-views, the app uses copies in resources/views/vendor/noman-inventory/. Those copies are not updated by composer update. To get the new package views again either:

    • Remove the published views so the app falls back to the package:

    • Or re-publish and overwrite (this replaces your local customisations):
  3. Ensure Composer is pulling the new version. In the package repo, bump the version in composer.json (e.g. "version": "1.0.6"), commit and push. In the application that uses the package, run:

    If you use a branch or dev stability, ensure the app’s composer.json allows that version.


Changelog

v1.0.5 (2025-03-08)

v1.0.x (earlier)


Running Tests


Architecture


License

MIT


All versions of noman-inventory with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
laravel/framework Version ^11.0|^12.0
spatie/laravel-package-tools Version ^1.16
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package nomandev/noman-inventory contains the following files

Loading the files please wait ...