Download the PHP package subbly/shoppingcart without Composer
On this page you can find all versions of the php package subbly/shoppingcart. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download subbly/shoppingcart
More information about subbly/shoppingcart
Files in subbly/shoppingcart
Package shoppingcart
Short Description Subbly Shoppingcart
License MIT
Informations about the package shoppingcart
Subbly Shoppingcart
A simple shoppingcart implementation for Subbly CMS forked from gloudemans/shoppingcart.
Installation
Install the package through Composer. Edit your project's composer.json
file by adding:
Laravel 4.2 and below
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.
Overview
Look at one of the following topics to learn more about LaravelShoppingcart
- Usage
- Collections
- Instances
- Models
- Exceptions
- Events
- Example
Usage
The shoppingcart gives you the following methods to use:
Cart::add()
Cart::update()
Cart::remove()
Cart::get()
Cart::content()
Cart::destroy()
Cart::total()
Cart::count()
Cart::search()
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.
Instances
Now the packages also supports multiple instances of the cart. The way this works is like this:
You can set the current instance of the cart with Cart::instance('newInstance')
, at that moment, the active instance of the cart is newInstance
, so when you add, remove or get the content of the cart, you work with the newInstance
instance of the cart.
If you want to switch instances, you just call Cart::instance('otherInstance')
again, and you're working with the otherInstance
again.
So a little example:
N.B. Keep in mind that the cart stays in the last set instance for as long as you don't set a different one during script execution.
N.B.2 The default cart instance is called main
, so when you're not using instances,Cart::content();
is the same as Cart::instance('main')->content()
.
Models
A new feature is associating a model with the items in the cart. Let's say you have a Product
model in your application. With the new associate()
method, you can tell the cart that an item in the cart, is associated to the Product
model.
That way you can access your model right from the CartRowCollection
!
Here is an example:
The key to access the model is the same as the model name you associated (lowercase).
The associate()
method has a second optional parameter for specifying the model namespace.
Exceptions
The Cart package will throw exceptions if something goes wrong. This way it's easier to debug your code using the Cart package or to handle the error based on the type of exceptions. The Cart packages can throw the following exceptions:
Exception | Reason |
---|---|
ShoppingcartInstanceException | When no instance is passed to the instance() method |
ShoppingcartInvalidItemException | When a new product misses one of it's arguments (id , name , qty , price ) |
ShoppingcartInvalidPriceException | When a non-numeric price is passed |
ShoppingcartInvalidQtyException | When a non-numeric quantity is passed |
ShoppingcartInvalidRowIDException | When the $rowId that got passed doesn't exists in the current cart |
ShoppingcartUnknownModelException | When an unknown model is associated to a cart row |
Events
The cart also has events build in. There are five events available for you to listen for.
Event | Fired |
---|---|
cart.add($item) | When a single item is added |
cart.batch($items) | When a batch of items is added |
cart.update($rowId) | When an item in the cart is updated |
cart.remove($rowId) | When an item is removed from the cart |
cart.destroy() | When the cart is destroyed |
Example
Below is a little example of how to list the cart content in a table: