appstract / laravel-stock
Keep stock for Eloquent models
Fund package maintenance!
Patreon
Installs: 26 801
Dependents: 0
Suggesters: 0
Security: 0
Stars: 288
Watchers: 13
Forks: 38
Open Issues: 6
Requires
- php: ^7.2|^8.0
Requires (Dev)
- orchestra/testbench: ^4.6
- phpunit/phpunit: ^8.3
README
Keep stock for Eloquent models. This package will track stock mutations for your models. You can increase, decrease, clear and set stock. It's also possible to check if a model is in stock (on a certain date/time).
Installation
You can install the package via composer:
composer require appstract/laravel-stock
By running php artisan vendor:publish --provider="Appstract\Stock\StockServiceProvider"
in your project all files for this package will be published. Run php artisan migrate
to migrate the table. There will now be a stock_mutations
table in your database.
Usage
Adding the HasStock
trait will enable stock functionality on the Model.
use Appstract\Stock\HasStock; class Book extends Model { use HasStock; }
Basic mutations
$book->increaseStock(10); $book->decreaseStock(10); $book->mutateStock(10); $book->mutateStock(-10);
Clearing stock
It's also possible to clear the stock and directly setting a new value.
$book->clearStock(); $book->clearStock(10);
Setting stock
It is possible to set stock. This will create a new mutation with the difference between the old and new value.
$book->setStock(10);
Check if model is in stock
It's also possible to check if a product is in stock (with a minimal value).
$book->inStock(); $book->inStock(10);
Current stock
Get the current stock value (on a certain date).
$book->stock; $book->stock(Carbon::now()->subDays(10));
Stock arguments
Add a description and/or reference model to de StockMutation.
$book->increaseStock(10, [ 'description' => 'This is a description', 'reference' => $otherModel, ]);
Query Scopes
It is also possible to query based on stock.
Book::whereInStock()->get(); Book::whereOutOfStock()->get();
Testing
composer test
Contributing
Contributions are welcome, thanks to y'all :)
About Appstract
Appstract is a small team from The Netherlands. We create (open source) tools for Web Developers and write about related subjects on Medium. You can follow us on Twitter, buy us a beer or support us on Patreon.
License
The MIT License (MIT). Please see License File for more information.