PHP Cart Class untuk WebShop
Didalam sebuah webshop atau yang biasa dikenal dengan e-commerce, biasanya akan ada sebuah cart untuk menampung atau menyimpan sementara setiap pesanan yang dibuat oleh pengunjung web.
Apakah pernah terpikir oleh kita, bagaimana cara sebuah web menyimpan setiap pesanan yang kita buat. Apakah pesanan kita itu disimpan ke dalam database? Jika disimpan kedalam database, tentu akan membuat database cepat penuh dan tentunya akses yang berat jika kita akan mengedit (tambah, hapus, ubah qty) pesanan kita.Jadi singkatnya, semua itu menggunakan session. Bagi yang belum mengetahui apa itu session, silahkan buka buku PHP nya dan baca lagi ![]()
Berikut adalah code cart class untuk memudahkan kita membuat, menghapus, mengedit content cart yang disimpan dalam session.
<?php
/*
Based on WebForceCart
*/
class ShoppingCart {
var $total = 0;
var $itemcount = 0;
var $items = array();
var $itemprices = array();
var $itemqtys = array();
var $iteminfo = array();
// Untuk dapetin content
function get_contents() {
$items = array();
foreach($this->items as $tmp_item)
{
$item = FALSE;
$item['id'] = $tmp_item;
$item['qty'] = $this->itemqtys[$tmp_item];
$item['price'] = $this->itemprices[$tmp_item];
$item['info'] = $this->iteminfo[$tmp_item];
$item['subtotal'] = $item['qty'] * $item['price'];
$items[] = $item;
}
return $items;
}
// Contoh : add_item(idproduk, 1, harga, deskripsi barang);
// add_item(10, 1, 50000, "FlashDisk Kingstone");
function add_item($itemid,$qty=1,$price = FALSE, $info = FALSE) {
// Gak Penting, selama loe masukin harga dan infonya --<
if(!$price) {
$price = get_price($itemid,$qty);
}
if(!$info) {
$info = get_info($itemid);
} // >--
if($this->itemqtys[$itemid] > 0) {
$this->itemqtys[$itemid] = $qty + $this->itemqtys[$itemid];
$this->_update_total();
} else {
$this->items[]=$itemid;
$this->itemqtys[$itemid] = $qty;
$this->itemprices[$itemid] = $price;
$this->iteminfo[$itemid] = $info;
}
$this->_update_total();
}
//Contoh: edit_item(10. 2);
function edit_item($itemid,$qty) {
if($qty < 1) {
$this->del_item($itemid);
} else {
$this->itemqtys[$itemid] = $qty;
}
$this->_update_total();
}
// Contoh: del_item(10);
function del_item($itemid) {
$ti = array();
$this->itemqtys[$itemid] = 0;
foreach($this->items as $item)
{
if($item != $itemid)
{
$ti[] = $item;
}
}
$this->items = $ti;
$this->_update_total();
}
// Buat ngosongin cart... delete abiiiss....
function empty_cart() {
$this->total = 0;
$this->itemcount = 0;
$this->items = array();
$this->itemprices = array();
$this->itemqtys = array();
$this->iteminfo = array();
}
// update totalnya
function _update_total() {
$this->itemcount = 0;
$this->total = 0;
if(sizeof($this->items > 0)) {
foreach($this->items as $item) {
$this->total = $this->total + ($this->itemprices[$item] * $this->itemqtys[$item]);
$this->itemcount++;
}
}
}
}
?>
Jangan lupa di phpnya tambahin ini untuk koneksi ke class yang tadi kita buat:
$cart =& $_SESSION['ShoppingCart']; if(!is_object($cart)) $cart = new ShoppingCart();
Okey, gan…. gw anggap loe semua udah paham…. klo ada pertanyaan, masukkan, atau makian bisa dishare disini…