Laravel Facade and Service Provider for Moltin\Cart
Switch branches/tags
Nothing to show
Clone or download
Latest commit 920eb48 Sep 11, 2017

README.md

THIS REPO IS BEING CONSIDERED FOR OWNERSHIP TRANSFER, PLEASE SEE HERE: https://github.com/moltin/laravel-cart/issues/62#issuecomment-328447136

Laravel Shopping Cart Package

Laravel Facade and Service Provider for Moltin\Cart

Installation

via Composer:

$ composer require moltin/laravel-cart

Add the following to your app/config/app.php to the service providers array:

'Moltin\Cart\CartServiceProvider',

Then add to the aliases array the following:

'Cart' => 'Moltin\Cart\Facade',

You should then be good to go and be able to access the cart using the following static interface:

// 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


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.

In the below example we will use 20% for the tax rate.

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.

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.

foreach (Cart::contents() as $item) {
    $item->remove();
}

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);

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.

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

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.

Retrieving the total value of an item

You can retrieve the total value of a specific cart item (including quantities) using the following method.

$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.

You can also get the total minus tax by passing false to the total() method.

$item->total(false);

This would return 200.

Check if an item has options

You can check if a cart item has options by using the hasOptions() method.

if ($item->hasOptions()) {
    // We have options
}

Remove an item from the cart

$item->remove();

Output the item data as an array

$item->toArray();