lenius / laravel-basket
Shopping basket package for Laravel
Installs: 7 215
Dependents: 0
Suggesters: 0
Security: 0
Stars: 18
Watchers: 6
Forks: 7
Open Issues: 0
Requires
- php: ^7.4|^8.0
- lenius/basket: ^4.0
Requires (Dev)
- illuminate/console: ^7.0
- illuminate/support: ^7.0
- phpstan/phpstan: 0.12.x-dev
README
Laravel Facade and Service Provider for Lenius\Basket
Installation
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());
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.
Basket::insert(new Item(array( 'id' => 'mouseid', 'name' => 'Mouse', 'price' => 100, 'quantity' => 1, 'tax' => 25, 'weight' => 200 )));
Updating items in the Basket
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; }
Removing Basket items
You can remove any items in your Basket by using the remove()
method on any Basket item.
foreach (Basket::contents() as $item) { $item->remove(); }
Destroying/emptying the Basket
You can completely empty/destroy the Basket by using the destroy()
method.
Basket::destroy()
Retrieve the Basket contents
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);
Retrieving the total items in the Basket
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);
Retrieving the Basket total
$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);
Check if the Basket has an item
Basket::has($itemIdentifier);
Retreive an item object by identifier
Basket::item($itemIdentifier);
Basket items
There are several features of the Basket items that may also help when integrating your Basket.
Retrieving the total value of an item
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.
Check if an item has options
You can check if a Basket item has options by using the hasOptions()
method.
if ($item->hasOptions()) { // We have options }
Remove an item from the Basket
$item->remove();
You can also get the total weight for a single item
$item->weight();
Output the item data as an array
$item->toArray();