Jumat, 09 Desember 2016

Tutorial Grab Atau Mengambil Data Dari Lazada Menggunakan API Dengan PHP

Pada kesempatan kali ini saya akan membagikan tutorial cara grab atau mengambil data dari Lazada menggunakan API (Application Program Interface) dengan PHP. Sebenarnya ini adalah sedikit potongan kode dari project sistem manajemen produk di perusahaan saya bekerja, Bearhug Indonesia. Baiklah, langsung saja kita bahas.

Setelah lama di buat stress oleh permintaan boss yang ingin sistem manajemen produk di integrasikan langsung dengan toko online lazada, akhirnya saya menemukan pencerahan ketika mendapat info bahwa Lazada menyediakan API untuk para developer.


Sebelumnya, anda bisa membaca API Documentation Lazada, anda bisa melihatnya dengan click nama toko anda di pojok kanan atas, kemudian klik API Document (lihat gambar, kotak no 2). Dokumentasi tersebut menggunakan bahasa inggris. jika anda mahir berbahasa inggris, pasti anda tidak akan kesulitan untuk mengaplikasikan API sesuai petunjuk pada dokumentasi.

Berikut langkah-langkah meng-grab atau mengambil data dari Lazada menggunakan API:

Persiapan:  
- XAMPP atau PHP Server yang lainnya, misal WAMPP Server, LNM, dll.
- Komputer, tentunya...
- Sedikit pengetahuan tentang PHP.
- Beribu niat dan segelas kopi.

1. Langkah pertama adalah membuat API User untuk mendapatkan token. Buka user menu dengan mengklik nama toko anda di pojok kanan atas, kemudian klik User Management (lihat gambar, kotak no 1). Kemudian, klik tombol setelah itu isikan data anda.
-Role: Seller API Access
-Email Address: (isi alamat email untuk API User)
-User Name: (isi username untuk API User)
-Default Language: Indonesian
-Active: Centang
Jika semua sudah terisi, tekan tombol . Jika tidak muncul pesan error, berarti akun anda berhasil di buat. Selanjutnya, kembali ke User Management.

2. Kemudian, buka dan jalankan PHP Server anda. untuk XAMPP pada windows, anda bisa men-start apache saja. Untuk memastikan server telah berjalan, buka browser anda dan ketik http://127.0.0.1 atau http://localhost pada address bar. Jika tidak ada error seperti request time out atau server not found maka server anda sudah berjalan. Kemudian, buka notepad atau teks editor favorit kalian, kemudian copy dan paste kode di bawah ini.
<?php
//Config
date_default_timezone_set("UTC"); //Set zona waktu ke UTC
$now = new DateTime(); //Mendapatkan waktu saat ini
$url = "https://api.sellercenter.lazada.co.id/"; //end-point API Lazada
$api_key = 'Key API User Anda'; //Masukan API anda disini
$parameters = array(
    'UserID' => 'emailanda@gmail.com', //Masukan email API user anda
    'Version' => '1.0', //versi API, biarkan 1.0
    'Action' => 'GetStatistics', //data yang di minta ke server
    'Format' => 'JSON', //format output 
    'Timestamp' => $now->format(DateTime::ISO8601) //timestamp untuk membuat Signature
);

//CURL Function
function curl_get ($url) {
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 $data = curl_exec($ch);
 $err  = curl_error($ch);
 curl_close($ch);
 if ($err) {
  return $err;
 } else {
  return $data;
 }
}

//Membuat url untuk request data
ksort($parameters); //urutkan parameters sesuai abjad
$encoded = array();
foreach ($parameters as $name => $value) {
    $encoded[] = rawurlencode($name) . '=' . rawurlencode($value); 
}
$concatenated = implode('&', $encoded);
$parameters['Signature'] = rawurlencode(hash_hmac('sha256', $concatenated, $api_key, false)); //membuat signature
$queryString = http_build_query($parameters, '', '&', PHP_QUERY_RFC3986);

//Output
$response = curl_get($url."?".$queryString);
$decoded = json_decode($response);

//Print Output
echo '<b>URL GET Request: </b><br><input type="text" style="width:100%;" value="'.$url."?".$queryString.'"/><br><br><b>Response:</b><br>';
echo '<textarea style="width:100%;height:200px;">'.$response.'</textarea><br><br><b>Decoded:</b><br><br>';
print_r($decoded);

?>

Setelah itu, simpan dengan nama "api.lazada.php", ingat ekstensi file harus .php, biasanya kesalahan terjadi karena file di simpan dengan nama "api.lazada.php.txt". Simpan pada folder C:\xampp\htdocs jika anda memakai XAMPP di Windows, atau simpan ke \var\www jika anda menggunakan Apache + PHP di linux. Jika file sudah di simpan, buka browser dan ketik http://127.0.0.1/api.lazada.php pada address bar. Maka anda akan melihat error di kolom respon. wah kok gitu ?

3. Untuk mengatasi error di atas, anda harus mengisi $api_key dan UserID pada parameter. Lalu bagaimana untuk mendapatkan Api Key dan User ID? untuk mendapatkannya, buka User Management, kemudian cari API User yang anda buat tadi. Untuk User ID anda bisa gunakan email dari API User, sedangkan untuk API key, anda bisa mendapatkannya di kolom API Key.


Kemudian, buka file "api.lazada.php", masukan API key pada baris ke 6. Dan masukan UserID pada baris ke 8. Simpan dan buka browser anda kembali, ketik http://127.0.0.1/api.lazada.php pada address bar. Jika tidak ada kesalahan lain maka seharusnya anda sudah bisa melihat data statistik toko online anda.

Sekian, semoga bermanfaat. Terimakasih

Show Comments