Shopping Cart Dengan CodeIgniter
Shopping Cart Dengan CodeIgniter
Jika anda ingin membangun toko online, salah satu fitur yang hampir
pasti ada yaitu shopping cart. Membuat shopping cart tidaklah begitu sulit, terlebih jika
anda menggunakan framework CodeIgniter.
Database
Kita akan membuat table sederhana untuk menampung barang yang akan kita jual.
Konfigurasi CodeIgniter
Sebelum memulai aplikasi ini, ada beberapa konfigurasi yang harus kita ubah dalam
CodeIgniter.
Konfigurasi database (config/database.php)
1 $db['default']['hostname'] = "localhost";
2 $db['default']['username'] = "root";
3 $db['default']['password'] = "root";
4 $db['default']['database'] = "toko_online";
5 $db['default']['dbdriver'] = "mysql";
1 $config['base_url'] = "http://localhost/toko/";
1 $config['global_xss_filtering'] = TRUE;
Juga helper yang sering kita pakai, untuk contoh ini adalah URL helper.
1 $autoload['helper'] = array('url');
Model
1 <?php
2
3 Model product mempunyai 2 fungsi yaitu untuk mengambil seluruh data barang, dan
4 fungsi untuk mengambil data barang tertentu sesuai dengan id yang diinginkan.
5
6 class Model_Product extends Model {
7
function get_all($limit = NULL, $offset = NULL) {
8
$query = $this->db->get('products', $limit, $offset);
9
return $query->result();
10 }
11
12 function get($id) {
13 $query = $this->db->get_where('products', array('id'=>$id));
14 return $query->row();
15 }
16 }
Controller
Pertama kita membuat controller product yang berfungsi untuk menampilkan daftar
barang yang sedang dijual.
1
<?php
2
3 class Products extends Controller {
4
5 function Products() {
6 parent::Controller();
7 $this->load->model('model_product');
8 }
9
10 function index() {
11
12 $data['product_list'] = $this->model_product->get_all();
13 $this->load->view('product/index', $data);
}
14
}
15
Controller cart berfungsi untuk menambahkan product ke dalam cart, dan menampilkan
isi cart tersebut.
1
2 <?php
3
4 class Cart extends Controller {
5
6 function Cart() {
7 parent::Controller();
$this->load->model('model_product');
8
}
9
10 function add($id) {
11 $product = $this->model_product->get($id);
12
13 $data = array(
14 'id' => $product->id,
15 'qty' => 1,
16 'price' => $product->price,
17 'name' => $product->name,
18 );
19 $this->cart->insert($data);
20 redirect("cart");
}
21
22 function index($offset = 0) {
23
24 $data['cart_list'] = $this->cart->contents();
25 $this->load->view('cart/index', $data);
26 }
27 }
28
View
Ada dua view yang harus kita buat, yaitu view untuk menampilkan daftar barang yang
dijual dan view untuk menampilkan barang yang ada di shopping cart.
1 <html>
2 <head>
3 <title>Membuat Shopping Cart Dengan CodeIgniter</html>
4 <style>
5 .number {
6 text-align:right;
}
7
</style>
8 </head>
9 <h1>Shopping cart anda</h1>
10 <? if (!empty($cart_list)): ?>
11 <table>
12 <tr>
13 <th>Jumlah</th>
14 <th>Nama barang</th>
15 <th>Harga</th>
16 <th>Jumlah</th>
17 </tr>
18 <? foreach($cart_list as $product): ?>
19 <tr>
<td class="number"><? echo $product['qty'] ?></td>
20
<td><? echo $product['name'] ?></td>
21 <td class="number"><? echo $product['price'] ?></td>
22 <td class="number"><? echo $product['qty'] * $product['price'] ?></td>
23 </tr>
24 <? endforeach ?>
25 <tr>
26 <td colspan="3">Total</td>
27 <td class="number"><?= $this->cart->total(); ?></td>
28 </tr>
29 </table>
30 <? else : ?>
31 <p>Produk kosong.</p>
32 <? endif ?>
<a href="<? echo site_url('products') ?>">Kembali</a>
33
</html>
34
35
36
Ini hanyalah contoh sederhana pemakaian pustaka shopping cart, seperti anda lihat
aplikasi ini belum menangani update shopping cart. Untuk itu silahkan anda kembangkan
dan pelajari lebih lanjut. Jika anda masih merasa kesuliatan, silahkan tanyakan kesulitan
anda, mungkin saja saya bisa membantu.