Laravel Facade and Service Provider for Moltin\Cart, (*1)
Installation
via Composer:, (*2)
$ composer require upwebdesign/laravel-cart
Add the following to your config/app.php to the service providers array:, (*3)
Moltin\Cart\CartServiceProvider::class,
Then add to the aliases array the following:, (*4)
'Cart' => Moltin\Cart\Facade::class,
You should then be good to go and be able to access the cart using the following static interface:, (*5)
// Format array of required info for item to be added to basket...
$items = array(
'id' => 1,
'name' => 'Juicy Picnic Hamper',
'price' => 120.00,
'quantity' => 1
);
// Make the insert...
Cart::insert($items);
// Let's see what we have have in there...
dd(Cart::totalItems());
Config settings (Optional)
Publish the config file with php artisan vendor:publish
, (*6)
return array(
'storage' => 'session', //session, cache, file
// Cache
// Laravel documentation for more information
'cache_prefix' => 'moltin_cart_',
'cache_expire' => '-1', //in minutes, -1 permanent caching
// Filesystem
// Folder Name inside the Storage Path
'storage_folder_name' => 'moltin_cart',
// Identifier
// With a requestcookie (choose for storage: cache, the session will be expired), the cart could be reloaded from a http request, example: the customer could save his cart link (email, hyperlink) and reopen this later.
// If there is no request, the cookie will be loaded.
'identifier' => 'cookie', //cookie, requestcookie
//Request Cookie
'requestid' => 'CartID', //http input request identifier, example: your customer/backoffice could reload the cart in your shop controller, /public/shop?CartID=871f0bc18ca76e68bf7c3adf8f9426ef
);
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., (*7)
In the below example we will use 20% for the tax rate., (*8)
Cart::insert(array(
'id' => 'foo',
'name' => 'bar',
'price' => 100,
'quantity' => 1,
'tax' => 20
));
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., (*9)
foreach (Cart::contents() as $item) {
$item->name = 'Foo';
$item->quantity = 1;
}
Removing cart items
You can remove any items in your cart by using the remove()
method on any cart item., (*10)
foreach (Cart::contents() as $item) {
$item->remove();
}
Destroying/emptying the cart
You can completely empty/destroy the cart by using the destroy()
method., (*11)
Cart::destroy()
Retrieve the cart contents
You can loop the cart contents by using the following method, (*12)
Cart::contents();
You can also return the cart items as an array by passing true as the first argument, (*13)
Cart::contents(true);
Retrieving the total items in the cart
Cart::totalItems();
By default this method will return all items in the cart as well as their quantities. You can pass true
as the first argument to get all unique items., (*14)
Cart::totalItems(true);
Retrieving the cart total
$cart->total();
By default the total()
method will return the total value of the cart as a float
, this will include
any item taxes. If you want to retrieve the cart total without tax then you can do so by passing false to the
total()
method, (*15)
Cart::total(false);
Check if the cart has an item
Cart::has($itemIdentifier);
Retreive an item object by identifier
Cart::item($itemIdentifier);
Cart items
There are several features of the cart items that may also help when integrating your cart., (*16)
Retrieving the total value of an item
You can retrieve the total value of a specific cart item (including quantities) using the following method., (*17)
$item->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., (*18)
You can also get the total minus tax by passing false to the total()
method., (*19)
$item->total(false);
This would return 200., (*20)
Check if an item has options
You can check if a cart item has options by using the hasOptions()
method., (*21)
if ($item->hasOptions()) {
// We have options
}
Remove an item from the cart
$item->remove();
Output the item data as an array
$item->toArray();