Cara Ambil Harga Pengiriman (Ongkos Kirim) JNE dengan PHP
Setelah melakukan pencarian panjang akhirnya saya menemukan apa yang saya cari , yaitu : cara menghitung biaya pengiriman JNE.
Awalnya saya search di google dengan keyword “JNE API”. Mengejutkan hasilnya, ternyata JNE tidak mengeluarkan atau membuat API. Entah dengan alasan apa perusahaan pengiriman itu memproteksi diri untuk tidak membuat API. Bahkan sekarang teknik-teknik lama sudah tidak bisa digunakan karena adanya captcha di web nya JNE(padahal dulu gak ada). Semakin jelas kan klo JNE memang memproteksi diri.
Stop. dari beberapa hasil pencarian google dengan keyword di atas akhirnya saya “nyasar” di http://api.ongkir.info/docs/index.html. dan inilah yang saya cari-cari selama ini.
Di bagian paling bawah web ongkir.info ada tulisan “Ongkir.Info tidak berafiliasi dengan perusahaan yang disebutkan.” WTF?? Saya heran justru web/orang lain malah yang membuat API JNE.
Ok, cukup sampai sini kejengkelan saya terhadap JNE. Kita lanjut bagaimana cara memanfaatkan API yang diberikan oleh ongkir.info ini ?
pertama silahkan baca disini http://api.ongkir.info/docs/starting.html
Selanjutnya, lakukan registrasi di http://api.ongkir.info//akun/registrasi
Setalah mendapakan email verifikasi dari ongkir.info maka login ke http://api.ongkir.info/akun/login. Jika login sukses maka anda akan mendapatkan API-Key berupa deretan karakter sepanjang 32, digunakan untuk validasi pemanggilan API.
selanjutnya untuk memudahkan penggunaan API Ongkir.Info, telah disediakan pustaka (library) Anda dapat mendownload di http://api.ongkir.info/docs/example/php_sample.html. buat file baru dengan nama class.php, copy paste script php di bagian Wrapper untuk API City dan Wrapper untuk API Cost.
berikut ini file class.php yang sudah saya modifikasi sedikit.
<?php function get_city($query,$type) { //library yang harus anda download require_once 'REST_Ongkir.php'; $rest = new REST_Ongkir(array( 'server' => 'http://api.ongkir.info/' )); //ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info $result = $rest->post('city/list', array( 'query' => $query, 'type' => $type, 'courier' => 'jne', 'API-Key' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456' ), 'JSON'); try { $status = $result['status']; // Handling the data if ($status->code == 0) { return $cities = $result['cities']; //print_r($cities); //foreach ($cities->item as $item) //{ //echo 'Kota: ' . $item . '<br />'; // } } else { echo 'Tidak ditemukan kota yang diawali "band"'; } } catch (Exception $e) { echo 'Processing error.'; } } function get_cost($from, $to,$weight) { //library yang harus anda download require_once 'REST_Ongkir.php'; $rest = new REST_Ongkir(array( 'server' => 'http://api.ongkir.info/' )); //ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info $result = $rest->post('cost/find', array( 'from' => $from, 'to' => $to, 'weight' => $weight.'000', 'courier' => 'jne', 'API-Key' =>'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456' )); try { $status = $result['status']; // Handling the data if ($status->code == 0) { $prices = $result['price']; $city = $result['city']; echo 'Ongkos kirim dari ' . $city->origin . ' ke ' . $city->destination . '<br /><br />'; foreach ($prices->item as $item) { echo 'Layanan: ' . $item->service . ', dengan harga : Rp. ' . $item->value . ',- <br />'; } } else { echo 'Tidak ditemukan jalur pengiriman dari surabaya ke jakarta'; } } catch (Exception $e) { echo 'Processing error.'; } } //$kota = get_city('ban','origin'); //echo json_encode($kota); ?>
Setelah itu buat lah form kira-kira tamplannya seperti ini:
Form di atas akan saya padukan dengan JQuery Autocomplete agar memudahkan kita mengetikkan nama-nama kota.
Buatlah file baru beri nama index.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery UI Autocomplete - Default functionality</title> <link rel="stylesheet" media="screen" href="js/jqueryui/css/ui-lightness/jquery-ui-1.8.13.custom.css"></script> <script type="text/javascript" src="js/jquery.js"></script> <SCRIPT language="javascript" src="js/jquery-ui.min.js"></SCRIPT> <script> $(function() { //autocomplete untuk mencari kota asal $("#from").autocomplete({ minLength: 3, delay: 3, source: function(request, response) { $.ajax({ url: "data.php?type=origin", dataType: "json", data: { term : request.term, from: $('#from').val(), }, success: function(data) { response( $.map( data, function( item ) { return{ label: item.nama_kota, value: item.nama_kota, } })); } }); }, }); //autocomplete untuk mencari kota tujuan $("#to").autocomplete({ minLength: 3, delay: 3, source: function(request, response) { $.ajax({ url: "data.php?type=destination", dataType: "json", data: { term : request.term, to: $('#to').val(), }, success: function(data) { response( $.map( data, function( item ) { return{ label: item.nama_kota, value: item.nama_kota, } })); } }); }, }) }); </script> </head> <body> <h2>Menghitung Onkos Kirim JNE</h2> <form action="" method="post"> <table width="20%" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="19%">From</td> <td width="81%"><input type="text" name="from" id="from" /></td> </tr> <tr> <td>to</td> <td> <input type="text" name="to" id="to" /></td> </tr> <tr> <td>Weight</td> <td> <input type="text" name="weight" id="weight" />Kg</td> </tr> <tr> <td>Couriers</td> <td> <select name="couriers"><option value="jne">JNE</option></select></td> </tr> <tr> <td> </td> <td align="right"> <input type="submit" name="go" value="Go" /></td> </tr> </table> </form> <?php if(isset($_POST['go'])){ //include file class.php untuk memanaggil fungsi get_cost(); yang berfungsi untuk menghitung ongkos kirim. include('class.php'); $from = $_POST['from']; $to = $_POST['to']; $weight = $_POST['weight']; //pemanggilan fungsi get_cost(); get_cost($from, $to,$weight); } ?> </body> </html> <pre>
terakhir buat file data.php untuk lookup data kota asal dan kota tujuan
<?php //includekan file class.php include('class.php'); $return_arr = array(); //tangkap variable type untuk mengetahui apakan kota asal (origin) atau kota tujuan (destination) $type = $_GET['type']; //panggil fungsi get_city() untuk mendapatkankan nama-nama kota. $cities = get_city(trim($_GET['term']),$type) ; $i=0; foreach ($cities->item as $value) { $row_array['id_kota'] = $i; $row_array['nama_kota'] = strval($value); array_push($return_arr,$row_array); $i++; } /*convert ke dalam bentuk JSON. kira2 formatnya seperti ini [{"id_kota":0,"nama_kota":"BANDAACEH"},{"id_kota":1,"nama_kota":"BANDARLAMPUNG"},{"id_kota":2,"nama_kota"</code><code>:"BANDUNG"},{"id_kota":3,"nama_kota":"BANGUI, CENTRAL AFRICAN REP."},{"id_kota":4,"nama_kota":"BANJARMASIN"</code><code>},{"id_kota":5,"nama_kota":"BANJUL, GAMBIA"}] */ echo json_encode($return_arr); ?>
Berikut SS dari script di atas:
Cek DEMO nya disini
Sekian sedikit sharing dari saya tentang cara menghitung Ongkos Kirim via JNE.
Jika ada pertanyaan atau ada yang mau menambahkan silahkan komen di bawah ini
siiippp, infonya gan
ojo ngejunk koen mor
Kalo mau di pasang di blogger gimana caranya ya gan.
Makasih sebelumnya.
wah ane belum pernah nyoba gan
tapi kekny udah ada widget JNE buat blog
cara membuat lookup yang benar gimana ya? soalnya copas yang itu aja ga berfungsi. mohon bantuannya. thks
Pastikan semua file2 di bawah ini diload dengan benar dulu
ini online tw ofline gan jadinya
online gan..
udah ada api nya kirain cuma cek doank.
thanks ya referensinya.
tapi kl pake api ini, gak kefilter tarif indo sama lnternasional.
jadi gabung 😀
ketik aja ban, autocomplete nya ada BANGUI, CENTRAL AFRICAN REP.
hehehe. kl bisa difilter untuk indo aja.
thanks ya
sama2 gan
Iya gan gak bisa filter tarif indo aja
ane coba aahh..buat plugin toko online ane 😀 tq banget gan
sama2 gan
Selamat mencoba n sukses
gk ada cara biar tarif reg doang yah gan?
mungkin bisa request ke ongkir.info gan
regards
ini buat jne aja ya gan,..
ko buat tiki,..ada yg tau ga script coding php ny,..
iya gan
klo untuk tiki mungkin bisa request ke ongkir.info gan
regards
007
008
file jquery.js, jquery-ui.min.js , jquery-ui-1.8.13.custom.css , bs download dari mana??? 🙂
mgkin dari sini bisa http://blog.jquery.com/2012/03/21/jquery-1-7-2-released/
untuk UI nya http://blog.jqueryui.com/2010/02/jquery-ui-download-builderthemeroller-status/
hasil download nanti disimpan di folder public atau cuma di unzip??
Bagaimana cara di upload ke wp? bisa dipostingkan tutorial. Thanks, sori maklum nubie
maksudnya dijadikan widget?
Iya, dijadikan widget caranya gimana? Karena ada file index kalo diupload ke root hosting kan sdh ada file index website. Kalo bs dipostingkan tutorialnya untuk dijadikan widget di wordpress. Thanks
Benar Bang Ramoreez, tolong di beri tutorial untuk menjadikan widget pada website dengan mesin wordpress.
Masih menjadi PR buat saya..:D
Lagi cari cara biar bisa dipasang di blogger
Mantaaap gaaaan… ini yang gue cari2…
hallo gan kok saya coba file REST_Ongkir.php kaga ditemukan yah? tolong sorce scriptnya di masukin semua doang biar saya bisa download.
download nya dsini gan http://api.ongkir.info/docs/example/php_sample.html
cURL not enabled.
Fatal error: Call to undefined function curl_init() in C:\xampp\htdocs\tutorial\get_price_jne\REST_Ongkir.php on line 255
ada error nya disitu gan .. kira2 kenapa itu gan ? makasih gan
ane nyoba baru aja gan gak apa2 tuh gan
http://ptpandulima.com/ongkir/
gan fatal error Fatal error: Call to undefined function curl_init() in C:\xampp\htdocs\tutorial\get_price_jne\REST_Ongkir.php on line 255 itu ternyata file index.php,data.php ,class.php dan REST_Ongkir.php harus online coba aja di upload file tadi di 000webhost.com pasti bisa karena file tadi tidak bisa bekerja di file localhost ini contohnya yang udah tak coba di hosting http://coba.tokotaslocal.site90.net/
cakep nih
mantap! tapi aotocomplitnya ga berjalan ni gan d ane
Misal, saya cuman pengen dapat data yang tarif regularnya aja gimana manggilnya gan? soalnya pake foreach n variablenya juga ga tau 🙂
Bisa kok gan autocomplete nya
ini variable nya gan
if($item->service==’Reguler(REG)’)
echo ‘Layanan: ‘ . $item->service . ‘, dengan harga : Rp. ‘ . $item->value . ‘,-
‘;
Klo buat autocomplite js ini perlu ga gan
jquery-ui-1.8.13.custom.css
js/jquery.js”
jquery-ui.min.js
perlu gan :
OKe berhasil gan. thx
cakep, berhasil gan cuman nampilin tarif reguler.
kalo yg autocomplete itu js ini perlu ga gan
REST_Ongkir.php nya g bisa gan pass by pass urlnya mungkin karena itu url buat CI gan. error : cURL not enabled;
Bisa shared REST_Ongkir.php agan??
thx
di PHP.ini nya gan
sory baru engeh ternyata urlnya itu harus ridirect online, thank’s yah setelah baca scriptnya baru tau ane..
Sekarang bermasalah gan, data ga mau nampil. Punya situ dicoba deh bisa ga?
Bisa kok om barusan ane cek
Wah gile keren abis.. dah cek coba demo mantab gan…
siipp… salut buat agan ramoreez
salam
thanks gan 🙂
salam kenal
gan, misal utk tarif reguler ke daerah purbalingga/purwokerto sekarang kenapa ga muncul ya tarifnya berapa? utk daerah jkt muncul
gan auto completenya perlu database nggak ya?? kog punyaku nggak bisa2…
Gak perlu gan
nama2 kota langsung ambil dr JNE
coba deh cek respon nya di firebug
muantap iki
gan, kq ak punya autocomplete nya gk jalan ya??
boleh pencerahannya?
Gan,kalo yg lain ada gak?karena ongkir.info gak bisa ngembaliin value jika kota asal semisal medan dan tujuan adalah jakarta,cuma kebalikannya aja yg ada diberikan ongkir,karena saya test di jne ada data dari medan ke jakarta,tp ongkir.info gak ada nilainya tuh.kira2 gmana yah,hehehe soalnya newbie pada e-commerce
http://ptpandulima.com/ongkir/
kok gak bisa di akses lagi.
Auto compkete nya gak bisa gan kenapa ya ?? padahal dah sama persis coding nya cuman beda API key doang
coba cek pake firebug gan
Nanti ketahuan error nya kenapa
mohon bantuan nya mas, saya butuh banget soalnya .
saya sudah coba tapi masih belom bisa ini web nya sudah saya publish.
http://bibibakery.w.pw/
Terimakasih
Respon dari punya agan seperti ini
http://prntscr.com/1wkgqd , makanya gak muncul
Bandingkan sama demo di atas, respon nya seprti ini
http://prntscr.com/1wkh14
coba install firebug for mozilla buat mengetesnya
Thanks
kalo itu saya bikin sendiri mas buat tau, kepangil tidaknya file php lainya . format data json nya memang kepanggil tetapi tidak mucul autocomplete nya
mas kalo boleh saya minta source code http://ptpandulima.com/ongkir/ lengkap. saya udah coba dari kemarin masih belom bisa. mohon bantuan nya mas. Terima Kasih
Loh iya kalo mau muncul auto complete nya harus sesuai format json nya:
[{“id_kota”:0,”nama_kota”:”SURABAYA”}]
tidak boleh ada text lain selain json
di gambar tadi ada :
console.log(“MASUK DATA.PHP”);
console.log(“MASUK CLASS.PHP”);
console.log(“MASUK REST_ONGKIR.PHP”);
seharusnya itu gak ada biar muncul
mas saya ilangin console.log nya juga masih lom bisa. maaf nih kalo ngeropotin.
ane liat responnya malah error om
Parse error: syntax error, unexpected ‘;’, expecting ‘)’ in /home/u310637438/public_html/class.php on line 8
yg tadi udah bener cuma tinggal ngilangin script yg ane silang tadi
http://prntscr.com/1wkgqd
Ohy biar bisa liat responnya coba install firebug dulu di firefox nya
https://addons.mozilla.org/id/firefox/addon/firebug/
JQuery Autocomplete saya ga bisa dipakai bisa tlg didetailkan lagi …. hasil download dr link harus diapakan TQ
bro, ini kok aku ga bisa ya.. keluarnya “Tidak ditemukan jalur pengiriman dari surabaya ke jakarta” trus ane coba punya agan kok tulisanya sama aja ya
ralat udah bisa gan ternyata cuma masalah di API keynya, untuk JSON-nya masukinya gimana ya gan..
di data.php gan
Mantab banget, tp Gan ini tracking taun brp? ko ngaco ya harganya? Info ya 🙂
ane coba dari/ke jakarta kok keluar error ya gan?
error knp gan?
gan bikim tutorial buat mengintegrasikan api ini ke plugin wordpress woo-commerce donk
bisa upload file nya komplit gan? saya coba soalnya gak bisa
kalau offline gbisa ya??
Sangat membantu, terimakasih tutorial dan share code
sudah daftar
tapi ga dapat email gan..?
help me
Kalo masih offline gak bisa ya gan?
Fyi,
Kini ada API ongkir terbaru yang mendukung TIKI, JNE, POS Indonesia, dan lain-lain. Cek ke TKP:
http://rajaongkir.com/dokumentasi
Thanks gan infonya,
Lengkap banget
Hello admin do you need unlimited content for your
site ? What if you could copy post from other websites,
make it unique and publish on your website – i know the right tool for you, just search in google:
kisamtai’s article tool
nice gan tutorialnya (y)
anw, untuk file js dan css nya boleh minta link untuk downloadnya gak ya? hehe. soalnya ane pake js dan css dari website resminya, fungsi nampilin nama kotanya engga berjalan. makasih gan 😀
mana nih demonya kok sekarang dah 404
kasih tutorial rajaongkir.com juga dunk gan. raja ongkir lebih lengkap loh. thx
Sudah saya buatkan gab
mau tanya, saya sudah masuk api zone. trus setelahnya bingung gan harus gimana lagi. mau masukin ke teks wordpress gimana? buat file baru maksudnya dimana gan? maklum newbie jd bingung bin pusing
mending pakai ini saya mbak lebih lengkap dan update
harganya gak sama dengan webnya JNE
If you are interested in topic: earn online philippines girls friendship – you
should read about Bucksflooder first
terimakasih mas brow