Keranjang Belanja Sederhana Dengan PHP

February 11th, 20101:37 pm

6


Membuat keranjang belanja dengan framework sangatlah mudah, sayangnya kadang kita tidak selalu menggunakan web framework. Pada kesempatan kali ini, mari kita belajar membuat keranjang belanja tanpa menggunakan pustaka tambahan.

Pertama kita membuat database contoh untuk aplikasi yang akan kita buat.

CREATE TABLE products` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 100 ) NOT NULL ,
`price` INT NOT NULL
);
 
INSERT INTO `products` (`id`, `name`, `price`) VALUES
(1, 'kemeja batik', 50000),
(2, 'sepatu', 250000),
(3, 'celana panjang', 150000),
(4, 'dasi', 75000);

index.php

Tampilkan seluruh barang yang ada dalam database.

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
session_start();
$link = mysql_connect('localhost', 'root', 'root');
mysql_select_db("cart", $link);
$result = mysql_query('SELECT * FROM products');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
?>
<html>
    <head>
        <title>Shoping cart sederhana dengan PHP</title>
        <style>
        .number {
            text-align:right;
        }
        table {
            width:500px;            
        }
        </style>
    </head>
    <body>
    <a href="cart.php">Keranjang belanja</a>
    <h2>Daftar produk</h2>
    <table>
    <tr>
        <th>Nama barang</th>
        <th>Harga</th>
        <th></th>
    </tr>
    <? while ($product = mysql_fetch_assoc($result)): ?>
    <tr>
        <td><?= $product['name'] ?></td>
        <td class="number">Rp. <?= $product['price'] ?></td>
        <td><a href="add_to_cart.php?id=<?= $product['id'] ?>">Beli</a></td>
    </tr>
    <? endwhile ?>
    </table>
    </body>    
</html>

add_to_cart.php

Jika user membeli barang, maka id produk akan dilempar ke halaman ini dan kita akan mengambil produk dalam database dengan id tersebut, lalu memasukkannya ke dalam session. Kode berikut juga menangani jika produk yang dibeli telah ada dalam cart, sehingga hanya menambah jumlah kuantitas pembelian produk tersebut.

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
<?php
session_start();
$link = mysql_connect('localhost', 'root', 'root');
mysql_select_db("cart", $link);
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM products WHERE id=$id");
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
$product = mysql_fetch_assoc($result);
 
if (isset($_SESSION['cart'])) {
    $cart = $_SESSION['cart'];
    # cek apakah susah ada di cart, tambahkan kuantitas produk dalam cart
    $in_cart = False;    
    foreach ($cart as &$item) {
        if ($item['product']['id'] == $id) {
            $item['quantity'] += 1;
            $in_cart = True;
            break;
        }
    }    
    # jika tidak ada dalam cart tambahkan produk ke dalam cart
    if (!$in_cart) {
        $cart[] = array('product' => $product, 'quantity' => 1);
    }
} else {
    $cart[] = array('product' => $product, 'quantity' => 1);
}
$_SESSION['cart'] = $cart;
 
header("location:cart.php");
?>

cart.php

Setelah item dimasukkan ke dalam cart, maka aplikasi kita akan melemparnya ke halaman cart yang kemudian menampilkan isi keranjang belanja.

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
<?php
session_start();
?>
<html>
    <head>
        <title>Shoping cart sederhana dengan PHP</title>
        <style>
        .number {
            text-align:right;
        }
        table {
            width:500px;            
        }
        </style>
    </head>
    <body>    
    <a href="index.php">Halaman produk</a> |
    <a href="empty.php">Kosongkan keranjang belanja</a>
    <h2>Keranjang belanja anda</h2>
    <table>
    <tr>
        <th>Nama barang</th>
        <th>Harga</th>
        <th>Kuantitas</th>
        <th>Jumlah</th>
    </tr>    
    <? 
    $cart = $_SESSION['cart'];
    if ($cart) {
        foreach ($cart as $item): ?>
        <tr>
            <td><?= $item['product']['name'] ?></td>
            <td class="number">Rp. <?= $item['product']['price'] ?></td>
            <td class="number"><?= $item['quantity'] ?></td>
            <td class="number">Rp. <?= $item['quantity']*$item['product']['price'] ?></td>
        </tr>
        <? endforeach; 
    } 
    ?>
    </table>
    </body>    
</html>

empty.php

Kita sediakan fungsi untuk menghapus semua item dalam cart dengan menghapus session cart.

1
2
3
4
5
<?php
session_start();
unset($_SESSION['cart']);
header("location:index.php");
?>

Kode diatas hanyalah logika sederhana membuat keranjang belanja dalam PHP, untuk menggunakannya dalam web secara nyata kita harus menambahnya banyak validasi terhadap kode-kode diatas, terlebih dalam masalah sekuriti.

Related posts:

  1. Shopping Cart Dengan CodeIgniter
  2. Membuat Microblog Sederhana Dengan CodeIgniter
  3. Membuat Todo List Sederhana Dengan CodeIgniter
  4. Pagination Tutorial Dengan CodeIgniter
  5. Facebook Mempercepat Kinerja PHP Dengan HipHop for PHP
Tags: