1. Go to this page and download the library: Download ashraam/laravel-simple-cart library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ashraam / laravel-simple-cart example snippets
use Ashraam\LaravelSimpleCart\Facades\Cart;
use Ashraam\LaravelSimpleCart\CartItem;
use Ashraam\LaravelSimpleCart\CartModifier;
// Creating an item
$item = new CartItem(
id: 'product-1',
name: 'Product Name',
price: 30,
quantity: 2,
vat_rate: 20,
options: [
'size' => 'SM'
],
meta: [
'image' => 'products/my-image.jpg'
]
);
// Creating a modifier that will add 10 to the cart
$cartModifier = new CartModifier(
id: 'shipping',
name: 'Shipping Fees',
value: 10,
type: CartModifier::VALUE
);
// Add an item to the cart (increments quantity if item exists)
Cart::add($item);
// Replace an item in the cart (completely replaces existing item or adds new)
Cart::replace($item);
// Applying a modifier to the cart
Cart::modifiers()->add($cartModifier);
// Get a collection of CartItem
$items = Cart::content();
// Get subtotal (items with vat only without cart modifiers)
$subtotal = Cart::subtotal(); // 72
// Get the sum of all items in the cart without vat
$subtotalWithoutVat = Cart::subtotalWithoutVat(); // 60
// Get the sum of the vat of all items in the cart
$vat = Cart::vat(); // 12
// Get the total of the cart (items with vat + cart modifiers)
$total = Cart::total(); // 82
// Using add() - increments quantity if item exists
$item = new CartItem('product-1', 'T-Shirt', 25, 2);
Cart::add($item); // Cart now has 2 items
$sameItem = new CartItem('product-1', 'T-Shirt', 25, 3);
Cart::add($sameItem); // Cart now has 5 items (2 + 3)
// Using replace() - completely replaces existing item
$item = new CartItem('product-1', 'T-Shirt', 25, 2);
Cart::add($item); // Cart now has 2 items
$updatedItem = new CartItem('product-1', 'Updated T-Shirt', 30, 1);
Cart::replace($updatedItem); // Cart now has 1 item with updated data
// replace() also works for adding new items
$newItem = new CartItem('product-2', 'Hoodie', 45, 1);
Cart::replace($newItem); // Adds the new item since it doesn't exist
// User adds item to cart with specific options
$originalItem = new CartItem(
id: 'product-1',
name: 'Basic T-Shirt',
price: 25,
quantity: 1,
options: ['size' => 'M', 'color' => 'blue']
);
Cart::add($originalItem);
// Later, user wants to update quantity and price but keep same variant
$updatedItem = new CartItem(
id: 'product-1',
name: 'Premium T-Shirt', // Updated name
price: 35, // Updated price
quantity: 3, // Updated quantity
options: ['size' => 'M', 'color' => 'blue'] // Same options = same hash
);
// Use replace() to update the existing item completely
Cart::replace($updatedItem); // Replaces existing item with new data
// User adds size M to cart
$originalItem = new CartItem('tshirt-1', 'T-Shirt', 25, 2, options: ['size' => 'M']);
Cart::add($originalItem);
// User decides to switch to size L instead
// First remove the M size
Cart::remove($originalItem);
// Then add the L size
$newVariant = new CartItem('tshirt-1', 'T-Shirt', 25, 2, options: ['size' => 'L']);
Cart::add($newVariant);
// Cart modifiers
Cart::modifiers()->add($modifier); // Add modifier to cart
Cart::modifiers()->remove($modifier); // Remove modifier from cart
Cart::modifiers()->has($modifier); // Check if cart has modifier
Cart::modifiers()->get($modifier); // Get modifier from cart
Cart::modifiers()->content(); // Get all cart modifiers
Cart::modifiers()->clear(); // Clear all cart modifiers
Cart::modifiers()->total(); // Get total cart modifier value
// Get the instance name of the default cart, laravel-simple-cart.default_cart
Cart::getInstance();
// Get the instance name of the wishlist cart, laravel-simple-cart.wishlist
Cart::instance('wishlist')->getInstance();
// Get the instance name of the default cart, laravel-simple-cart.default_cart
Cart::instance()->getInstance();
// Add an item to the cart (increments quantity if item exists)
Cart::add(new \Ashraam\LaravelSimpleCart\CartItem());
// Replace an existing item or add new item (completely replaces without incrementing)
Cart::replace(new \Ashraam\LaravelSimpleCart\CartItem());
// Returns the item or null by its hash.
// You can use an instance of CartItem as a parameter.
// You can find how to generate the hash in the Cart Item chapter of this doc
Cart::get('13b1fc03bd99f6eac794faef45fbc057');
// Checks if the item is in the cart.
// You can use an instance of CartItem
Cart::has('13b1fc03bd99f6eac794faef45fbc057');
// Alternatively, you can find an item by its id and options
// It will return an instance of CartItem or null if not found
Cart::find(id: 'product-1', options: ['size' => 'M']);
// Returns a collection of filtered items
// You have access to all the CartItem methods available
Cart::search(function($item) {
$options = $item->getOptions();
return (array_key_exists("size", $options) && $options["size"] === "sm") || $item->getPrice() >= 15;
});
// Replaces the quantity of the item by the specified value
Cart::update(item: '13b1fc03bd99f6eac794faef45fbc057', quantity: 3);
// Removes the item from the cart
Cart::remove('13b1fc03bd99f6eac794faef45fbc057');
// Returns a collection of all items in the cart
Cart::content();
// Clears the cart from its items and modifiers
Cart::clear();
// Returns the sum of all items without vat
Cart::subtotalWithoutVat();
// Returns the sum of all items with vat
Cart::subtotal();
// Returns the sum of all item's vat
Cart::vat();
// Returns the sum of all items with vat and modifiers applied
Cart::total();
// Checks if the cart is empty or not, returns boolean
Cart::empty();
// Returns the total quantity of items in the cart
Cart::count();
$mod = new \Ashraam\LaravelSimpleCart\CartModifier(
id: 'modifier-id',
name: 'modifier name',
value: 10,
type: 'value', // values are 'value' or 'percent'
description: 'modifier description'
);
// Adds a modifier to the cart
Cart::modifiers()->add($mod);
// Returns a collection of modifiers applied to the cart
Cart::modifiers()->content();
// Checks if the modifier is applied to the cart
Cart::modifiers()->has($mod);
Cart::modifiers()->has('modifier-id');
// Returns an instance of CartModifier or null
Cart::modifiers()->get($mod);
Cart::modifiers()->get('modifier-id');
// Removes a modifier from the cart
Cart::modifiers()->remove($mod);
Cart::modifiers()->remove('modifier-id');
// Clears all the modifiers from the cart
Cart::modifiers()->clear();
// Returns the sum of all modifiers applied to the cart
// For the one in percentage, the base price for calculation is Cart::subtotal()
Cart::modifiers()->total();
$item = new \Ashraam\LaravelSimpleCart\CartItem(
id: 'product-1', // Original product ID
name: 'Product Name', // Product name
price: 30, // Product price
quantity: 2, // Quantity
vat_rate: 10 // VAT Rate (it overwrites the defautl vat rate if set in config)
options: [ // Options (used with the product id to generate the unique item hash id)
'size' => 'L'
],
meta: [ // Additional meta data
'image' => 'https://example.com/product-1.jpg',
'category' => 'T-shirt'
]
);
$item->getHash(); // 13b1fc03bd99f6eac794faef45fbc057
$item->getId(); // 'product-1
$item->setId('new-product-id'); // Updates the product id and regenerate a new hash
$item->getName(); // Product Name
$item->setName('New product name'); // Update the product name
$item->getPrice(); // 30
$item->setPrice(50); // Updates the product base price
$item->getVatRate(); // returns the vat rate or null
$item->setVatRate(21); // Updates the VAT rate for this item
$item->getQuantity(); // returns the quantity
$item->setQuantity(3); // Replaces quantity with the value
$item->incrementQuantity(2); // Increments quantity (default value 1)
$item->decrementQuantity(2); // Decrements quantity (default value 1)
$item->getOptions(); // Returns the option array
$item->setOptions(['color' => 'red'], overwrite: false); // Merges or overwrites the option
$item->getMeta(); // Returns the meta array
$item->setMeta(['desc' => 'y desc'], overwrite: false); // Merges or overwrites the meta
$item->unitPriceWithoutVat(); // 30, base price without vat
$item->vat(); // 3
$item->unitPrice(); // 33, base price with vat
$item->totalWithoutVat() // 60
$item->vatTotal() // 6
$item->total() // 66
return [
/*
|--------------------------------------------------------------------------
| Shopping Cart Session Key
|--------------------------------------------------------------------------
|
| This value is the default key used to store the cart in the session.
| When using multiple cart instances, this serves as the default instance.
|
*/
'default_session_key' => 'default_cart',
/*
|--------------------------------------------------------------------------
| Default VAT Rate
|--------------------------------------------------------------------------
|
| This value is the default VAT Rate to be applied on items when no
| specific VAT rate is provided. Value should be a float between 0 and 100.
| Set to null to disable default VAT calculations.
|
*/
'default_vat_rate' => null, // Example: 20 for 20% VAT
];
// Get the current session manager
$sessionManager = Cart::getSession();
// Manually clear session data (not recommended)
$sessionManager->forget('laravel-simple-cart.default_cart');
// ✅ Good: Lightweight meta data
$item = new CartItem(
id: 'product-1',
name: 'T-Shirt',
price: 29.99,
quantity: 1,
meta: [
'image_url' => 'https://example.com/image.jpg',
'sku' => 'TSHIRT-001'
]
);
// ❌ Avoid: Heavy objects in meta
$item = new CartItem(
id: 'product-1',
name: 'T-Shirt',
price: 29.99,
quantity: 1,
meta: [
'full_product_model' => $heavyEloquentModel, // Avoid this
'large_image_data' => base64_encode($imageData) // Avoid this
]
);