Pada kesempatan kali ini kita akan belajar tentang Cara Membuat Shopping Cart Menggunakan PHP. Shopping Cart merupakan bagian yang tidak terpisahkan pada sebuah website jual beli atau pada sebuah website e-commerce. Dalam shopping cart atau biasa disebut keranjang belanja. Keranjang belanja berfungsi menampung item-item pilihan barang yang akan dibeli oleh user atau pengguna website e-commerce.
Cara Membuat Shopping Cart Menggunakan PHP adalah sebagai berikut langkah-langkahnya:
Pertama-tama coba sahabat membuat database kemudian membuat tabel-tabel seperti tampilan dibawah ini:
Berikut ini adalah detail field yang ada pada tabel-tabel diatas
Jika sudah selanjutnya membuat koneksi ke database seperti code dibawah ini:
Config.php
<?php // membuat konfigurasi koneksi database $dbHost = "localhost"; $dbUsername = "root"; $dbPassword = ""; $dbName = "belajar-php"; // membuat koneksi ke database $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); // melakukan pengecekan koneksi if ($db->connect_error) { die("Connection failed: " . $db->connect_error); }
Jika sudah selanjutnya sahabat bisa menambahkan beberapa data ke dalam tabel product agar bisa ditampilkan.
langkah selanjutnya buat file index.php seperti code berikut ini:
<?php // Initialisasi shopping cart class include_once 'Cart.php'; $cart = new Cart; // Include koneksi database di file config require_once 'Config.php'; ?> <!DOCTYPE html> <html lang="en"> <head> <title>Membuat Shopping Cart Menggunakan PHP</title> <meta charset="utf-8"> <!-- Bootstrap core CSS --> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom style --> <link href="style.css" rel="stylesheet"> <!-- Fontawesome Icon --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css"> </head> </head> <body> <div class="container"> <h1>PRODUCTS</h1> <!-- keranjang belanja --> <div class="cart-view"> <a href="View_cart.php" title="View Cart"><i class="fas fa-shopping-cart"></i> (<?php echo ($cart->total_items() > 0)?$cart->total_items().' Items':'Empty'; ?>)</a> </div> <!-- Product list --> <div class="row col-lg-12"> <?php // ambil data products from database $result = $db->query("SELECT * FROM art_products ORDER BY id DESC LIMIT 10"); if($result->num_rows > 0){ while($row = $result->fetch_assoc()){ ?> <div class="card col-lg-4 mr-2"> <div class="card-body"> <h5 class="card-title"><?php echo $row["name"]; ?></h5> <h6 class="card-subtitle mb-2 text-muted"><?php echo 'Rp. '.number_format($row["price"],0, '.','.'); ?></h6> <small class="card-text"><?php echo $row["description"]; ?></small> <a href="cartAction.php?action=addToCart&id=<?php echo $row["id"]; ?>" class="btn btn-primary mt-2">Add to Cart</a> </div> </div> <?php } }else{ ?> <p>Product sedang tidak tersedia.....</p> <?php } ?> </div> </div> </body> </html>
Pada file index.php, dapat dilihat ada perintah query untuk menampilkan data yang berasal dari tabel product. Jadi jika ditampilan pada browser maka akan seperti berikut ini:
Baiklah langkah berikutnya kita harus membuat sebuah Class Cart, untuk library cart yang akan berisi beberapa function.
<?php // Membuat session if(!session_id()){ session_start(); } class Cart { protected $cart_contents = array(); public function __construct(){ // mendapatkan nilai pada cart berbentuk array menangkap dari sebuah session $this->cart_contents = !empty($_SESSION['cart_contents'])?$_SESSION['cart_contents']:NULL; if ($this->cart_contents === NULL){ // mengatur value awal = 0 $this->cart_contents = array('cart_total' => 0, 'total_items' => 0); } } /* isi di keranjang : mengembalikan array pada cart */ public function contents(){ // utk mengatur ulang nilai pada isi cart $cart = array_reverse($this->cart_contents); // menghapus nilai supaya tidak terjadi kesalahan saat menampilkan kembali unset($cart['total_items']); unset($cart['cart_total']); return $cart; } public function get_item($row_id){ return (in_array($row_id, array('total_items', 'cart_total'), TRUE) OR ! isset($this->cart_contents[$row_id])) ? FALSE : $this->cart_contents[$row_id]; } public function total_items(){ return $this->cart_contents['total_items']; } public function total(){ return $this->cart_contents['cart_total']; } public function insert($item = array()){ if(!is_array($item) OR count($item) === 0){ return FALSE; }else{ if(!isset($item['id'], $item['name'], $item['price'], $item['qty'])){ return FALSE; }else{ $item['qty'] = (float) $item['qty']; if($item['qty'] == 0){ return FALSE; } $item['price'] = (float) $item['price']; $rowid = md5($item['id']); $old_qty = isset($this->cart_contents[$rowid]['qty']) ? (int) $this->cart_contents[$rowid]['qty'] : 0; $item['rowid'] = $rowid; $item['qty'] += $old_qty; $this->cart_contents[$rowid] = $item; if($this->save_cart()){ return isset($rowid) ? $rowid : TRUE; }else{ return FALSE; } } } } public function update($item = array()){ if (!is_array($item) OR count($item) === 0){ return FALSE; }else{ if (!isset($item['rowid'], $this->cart_contents[$item['rowid']])){ return FALSE; }else{ // prep the quantity if(isset($item['qty'])){ $item['qty'] = (float) $item['qty']; // remove the item from the cart, if quantity is zero if ($item['qty'] == 0){ unset($this->cart_contents[$item['rowid']]); return TRUE; } } $keys = array_intersect(array_keys($this->cart_contents[$item['rowid']]), array_keys($item)); if(isset($item['price'])){ $item['price'] = (float) $item['price']; } foreach(array_diff($keys, array('id', 'name')) as $key){ $this->cart_contents[$item['rowid']][$key] = $item[$key]; } $this->save_cart(); return TRUE; } } } protected function save_cart(){ $this->cart_contents['total_items'] = $this->cart_contents['cart_total'] = 0; foreach ($this->cart_contents as $key => $val){ if(!is_array($val) OR !isset($val['price'], $val['qty'])){ continue; } $this->cart_contents['cart_total'] += ($val['price'] * $val['qty']); $this->cart_contents['total_items'] += $val['qty']; $this->cart_contents[$key]['subtotal'] = ($this->cart_contents[$key]['price'] * $this->cart_contents[$key]['qty']); } if(count($this->cart_contents) <= 2){ unset($_SESSION['cart_contents']); return FALSE; }else{ $_SESSION['cart_contents'] = $this->cart_contents; return TRUE; } } public function remove($row_id){ unset($this->cart_contents[$row_id]); $this->save_cart(); return TRUE; } public function destroy(){ $this->cart_contents = array('cart_total' => 0, 'total_items' => 0); unset($_SESSION['cart_contents']); } }
Saya kira cukup dalam pembahasan tentang Cara Membuat Shopping Cart Menggunakan PHP. Dan akan kita lanjutkan pada artikel selanjutnya.
terima kasih
The post Cara Membuat Shopping Cart Menggunakan PHP appeared first on Kursus Website Terbaik.