Rasanya sudah lama ga nulis di blog, hehehehe (walaupun cuma 2 minggu). Ok sobat kali ini saya akan membagikan tutorial membuat shopping cart sederhana di CodeIgniter yang membutuhkan library Cart bawaan CI. Dan untuk diketahui library cart mendukung penggunaan library session, cart akan disimpan dalam session, jadi sobat harus menset dulu encryption_key dalam config.php. Tenang saja nanti saya jelaskan.
STEP 1 : Membuat Controller
Dengan menggunakan editor teks, buatlah file shop.php dan tulis kode dibawah ini lalu simpan dalam folder application/controllers :
STEP 2 : Membuat Model
Dengan menggunakan editor teks, buatlah file products_model.php dan tulis kode dibawah ini lalu simpan dalam folder application/models :
STEP 3 : Membuat View
Dengan menggunakan editor teks, buatlah file products.php dan tulis kode dibawah ini lalu simpan dalam folder application/views :
Dengan menggunakan editor teks, buatlah file shop.php dan tulis kode dibawah ini lalu simpan dalam folder application/controllers :
<?php class Shop extends CI_Controller { function index() { $this->load->model('Products_model'); $data['products'] = $this->Products_model->get_all(); $this->load->view('products', $data); } function add() { $this->load->model('Products_model'); $product = $this->Products_model->get($this->input->post('id')); $insert = array( 'id' => $this->input->post('id'), 'qty' => 1, 'price' => $product->harga, 'name' => $product->nama ); if ($product->nama_pilihan) { $insert['options'] = array( $product->nama_pilihan=> $product->nilai_pilihan[$this->input->post($product->nama_pilihan)] ); } $this->cart->insert($insert); redirect('shop'); } function remove($rowid) { $this->cart->update(array( 'rowid' => $rowid, 'qty' => 0 )); redirect('shop'); } }
STEP 2 : Membuat Model
Dengan menggunakan editor teks, buatlah file products_model.php dan tulis kode dibawah ini lalu simpan dalam folder application/models :
<?php class Products_model extends CI_Model { function get_all() { $results = $this->db->get('produk')->result(); foreach ($results as &$result) { if ($result->nilai_pilihan) { $result->nilai_pilihan = explode(',',$result->nilai_pilihan); } } return $results; } function get($id) { $results = $this->db->get_where('produk', array('id' => $id))->result(); $result = $results[0]; if ($result->nilai_pilihan) { $result->nilai_pilihan = explode(',',$result->nilai_pilihan); } return $result; } }
STEP 3 : Membuat View
Dengan menggunakan editor teks, buatlah file products.php dan tulis kode dibawah ini lalu simpan dalam folder application/views :
<!DOCTYPE HTML> <html lang="en-US"> <head> <title>Shop</title> <meta charset="UTF-8"> <link href="<?php echo base_url();?>/css/style.css" type="text/css" rel="stylesheet"> </head> <body> <div id="products"> <ul> <?php foreach ($products as $product): ?> <li> <?php echo form_open('shop/add'); ?> <div class="name"><?php echo $product->nama; ?></div> <div class="thumb"> <?php echo img(array( 'src' => 'images/' . $product->gambar, 'class' => 'thumb', 'alt' => $product->nama, 'width'=>100 )); ?> </div> <div class="price">Rp <?php echo $product->harga; ?></div> <div class="option"> <?php if ($product->nama_pilihan): ?> <?php echo form_label($product->nama_pilihan, 'pilihan_'. $product->id); ?> <?php echo form_dropdown( $product->nama_pilihan, $product->nilai_pilihan, NULL, 'id="option_'. $product->id.'"' ); ?> <?php endif; ?> </div> <?php echo form_hidden('id', $product->id); ?> <?php echo form_submit('action', 'Tambah ke Keranjang'); ?> <?php echo form_close(); ?> </li> <?php endforeach; ?> </ul> </div> <?php if ($cart = $this->cart->contents()): ?> <div id="cart"> <table> <caption>Shopping Cart</caption> <thead> <tr> <th>Nama Item</th> <th>Pilihan</th> <th>Harga</th> <th></th> </tr> </thead> <?php foreach ($cart as $item): ?> <tr> <td><?php echo $item['name']; ?></td> <td> <?php if ($this->cart->has_options($item['rowid'])) { foreach ($this->cart->product_options($item['rowid']) as $option => $value) { echo $option . ": <em>" . $value . "</em>"; } } ?> </td> <td>Rp <?php $harga=number_format($item['subtotal'],2,",","."); echo $harga; ?></td> <td class="remove"> <?php echo anchor('shop/remove/'.$item['rowid'],'X'); ?> </td> </tr> <?php endforeach; ?> <tr class="total"> <td colspan="2"><strong>Total</strong></td> <td>Rp <?php $harga_tot=number_format($this->cart->total(),2,",","."); echo $harga_tot; ?></td> </tr> </table> </div> <?php endif; ?> </body> </html>Note :
$harga_tot
=number_format(
$this
->cart->total(),2,
","
,
"."
);
berfungsi untuk memformat number dan disini saya format dengan dikasih "." per ribunya dan saya kasih 0 di akhirnya dengan dipisahkan tanda ",".STEP 4 : Membuat CSS
Untuk mempercantik tampilan tambahkan file css di folder root. Dengan menggunakan editor teks, buatlah file style.css dan tulis kode dibawah ini lalu simpan dalam folder css :
body { font: 13px Arial; } #products { text-align: center; float: left; } #products ul { list-style-type: none; margin: 0px; } #products li { width: 150px; padding: 4px; margin: 8px; border: 1px solid #ddd; background-color: #eee; -moz-border-radius: 4px; -webkit-border-radius: 4px; } #products .name { font-size: 15px; margin: 5px; } #products .price { margin: 5px; } #products .option { margin: 5px; } #cart { padding: 4px; margin: 8px; float: left; border: 1px solid #ddd; background-color: #eee; -moz-border-radius: 4px; -webkit-border-radius: 4px; } #cart table { width: 320px; border-collapse: collapse; text-align: left; } #cart th { border-bottom: 1px solid #aaa; } #cart caption { font-size: 15px; height: 30px; text-align: left; } #cart .total { height: 40px; } #cart .remove a { color: red; }
STEP 5 : Membuat Database
Jangan lupa untuk membuat database dengan detail sebagai berikut :
- nama database ci_series
- nama table produk
- nama-nama field table produk
- id
- nama
- harga
- gambar
- nama_pilihan
- nilai_pilihan
STEP 6 : Konfigurasi CodeIgniter
Sebenarnya ini harus di konfigurasi terlebih dahulu, maaf sobat. Konfigurasi terdiri dari sebagai berikut :
Jika sobat berhasil hasilnya akan sepeti dibawah ini
DOWNLOAD SOURCE CODE
- Konfigurasi file config.php dalam folder application/config :
$config['base_url'] = 'http://localhost/ci_zone/ci_day12/'; $config['index_page'] = ''; $config['encryption_key'] = 'dat';
- Konfigurasi file database.php dalam folder application/config :
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = 'root';//isikan sesuai password sobat $db['default']['database'] = 'ci_series'; $db['default']['dbdriver'] = 'mysql';
- Konfigurasi file autoload.php dalam folder application/config :
$autoload['libraries'] = array('database','cart'); $autoload['helper'] = array('url','html','form');
- Konfigurasi file routes.php dalam folder application/config :
$route['default_controller'] = "shop";
Jika sobat berhasil hasilnya akan sepeti dibawah ini
gb. screenshot hasil pembuatan shopping cart sederhana di CI 2.1.3 |
Mas, mau tanya, ini saya udah nyoba tutorialnya, dan hasilnya nggak tampil, itu kira-kira masalahnya dimana ya mas? Terima kasih
ReplyDeletemungkin setingan base_url() anda
Deletedan atau index_page nya.
itu databasenya diisi dulu gan kalo mau nampil....
Deleteada tulisannya gmana?
ReplyDeletedownload aja langsung source code nya
kalo mau hapus semua data cart tuh gimana mas
ReplyDeletegunakan fungsi ini
Delete$this->cart->destroy();
ini digunakan kalau customer sudah selesai
baca aja di user_guide codeigniter, disitu lengkap
terima kasih
kok putih aja ya mas? ga ampil apa2.. ada yg salah sama setingan saya gitu?
ReplyDeleteizin sedot om......
ReplyDeleteThis comment has been removed by the author.
ReplyDeletemin,minta database nya dong
ReplyDeleteGan, kalau misal buat kupon cart dan discount gimana ya?
ReplyDelete