artikel ini merupakan kelanjutan dari artikel sebelumnya yang berjudul membuat katalog dengan PHP MySQL. Jika dalam artikel sebelumnya kita telah membahas tentang cara membuat katalog produk, maka di artikel ini kita akan membahas bagaimana mengimplementasikan keranjang belanjanya.
Relasi tabel & Logic bisnis
Untuk membuat ecommerce, minimal ada 3 tabel yaitu tabel produk, tabel transaksi dan tabel transaksi_detail. Lihat diagram relasi tabelnya sebagai berikut:

Jika anda pernah membaca buku lokomedia atau memakai CMS toko lokomedia , mereka menggunakan tabel temporer dalam proses pembuatan chart. hal ini sebenarnya tidak efektif karena server akan terbebani dengan proses penyimpanan idproduk dan transaksi sampah. selain itu, tidak semua yang melakukan transaksi benar benar akan membeli. Teknik yang dijelaskan dilokomedia akan memberatkan server jika banyak calon pembeli yang tidak jadi melakukan pemebelian, efeknya tabel temprorer akan dipenuhi data data sampah. Sekali lagi, teknik yang saya pakai berbeda, data chart hanya tersimpan di session browser, jadi data transaksi yang terkirim keserver pasti adalah transaksi yang valid.
Skenario Proses Transaksi
1.User membuka website dan melihat produk di katalog.
2.user mengklik keranjang belanja,
3.User boleh menganti jumlah barang yang dibeli atau menghapusnya
4. User memasukan nama dan alamat pengiriman barang
5. Saat user mengklik kirim,maka transaksi selesai.

Perhatikan screenshoot proses transaksi diatas. angka 4,6,6,6 adalah array dari idproduk yang tersimpan di session chart. Saya sengaja menampilkan agar anda tahu proses dibelakang layar.
File yang dibutuhkan
semua kode proses transaksi saya letakan di folder chart. Berikut ini adalah penjelasan masih masing file.
Chart.inc.php
file yang berisi fungsi fungsi untuk melakukan transaksi diantaranya
1. kd_transaksi() dipakai untuk membuat kd_transaki secara otomatis (T00001,T000002, dst)
2. InsertIntoDB() dipakai untuk memasukan data transaksi kedalam database. InsertIntoDB dieksekusi saat user menekan tombol kirim.
3. writingShopingChart() menampilkan info jumlah barang di keranjang belanja.
4. Showchart() menampilkan isi keranjang belanja.
chart.php
Chart.php berfungsi untuk melakukan proses penamabhan barang ke keranjang belanja, mengupdate jumlah barang yang dibeli atau menghapus barang dikeranjang belanja.
<? // Start the session session_start(); // Process actions semua proses hanya memanipulasi session chart, //tidak ada proses insert data atau ambil data dari database. $chart = $_SESSION['chart']; $action = $_GET['action']; switch ($action) { case 'add' : if ($chart) { $chart .= ',' . $_GET['id']; } else { $chart = $_GET['id']; } break; // // delete, update, add hanya memanipulasi session chart case 'delete' : if ($chart) { $items = explode(',', $chart); $newchart = ''; foreach ($items as $item) { if ($_GET['id'] != $item) { if ($newchart != '') { $newchart .= ',' . $item; } else { $newchart = $item; } } } $chart = $newchart; } break; case 'update' : if ($chart) { $newchart = ''; foreach ($_POST as $key => $value) { if (stristr($key, 'qty')) { $id = str_replace('qty', '', $key); $items = ($newchart != '') ? explode(',', $newchart) : explode(',', $chart); $newchart = ''; foreach ($items as $item) { if ($id != $item) { if ($newchart != '') { $newchart .= ',' . $item; } else { $newchart = $item; } } } for ($i = 1; $i <= $value; $i++) { if ($newchart != '') { $newchart .= ',' . $id; } else { $newchart = $id; } } } } } $chart = $newchart; break; } $_SESSION['chart'] = $chart; ?>
chart_action.php
Fungsinya untuk memanggil fungsi insertIntoDB() dan meredirect user kehalaman finish dan mengosongkan keranjang belanja karena proses belanja dianggap selesai.
Finish.php
menampilkan informasi bahwa transaksi sukses dan menampilkan jumlah pembayaran yang harus dilakukan.
Saya tidak menampilkan seleuruh kode dari masing masing file karena kodenya cukup panjang, anda bisa mendownload dan melihat source codenya langsung.
Demo dan Source code
Silahkan lihat dan coba sendiri demonya disini. Untuk source code silahkan download disini. Jika anda sudah mendownload source code di artikel sebelumnya (membuat katalog produk dengan PHP MySQL) anda tidak perlu mendownload source codenya lagi, karena chart sudah termasuk didalamnya.
hadeh banyak yg error gan bijimane kalau msh querynya salah jgn share disini
bookmark dulu buat referensi,
gan nama databasenya apa ?
setelah itu diapain lagi ya mas ?
Dijiat diemut
gan data produknya ga nonggol kenapa yaa??
hadu gan ko data produknya ga muncul ya??
gan pas ane klik beli ga masuk ke keranjang, itu apanya y?
querynya coba di cek di chart.inc.php
Gan, ane mau coba yaa