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:
komunitaz
6 months ago
[post terbaru], Keranjang Belanja Sederhana Dengan PHP – http://tinyurl.com/yjhd5ao
This comment was originally posted on Twitter
oghamoron
6 months ago
klo misalnya ingin di tambahin menu update dan delete gmn ya ??
Gilang Chandrasa
6 months ago
hmmm, ntar ya gua bikin part 2 nya :D
oghamoron
6 months ago
oke.. ditunggu..
Mawardi
4 months ago
salam, baik kiranya kalau dicoba
toeid
1 month ago
Bang., saya sangat menunggu postingan utk update dan delete nya bang.,
bener-bener butuh sanagat bang., di tunggu ya.. :)