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"
Look at one of the following topics to learn more
The shoppingcart gives you the following methods to use:
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 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
],
],
]));
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
]));
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);
}
You can completely empty/destroy the cart by using the destroy()
method.
Cart::destroy()
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);
Cart::has($itemIdentifier);
Cart::remove($itemIdentifier)
Cart::inc($itemIdentifier)
Cart::dec($itemIdentifier)
The cart also has events build in. There are five events available for you to listen for.
Event | Fired | Parameter |
---|---|---|
CartItemUpdated | When an item in the cart was updated. | The CartItem that was updated. |
CartItemRemoved | When an item is removed from the cart. | The CartItem that was removed. |
CartItemDecreased | When an item is dec from the cart. | The CartItem that was decreased. |
CartItemIncremented | When an item is inc from the cart. | The CartItem that was incremented. |
CartDestroyed | When the cart was destroyed. | - |
Run the tests with:
composer psalm
composer stan
composer test
composer test-coverage
Please see CONTRIBUTING for details.
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.