PHPackages                             mvdnbrk/warehouse-framework - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. mvdnbrk/warehouse-framework

ActiveLibrary[Framework](/categories/framework)

mvdnbrk/warehouse-framework
===========================

Laravel Warehouse Framework

v0.16.2(5y ago)761.3k17[1 issues](https://github.com/mvdnbrk/warehouse-framework/issues)1MITPHPPHP ^7.4 || ^8.0

Since Jun 8Pushed 1y ago8 watchersCompare

[ Source](https://github.com/mvdnbrk/warehouse-framework)[ Packagist](https://packagist.org/packages/mvdnbrk/warehouse-framework)[ Docs](https://github.com/mvdnbrk/warehouse-framework)[ GitHub Sponsors](https://github.com/mvdnbrk)[ RSS](/packages/mvdnbrk-warehouse-framework/feed)WikiDiscussions main Synced 2mo ago

READMEChangelog (10)Dependencies (14)Versions (39)Used By (1)

Laravel Warehouse Framework
===========================

[](#laravel-warehouse-framework)

[![PHP version](https://camo.githubusercontent.com/938ba3322e135216f7add327aff1d1e021b618a66d048248f9ed82bc0fa462be/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6d76646e62726b2f77617265686f7573652d6672616d65776f726b3f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/938ba3322e135216f7add327aff1d1e021b618a66d048248f9ed82bc0fa462be/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6d76646e62726b2f77617265686f7573652d6672616d65776f726b3f7374796c653d666c61742d737175617265)[![Latest Version on Packagist](https://camo.githubusercontent.com/4f952a79327d10dd1cebff1d96eca03f82f9d5566ebc1676d64b74b50ad27570/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d76646e62726b2f77617265686f7573652d6672616d65776f726b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mvdnbrk/warehouse-framework)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Tests](https://camo.githubusercontent.com/9aeea2c6d05ed6bd5cddf35911c6fe3f19a160f3b3800e03639c14f22f61a2c9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6d76646e62726b2f77617265686f7573652d6672616d65776f726b2f74657374732f6d61696e3f6c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/mvdnbrk/warehouse-framework/actions?query=workflow%3Atests)[![Code style](https://camo.githubusercontent.com/6a43ebc34d6b99c46216950358b43c7feb2a6d93d70ca11262eb7f159116f92e/68747470733a2f2f7374796c6563692e696f2f7265706f732f3138333437323132332f736869656c643f6272616e63683d6d61696e)](https://styleci.io/repos/183472123)[![Total Downloads](https://camo.githubusercontent.com/e766b1db63cbaf4a4178b50938bacdd6cb7835102b2ec931235da4e433d5d695/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d76646e62726b2f77617265686f7573652d6672616d65776f726b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mvdnbrk/warehouse-framework)

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require mvdnbrk/warehouse-framework
```

Run the install command:

```
php artisan warehouse:install
```

This package uses it's own database.
By default we assume that you will prepare a connection called "warehouse" in your `config/database.php` file.
If you would like to use a different connection you can do so by setting `WAREHOUSE_DB_CONNECTION` in your `.env` file.

Now you can run the migrations for this package with:

```
php artisan warehouse:migrate
```

Usage
-----

[](#usage)

### Locations

[](#locations)

You can retrieve all locations using the `Just\Warehouse\Models\Location` model:

```
Location::all();
```

Create a location with this artisan command:

```
php artisan warehouse:make:location
```

### Inventory

[](#inventory)

Add inventory to a location with a `GTIN` value, you may pass an amount as the second parameter:

```
$location = Location::find(1);
$location->addInventory('1300000000000');
$location->addInventory('1234567890005', 2);
```

Move inventory to another location:

```
$inventory = Inventory::first();
$inventory->move($location);
```

You may also move inventory with it's `GTIN` from one location to another:

```
$location1 = Location::find(1);
$location2 = Location::find(2);
$location1->addInventory('1234567890005');

$location1->move('1234567890005', $location2);
```

Moving many items at once from one location to another:

```
$location->moveMany([
    '1234567890005',
    '1234567890005',
], $location2);
```

> **note**: If you are trying to move many items at once and a failure occurs, an exception will be thrown and none of the items will be moved from one location to another.

Remove inventory from a location:

```
$location = Location::find(1);
$location->removeInventory('1234567890005');
```

Remove **all** inventory from a location:

```
$location = Location::find(1);
$location->removeAllInventory();
```

### Orders

[](#orders)

Create a new order:

```
$order = Order::create([
    'order_number' => 'my-first-order-0001',
]);
```

Add order lines with the `addLine` method by passing a `GTIN` value, you may pass an amount as the second parameter:

```
$order->addLine('1300000000000');
$order->addLine('1234567890005', 2);
$order->addLine(...);
```

> **note**: You can only add order lines when the status of an order is either `created` or `hold`.
> The same is true if you try to delete an order line.

Process the order:

```
$order->process();
```

This will update the order status to `open` and will be ready to be picked.

### Put an order on hold

[](#put-an-order-on-hold)

You can put an order on hold by calling the `hold` method. Unhold it with the `unhold` method:

```
$order->hold();
$order->unhold();
```

### Order status

[](#order-status)

You can determine the status of an order with the following methods on the `status` property:

```
$order->status->isCreated();
$order->status->isOpen();
$order->status->isBackorder();
$order->status->isHold();
$order->status->isFulfilled();
$order->status->isDeleted();
```

### Pick Lists

[](#pick-lists)

Once you have created an order you may retrieve a pick list.
To determine if a pick list is available and retrieve it:

```
$order->hasPickList();

$order->pickList();
```

The `pickList` method returns a collection:

```
$order->pickList()->each(function ($item) {
    $item->get('gtin');
    $item->get('location');
    $item->get('quantity');
});
```

When the order is picked you can mark it as fulfilled with the `markAsFulfilled` method:

```
$order->markAsFulfilled();
```

### Replacing an order line

[](#replacing-an-order-line)

If for some reason a product is missing or for example the items is damaged you may replace an order line with the `replace` method:

```
$order->lines->first()->replace();
```

This will delete the reserved product from the inventory and replaces it with another item (if available).

### Stock

[](#stock)

To query stock quantities you may use the `\Just\Warehouse\Facades\Stock` facade:

```
Stock::available();
Stock::backorder();
Stock::reserved();
```

For a specific GTIN:

```
Stock::gtin('1300000000000')->available();
Stock::gtin('1300000000000')->backorder();
Stock::gtin('1300000000000')->reserved();
```

### Events

[](#events)

This packages fires several events:

- `InventoryCreated`
- `OrderLineCreated`
- `OrderLineReplaced`
- `OrderStatusUpdated`
- `OrderFulfilled`

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Mark van den Broek](https://github.com/mvdnbrk)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity30

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Recently: every ~46 days

Total

38

Last Release

1894d ago

PHP version history (3 changes)v0.1.0PHP ^7.2

v0.13.0PHP ^7.4

v0.16.0PHP ^7.4 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/0e8e321e8c6bc0e5ac8a1db41d1a983ac86888bd61de07afd02ba1cc5c3939c5?d=identicon)[mvdnbrk](/maintainers/mvdnbrk)

---

Top Contributors

[![mvdnbrk](https://avatars.githubusercontent.com/u/802681?v=4)](https://github.com/mvdnbrk "mvdnbrk (582 commits)")

---

Tags

laravelwarehousewarehouse-management-systemwmslaravelwmswarehousewarehouse management system

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mvdnbrk-warehouse-framework/health.svg)

```
[![Health](https://phpackages.com/badges/mvdnbrk-warehouse-framework/health.svg)](https://phpackages.com/packages/mvdnbrk-warehouse-framework)
```

###  Alternatives

[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M529](/packages/laravel-passport)[laravel/tinker

Powerful REPL for the Laravel framework.

7.4k423.8M1.8k](/packages/laravel-tinker)[laravel/pennant

A simple, lightweight library for managing feature flags.

57311.1M53](/packages/laravel-pennant)[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.5k25.9M106](/packages/laravel-cashier)[laravel/scout

Laravel Scout provides a driver based solution to searching your Eloquent models.

1.7k49.4M479](/packages/laravel-scout)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
