Laravel PHP shopping cart
- Simple API
- Support multiple cart instances
- Laravel 5+
Lara-phpcart is available via Composer
$ composer require miladev/lara-cartYou can now use this facade in place of instantiating the Cart yourself in the following examples.
The add method required id, name, price and quantity keys. However, you can pass any data that your application required.
use Miladev\Laracart\Cart;
$cart = new Cart();
$cart->add([
'id' => 1001,
'name' => 'Skinny Jeans',
'quantity' => 1,
'price' => 90
]);$cart->update([
'id' => 1001,
'name' => 'Hoodie'
]);$cart->updateQty(1001, 3);$cart->updatePrice(1001, 30);$cart->remove(1001);$cart->getItems();
// or
$cart->items();$cart->get(1001);$cart->has(1001);$cart->count();$cart->totalQuantity();$cart->getTotal();$cart->clear();Lara-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
]);Apply a cart-level coupon or promo code to reduce the cart total.
$cart->applyCoupon([
'code' => 'SAVE10',
'type' => 'percentage', // or: fixed
'value' => 10,
]);
$discount = $cart->getDiscountAmount();
$total = $cart->getTotal();Remove an applied coupon:
$cart->removeCoupon();- Tax calculation per item and per cart
- Discount rules and price modifiers
- Shipping methods and shipping cost calculation
- Cart fees such as handling or service fees
- Guest cart to authenticated user cart merge
- Cross-device cart synchronization
- Wishlist and saved-for-later support
- Cart item metadata and custom options
- Product model association and auto-sync from database
- Multiple cart instances with isolated totals
- Cart events and hooks for extensibility
- Currency support and locale-aware formatting
- Bulk pricing and tiered pricing rules
- Inventory and stock validation before checkout
- Cart expiration and cleanup
- Persistent storage drivers beyond session and database
- API resources for headless and frontend integrations
- Better validation and custom exceptions
- Full test coverage for all cart operations
- Support for the latest Laravel versions