Keranjang Belanja Sederhana Dengan PHP

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

About Gilang Chandrasa

Gilang Chandrasa adalah seorang web developer yang sangat menyukai dunia open source. Memasak adalah salah satu hobinya diluar dunia IT. Pendiri Yumbaa dan Komunitaz ini juga adalah seorang blogger, menulis di berbagai situs termasuk komunitasweb. Mempunyai mimpi untuk memajukan dunia web Indonesia.
This entry was posted in Panduan and tagged . Bookmark the permalink.

1 Tweet

10 Responses to Keranjang Belanja Sederhana Dengan PHP

  1. oghamoron says:

    klo misalnya ingin di tambahin menu update dan delete gmn ya ??

  2. Mawardi says:

    salam, baik kiranya kalau dicoba

  3. toeid says:

    Bang., saya sangat menunggu postingan utk update dan delete nya bang.,
    bener-bener butuh sanagat bang., di tunggu ya.. :)

  4. hermawan says:

    thanx u for this script…

  5. boed says:

    bos mo tanya lagi, setelah tersimpan di session…
    mau masukin ke database gimane..??
    masalahnya barang yg dipesan kan banyak, nah bikin table pemesanannya seperti apa ya..? thanx b4

  6. dilah says:

    mantabs gan…
    tp saya mau nanya nih,kalo di bikin grafik gmn yah???tar kira2 ada penjualan perbulan atau pertahun jd qt bisa tau peningkatan n penurunan penjualan…thnx sblm’y gan….

  7. MAKASIH GAN says:

    MAKASIH GAN…

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Additional comments powered by BackType