Laravel Facade and Service Provider for Lenius\Basket
Using composer:
$ composer require lenius/laravel-basket
$ composer require lenius/laravel-basket^4.0 (PHP7.4)
Set up demo with artisan
$ php artisan make:auth
$ php artisan make:ecommerce
Install npm dependencies
$ npm install v-money
$ npm install vue-sortable
$ npm install vuedraggable
$ npm run dev
$ php artisan serve
Open http://localhost:8000/basket
You should then be good to go and be able to access the basket using the following static interface:
//Format array of required info for item to be added to basket...
$items = array(
'id' => 1,
'name' => 'Dog',
'price' => 120.00,
'quantity' => 1,
'weight' => 200
);
//Make the insert...
Basket::insert(new Item($items));
//Let's see what we have got in their...
dd(Basket::totalItems());
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.
Basket::insert(new Item(array(
'id' => 'mouseid',
'name' => 'Mouse',
'price' => 100,
'quantity' => 1,
'tax' => 25,
'weight' => 200
)));
You can update items in your Basket by updating any property on a Basket item. For example, if you were within a Basket loop then you can update a specific item using the below example.
foreach (Basket::contents() as $item) {
$item->name = 'Foo';
$item->quantity = 1;
}
You can remove any items in your Basket by using the remove()
method on any Basket item.
foreach (Basket::contents() as $item) {
$item->remove();
}
You can completely empty/destroy the Basket by using the destroy()
method.
Basket::destroy()
You can loop the Basket contents by using the following method
Basket::contents();
You can also return the Basket items as an array by passing true as the first argument
Basket::contents(true);
Basket::totalItems();
By default this method will return all items in the Basket as well as their quantities. You can pass true
as the first argument to get all unique items.
Basket::totalItems(true);
$Basket->total();
By default the total()
method will return the total value of the Basket as a float
, this will include
any item taxes. If you want to retrieve the Basket total without tax then you can do so by passing false to the
total()
method
Basket::total(false);
Basket::has($itemIdentifier);
Basket::item($itemIdentifier);
There are several features of the Basket items that may also help when integrating your Basket.
You can retrieve the total value of a specific Basket item (including quantities) using the following method.
Basket::total();
By default, this method will return the total value of the item plus tax. So if you had a product which costs 100, with a quantity of 2 and a tax rate of 20% then the total returned by this method would be 240.
You can also get the total minus tax by passing false to the total()
method.
Basket::total(false);
This would return 200.
You can check if a Basket item has options by using the hasOptions()
method.
if ($item->hasOptions()) {
// We have options
}
$item->remove();
$item->weight();
$item->toArray();