Shopping Cart Dengan CodeIgniter

codeigniter logoJika 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.

1
2
3
4
5
6
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.

1
2
3
4
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)

1
2
3
4
5
$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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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.

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
<?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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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

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
<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>
        </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.

Related posts:

  1. Membuat Microblog Sederhana Dengan CodeIgniter
  2. Mengenal CodeIgniter Framework
  3. Pagination Tutorial Dengan CodeIgniter
  4. Keranjang Belanja Sederhana Dengan PHP
  5. Membuat Todo List Sederhana Dengan CodeIgniter

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

12 Responses to Shopping Cart Dengan CodeIgniter

  1. ardhiee says:

    Nice tuts bro, keep posting yap …

  2. adie says:

    om, kog g jalan yah.. salah dimananya yah?

  3. yogi says:

    permisi, saya ingin tanya,
    saya bingung cara memasang kode-kode tersebut, bisa di jelaskan lewat handphone? pulsa saya tanggung.

    tolong balas ke email saya di yogi@haznadistro.com
    terimakasih

  4. gending says:

    simple, tapi tetap berbobot… :D

  5. aa_pratomo says:

    gan… bikin checkoutnya gimana gan?

  6. reka says:

    gan… misal kalo itemnya uda ada 3, pengen di hapus salah satu, cranya gmn ya?

  7. wi says:

    untuk pertanyan diatas jawabannya ada di helper codeigniter
    http://codeigniter.com/user_guide/libraries/cart.html

  8. okey says:

    saya coba belum bisa, nama filenya bebas atau gmana mas?

  9. okey says:

    saya sudah coba, tetapi jika kita pilih barang yang sama jumlahnya tetap 1 dan tidak berubah menjadi 2 mas. itu kenapa ya?

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