cyrkulewski / shopping-cart
Simple ZF2 Shopping Cart
Installs: 2 071
Dependents: 0
Suggesters: 0
Security: 0
Stars: 20
Watchers: 6
Forks: 19
Open Issues: 1
Requires
- php: >=5.3.0
- zendframework/zendframework: 2.*
This package is auto-updated.
Last update: 2024-04-20 02:06:55 UTC
README
This model is a simple ZF2 Shopping Cart solution. Provide basic functionality to create and modify Shopping Cart with any content in it. Easy to extend, just create your own Cart Entity and push it during Cart initialisation.
Inspired by
I was inspired to create the ShoppingCart by great job of Vincenzo Provenza and Concetto Vecchio (http://github.com/vikey89/ZendCart). Keeped the same idea behind but made it more flexible, easier to extend and simplier to change.
Installation
For the installation uses composer composer. Add this project in your composer.json:
"require": {
"cyrkulewski/shopping-cart": "dev-master"
}
Post Installation
Configuration:
- Add the module of
config/application.config.php
under the arraymodules
, insertShoppingCart
. - Copy a file named
shoppingcart.global.php.dist
toconfig/autoload/
and change name toshoppingcart.global.php
. - Modify config to fit your expectations.
Examples
Insert
You can insert as many items to the cart as you want. Each entry in cart will have unique token to work with. Example with one product:
$product = array( 'id' => 'XYZ', 'qty' => 1, 'price' => 15.15, 'product' => 'Book: ZF2 for beginners', ); $this->ShoppingCart()->insert($product);
Example with 2 products:
$products = array( array( 'id' => 'XYZ', 'qty' => 1, 'price' => 15.15, 'product' => 'Book: ZF2 for beginners', ), array( 'id' => 'ZYX', 'qty' => 3, 'price' => 19.99, 'product' => 'Book: ZF2 for advanced users', ) ); $this->ShoppingCart()->insert($products);
Remove
$token => '4b848870240fd2e976ee59831b34314f7cfbb05b'; $this->ShoppingCart()->remove($token);
Destroy
Erase Shopping Cart completely.
$this->ShoppingCart()->destroy();
Cart
Get all content of Cart.
$this->ShoppingCart()->cart();
Total Sum
$this->ShoppingCart()->total_sum();
Total Items
$this->ShoppingCart()->total_items();
Example in controller
return new ViewModel(array( 'cart' => $this->ShoppingCart()->cart(), 'total_items' => $this->ShoppingCart()->total_items(), 'total_sum' => $this->ShoppingCart()->total_sum(), ));
How to change/extend Shopping Cart
Provided Shopping Cart Entity is really basic one. You can change the structure of it. For example, if you need to add options to each item in the cart or to provide discount field and so on. What you should do:
- copy ShoppingCart/Entity/ShoppingCartEntity to your module
- modify YourModule/Entity/ShoppingCartEntity: add any fields you need to have
- during Shopping Cart initialisation provide your YourModule/Entity/ShoppingCartEntity
$this->ShoppingCart()->setEntityPrototype(new YourModule/Entity/ShoppingCartEntity());
FunctionsReference
Function | Description |
$this->ShoppingCart()->insert(); | Add item(s) to cart. |
$this->ShoppingCart()->remove(); | Delete the item from the cart. |
$this->ShoppingCart()->destroy(); | Delete all items from the cart. |
$this->ShoppingCart()->cart(); | Extracts all items from the cart. |
$this->ShoppingCart()->total_sum(); | Counts the total sum of all items in the cart. |
$this->ShoppingCart()->total_items(); | Counts the total number of all items in the cart. |
Contributors
Aleksander Cyrkulewski - cyrkulewski@gmail.com