Simple PHP Shopping Cart

Last modified on July 7th, 2018 by Vincy.

Building a PHP shopping cart eCommerce software is simple and easy. In this tutorial, let’s create a simple PHP shopping cart software with MySQL. This shopping cart application is purposely kept simple and as minimal as possible. You can download this and quickly customize it for your needs.

shopping

View Demo

PHP Shopping Cart Software Development Overview

I have created a dynamic shopping cart product gallery by fetching results from MySQL database table using PHP. In the product table, I have stored the information like product name, code, price and more details. After getting the result from the product table, I have run the resultant array in a PHP for loop to create the card-like gallery view. For each product card, it contains an option to add the product to the shopping cart by specifying the quantity. The default quantity will be 1 which can be editable with an input field. 

I have created a session-based PHP shopping cart. The added cart items are stored in the PHP session. The cart items will be flushed out once the session is expired. In this example, it has an option to clear the cart explicitly. We can also remove a specific product from the cart by clicking the ‘Remove Item’ link.

File Structure

The shopping cart software example has the following file structure. The file names and description about the actions performed with the files are listed here. So, you can simply build your own gallery-based shopping cart software with these files listed below.

  • dbcontroller.php – the DAO operation like implementing connection and fetching data are performed with the file.
  • index.php – the product gallery for the shopping cart is displayed on the landing page by using this PHP file.
  • style.css – the cross-browser compatible minimal styles applied here to showcase products for the shopping cart.
  • tblproduct.sql – contains SQL script with the product table structure and the data.
  • product-images – a folder containing image file for the products to be shown in the gallery. 

Creating Product Gallery for Shopping Cart

If you are familiar with online shopping then can able to understand the importance of the product gallery in a shopping cart application. Generally, people will not visit the online stores to directly purchase the products in their mind. We need to provide a catalog of the available products to let them have a glance with it. It leads to promote your products for the impulsive purchase sometime.

In the following code, I have shown the PHP script to get the product results from the database. The result will be an array and iterated to create product card in each iteration. The DBController.php class will handle the DAO operation to fetch products result from the database. I have created the DBController instance to run the SELECT query.

<?php
$product_array = $db_handle->runQuery("SELECT * FROM tblproduct ORDER BY id ASC");
if (!empty($product_array)) 
{ 
 foreach($product_array as $key=>$value)
  {
?>
<div class="product-item">
	<form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>">
	<div class="product-image">
         <img src="<?php echo $product_array[$key]["image"]; ?>">
        </div>
	<div>
         <strong><?php echo $product_array[$key]["name"]; ?></strong>
        </div>
	<div class="product-price"><?php echo "$".$product_array[$key]["price"]; ?></div>
	<div><input type="text" name="quantity" value="1" size="2" /><input type="submit" value="Add to cart" class="btnAddAction" /></div>
	</form>
</div>
<?php 
  }
} 
?>

Adding Products  to Shopping Cart

After creating the product gallery page, we need to work on the PHP code to perform the cart actions like add-to-cart, remove a single item from the cart, clear the cart and more. In the above code, I have added the HTML option to add the product to the shopping cart from the product gallery. On clicking the Add to Cart button from the product card, the product id will be submitted to the PHP via a HTML form.

In PHP, I have received and process the cart action with a switch control statement. I have created separate cases in the PHP switch to handle the add-to-cart, remove-single, empty-cart actions. The action is passed to the argument for the switch statement to execute a corresponding action case as requested.

The  ‘Add to cart’ action will be handled with the “add” case. In this case, I received the product id and the quantity. The cart session is created to store the submitted product in it. If the selected product is already added in the session, then the quantity will be updated with the reference of the PHP session index. 

case "add":
	if(!empty($_POST["quantity"])) {
		$productByCode = $db_handle->runQuery("SELECT * FROM tblproduct WHERE code='" . $_GET["code"] . "'");
		$itemArray = array($productByCode[0]["code"]=>array('name'=>$productByCode[0]["name"], 'code'=>$productByCode[0]["code"], 'quantity'=>$_POST["quantity"], 'price'=>$productByCode[0]["price"]));
		
		if(!empty($_SESSION["cart_item"])) {
			if(in_array($productByCode[0]["code"],array_keys($_SESSION["cart_item"]))) {
				foreach($_SESSION["cart_item"] as $k => $v) {
						if($productByCode[0]["code"] == $k) {
							if(empty($_SESSION["cart_item"][$k]["quantity"])) {
								$_SESSION["cart_item"][$k]["quantity"] = 0;
							}
							$_SESSION["cart_item"][$k]["quantity"] += $_POST["quantity"];
						}
				}
			} else {
				$_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
			}
		} else {
			$_SESSION["cart_item"] = $itemArray;
		}
	}
break;

Removing or Clearing Cart Item

The cart session array is iterated to display the cart item. Each cart item will have a remove link. If the shopping cart user clicks the remove link shown in each cart item, then it will be deleted from the cart session by executing. I have provided an option to wipe out the cart session. The ‘Empty Cart’button control above the shopping cart will be used to clear the cart completely.

The following PHP code shows the “remove” and the “empty” cases to handle the shopping cart remove/clear actions. I used PHP unset() to clear the cart session to delete the added item from the shopping cart.

case "remove":
	if(!empty($_SESSION["cart_item"])) {
		foreach($_SESSION["cart_item"] as $k => $v) {
			if($_GET["code"] == $k)	unset($_SESSION["cart_item"][$k]);				
			if(empty($_SESSION["cart_item"])) unset($_SESSION["cart_item"]);
		}
	}
break;
case "empty":
	unset($_SESSION["cart_item"]);
break;

Database Product Table for Shopping Cart

Import the following SQL script by using your database client to create the product table. After creating this table add the data to show the product catalog.

CREATE TABLE IF NOT EXISTS `tblproduct` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `code` varchar(255) NOT NULL,
  `image` text NOT NULL,
  `price` double(10,2) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `product_code` (`code`)
)

Simple PHP Shopping Cart Output

Below screenshot shows the product gallery of this simple PHP shopping cart example. Also, the cart items are listed from the PHP session above the gallery.

php-shopping-cart

View DemoDownload

This PHP code tutorial was published on October 26, 2014.

↑ Back to Top

Share this Article