rapideinternet / phpcart
Simple framework agnostic shopping cart
Requires
- php: >=5.4.0
- illuminate/support: ~5.2
- symfony/http-foundation: ~2.0
Requires (Dev)
- phpunit/phpunit: ~4.4
This package is auto-updated.
Last update: 2024-12-15 04:48:33 UTC
README
Simple framework agnostic shopping cart.
Features
- Simple API
- Support multiple cart instances
- Framework agnostic, with optional Laravel integration
Requirements
- PHP 5.4+
Installation
PHPCart is available via Composer
$ composer require anam/phpcart
Integrations
Laravel 4 and Laravel 5 integrations
Although PHPCart is framework agnostic, it does support Laravel out of the box and comes with a Service provider and Facade for easy integration.
After you have installed the PHPCart, open the config/app.php file which is included with Laravel and add the following lines.
In the $providers array add the following service provider.
'Anam\Phpcart\CartServiceProvider'
Add the facade of this package to the $aliases array.
'Cart' => 'Anam\Phpcart\Facades\Cart'
You can now use this facade in place of instantiating the Cart yourself in the following examples.
Usage
Add Item
The add method required id
, name
, price
and quantity
keys. However, you can pass any data that your application required.
use Anam\Phpcart\Cart; $cart = new Cart(); $cart->add([ 'id' => 1001, 'name' => 'Skinny Jeans', 'quantity' => 1, 'price' => 90 ]);
Update Item
$cart->update([ 'id' => 1001, 'name' => 'Hoodie' ]);
Update quantity
$cart->updateQty(1001, 3);
Update price
$cart->updatePrice(1001, 30);
Remove an Item
$cart->remove(1001);
Get all Items
$cart->getItems(); // or $cart->items();
Get an Item
$cart->get(1001);
Determining if an Item exists in the cart
$cart->has(1001);
Get the total number of items in the cart
$cart->count();
Get the total quantities of items in the cart
$cart->totalQuantity();
Total sum
$cart->getTotal();
Empty the cart
$cart->clear();
Multiple carts
PHPCart supports multiple cart instances, so that you can have as many shopping cart instances on the same page as you want without any conflicts.
$cart = new Cart('cart1'); // or $cart->setCart('cart2'); $cart->add([ 'id' => 1001, 'name' => 'Skinny Jeans', 'quantity' => 1, 'price' => 90 ]); //or $cart->named('cart3')->add([ 'id' => 1001, 'name' => 'Jeans', 'quantity' => 2, 'price' => 100 ]);