Hallo sahabat Dumenity berjumpa lagi dalam tutorial kursuswebprogramming, pada tutorial kali ini kita akan belajar tentang Cara Membuat PHP Shopping Cart tanpa Database. Aplikasi keranjang belanja akan memiliki katalog untuk memamerkan produk sebagai galeri. Produk dapat disimpan dalam database, file atau bentuk lain yang sesuai dengan bisnis Anda tergantung pada jumlah daftar produk. Jika kita ingin menjual sejumlah besar produk, kita membutuhkan yang namanya media penyimpanan seperti database. Jika tidak, jika jumlah produk lebih sedikit, kita dapat mengelola produk dengan cara statis atau dengan menggunakan file atau array. Mari kita membuat sebuah aplikasi keranjang belanja tanpa database dengan mengelola produk menggunakan array PHP.
Saya telah membuat kelas Produk untuk menentukan array produk dan fungsi untuk mengembalikan array ini. Saya mendapatkan produk dengan menggunakan kelas ini dan menampilkannya di galeri. Galeri akan berisi opsi tambah-untuk-keranjang untuk setiap produk. Setelah menambahkan produk ke keranjang, itu akan dipertahankan dalam sesi PHP yang diindeks oleh kode produk. Item keranjang dalam array sesi akan dicantumkan ke pengguna. Tampilan keranjang berisi penghapusan keranjang individual dan tindakan penghapusan semua. Semua tindakan dilakukan dengan menggunakan jQuery AJAX.
Galeri Produk dan Keranjang HTML
Saya telah mendesain halaman arahan dengan dua bagian utama untuk produk . Saya mengulang rangkaian produk dan menampilkan setiap produk untuk me nampilkan semua produk dalam tampilan galeri. Jika sesi keranjang tidak kosong, saya menjalankan loop melalui array sesi keranjang PHP untuk menampilkan daftar item keranjang. Kode HTML ,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<html lang="en"> <head> <TITLE>PHP Shopping Cart without Database</TITLE> <link href="style.css" type="text/css" rel="stylesheet" /> </head> <body> <h1>Demo Shopping Cart without Database</h1> <?php require_once "product-gallery.php"; ?> <div class="clear-float"></div> <div id="shopping-cart"> <div class="txt-heading"> Shopping Cart <a id="btnEmpty" class="cart-action" onClick="cartAction('empty','');"><img src="images/icon-empty.png" /> Empty Cart</a> </div> <div id="cart-item"> <?php require_once "ajax-action.php"; ?> </div> </div> </body> </html> |
Cara Mendapatkan Array Produk dan Buat Galeri
Dalam blok kode berikut, instance kelas Produk dibuat untuk mendapatkan larik produk. Setelah mendapatkan rangkaian produk, iterasi untuk menampilkan setiap kartu produk. Elemen kartu ditandai dengan kode produk untuk merujuk identitas produk saat melakukan tindakan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?php require_once ("Product.php"); $product = new Product(); $productArray = $product->getAllProduct(); ?> <div id="product-grid"> <div class="txt-heading">Products</div> <?php if (! empty($productArray)) { foreach ($productArray as $k => $v) { ?> <div class="product-item"> <form id="frmCart"> <div class="product-image"> <img src="<?php echo $productArray[$k]["image"]; ?>"> </div> <div> <div class="product-info"> <strong><?php echo $productArray[$k]["name"]; ?></strong> </div> <div class="product-info product-price"><?php echo "$".$productArray[$k]["price"]; ?></div> <div class="product-info"> <button type="button" id="add_<?php echo $productArray[$k]["code"]; ?>" class="btnAddAction cart-action" onClick="cartAction('add','<?php echo $productArray[$k]["code"]; ?>')"> <img src="images/add-to-cart.png" /> </button> <input type="text" id="qty_<?php echo $productArray[$k]["code"]; ?>" name="quantity" value="1" size="2" /> </div> </div> </form> </div> <?php } } ?> </div> |
jQuery AJAX Cart Actions
Skrip jQuery ini berisi fungsi untuk melakukan tindakan keranjang seperti add-to-cart, hapus-satu-keranjang-item dan keranjang-kosong. Ketika ikon add-to-cart diklik pada kartu produk, produk akan ditambahkan ke sesi keranjang dengan referensi kode produk. Saat menambahkan produk ke keranjang, saya memeriksa apakah produk sudah ditambahkan. Jika demikian, saya hanya akan memperbarui kuantitas. Kalau tidak, saya akan membuat turunan deretan keranjang baru.
Dari daftar sesi keranjang yang ada, kami dapat menghapus item keranjang tertentu dan juga menghapus keranjang sepenuhnya. Saat menghapus satu item, kode produk akan dikirim ke PHP untuk menghapus item tertentu dari sesi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script> function cartAction(action, product_code) { var queryString = ""; if (action != "") { switch (action) { case "add": queryString = 'action=' + action + '&code=' + product_code + '&quantity=' + $("#qty_" + product_code).val(); break; case "remove": queryString = 'action=' + action + '&code=' + product_code; break; case "empty": queryString = 'action=' + action; break; } } jQuery.ajax({ url : "ajax-action.php", data : queryString, type : "POST", success : function(data) { $("#cart-item").html(data); if (action == "add") { $("#add_" + product_code + " img").attr("src", "images/icon-check.png"); $("#add_" + product_code).attr("onclick", ""); } }, error : function() { } }); } </script> |
Kode PHP untuk Melakukan Aksi Keranjang
Saya membuat tombol di PHP untuk menghapus-satu. Parameter tindakan dikirim melalui permintaan AJAX. Parameter ini akan diterima dalam PHP . Setelah melakukan tindakan keranjang, susunan sesi keranjang terbaru akan diulangi untuk membuat HTML untuk menampilkan status keranjang saat ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
<?php session_start(); require_once ("Product.php"); $product = new Product(); $productArray = $product->getAllProduct(); if(!empty($_POST["action"])) { switch($_POST["action"]) { case "add": if(!empty($_POST["quantity"])) { $productByCode = $productArray[$_POST["code"]]; $itemArray = array($productByCode["code"]=>array('name'=>$productByCode["name"], 'code'=>$productByCode["code"], 'quantity'=>$_POST["quantity"], 'price'=>$productByCode["price"])); if(!empty($_SESSION["cart_item"])) { $cartCodeArray = array_keys($_SESSION["cart_item"]); if(in_array($productByCode["code"],$cartCodeArray)) { foreach($_SESSION["cart_item"] as $k => $v) { if($productByCode["code"] == $k) { $_SESSION["cart_item"][$k]["quantity"] = $_SESSION["cart_item"][$k]["quantity"]+$_POST["quantity"]; } } } else { $_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray); } } else { $_SESSION["cart_item"] = $itemArray; } } break; case "remove": if(!empty($_SESSION["cart_item"])) { foreach($_SESSION["cart_item"] as $k => $v) { if($_POST["code"] == $k) unset($_SESSION["cart_item"][$k]); if(empty($_SESSION["cart_item"])) unset($_SESSION["cart_item"]); } } break; case "empty": unset($_SESSION["cart_item"]); break; } } ?> <?php if(isset($_SESSION["cart_item"])){ $item_total = 0; ?> <table class="tutorial-table"> <tbody> <tr> <th><strong>Name</strong></th> <th><strong>Code</strong></th> <th class="align-right"><strong>Quantity</strong></th> <th class="align-right"><strong>Price</strong></th> <th></th> </tr> <?php foreach ($_SESSION["cart_item"] as $item){ ?> <tr> <td><strong><?php echo $item["name"]; ?></strong></td> <td><?php echo $item["code"]; ?></td> <td align="right"><?php echo $item["quantity"]; ?></td> <td align="right"><?php echo "$".$item["price"]; ?></td> <td align="center"><a onClick="cartAction('remove','<?php echo $item["code"]; ?>')" class="btnRemoveAction cart-action"><img src="images/icon-delete.png" /></a></td> </tr> <?php $item_total += ($item["price"]*$item["quantity"]); } ?> <tr> <td colspan="3" align=right><strong>Total:</strong></td> <td align=right><?php echo "$". number_format($item_total,2); ?></td> <td></td> </tr> </tbody> </table> <?php } ?> |
Kelas Produk PHP
Kelas PHP ini berisi properti untuk menentukan larik produk. Properti kelas diinisialisasi akan dikembalikan oleh fungsinya yang dinamai getAllProduct (). Fungsi ini disebut dengan instance kelas Produk dari halaman galeri produk.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php class Product { public $productArray = array( "3DcAM01" => array( 'id' => '1', 'name' => 'Camera Canon', 'code' => 'CAMCAN01', 'image' => 'product-images/camera.jpg', 'price' => '1500.00' ), "USB02" => array( 'id' => '2', 'name' => 'HDD External', 'code' => 'USB02', 'image' => 'product-images/external-hard-drive.jpg', 'price' => '800.00' ), "wristWear03" => array( 'id' => '3', 'name' => 'G-SHOCK', 'code' => 'G-SHOCK03', 'image' => 'product-images/watch.jpg', 'price' => '300.00' ) ); public function getAllProduct() { return $this->productArray; } } |
PHP Shopping Cart tanpa Output Database
berikut contoh hasilnya, ketika saya klik salah satu produk maka akan mendapatkan total item dan produk .
Oke itulah tadi pembahasan saya tentang Cara Membuat Shopping Cart tanpa Database , semoga bermanfaat.