PHPackages                             pashamesh/cart - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. pashamesh/cart

ActiveLibrary

pashamesh/cart
==============

Simple shopping cart package

2.0.0(5y ago)0255MITPHPPHP &gt;=5.3.0

Since Feb 16Pushed 5y agoCompare

[ Source](https://github.com/pashamesh/cart)[ Packagist](https://packagist.org/packages/pashamesh/cart)[ RSS](/packages/pashamesh-cart/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (1)Dependencies (1)Versions (5)Used By (0)

[![Build Status](https://camo.githubusercontent.com/095a36f7814d34f74c25b7c6d4a4d472bdba0d36db98d10538b957778f558969/68747470733a2f2f6170692e7472617669732d63692e6f72672f70617368616d6573682f636172742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/pashamesh/cart)[![Coverage Status](https://camo.githubusercontent.com/5b58186932a4503ca46576c52cc0de268cd97ca56b82c013547719e8ce2e8396/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f70617368616d6573682f636172742f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/pashamesh/cart?branch=master)[![codecov.io](https://camo.githubusercontent.com/8662e8ee9b89c566f2cf4368b44005a4c0d9ce04deeae3b99ac387ac974464cc/68747470733a2f2f636f6465636f762e696f2f6769746875622f70617368616d6573682f636172742f636f7665726167652e7376673f6272616e63683d6d6173746572)](https://codecov.io/github/pashamesh/cart?branch=master)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/51035ee4097692ad7883334df34c90b372b1b013ffa8f9ebe1f33f4ad4a868af/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f70617368616d6573682f636172742f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/pashamesh/cart/?branch=master)[![Codacy Badge](https://camo.githubusercontent.com/fb9719c9458e11385341d3d9dbf4e830365a325381f8eab87e2ab9143a201ab3/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3933623130306633306539643439613261383237616433356235353962323932)](https://www.codacy.com/manual/pashamesh/cart?utm_source=github.com&utm_medium=referral&utm_content=pashamesh/cart&utm_campaign=Badge_Grade)[![Latest Stable Version](https://camo.githubusercontent.com/199f3a2a91f822f97e14b3bd62af37f60a1146714f54cbdc77ebba0e94ea7fc9/68747470733a2f2f706f7365722e707567782e6f72672f70617368616d6573682f636172742f762f737461626c65)](https://packagist.org/packages/pashamesh/cart)[![Total Downloads](https://camo.githubusercontent.com/790eada9ebca69efd505cc136a84d5c2dc5619fc5e33eeab9015a149effd102b/68747470733a2f2f706f7365722e707567782e6f72672f70617368616d6573682f636172742f646f776e6c6f616473)](https://packagist.org/packages/pashamesh/cart)[![Latest Unstable Version](https://camo.githubusercontent.com/72e02f7d05f07ea6007d1d59b493f068240a457787bb6d140b8af5a158d41bb0/68747470733a2f2f706f7365722e707567782e6f72672f70617368616d6573682f636172742f762f756e737461626c65)](https://packagist.org/packages/pashamesh/cart)[![PHP 7 ready](https://camo.githubusercontent.com/564bb5b3dc1c379e43b6ab2da26144952d4d7d7eb4383921013418df81ad4c22/687474703a2f2f7068703772656164792e74696d6573706c696e7465722e63682f70617368616d6573682f636172742f62616467652e737667)](https://travis-ci.org/pashamesh/cart)[![License](https://camo.githubusercontent.com/b2bf5e79c7d98383271ec44a13b5f6c3124b41097589a610239b2710a1d51cd6/68747470733a2f2f706f7365722e707567782e6f72672f70617368616d6573682f636172742f6c6963656e7365)](https://packagist.org/packages/pashamesh/cart)

Simple Shopping Cart for PHP
============================

[](#simple-shopping-cart-for-php)

- [Website](https://github.com/pashamesh/cart)
- [License](https://github.com/pashamesh/cart/master/LICENSE)

This simple shopping cart composer package makes it easy to implement a shopping basket into your application and store the cart data using one of the numerous data stores provided. You can also inject your own data store if you would like your cart data to be stored elsewhere.

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require pashamesh/cart
```

Usage
-----

[](#usage)

Below is a basic usage guide for this package.

### Instantiating the cart

[](#instantiating-the-cart)

Before you begin, you will need to know which storage and identifier method you are going to use. The identifier is how you store which cart is for that user. So if you store your cart in the database, then you need a cookie (or some other way of storing an identifier) so we can link the user to a stored cart.

In this example we're going to use the cookie identifier and session for storage.

```
use voku\Cart\Cart;
use voku\Cart\Storage\Session;
use voku\Cart\Identifier\Cookie;

$cart = new Cart(new Session, new Cookie);
```

### Inserting items into the cart

[](#inserting-items-into-the-cart)

Inserting an item into the cart is easy. The required keys are id, name, price and quantity, although you can pass over any custom data that you like.

```
$cart->insert(
    array(
        'id'       => 'foo',
        'name'     => 'bar',
        'price'    => 100,
        'quantity' => 1
    )
);
```

### Setting the tax rate for an item

[](#setting-the-tax-rate-for-an-item)

Another key you can pass to your insert method is 'tax'. This is a percentage which you would like to be added onto the price of the item.

In the below example we will use 20% for the tax rate.

```
$cart->insert(
    array(
        'id'       => 'foo',
        'name'     => 'bar',
        'price'    => 100,
        'quantity' => 1,
        'tax'      => 20
    )
);
```

### Updating items in the cart

[](#updating-items-in-the-cart)

You can update items in your cart by updating any property on a cart item. For example, if you were within a cart loop then you can update a specific item using the below example.

```
foreach ($cart->contents() as $item)
{
    $item->name = 'Foo';
    $item->quantity = 1;
}
```

### Removing cart items

[](#removing-cart-items)

You can remove any items in your cart by using the `$cart->remove()` method on any cart item.

```
foreach ($cart->contents() as $item)
{
    $cart->remove($item->getIdentifier());
    // or even
    $cart->remove($item);
}
```

### Destroying/emptying the cart

[](#destroyingemptying-the-cart)

You can completely empty/destroy the cart by using the `destroy()` method.

```
$cart->destroy();
```

### Retrieve the cart contents

[](#retrieve-the-cart-contents)

You can loop the cart contents by using the following method

```
$cart->contents();
```

You can also return the cart items as an array by passing true as the first argument

```
$cart->contents(true);
```

### Retrieving the total items in the cart

[](#retrieving-the-total-items-in-the-cart)

```
$cart->totalItems();
```

By default this method will return all items in the cart as well as their quantities. You can pass `true`as the first argument to get all unique items.

```
$cart->totalItems(true);
```

### Retrieving the cart total

[](#retrieving-the-cart-total)

```
$cart->total();
```

By default the `total()` method will return the total value of the cart as a `float`, this will include any item taxes. If you want to retrieve the cart total without tax then you can do so by passing false to the `total()` method

```
$cart->total(false);
```

### Check if the cart has an item

[](#check-if-the-cart-has-an-item)

```
$cart->has($itemIdentifier);
```

### Retreive an item object by identifier

[](#retreive-an-item-object-by-identifier)

```
$cart->item($itemIdentifier);
```

Cart items
----------

[](#cart-items)

There are several features of the cart items that may also help when integrating your cart.

### Retrieving the total value of an item

[](#retrieving-the-total-value-of-an-item)

You can retrieve the total value of a specific cart item (including quantities) using the following method.

```
$item->total();
```

By default, this method will return the total value of the item plus tax. So if you had a product which costs 100, with a quantity of 2 and a tax rate of 20% then the total returned by this method would be 240.

You can also get the total minus tax by passing false to the `total()` method.

```
$item->total(false);
```

This would return 200.

### Check if an item has options

[](#check-if-an-item-has-options)

You can check if a cart item has options by using the `hasOptions()` method.

```
if ($item->hasOptions())
{
  // We have options
}
```

### Remove an item from the cart

[](#remove-an-item-from-the-cart)

```
$item->remove();
```

### Output the item data as an array

[](#output-the-item-data-as-an-array)

```
$item->toArray();
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 92.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~532 days

Total

4

Last Release

2137d ago

Major Versions

1.0.2 → 2.0.02020-07-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b0c97dfe2df10c3ddf1c53695bac7a14bd337d24f11e45df8f8927329f2ae64?d=identicon)[pashamesh](/maintainers/pashamesh)

---

Top Contributors

[![chrisnharvey](https://avatars.githubusercontent.com/u/619298?v=4)](https://github.com/chrisnharvey "chrisnharvey (199 commits)")[![voku](https://avatars.githubusercontent.com/u/264695?v=4)](https://github.com/voku "voku (13 commits)")[![pashamesh](https://avatars.githubusercontent.com/u/1695806?v=4)](https://github.com/pashamesh "pashamesh (3 commits)")[![bloom-design](https://avatars.githubusercontent.com/u/5961169?v=4)](https://github.com/bloom-design "bloom-design (1 commits)")

---

Tags

cartpackagephpphp5php7shopping-cart

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/pashamesh-cart/health.svg)

```
[![Health](https://phpackages.com/badges/pashamesh-cart/health.svg)](https://phpackages.com/packages/pashamesh-cart)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
