diff --git a/README.md b/README.md index e69de29..d197d0c 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,168 @@ +## Installation + +Install the package through [Composer](http://getcomposer.org/). Edit your project's `composer.json` file by adding: + + "require": { + "laravel/framework": "4.0.*", + "gloudemans/shoppingcart": "dev-master" + } + +Next, run the Composer update command from the Terminal: + + composer update + +Now all you have to do is add the service provider of the package and alias the package. To do this open your `app/config/app.php` file. + +Add a new line to the `service providers` array: + + '\Gloudemans\Shoppingcart\ShoppingcartServiceProvider' + +And finally add a new line to the `aliases` array: + + 'Cart' => 'Gloudemans\Shoppingcart\Facades\Cart', + +Now you're ready to start using the shoppingcart in your application. + +## Usage + +The shoppingcart gives you the following methods to use: + +**Cart::add()** + + /** + * Add a row to the cart + * + * @param string $id Unique ID of the item + * @param string $name Name of the item + * @param int $qty Item qty to add to the cart + * @param float $price Price of one item + * @param Array $options Array of additional options, such as 'size' or 'color' + */ + + Cart::add('293ad', 'Product 1', 1, 9.99, array('size' => 'large')); + +**Cart::update()** + + /** + * Update the quantity of one row of the cart + * @param string $rowId The rowid of the item you want to update + * @param integer $qty New quantity of the item + * @return boolean + */ + $rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'; + + Cart::update($rowId, 2); + +**Cart::remove()** + + /** + * Remove a row from the cart + * + * @param string $rowId The rowid of the item + * @return boolean + */ + + $rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'; + + Cart::remove($rowId); + +**Cart::get()** + + /** + * Get a row of the cart by its ID + * + * @param string $rowId The ID of the row to fetch + * @return CartRowCollection + */ + + $rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'; + + Cart::get($rowId); + +**Cart::content()** + + /** + * Get the cart content + * + * @return CartCollection + */ + + Cart::content(); + +**Cart::destroy()** + + /** + * Empty the cart + * + * @return boolean + */ + + Cart::destroy(); + +**Cart::total()** + + /** + * Get the price total + * + * @return float + */ + + Cart::total(); + +**Cart::count()** + + /** + * Get the number of items in the cart + * + * @param boolean $totalItems Get all the items (when false, will return the number of rows) + * @return int + */ + + Cart::count(); // Total items + Cart::count(false); // Total rows + +## Collections + +As you might have seen, the `Cart::content()` and `Cart::get()` methods both return a Collection, a `CartCollection` and a `CartRowCollection`. + +These Collections extends the 'native' Laravel 4 Collection class, so all methods you know from this class can also be used on your shopping cart. With some addition to easily work with your carts content. + +## Example + +Below is a little example of how to list the cart content in a table: + + // Controller + + Cart::add('192ao12', 'Product 1', 1, 9.99); + Cart::add('1239ad0', 'Product 2', 2, 5.95, array('size' => 'large')); + + // View + + + + + + + + + + + + + + + + + + + + + + + + + +
ProductQtyItem PriceSubtotal
+

name;?>

+

options->has('size') ? $row->options->size : '');?>

+
$price;?>$subtotal;?>
\ No newline at end of file diff --git a/src/Gloudemans/Shoppingcart/Cart.php b/src/Gloudemans/Shoppingcart/Cart.php index 35d8c96..7cf180a 100644 --- a/src/Gloudemans/Shoppingcart/Cart.php +++ b/src/Gloudemans/Shoppingcart/Cart.php @@ -85,7 +85,7 @@ class Cart { * Get a row of the cart by its ID * * @param string $rowId The ID of the row to fetch - * @return Array + * @return CartCollection */ public function get($rowId) { @@ -97,7 +97,7 @@ class Cart { /** * Get the cart content * - * @return Array + * @return CartRowCollection */ public function content() { @@ -141,10 +141,11 @@ class Cart { /** * Get the number of items in the cart - * + * + * @param boolean $totalItems Get all the items (when false, will return the number of rows) * @return int */ - public function count($totalItems = TRUE) + public function count($totalItems = true) { $cart = $this->getContent();