tal7aouy / cart
A simple PHP shopping cart library to use in ecommerce web applications.
Requires
- php: ^7.4|^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
A simple PHP shopping cart library to use in ecommerce web applications
Usage
Installation
composer require tal7aouy/cart
Configuration
Options
//Instantiate cart $cart= new Cart(**array** $options);
require_once __DIR__."/vendor/autoload.php"; use Tal7aouy\Cart; // Initialize Cart object $cart = new Cart([ // Can add unlimited number of item to cart 'maxItem' => 0, // Set maximum quantity allowed per item to 20 'itemMaxQte' => 20, // do not use cookie ,cart data will lost when browser is closed 'cookieState' => false, ]);
Add Item
Adds an item to cart.
$cart->add(string $id, int $quantity = 1, array $attributes = []): bool;
// Add item with ID #10 $cart->add('10'); // Add 5 item with ID #12 $cart->add('12', 5); // Add item with ID #14 with price, color, and size $cart->add('14', 1, [ 'price' => '5.99', 'color' => 'yellow', 'size' => 'SM', ]); // Item with same ID but different attributes will added as separate item in cart $cart->add('14', 1, [ 'price' => '5.99', 'color' => 'Brown', 'size' => 'M', ]);
has Item
// has item with ID #10 $isExist = $cart->has('10'); // has item exist with attributes $isExist = $cart->has('10',[ 'price' => '5.99', 'color' => 'yellow', 'size' => 'SM', ]);
Update Item
Updates quantity of an item. Attributes must be provides if item with same ID exists with different attributes.
$cart->update(string $id, int $quantity = 1, array $attributes = []): bool;
// Set quantity for item #10 to 5 $cart->update('10', 5); // Set quantity for item #14 to 2 $cart->update('14' [ 'price' => '5.99', 'color' => 'Red', 'size' => 'M', ]);
Remove Item
Removes an item. Attributes must be provided to remove specified item, or all items with same ID will be removed from cart.
$cart->remove(string $id, array $attributes = []): bool;
// Remove item #10 $cart->remove('10'); // Remove item #14 with color white and size XS $cart->remove('1003', [ 'price' => '5.99', 'color' => 'White', 'size' => 'XS', ]);
Get Items
Gets a multi-dimensional array of items stored in cart.
$cart->getItems( ): array;
// Get all items in the cart $allItems = $cart->getItems(); foreach ($allItems as $items) { foreach ($items as $item) { echo 'ID: '.$item['id'].'<br />'; echo 'Qty: '.$item['quantity'].'<br />'; echo 'Price: '.$item['attributes']['price'].'<br />'; echo 'Size: '.$item['attributes']['size'].'<br />'; echo 'Color: '.$item['attributes']['color'].'<br />'; } }
Get Item
Gets a multi-dimensional array of one item stored in cart.
$cart->getItem(string $id, string $hash): array;
// Get first one item from the cart with id 10 $theItem = $cart->getItem('10'); // Get one item from the cart with any id and hash $theItem = $cart->getItem($item['id'], $item['hash']);
Check Cart Empty
Checks if the cart is empty.
$cart->isEmpty( ):bool;
if ($cart->isEmpty()) { echo 'There is nothing in the basket.'; }
Get Total Item
Gets the total of items in the cart.
$cart->getTotalItems( ): int;
echo 'There are '.$cart->getTotalItems().' items in the cart.';
Get Total Quantity
Gets the total of quantity in the cart.
$cart->getTotalQuantity( ): int;
echo $cart->getTotalQuantity();
Get Attribute Total
Gets the sum of a specific attribute.
$cart->getTotalAttribute( string $attribute ): float;
echo '<h3>Total Price: $'.number_format($cart->getTotalAttribute('price'), 2, '.', ',').'</h3>';
Clear Cart
Clears all items in the cart.
$cart->clear( ):void;
$cart->clear();
Destroy Cart
Destroys the entire cart session.
$cart->destroy( );
$cart->destroy();
Item Exists
Checks if an item exists in cart.
bool $cart->isItemExists( string $id[, array $attributes] );
if ($cart->isItemExists('1001')) { echo 'This item already added to cart.'; }