Tạo giỏ hàng (Shopping Cart) đơn giản với PHP

Tạo ứng dụng giỏ hàng hay Shopping Cart luôn luôn là một phần quan trọng nhất so với người làm web. Với sự tăng trưởng như vũ bão của thương mại điện tử, thì ngày càng có nhiều website bán hàng với đủ thể loại Open. Thực tế thì khi kiến thiết xây dựng một website bán hàng, những bạn không cần phải tự lập trình gì nhiều, vì có rất nhiều mã nguồn mở tương hỗ việc kiến thiết xây dựng một shop trực tuyến như Magento, CS Cart, Presstashop … .. Nhưng làm gì thì làm, nếu những bạn hoàn toàn có thể tự kiến thiết xây dựng cho mình một giỏ hàng riêng, thì vừa hoàn toàn có thể nâng cao năng lực lập trình, vừa hoàn toàn có thể hiểu rõ hơn về chính sách mà một website bán hàng cần có .
Hôm nay, trong bài viết này, mình sẽ cùng những bạn từng bước tạo một giỏ hàng đơn thuần bằng PHP. Và qua bài viết này, những bạn hoàn toàn có thể tự tăng trưởng nâng cao hơn để có một giỏ hàng như mong muốn cho chính website của mình .

php-shopping-cart

Xem Demo | Download

Đầu tiên, những bạn cần tạo 4 file sau đây cho giỏ hàng ( shopping cart ) của mình :

  1. Config.php (kết nối cơ sở dữ liệu)
  2. Index.php (trang hiển thị danh sách sản phẩm từ database)
  3. Cart_update.php (cập nhật giỏ hàng)
  4. View_cart.php (xem tổng quan giỏ hàng trước khi thanh toán)

Okie, thế là xong, và giờ đây tất cả chúng ta sẽ thực thi từng bước .

Bước 1 : Tạo cơ sở dữ liệu

Trước hết, tất cả chúng ta cần có một tài liệu lưu thông tin mẫu sản phẩm như tên loại sản phẩm, hình ảnh loại sản phẩm đó … như đoạn sql sau :

CREATE TABLE IF NOT EXISTS `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `product_code` varchar(60) NOT NULL,
  `product_name` varchar(60) NOT NULL,
  `product_desc` tinytext NOT NULL,
  `product_img_name` varchar(60) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `product_code` (`product_code`)
) AUTO_INCREMENT=1 ;

Nếu các bạn không biết dùng câu lệnh sql để tạo, thì có thể vào PhpMyAdmin để tạo theo cấu trúc sql bên trên. Khi tạo bảng (table) xong, các bạn có thể chèn thêm danh sách các sản phẩm vào table như hình minh họa sau :

Xem thêm  Dành cho những bạn đang có ý định sử dụng phần mềm dọn rác trên Smartphone | Tinh tế

product-details-mysql

Bước 2  : kết nối cơ sở dữ liệu

Một khi chúng ta đã có dữ liệu lưu trữ thông tin sản phẩm, chúng ta sẽ tiến hành kết nối với dữ liệu để hiện thị sản phẩm ra màn hình. Các bạn mở file config.php ra và copy đoạn code sau vào bên trong nó :


Các bạn nhớ thay đổi giá trị theo các ghi chú mà mình ghi bên cạnh nhé.

Bước 3 : Hiển thị thông tin sản phẩm và giỏ hàng

Bây giờ là lúc mà chúng ta sẽ hiển thị danh sách các sản phẩm cần bán,. Vì chúng ta sẽ sử dụng session để lưu tạm thông tin giỏ hàng, nên việc đầu tiên cần làm là chúng ta phải kích hoạt session. Mở file index.php ra và copy đoạn code sau dán vào nó :


Trang index.php này sẽ hiển thị 2 nội dung, nội dung thứ 1 sẽ liệt kê các sản phẩm (nằm ở giữa) và nội dung thứ 2 hiển thị giỏ hảng (nằm bên phải kế bên).

Liệt kê sản phẩm

Các bạn copy đoạn code sau và dán nó vào tiếp trong file index.php để hiển thị những sản phầm từ database :

query("SELECT * FROM products ORDER BY id ASC"); if ($results) { //output results from database while($obj = $results->fetch_object()) { echo '
'; echo '
'; echo '
'; echo '

Mục lục bài viết

'.$obj->product_name.'

'; echo '
'.$obj->product_desc.'
'; echo '
Price '.$currency.$obj->price.'
'; echo '
'; echo ''; echo ''; echo ''; echo '
'; echo '
'; } } ?>

Thông tin giỏ hàng :

Sau đó copy đoạn code sau và dán tiếp vào file index.php để hiển thị giỏ hàng :

Your Shopping Cart

'; foreach ($_SESSION["products"] as $cart_itm) { echo '
  • '; echo '×'; echo '

    '.$cart_itm["name"].'

    '; echo '
    P code : '.$cart_itm["code"].'
    '; echo '
    Qty : '.$cart_itm["qty"].'
    '; echo '
    Price :'.$currency.$cart_itm["price"].'
    '; echo '
  • '; $subtotal = ($cart_itm["price"]*$cart_itm["qty"]); $total = ($total + $subtotal); } echo '

    ‘;
    echo ‘Total : ‘.$currency.$total.’ Check-out!‘;
    echo ‘Empty Cart‘;
    }else{
    echo ‘Your Cart is empty’;
    }
    ?>

    Bước 4 : Cập nhật giỏ hàng

    Giỏ hàng sẽ có chức năng là thêm và xóa sản phẩm khi đưa vào giỏ. Khi các bạn click vào nút “Add to Cart“, form sẽ gửi một giá trị hidden là mã sản phẩm (product code) với số lượng (quantity) đến file Cart_update.php thông qua phương thức POST. Chúng ta sẽ sử dụng những thông tin được gửi đến này để lấy thông tin sản phẩm từ database. Các bạn copy đoạn code bên dưới và dán vào file Cart_update.php. Mỗi một câu lệnh có để ghi chú, các bạn có thể xem những dòng ghi chú này để hiểu rõ code hơn.

     10){
            die('
    This demo does not allowed more than 10 quantity!
    Back To Products.
    '); } //MySqli query - get details of item from db using product code $results = $mysqli->query("SELECT product_name,price FROM products WHERE product_code='$product_code' LIMIT 1"); $obj = $results->fetch_object(); if ($results) { //we have the product info //prepare array for the session variable $new_product = array(array('name'=>$obj->product_name, 'code'=>$product_code, 'qty'=>$product_qty, 'price'=>$obj->price)); if(isset($_SESSION["products"])) //if we have the session { $found = false; //set found item to false foreach ($_SESSION["products"] as $cart_itm) //loop through session array { if($cart_itm["code"] == $product_code){ //the item exist in array $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$product_qty, 'price'=>$cart_itm["price"]); $found = true; }else{ //item doesn't exist in the list, just retrive old info and prepare array for session var $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]); } } if($found == false) //we didn't find item in array { //add new user item in array $_SESSION["products"] = array_merge($product, $new_product); }else{ //found user item in array list, and increased the quantity $_SESSION["products"] = $product; } }else{ //create a new session var if does not exist $_SESSION["products"] = $new_product; } } //redirect back to original page header('Location:'.$return_url); } //remove item from shopping cart if(isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["products"])) { $product_code = $_GET["removep"]; //get the product code to remove $return_url = base64_decode($_GET["return_url"]); //get return url foreach ($_SESSION["products"] as $cart_itm) //loop through session array var { if($cart_itm["code"]!=$product_code){ //item does,t exist in the list $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]); } //create a new product list for cart $_SESSION["products"] = $product; } //redirect back to original page header('Location:'.$return_url); }

    Bước 5 : Xem tổng quan giỏ hàng

    Bây giờ chúng ta sẽ liệt kê tất cả các sản phẩm có trong giỏ hàng, với số lượng, giá tiền, và tổng tiền sẽ phải thanh toán trước khi tiến hành ” đặt mua “. Nếu các bạn muốn nâng cao, ở phần này các bạn có thể chèn thêm tiền thuế, phí giao hàng… Các bạn copy đoạn code sau vào file View_cart.php.

    ';
            echo '
      '; $cart_items = 0; foreach ($_SESSION["products"] as $cart_itm) { $product_code = $cart_itm["code"]; $results = $mysqli->query("SELECT product_name,product_desc, price FROM products WHERE product_code='$product_code' LIMIT 1"); $obj = $results->fetch_object(); echo '
    • '; echo '×'; echo '
      '.$currency.$obj->price.'
      '; echo '
      '; echo '

      '.$obj->product_name.' (Code :'.$product_code.')

      '; echo '
      Qty : '.$cart_itm["qty"].'
      '; echo '
      '.$obj->product_desc.'
      '; echo '
      '; echo '
    • '; $subtotal = ($cart_itm["price"]*$cart_itm["qty"]); $total = ($total + $subtotal); echo ''; echo ''; echo ''; echo ''; $cart_items ++; } echo '
    '; echo ''; echo 'Total : '.$currency.$total.' '; echo ''; echo '

    ‘;

    }else{
    echo ‘Your Cart is empty’;
    }
    ?>

    Thế là xong rồi đó những bạn, để có một giỏ hàng đúng nghĩa thì còn có rất nhiều yếu tố và cụ thể cần thêm vào, tuy nhiên, những bạn cần nắm vững những bước cơ bản như trong bài học kinh nghiệm này rồi sau đó mới hoàn toàn có thể nâng cao lên theo ý mình muốn. Nếu có gì vướng mắc thì đừng ngần ngại để lại lời nhắn dưới dạng comments nhé .

    Chúc các bạn thành công !

    Chuyên Mục: PHP

    Bài viết được đăng bởi webmaster

    Rate this post

    Bài viết liên quan

    Để lại ý kiến của bạn:

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *