Empty cart in php

How to Build a Persistent Shopping Cart in PHP

A persistent shopping cart application will be used to preserve the user’s cart item until the user processes checkout or clears the cart over different sessions and also via multiple devices. In a previous tutorial, we have created a session-based shopping cart by storing cart info in user session using PHP SESSION array.

Shopping cart items in the session will be cleared at the time of logout or closing the window once the user closes his session. In this example, I stored the added cart item in a database table to provide persistence shopping cart.

This example contains a database table to store cart information. When the user clicks the ‘Add to Cart’ button, the selected product id, quantity and the logged in member id is stored in the cart table.

The member id is pre-defined at the start of the program where you can integrate your authentication module to get the logged in member id. This shopping cart example contains the functionalities to add items to the cart, remove a single item from the cart and empty the cart table.

Читайте также:  Php файл ответ сервера

The following screenshot shows the output of the persistent shopping cart example program.

persistant-shopping-cart-output

This HTML code is used to list the product in a gallery view. It shows the persistent cart items read from the database table until the user clears the cart. In the product gallery, each product tile has an Add to Cart button to insert cart item to the database table. The cart list contains options to remove individual or whole cart items.

 
Shopping Cart
empty-cart
getMemberCartItem($member_id); if (! empty($cartItem)) < $item_total = 0; ?> ?>
Name Code Quantity Price Action
" >icon-delete
Total:
?>

PHP Code to Perform Add Remove Empty Cart Action

This PHP code contains a switch case to handle the Add, Remove and Empty cart actions. The ShoppingCart class contains PHP functions to perform these cart actions.

In this functions, I prepare query statements and the query parameters array which will be bind together to make the requested change for the shopping cart.

getProductByCode($_GET["code"]); $cartResult = $shoppingCart->getCartItemByProduct($productResult[0]["id"], $member_id); if (! empty($cartResult)) < // Update cart item quantity in database $newQuantity = $cartResult[0]["quantity"] + $_POST["quantity"]; $shoppingCart->updateCartQuantity($newQuantity, $cartResult[0]["id"]); > else < // Add to cart table $shoppingCart->addToCart($productResult[0]["id"], $_POST["quantity"], $member_id); > > break; case "remove": // Delete single entry from the cart $shoppingCart->deleteCartItem($_GET["id"]); break; case "empty": // Empty cart $shoppingCart->emptyCart($member_id); break; > > ?> 
getDBResult($query); return $productResult; > function getMemberCartItem($member_id) < $query = "SELECT tbl_product.*, tbl_cart.id as cart_id,tbl_cart.quantity FROM tbl_product, tbl_cart WHERE tbl_product.id = tbl_cart.product_id AND tbl_cart.member_id = ?"; $params = array( array( "param_type" =>"i", "param_value" => $member_id ) ); $cartResult = $this->getDBResult($query, $params); return $cartResult; > function getProductByCode($product_code) < $query = "SELECT * FROM tbl_product WHERE code=?"; $params = array( array( "param_type" =>"s", "param_value" => $product_code ) ); $productResult = $this->getDBResult($query, $params); return $productResult; > function getCartItemByProduct($product_id, $member_id) < $query = "SELECT * FROM tbl_cart WHERE product_id = ? AND member_id = ?"; $params = array( array( "param_type" =>"i", "param_value" => $product_id ), array( "param_type" => "i", "param_value" => $member_id ) ); $cartResult = $this->getDBResult($query, $params); return $cartResult; > function addToCart($product_id, $quantity, $member_id) < $query = "INSERT INTO tbl_cart (product_id,quantity,member_id) VALUES (?, ?, ?)"; $params = array( array( "param_type" =>"i", "param_value" => $product_id ), array( "param_type" => "i", "param_value" => $quantity ), array( "param_type" => "i", "param_value" => $member_id ) ); $this->updateDB($query, $params); > function updateCartQuantity($quantity, $cart_id) < $query = "UPDATE tbl_cart SET quantity = ? WHERE $params = array( array( "param_type" =>"i", "param_value" => $quantity ), array( "param_type" => "i", "param_value" => $cart_id ) ); $this->updateDB($query, $params); > function deleteCartItem($cart_id) < $query = "DELETE FROM tbl_cart WHERE $params = array( array( "param_type" =>"i", "param_value" => $cart_id ) ); $this->updateDB($query, $params); > function emptyCart($member_id) < $query = "DELETE FROM tbl_cart WHERE member_id = ?"; $params = array( array( "param_type" =>"i", "param_value" => $member_id ) ); $this->updateDB($query, $params); > > 

Leave a Reply Cancel reply

Источник

Simple PHP Shopping Cart

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.

The intention of this shopping cart software is that it should be simple and as minimal as possible. You can download this free and customize it for your needs within minutes.

shopping

PHP Shopping Cart Software Development Overview

PHP shopping cart example has the following functionality:

  1. Retrieve product information from the database.
  2. Create product gallery for the shopping cart.
  3. Manage cart items using the PHP session.
  4. Handle add, edit, remove and empty cart actions.

I have retrieved information like name, code, price, and photos from the database. The resultant information is in an array format.

I have iterated this resultant array to form the product gallery. Every product in the gallery will have an add-to-cart option.

I have used the PHP shopping cart session to store and manage the items in the cart.

Once the session expires, the cart items get cleared. This code has an option to clear the entire cart or to remove any particular item from the cart.

File Structure

The shopping cart software example has the following file structure. The below list has the file names and their responsibility.

You can build a gallery-based shopping cart software with these files in few minutes.

  • dbcontroller.php – a generic database layer to help with DAO functions. It also manages the database connection.
  • index.php – to display the product gallery for the shopping cart.
  • style.css – to showcase products for the shopping cart. The styles are minimal and cross-browser compatible.
  • tblproduct.sql – contains SQL script with the product table structure and the data.
  • product-images – a folder that contains the product images. I have used these images to show the product gallery.

If you are familiar with online shopping, you might have across product galleries. It is an important gateway in a shopping cart application.

Users will use the product gallery to get a feel of the products available to buy. It is a critical component of every online store.

You should always provide a catalog of the available products to let them have a glance. It helps to promote your products to impulsive buyers.

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 a product card in each iteration.

The DBController.php class will handle the DAO operation and fetch products result.

runQuery("SELECT * FROM tblproduct ORDER BY id ASC"); if (!empty($product_array)) < foreach($product_array as $key=>$value) < ?> 
">
> ?>

Adding Products to Shopping Cart

After creating the product gallery page, we need to work on the PHP code to perform the cart actions. They are add-to-cart, remove a single item from the cart, clear the complete cart and similar.

In the above code, I have added the HTML option to add the product to the shopping cart from the product gallery. When the user clicks the ‘Add to Cart’ button, the HTML form passes the product id to the backend PHP script.

In PHP, I receive and process the cart action with a switch control statement. I have created PHP switch cases to handle the add-to-cart, remove-single, empty-cart actions.

The action is the argument to the switch statement. Then it executes the corresponding action case as requested.

The “add” case handles the add to cart action. In this case, I have received the product id and the quantity.

The cart session stores the submitted product. I have updated the quantity of the product if it already exists in the session cart. The PHP session index is the reference to perform this action.

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"], 'image'=>$productByCode[0]["image"])); 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; 

List Cart Items from the PHP Session

This code shows the HTML to display the shopping cart with action controls. The loop iterates the cart session to list the cart items in a tabular format.

Each row shows the product image, title, price, item quantity with a remove option. Also, it shows the total item quantity and the total item price by summing up the individual cart items.

 
Shopping Cart
Empty Cart ?>
Name Code Quantity Unit Price Price Remove
" /> " >Remove Item
Total:
else < ?>
Your Cart is Empty
?>

Removing or Clearing Cart Item

The loop iterates the cart session array to display the cart items. Each cart item will have a remove link.

If the shopping cart user clicks the remove link then, I remove the respective cart item from the session.

I have provided an ‘Empty Cart’ button control above the shopping cart. The users can use it to completely wipe out the cart session and clear the cart.

I have presented the PHP code below to “remove” and the “empty” cases. They handle the shopping cart to remove/clear actions.

I have 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

You should import the following SQL script. It will create the product table and load data into it. In the example, I have used this product data to display products in the gallery.

-- -- Table structure for table `tblproduct` -- CREATE TABLE `tblproduct` ( `id` int(8) NOT NULL, `name` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `image` text NOT NULL, `price` double(10,2) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `tblproduct` -- INSERT INTO `tblproduct` (`id`, `name`, `code`, `image`, `price`) VALUES (1, 'FinePix Pro2 3D Camera', '3DcAM01', 'product-images/camera.jpg', 1500.00), (2, 'EXP Portable Hard Drive', 'USB02', 'product-images/external-hard-drive.jpg', 800.00), (3, 'Luxury Ultra thin Wrist Watch', 'wristWear03', 'product-images/watch.jpg', 300.00), (4, 'XP 1155 Intel Core Laptop', 'LPN45', 'product-images/laptop.jpg', 800.00); -- -- Indexes for table `tblproduct` -- ALTER TABLE `tblproduct` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `product_code` (`code`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tblproduct` -- ALTER TABLE `tblproduct` MODIFY `id` int(8) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT; 

Simple PHP Shopping Cart Output

The below screenshot shows the product gallery of this simple PHP shopping cart example. The listed cart items above the gallery are from the PHP session.

php-shopping-cart

  • PHP
    • Learn PHP
    • PHP Introduction
    • PHP Basics
    • PHP Shopping Cart
      • Simple PHP Shopping Cart
      • Responsive PHP Shopping Cart
      • PHP Shopping Cart with jQuery AJAX
      • PHP Shopping Cart without Database
      • How to Build a Persistent Shopping Cart in PHP
      • Add Multiple (Bulk) Product into Shopping Cart using PHP
      • Enriched Responsive Shopping Cart in PHP
      • Shopping Cart Product Quick Look like Amazon
      • Shopify Like Shopping Cart with Sticky Checkout using PHP
      • AJAX Cart Edit in PHP Shopping Cart
      • PHP Shopping Cart by jQuery Drag and Drop
      • PHP Shopping Cart with PayPal Payment Gateway Integration
      • Shopping Cart Item Quantity Increment Decrement with AJAX
      • Create JavaScript Shopping Cart with Add to Cart Code
      • Responsive Product Gallery for Shopping Cart
      • Shopping Cart with Multi-Tab Wizard using jQuery AJAX
      • Better Customer Engagement with eCommerce wishlist implementation for shopping cart
      • One Page Checkout Script Free with Example Template in PHP
      • Single Product eCommerce Website with Email Checkout in PHP
      • Shopping Cart Software Product Quick View with Bootstrap Tooltip
      • Zoom for Product Images in PHP Shopping Cart
      • Top 10 Factors in eCommerce Shopping Cart Software Gallery Design
      • Bootstrap eCommerce Product Category Subcategory Page with Filter and Navigation
      • Live Search Bar for an eCommerce Website like Amazon
      • Generate eCommerce Purchase Invoice PDF using PHP Script
      • Bootstrap eCommerce Recently Viewed Products List Carousel
      • How to Develop eCommerce Software with Discount Coupon
      • eCommerce Software Product Gallery Slideshow with jQuery Lightbox
      • Amazon like Product Images Showcase for Shopping Cart
      • Bootstrap Cards for Shopping Cart eCommerce Gallery
      • Shipping API Integration in PHP with Australia Post Example

      I’m currently available for freelance work.

      1. Simple PHP Shopping Cart
      2. Stripe Payment Gateway Integration using PHP
      3. User Registration in PHP with Login: Form with MySQL and Code Download
      4. PHP Contact Form
      5. How to Create Dynamic Stacked Bar, Doughnut and Pie charts in PHP with Chart.js

      “ The whole experience was extremely professional. We agreed on the requirements and scope of work quickly. The price was fair. Vincy promised quick turn-around and delivered on time . ”

      Michael Goldstein, HHG Development Associates LLC, USA

      Источник

Оцените статью