shopping cart dengan codeigniter
TRANSCRIPT
Shopping Cart Dengan CodeIgniterJanuary 28th, 2010 → 5:27 pm
7
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.
CodeIgniter telah menyediakan suatu pustaka untuk mempermudah anda membuat shopping cart.
Mari kita membuat shopping cart dengan CodeIgniter.
Database
Kita akan membuat table sederhana untuk menampung barang yang akan kita jual.
123456
CREATE TABLE `products` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `price` int NOT NULL, PRIMARY KEY (`id`));
Input beberapa data sebagai sampel untuk aplikasi toko online.
1234
INSERT INTO products` (`id` ,`name` ,`price`)VALUES (NULL , 'ayam goreng', '8000'),(NULL , 'bebek panggang', '12000');
Konfigurasi CodeIgniter
Sebelum memulai aplikasi ini, ada beberapa konfigurasi yang harus kita ubah dalam CodeIgniter.
Konfigurasi database (config/database.php)
12345
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = "root"; $db['default']['database'] = "toko_online"; $db['default']['dbdriver'] = "mysql";
Konfigurasi aplikasi (config/config.php)Ubah base url ini ke localhost atau url yang anda inginkan.
1 $config['base_url'] = "http://localhost/toko/";
Demi keamanan pastikan setting XSS filtering anda bernilai true.
1 $config['global_xss_filtering'] = TRUE;
Konfigurasi autoload (config/autoload.php)Untuk pustaka yang sering kita pakai, pastikan dimasukan secara auto.
1 $autoload['libraries'] = array('cart', 'database');
Juga helper yang sering kita pakai, untuk contoh ini adalah URL helper.
1 $autoload['helper'] = array('url');
Model
12345678910111213141516
<?php Model product mempunyai 2 fungsi yaitu untuk mengambil seluruh data barang, dan fungsi untuk mengambil data barang tertentu sesuai dengan id yang diinginkan. class Model_Product extends Model { function get_all($limit = NULL, $offset = NULL) { $query = $this->db->get('products', $limit, $offset); return $query->result(); } function get($id) { $query = $this->db->get_where('products', array('id'=>$id)); return $query->row(); } }
Controller
Pertama kita membuat controller product yang berfungsi untuk menampilkan daftar barang yang sedang dijual.
123456789101112131415
<?php class Products extends Controller { function Products() { parent::Controller(); $this->load->model('model_product'); } function index() { $data['product_list'] = $this->model_product->get_all(); $this->load->view('product/index', $data); }}
Controller cart berfungsi untuk menambahkan product ke dalam cart, dan menampilkan isi cart tersebut.
12345678910111213141516171819202122232425262728
<?php class Cart extends Controller { function Cart() { parent::Controller(); $this->load->model('model_product'); } function add($id) { $product = $this->model_product->get($id); $data = array( 'id' => $product->id, 'qty' => 1, 'price' => $product->price, 'name' => $product->name, ); $this->cart->insert($data); redirect("cart"); } function index($offset = 0) { $data['cart_list'] = $this->cart->contents(); $this->load->view('cart/index', $data); }}
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.
Berikut view untuk menampilkan daftar barang
12345678910111213141516171819
<html> <head> <title>Membuat Shopping Cart Dengan CodeIgniter</html> </head> <h1>Daftar barang </h1> <? if (!empty($product_list)): ?> <ul> <? foreach($product_list as $product): ?> <li> <? echo $product->name ?> (<? echo $product->price ?>) - <a href='<? echo site_url("cart/add/$product->id") ?>' >beli</a> </li> <? endforeach ?> </ul> <? else : ?> <p>Produk kosong.</p> <? endif ?></html>
Berikut view untuk menampilkan daftar barang dalam shopping cart
12345678910111213141516171819202122232425262728
<html> <head> <title>Membuat Shopping Cart Dengan CodeIgniter</html> <style> .number { text-align:right; } </style> </head> <h1>Shopping cart anda</h1> <? if (!empty($cart_list)): ?> <table> <tr> <th>Jumlah</th> <th>Nama barang</th> <th>Harga</th> <th>Jumlah</th> </tr> <? foreach($cart_list as $product): ?> <tr> <td class="number"><? echo $product['qty'] ?></td> <td><? echo $product['name'] ?></td> <td class="number"><? echo $product['price'] ?></td> <td class="number"><? echo $product['qty'] * $product['price'] ?></td> </tr> <? endforeach ?> <tr> <td colspan="3">Total</td> <td class="number"><?= $this->cart->total(); ?></td>
2930313233343536
</tr> </table> <? else : ?> <p>Produk kosong.</p> <? endif ?> <a href="<? echo site_url('products') ?>">Kembali</a></html>
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.