lenius / laravel-ecommerce
Shopping basket package for laravel 10 & 11
Installs: 9 440
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^8.0
- illuminate/auth: ^8.0|^9.0|^10|^11
- illuminate/container: ^8.0|^9.0|^10|^11
- illuminate/contracts: ^8.0|^9.0|^10|^11
- illuminate/database: ^8.0|^9.0|^10|^11
- lenius/basket: ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- nunomaduro/larastan: ^0.6.12|^2.0
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^4.3
README
Installation
You can install this package via composer using:
composer require lenius/laravel-ecommerce
You can then export the configuration:
php artisan vendor:publish --provider="Lenius\LaravelEcommerce\EcommerceServiceProvider" --tag="config" php artisan vendor:publish --provider="Lenius\LaravelEcommerce\EcommerceServiceProvider" --tag="lang" php artisan vendor:publish --provider="Lenius\LaravelEcommerce\EcommerceServiceProvider" --tag="views"
Overview
Look at one of the following topics to learn more
Usage
The shoppingcart gives you the following methods to use:
Cart::insert()
Adding an item to the cart is really simple, you just use the insert()
method, which accepts a variety of parameters.
In its most basic form you can specify the id, name, quantity, price of the product you'd like to add to the cart.
Cart::insert(new Item([ 'id' => 'foo', 'name' => 'bar', 'price' => 100, 'quantity' => 2, 'weight' => 300 ]));
Cart::insert() accept a class which implements ItemInterface
class CustomItem implements ItemInterface { }
Inserting items with options into the cart
Inserting an item into the cart is easy. The required keys are id, name, price and quantity, although you can pass over any custom data that you like. If option items contains price or weight there values are added to the total weight / price of the product.
Cart::insert(new Item([ 'id' => 'foo', 'name' => 'bar', 'price' => 100, 'quantity' => 2, 'weight' => 300, 'options' => [ [ 'name' => 'Size', 'value' => 'L', 'weight' => 50, 'price' => 10 ], ], ]));
Setting the tax rate for an item
Another key you can pass to your insert method is tax'. This is a percentage which you would like to be added onto the price of the item.
In the below example we will use 25% for the tax rate.
Cart::insert(new Item([ 'id' => 'mouseid', 'name' => 'Mouse', 'price' => 100, 'quantity' => 1, 'tax' => 25, 'weight' => 200 ]));
Updating items in the cart
You can update items in your cart by updating any property on a cart item. For example, if you were within a cart loop then you can update a specific item using the below example.
foreach (Cart::contents() as $item) { $item->name = 'Foo'; $item->setQuantity(1); }
Destroying/emptying the cart
You can completely empty/destroy the cart by using the destroy()
method.
Cart::destroy()
Retrieve the cart contents
You can loop the cart contents by using the following method
Cart::contents();
You can also return the Cart items as an array by passing true as the first argument
Cart::contents(true);
Check if the Cart has an item
Cart::has($itemIdentifier);
Remove an item from the Cart
Cart::remove($itemIdentifier)
Increment an item from the Cart
Cart::inc($itemIdentifier)
Decrement an item from the Cart
Cart::dec($itemIdentifier)
Events
The cart also has events build in. There are five events available for you to listen for.
Testing
Run the tests with:
composer psalm
composer stan
composer test
composer test-coverage
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security-related issues, please email info@lenius.dk instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.