Saat ini banyak diantara kita sering berbelanja Online (berbelanja lewat Internet), mengapa? mungkin karena banyak orang yang malas untuk bepergian keluar kota hanya ingin membeli sesuatu. Alternatif yang murah dengan berbelanja online, Tahukah anda membuat Cart (keranjang belanja) itu mudah sekali artikel kali ini akan mengupas tentang hal tersebut.

pertama buat tabel database seperti di bawah.

 

CREATE TABLE IF NOT EXISTS `tb_shop` (

  `id` int(5) NOT NULL AUTO_INCREMENT,

  `nama_item` varchar(50) NOT NULL,

  `harga` decimal(7,0) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

 

masukkan juga data seperti contoh dibawah :

 

INSERT INTO `tb_shop` (`id`, `nama_item`, `harga`) VALUES

(1, 'LG LED TV', '2950000'),

(2, 'SAMSUNG LCD TV', '2800000');

 

 

Lanjutkan membuat koneksi ke database:

 

<?php

    $host = "localhost";

    $userdb = "root";

    $passdb = "toor";

    $dbname = "db_cart";

    $conn = mysql_connect($host,$userdb,$passdb) or die ('Belum terkoneksi mysql');

    mysql_select_db($dbname,$conn) or die ($dbname.' Tidak ditemukan di mysql');

?>

 

kemudian buat file cart.php untuk proses  cart :

 

<?php

session_start();

//meng-include file db.php

$pesan='';

//handler untuk aksi shopping cart

if (isset($_GET['action'])) {

    /* Inti dari shopping cart*/

    switch($_GET['action']) {

    case 'add':

        if (isset($_POST['id'])) { //cek variabel id

            $id=(int)$_POST['id'];

        } else {

            $id=0;

        }

        if (!empty($_SESSION['basket'][$id])) { // Jika barang sudah ada pada keranjang tambahkan 1 quantity lagi

            $_SESSION['basket'][$id] +=1;

        } else {

            $_SESSION['basket'][$id]=1;

        }

    break;

    case 'update' :

        $pro=count($_SESSION['basket']);

        foreach($_POST['produk'] as $key => $val){

            if ($_POST['produk'][$key]==0) { // jika angka yang dimasukkan user adalah 0 ubah menjadi angka 1

                $val = 1;

            } else {

                $val = abs($_POST['produk'][$key]); //nilai absolute bila yg dimasukkan quantity kurang dari 0

            }

            $_SESSION['basket'][$key] = (int)$val;

        }

        header("Location: list.php");

    break;

    case 'delete' :

        $id = (int)$_GET['id'];

        if (!empty($_SESSION['basket'][$id])) { // jika id basket ada hapus barang belanja

            unset($_SESSION['basket'][$id]);

        } else {

            $pesan="Barang yang dimaksud tidak ada";

        }

        header("Location: list.php");

        break;

    }

    /* end */

}

?>

Sebenarnya dari file diatas sudah cukup mewakili pembuatan Shopping cart sederhana, karena inti dari cart ada pada file tersebut. Selanjutkan buat tampilan list item seperti dibawah (index.php).
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>Coba cart</title>
    <style>
        h2{margin:0;padding:0;background-color:#999;width:100%;padding:3px;font-size:16px;}
        #wrap{width:400px;margin:5px auto;background-color:#F5F5F5;padding:10px;}
        ul.cart{margin:10px 0 0 0;padding:0;}
        ul li{float:left;margin:0 3px;border:1px solid #999;padding:5px;width:100px;height:120px;}
        li a{text-decoration:none;color:#000;font-size:13px;}
        li a:hover{text-decoration:underline;}
        .clear{clear:both;}
        .img{margin:0 auto;overflow:none;}
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        function cart(id){
            $.ajax({
                url : 'cart.php?action=add',
                data: ({id:id}),
                type: 'post',
                success: function(data){
                    alert('berhasil input ke keranjang belanja.');
                },
                error: function(){
                    alert('Error load pages');
                }
            });
        }
    </script>
</head>
<body>
        <div id="wrap">
            <h2>Daftar barang</h2>
            <ul class="cart">
                <li>
                    <img src="img/samsungtv.jpg" alt="samsungtv" class="img" />
                    <a href="#" id="to_cart" title="minyak goreng" onclick="javascript:cart(2)">Samsung LCD TV</a>
                    </li>
                <li>
                    <img src="img/lgtv.jpg" alt="lgtv" class="img" />
                    <a href="#" id="to_cart" rel="2" title="opo wae" onclick="javascript:cart(1)">LG LCD 2</a></li>
            </ul>
            <div class="clear"></div>
        </div>
        <br />
        <a href="list.php" title="cart">Cart</a>
</body>
</html>
File diatas bertugas untuk menampilkan item2 yang akan dijual (tidak dibuat dinamis melaui database karena hanya untuk DEMO saja). Setelah itu buat file list.php seperti berikut
<?php
    session_start();
    //meng-include file db.php
    require_once "db.php";
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>Coba cart</title>
</head>
        <body>
        <?php
        //Menampilan isi shopping cart
        if (!empty($_SESSION['basket'])) {
        $basket=$_SESSION['basket'];
        ?>
        <form method="POST" action="cart.php?action=update" id="frm_cart">
        <h3>Isi keranjang belanja:</h3>
          <center>
                <table border="1">
                <tr>
                <th>No.</th>
                  <th>Nama barang</th>
                  <th>Jumlah</th>
                  <th>Aksi</th>
                </tr>
                <?php
                $no=0;
                $total=0;
                $total_harga=0;
                foreach ($basket as $key => $val) { // ulang sebanyak pada keranjang belanja
                        $no++;
                        $query="SELECT * FROM tb_shop WHERE id='$key'";
                        $hasil=mysql_query($query);
                        if ($hasil) {
                                $data=mysql_fetch_array($hasil);
                                $total+=$val; //jumlah barang
                                $total_harga += ($val * $data['harga']); //total harga
                ?>
                        <tr id="ls<?php echo $key;?>">
                          <td><?php echo $no;?></td>
                          <td><?php echo $data['nama_item']?></td>
                          <td><input name="produk[<?php echo $key?>]" id="produk" type="text" value="<?php echo $val?>" /></td>
                          <td><a href="cart.php?action=delete&id=<?php echo $key?>" id="hapus" key="<?php echo $key;?>">Hapus</a></a></td>
                        </tr>
                <?php }
                } ?>
                <tr>
                          <td colspan="2" align="center"><INPUT type="submit" value="Perbaharui"></td>
                          <td><strong>Total</strong></td>
                          <td><?php echo 'Rp '.number_format($total_harga,0,'','.')?></td>
                </tr>
                </table>
        </form><br />
        <?php
        echo 'Ada <strong>'.$total.'</strong> barang di keranjang <a href="checkout.php">Checkout</a><br /><br />';
        echo 'Lanjutkan <a href="./">belanja</a>';
        } else {
        echo "<center><strong>Tidak ada barang di keranjang</strong></center><br />";
        }
        echo '<strong>'.$pesan.'</strong>'; //menampilkan pesan kalau ada
        ?>
        </body>
</html>
File diatas untuk menampilkan daftar belanjaan yang dipesan saat itu, Selanjutkan buat file yang terakhir checkout.php seperti berikut
<?php
    session_start();
    require_once "db.php";
?>
<html>
    <head>
        <title>Checkout</title>
    </head>
    <body>
        <form action="" method="post" name="frm_checkout" id="frm_checkout">
            <table border="1" name="tb_checkout" id="tb_checkout">
                <tr>
                    <th>#</th>
                    <th>Nama Barang</th>
                    <th>Jumlah</th>
                    <th>Harga</th>
                </tr>
                <?php
                $basket = $_SESSION['basket']; //
                $ekspedisi = 13500; // misal harga Ekspedisi 13500
                $no=0;
                $total=0;
                $total_harga=0;
                foreach($basket as $key => $val){
                    $no++;
                    $query="SELECT * FROM tb_shop WHERE id='$key'";
                    $hasil=mysql_query($query);
                    if ($hasil) {
                        $data=mysql_fetch_array($hasil); // data yang akan ditampilkan
                        $total_harga += ($val * $data['harga']); //total harga
                ?>
                    <tr>
                      <td><?php echo $no;?></td>
                      <td><?php echo $data['nama_item']?></td>
                      <td><?php echo $val;?></td>
                      <td><?php echo number_format($data['harga'],0,'','.');?></td>
                    </tr>
                <?php
                    $no++;
                    }
                }?>
            </table>
            <table>
                <tr>
                    <td colspan="3">Total</td>
                    <td><?php echo number_format($total_harga,0,'','.');?></td>
                </tr>
                <tr>
                    <td colspan="3">Biaya Kurir</td>
                    <td><?php echo number_format($ekspedisi,0,'','.');?></td>
                </tr>
                <tr>
                    <td colspan="3">Grand Total</td>
                    <td><?php echo number_format($ekspedisi + $total_harga,0,'','.');?></td>
                </tr>
            </table>
        </form>
        <?php //session_destroy();?>
    </body>
</html>
File diatas adalah grand total dari keseluruhan pembelian termasuk biaya ongkos kirim.

 

 

DEMO    DOWNLOAD