NAV
PHP

Welcome Developer

Selamat datang di dokumentasi API bukaOlshop. Anda bisa menggunakan API bukaOlshop untuk mengelola berbagai fitur utama pada aplikasi bukaOlshop seperti produk, transaksi, member dan kategori.

Version: 1.0

Main Endpoint

Berikut ini merupakan URL utama endpoint pada API bukaOlshop:

https://bukaolshop.net/api/v1

Anda harus menambahkan path tambahan sesuai bagian yang ingin anda request. Contoh: jika anda ingin mendapatkan detail produk, maka url akan menjadi:

https://bukaolshop.net/api/v1/produk/id

Authentication

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"URL Endpoint API");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Tipe autentikasi yang digunakan pada API bukaOlshop yaitu : bearer

Anda perlu mengirim header Authorization setiap kali ingin mengakses API bukaOlshop, jika terdapat kesalahan pada autentikasi ini, maka server bukaOlshop akan mengirim respon 401 Unauthorized. Anda bisa mendapatkan API key di aplikasi android bukaOlshop dengan melakukan generate API key.

Berikut ini bentuk autentikasi yang harus dikirim pada header:

Authorization: Bearer API_KEY_ANDA_DISINI

INFORMASI APLIKASI

GET Informasi Aplikasi

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://bukaolshop.net/api/v1/aplikasi/info");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Informasi Aplikasi Olshop

Description: Endpoint ini berfungsi untuk menampilkan detail informasi aplikasi olshop anda. Tidak ada parameter yang wajib dikirim pada endpoint ini.

HTTP Request

***GET*** /aplikasi/info

Parameters

Tidak ada parameter

Contoh hasil respons

{
  "code": 200,
  "status": "ok",
  "nama_toko": "OlshopTest",
  "nama_aplikasi": "OlshopTest",
  "nama_package": "com.olshopgue",
  "icon_aplikasi": "https://xxxxxxxx/xxx/xxx/xxx/xxx.png",
  "masa_aktif_premium": "2021-09-16",
  "status_premium": "lite",
  "tanggal_daftar_aplikasi": "2019-11-08 20:29:30",
  "telah_verifikasi_identitas": false,
  "email_pemilik_olshop": "cek@gmail.com",
  "nama_pemilik_olshop": "testing user",
  "hp_pemilik_olshop": "082234327658",

}

Responses

Code Description
200 OK

PRODUK

GET Daftar List Produk

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$query=http_build_query(
  array("page"=>'1')
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://bukaolshop.net/api/v1/produk/list?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Daftar Produk

Description: Endpoin ini berfungsi untuk mendapatkan daftar produk yang ada di aplikasi bukaOlshop anda. Method yang digunakan pada endpoin ini yaitu GET, dengan parameter yang wajib di isi yaitu page.

Parameter page ini merupakan halaman data produk, tiap halaman akan menampilkan 10 produk. Anda bisa mengisi parameter ini dengan angka 1 untuk mendapatkan 10 produk terbaru. Untuk melihat daftar produk selanjutnya, anda tinggal mengisi dengan angka 2, 3, 4 dan seterusnya.

HTTP Request

***GET*** /produk/list

Parameters

Name Located in Description Required Type
page query Posisi daftar halaman produk Yes Integer

Contoh hasil respons

{
  "code": 200,
  "status": "ok",
  "page": 1,
  "data": [
    {
      "id_barang": "509369",
      "id_kategori": "35023",
      "nama_barang": "Judul produk 1",
      "harga_barang": 5000,
      "kondisi_barang": "Baru",
      "stok_barang": 7,
      "berat": 80,
      "tanggal": "2021-02-18 21:09:57",
      "url_gambar_barang": "url gambar"
    },
    {
      "id_barang": "439075",
      "id_kategori": "35023",
      "nama_barang": "Judul produk 2",
      "harga_barang": 6000,
      "kondisi_barang": "Baru",
      "stok_barang": 4,
      "berat": 46,
      "tanggal": "2021-01-14 19:33:19",
      "url_gambar_barang": "url gambar"
    }
  ]
}

Responses

Code Description
200 OK
400 Bad Request, Pastikan anda memasukkan parameter page, isi parameter page tidak boleh 0 atau dibawah 0, dan tidak lebih dari 600.

GET Detail Produk

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

// Ganti 1234567 dengan id_barang
$query=http_build_query(
  array("id_barang"=>'1234567')
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://bukaolshop.net/api/v1/produk/id?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Detail Produk

Description: Endpoint ini berfungsi untuk mendapatkan detail produk anda. Method yang digunakan adalah GET dan parameter yang wajib di isi adalah id_barang. Anda dapat menemukan id_barang pada endpoint Daftar Produk atau pada Detail Transaksi.

HTTP Request

***GET*** /produk/id

Parameters

Name Located in Description Required Type
id_barang query id_barang untuk mendapatkan detail produk. Yes String

Contoh hasil respons

{
  "code": 200,
  "status": "ok",
  "id_barang": "176941",
  "nama_barang": "Produk 2",
  "harga_barang": 34344,
  "harga_barang_asli": 0,
  "kondisi_barang": "Baru",
  "stok_barang": 43,
  "berat": 54,
  "tanggal": "2020-08-08 04:58:48",
  "merek": "",
  "sku": "",
  "ukuran": "",
  "warna": "",
  "id_kategori": "65258",
  "data_kategori": {
    "nama_kategori": "judul kategori",
    "gambar_kategori": "url gambar kategori"
  },
  "harga_grosir": [
    {
      "jumlah": "5",
      "harga": "60000"
    },
    {
      "jumlah": "6",
      "harga": "60000"
    }
  ],
  "lokasi_barang": {
    "id_origin": "43726",
    "nama_pengirim": "Nama pengirim",
    "provinsi": "Bali",
    "kota": "Badung",
    "kecamatan": "Abiansemal",
    "kode_pos": "",
    "no_hp": "082242235573"
  },
  "url_gambar": [
    "url gambar 1",
    "url gambar 2",
    "url gambar 3"
  ]
}

Responses

Code Description
200 OK, Data produk ditemukan
404 Not Found, Data produk tidak ditemukan, pastikan id_barang yang anda input sudah benar

PATCH Edit Produk

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "id_barang"=>"563226",
  "nama_barang"=>"nama barang baru"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/produk/id");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Edit Produk

Description: Endpoint ini berfungsi untuk mengubah data produk anda. Method yang digunakan adalah PATCH dan parameter yang wajib di-isi adalah id_barang. Anda dapat menemukan id_barang pada endpoint Daftar Produk atau pada Detail Transaksi.

Setelah anda memasukkan parameter id_barang, selanjutnya Anda cukup memasukkan parameter yang ingin diubah saja.

HTTP Request

***PATCH*** /produk/id

Parameters

Name Located in Description Required Type
id_barang Body id_barang wajib diisi Yes String
nama_barang Body No String
deskripsi_panjang Body No String
deskripsi_singkat Body No String
berat Body No Integer
jumlah_stok Body No Integer
kondisi Body No String
merek Body No String
dalam_kotak Body No String
garansi Body No String
harga_barang_asli Body No Integer
sku Body No String

Contoh hasil respons

  {
    "code": 200,
    "status": "ok - Data berhasil diubah",
    "id_barang": "563226"
  }

Responses

Code Description
200 OK, Produk berhasil diupdate
400 Bad Request, Pastikan id_barang telah di isi dengan benar, dan pastikan anda memasukkan minimal 1 parameter tambahan yang ingin diubah

DELETE Hapus Produk

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "id_barang"=>"551305",
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/produk/id");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Hapus Produk

Description: Endpoint ini berfungsi untuk menghapus produk anda. Method yang digunakan adalah DELETE dan parameter yang wajib di-isi adalah id_barang. Anda dapat menemukan id_barang pada endpoint Daftar Produk atau pada Detail Transaksi.

HTTP Request

***DELETE*** /produk/id

Parameters

Name Located in Description Required Type
id_barang Body id_barang wajib diisi Yes String

Contoh hasil respons

 {
    "code": 200,
    "status": "ok - Data berhasil dihapus",
    "id_barang": "551305"
  }

Responses

Code Description
200 OK, Data berhasil dihapus
404 Not Found, Data id_barang yang ada input tidak ditemukan.

KATEGORI

GET Daftar List Kategori

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/kategori/list");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Daftar Kategori

Description: Endpoin ini berfungsi untuk mendapatkan daftar kategoori yang ada di aplikasi bukaOlshop anda. Method yang digunakan pada endpoin ini yaitu GET.

HTTP Request

***GET*** /kategori/list

Perintah diatas akan menghasilkan JSON seperti dibawah

 {
    "code": 200,
    "status": "ok",
    "data": [
      {
        "id_kategori": "35023",
        "nama_kategori": "Kategori 1",
        "gambar_kategori": "url gambar kategori"
      },
      {
        "id_kategori": "65257",
        "nama_kategori": "Kategori 2",
        "gambar_kategori": "url gambar kategori"
      }
    ]
  }

Responses

Code Description
200 OK

POST Buat Kategori Baru

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "nama_kategori"=>"nama kategori baru",
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/kategori/create");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Buat Kategori Baru

Description: Endpoin ini berfungsi untuk menambah kategori anda. Method yang digunakan pada endpoint ini yaitu POST.

Jika anda ingin menambah gambar pada kategori, pastikan anda telah mengupload gambar produk pada server anda terlebih dulu dan pastikan gambar produk tersebut dapat diakses oleh publik agar dapat didownload oleh server bukaOlshop. Anda harus menyertakan link url menuju gambar produk tersebut pada parameter "kategori_gambar".

HTTP Request

***POST*** /kategori/create

Parameters

Name Located in Description Required Type
nama_kategori Body Nama kategori anda Yes String
kategori_gambar Body URL gambar kategori No String

Contoh hasil respons

 {
    "code": 200,
    "status": "ok - kategori berhasil ditambah",
    "id_kategori": "130718"
  }

Responses

Code Description
200 OK, Kategori berhasil dibuat
400 Bad Request, Pastikan anda telah mengisi parameter nama_kategori

GET Detail Kategori

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$query=http_build_query(
  array("id_kategori"=>'138823')
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://bukaolshop.net/api/v1/kategori/id?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Detail Kategori

Description: Endpoint ini berfungsi untuk mendapatkan detail kategori anda. Method yang digunakan adalah GET dan parameter yang wajib diisi adalah id_kategori.

Anda dapat menemukan id_kategori pada endpoint List Kategori ataupun pada List Produk.

HTTP Request

***GET*** /kategori/id

Parameters

Name Located in Description Required Type
id_kategori query id_kategori untuk mendapatkan detail kategori Yes String

Contoh hasil respons

 {
    "code": 200,
    "status": "ok",
    "id_kategori": "65258",
    "nama_kategori": "Kategori 1",
    "gambar_kategori": "URL gambar kategori"
  }

Responses

Code Description
200 OK
400 Bad Request, Pastikan ada memasukan id_kategori
404 Not Found, Data tidak ditemukan

PATCH Edit Kategori

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "id_kategori"=>"138823",
  "nama_kategori"=>"nama kategori baru edit"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/kategori/id");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Edit Kategori

Description: Endpoint ini berfungsi untuk mengubah nama kategori anda. Method yang digunakan adalah PATCH dan parameter yang wajib diisi adalah id_kategori.

Anda dapat menemukan id_kategori pada endpoint List Kategori ataupun pada List Produk.

HTTP Request

***PATCH*** /kategori/id

Parameters

Name Located in Description Required Type
id_kategori body id_kategori untuk mendapatkan detail kategori Yes String
nama_kategori body nama kategori baru anda Yes String

Contoh hasil respons

  {
    "code": 200,
    "status": "ok - Data berhasil diubah",
    "id_kategori": "65258"
  }

Responses

Code Description
200 OK, data berhasil diubah
400 Bad Request, pastikan anda telah memasukkan parameter id_kategori dan nama_kategori dengan benar
404 Not Found, Data id_kategori tidak ditemukan

DELETE Hapus Kategori

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "id_kategori"=>"138823",
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/kategori/id");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Hapus Kategori

Description: Endpoint ini berfungsi untuk menghapus kategori anda. Method yang digunakan adalah DELETE dan parameter yang wajib diisi adalah id_kategori.

Anda dapat menemukan id_kategori pada endpoint List Kategori ataupun pada List Produk.

HTTP Request

***DELETE*** /kategori/id

Parameters

Name Located in Description Required Type
id_kategori body id_kategori yang ingin dihapus Yes String

Contoh hasil respons

  {
    "code": 200,
    "status": "ok - Data berhasil dihapus",
    "id_kategori": "65258"
  }

Responses

Code Description
200 OK, data berhasil dihapus
400 Bad request, pastikan anda telah memasukkan id_kategori
404 Not Found, id_kategori tidak ditemukan
409 Conflict, Kategori ini sedang digunakan oleh salah satu produk anda

DAFTAR ALAMAT

GET Daftar Alamat pengiriman

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/origin/list");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Daftar Alamat pengiriman

Description: Endpoin ini berfungsi untuk mendapatkan daftar alamat pengiriman yang ada di aplikasi bukaOlshop anda. Method yang digunakan pada endpoin ini yaitu GET.

HTTP Request

***GET*** /origin/list

Contoh hasil respons

  {
    "code": 200,
    "status": "ok",
    "data": [
      {
        "id_origin": "22833",
        "nama_pengirim": "Nama pengirim 1",
        "provinsi": "Bali",
        "kota": "Badung",
        "kecamatan": "Abiansemal",
        "kode_pos": "",
        "no_hp": "085254678432"
      },
      {
        "id_origin": "43726",
        "nama_pengirim": "Nama pengirim 2",
        "provinsi": "Riau",
        "kota": "Pekanbaru",
        "kecamatan": "Payungsekaki",
        "kode_pos": "",
        "no_hp": "0823324474553"
      }
    ]
  }

Responses

Code Description
200 OK

MEMBER

GET Daftar List Member

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$query=http_build_query(
  array("page"=>'1')
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/member/list?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Daftar List Member

Description: Endpoin ini berfungsi untuk mendapatkan daftar member yang ada di aplikasi bukaOlshop anda. Method yang digunakan pada endpoin ini yaitu GET, dengan parameter yang wajib di isi yaitu page.

Anda bisa mengisi parameter ini dengan angka 1 untuk mendapatkan 10 member terbaru. Untuk melihat daftar member selanjutnya, anda tinggal mengisi dengan angka 2, 3, 4 dan seterusnya.

HTTP Request

***GET*** /member/list

Parameters

Name Located in Description Required Type
page query Posisi daftar halaman member Yes Integer

Contoh hasil respons

  {
    "code": 200,
    "status": "ok",
    "page": 1,
    "data": [
      {
        "id_user": "289821",
        "email_user": "cek5@gmail.com",
        "nama_user": "Cek5",
        "nomor_telepon": "082366489912",
        "foto_profil": "Url foto profil",
        "status_akun": "aktif",
        "tanggal_daftar": "2020-10-05 05:25:44"
      },
      {
        "id_user": "289820",
        "email_user": "cek4@gmail.com",
        "nama_user": "Cek4",
        "nomor_telepon": "082234327658",
        "foto_profil": "Url foto profil",
        "status_akun": "aktif",
        "tanggal_daftar": "2020-10-05 05:24:54"
      }
    ]
  }

Responses

Code Description
200 OK

GET Detail Member

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$query=http_build_query(
  array("email_user"=>'email_user@gmail.com')
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/member/id?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Detail Member

Description: Endpoint ini berfungsi untuk mendapatkan detail member anda. Method yang digunakan adalah GET. Terdapat 2 cara untuk mendapatkan detail member anda, yaitu melalui email atau melalui id_user.

Anda dapat mengisi parameter id_user atau email_user, silahkan pilih salah satu.

Anda dapat menemukan id_user pada endpoint List Member ataupun pada endpoint transaksi.

HTTP Request

***GET*** /member/id

Parameters

Name Located in Description Required Type
id_user query isi dengan id_user member No String
email_user query isi dengan email_user No String

Contoh hasil respons

  {
    "code": 200,
    "status": "ok",
    "id_user": "130173",
    "email_user": "email@gmail.com",
    "nama_user": "Nama user",
    "tanggal_lahir": "2000-01-01",
    "jenis_kelamin": "Laki-laki",
    "nomor_telepon": "0822882432535",
    "foto_profil": "",
    "status_akun": "verified",
    "kode_referral": "MYTANPA",
    "tanggal_daftar": "2020-09-26 02:16:33",
    "data_alamat": [
      {
        "nama_penerima": "Nama user",
        "kecamatan": "Abiansemal",
        "kota": "Badung",
        "provinsi": "Bali",
        "nomor_telepon": "4949",
        "kode_pos": "80351",
        "alamat_lengkap": "Alamat lengkap user"
      }
    ]
  }

Responses

Code Description
200 OK, Data ditemukan
400 Bad Request, Pastikan anda telah mengisi parameter id_user atau email_user, pilih salah satu.
404 Not Found, data tidak ditemukan

GET Saldo Member

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$query=http_build_query(
  array("id_user"=>'xxxxx')
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/member/saldo?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Informasi Saldo Member

Description: Endpoint ini berfungsi untuk mendapatkan detail saldo yang dimiliki member anda. Method yang digunakan adalah GET. Terdapat 2 cara untuk mendapatkan detail member anda, yaitu melalui email atau melalui id_user.

Anda dapat mengisi parameter id_user atau email_user, silahkan pilih salah satu.

HTTP Request

***GET*** /member/saldo

Parameters

Name Located in Description Required Type
id_user query isi dengan id_user member No String
email_user query isi dengan email_user No String

Contoh hasil respons

  {
    "code": 200,
    "status": "ok",
    "id_user": "289820",
    "email_user": "cek4@gmail.com",
    "nama_user": "Nama member",
    "transaksi_terakhir": "2021-04-06 01:58:39",
    "jumlah_saldo": 90000,
    "riwayat_saldo": [
      {
        "informasi_catatan": "Member mendapatkan komisi referral sebagai Downline",
        "jumlah_dana": 10000,
        "tanggal": "2020-10-05 05:14:10"
      }
    ]
  }

Responses

Code Description
200 OK, Data ditemukan
400 Bad Request, Pastikan anda telah mengisi parameter "id_user" atau "email_user", pilih salah satu.
404 Not found, data tidak ditemukan

POST Ubah Saldo Member

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "email_user"=>"blabla@gmail.com",
  "tipe"=>"tambah",
  "jumlah"=>20000
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/member/saldo");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Ubah Saldo Member

Description: Endpoint ini berfungsi untuk mengubah jumlah saldo yang dimiliki member anda. Method yang digunakan adalah POST.

Parameter yang wajib di-isi yaitu id_user atau email_user (pilih salah satu), tipe, dan jumlah.

HTTP Request

***POST*** /member/saldo

Parameters

Name Located in Description Required Type
id_user body isi dengan id_user member No String
email_user body isi dengan email_user No String
tipe body isi dengan tambah atau kurang Yes Enum tambah /kurang
jumlah body isi dengan jumlah saldo yang ingin ditambah Yes Integer

Contoh hasil respons

 {
    "code": 200,
    "status": "ok - Saldo berhasil ditambah",
    "id_user": "289820",
    "email_user": "emailuser@gmail.com",
    "nama_user": "Nama user",
    "jumlah": 30000,
    "tipe": "tambah",
    "id_perubahan": "456406"
  }

Responses

Code Description
200 OK, data saldo berhasil diubah
400 Bad Request, Pastikan anda telah mengisi parameter id_user atau email_user, pilih salah satu.
403 Forbidden, Pengurangan lebih besar dari jumlah saldo member
404 Not Found, data tidak ditemukan

POST Konfirmasi TopUp Saldo Member

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "token_topup"=>"xxxxxxxxxxxxxxxxxxxx",
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/member/topup");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Konfirmasi Penambahan topup saldo member

Description: Endpoint ini berfungsi untuk melakukan konfirmasi topup saldo member anda, anda memerlukan parameter token_topup yang hanya bisa didapatkan dengan melakukan override halaman topup saldo. Method yang digunakan adalah POST.

Parameter yang wajib di-isi yaitu token_topup.

HTTP Request

***POST*** /member/topup

Parameters

Name Located in Description Required Type
token_topup body Isi dengan token_topup. Nilai token_topup hanya bisa anda dapatkan jika melakukan override halaman topup. Yes String

Contoh hasil respons

 {
    "code": 200,
    "status": "ok - Saldo berhasil ditambah",
    "id_user": "289820",
    "email_user": "emailuser@gmail.com",
    "nama_user": "Nama user",
    "jumlah": 30000,
    "tipe": "tambah",
    "id_perubahan": "456406"
  }

Responses

Code Description
200 OK, data saldo berhasil diubah
400 Bad Request, Parameter token_topup belum di isi
404 Not Found, data tidak ditemukan

CHAT

POST Kirim pesan

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "id_user"=>"xxxx",
  "pesan_teks"=>"ini adalah pesan anda"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/chat/create");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Kirim pesan ke member

Description: Endpoint ini berfungsi untuk mengirim pesan ke member anda.

Parameter yang wajib di-isi yaitu id_user atau email_user (pilih salah satu), dan parameter pesan_teks.

HTTP Request

***POST*** /chat/create

Name Located in Description Required Type
id_user body isi dengan id_user member No String
email_user body isi dengan email_user No String
pesan_teks body Masukkan pesan anda disini Yes String
id_barang body Masukkan id_barang jika anda ingin mengirim sebagai chat produk. No String

Contoh hasil respons

 {
    "code": 200,
    "status": "ok - Pesan berhasil dikirim",
    "id_user": "130173",
    "email_user": "emailuser@gmail.com",
    "nama_user": "Nama User",
    "id_barang": "257304",
    "pesan_teks": "Assalamualaikum, Apa kabar?"
  }

Responses

Code Description
200 OK, Pesan berhasil dikirim
400 Bad Request, Pastikan anda telah mengisi parameter id_user atau email_user, pilih salah satu. Pastikan anda juga sudah mengisi parameter pesan_teks.
404 Not Found, data tidak ditemukan

TRANSAKSI

GET Daftar List Transaksi

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$query=http_build_query(
  array("page"=>'1')
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/transaksi/list?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Daftar Transaksi

Description: Endpoint ini berfungsi untuk menampilkan daftar transaksi pada aplikasi olshop anda. Method yang digunakan pada endpoint ini yaitu GET.

Parameter yang wajib di-isi adalah parameter page. Tiap page akan menampilkan 10 transaksi dengan urutan waktu terbaru. Anda dapat mengisi parameter page ini dengan angka (dimulai dari angka 1).

HTTP Request

***GET*** /transaksi/list

Parameters

Name Located in Description Required Type
page query Posisi daftar halaman transaksi Yes Integer
id_user query id_user untuk menampilkan transaksi dari user tertentu No String
email_user query email_user untuk menampilkan transaksi dari user tertentu No String
filter_status query Filter berdasarkan status transaksi, pending,diproses,atau lunas No String

Terdapat beberapa parameter tambahan yang bisa anda masukkan untuk menampilkan data yang lebih spesifik, yaitu:

  1. Anda dapat menambahkan parameter id_user atau email_user (pilih salah satu) untuk menampilkan data transaksi dari member tertentu.
  2. Anda dapat menambahkan parameter filter_status untuk menampilkan status transaksi tertentu, misal status transaksi tagihan , proses atau lunas.

Contoh hasil respons

  {
    "code": 200,
    "status": "ok",
    "data": [
      {
        "nomor_pembayaran": "2853130173354",
        "id_user": "130173",
        "status_bayar": "pending",
        "status_pengiriman": "belum diproses",
        "tanggal": "2020-10-12 01:15:04"
      },
      {
        "nomor_pembayaran": "81168130173359",
        "id_user": "130173",
        "status_bayar": "lunas",
        "status_pengiriman": "selesai",
        "tanggal": "2020-10-05 05:31:56"
      }
    ]
  }

Responses

Code Description
200 OK, data berhasil ditemukan
400 Bad Request, Pastikan anda telah mengisi parameter page, nilai parameter tidak boleh dibawah 1 dan tidak lebih dari 600

GET Detail Transaksi

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$query=http_build_query(
  array("nomor_pembayaran"=>'xxxxxxxxxxxxx')
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/transaksi/id?".$query);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Detail Transaksi

Description: Endpoint ini berfungsi untuk mendapatkan detail transaksi pada olshop anda. Method yang digunakan pada endpoint ini yaitu GET.

Anda wajib memasukkan parameter nomor_pembayaran. Nomor pembayaran dapat anda temukan di endpoint list transaksi atau di aplikasi bukaOlshop anda.

HTTP Request

***GET*** /transaksi/id

Parameters

Name Located in Description Required Type
nomor_pembayaran query Nomor pembayaran transaksi Yes String

Contoh hasil respons

  {
    "code": 200,
    "status": "ok",
    "nomor_pembayaran": "74879326",
    "id_user": "2343",
    "status_bayar": "lunas",
    "status_pengiriman": "diproses",
    "bank_penerima": "BCA",
    "terakhir_update": "2021-02-27 19:48:38",
    "tanggal_buat": "2021-02-24 04:16:11",
    "potongan": 0,
    "kode_unik": 0,
    "total_membership": 15500,
    "total_transaksi": 1079949,
    "data_pesanan": [
      {
        "ekspedisi": "JNE OKE",
        "ongkos_kirim": 43000,
        "nama_pengirim": "Nama saya 1",
        "provinsi": "Riau",
        "kota": "Pekanbaru",
        "kecamatan": "Bukit Raya",
        "no_hp": "085279462345",
        "kode_pos": "28112",
        "data_produk": [
          {
            "id_transaksi": "xxxxx",
            "id_barang": "513039",
            "nama_barang": "barang 1",
            "jumlah_barang": 1,
            "total_harga": 10000,
            "catatan": "catatan pesanan",
            "nomor_resi": "xxxxxxxxxxxxxxxxxxxx",
            "catatan_tambahan": {
              "nama_varian": "Varian 123",
              "opsi": [
                  "UNGU","MERAH","BIRU"
                ]
              }
          }
        ]
      },
      {
        "ekspedisi": "JNE OKE",
        "ongkos_kirim": 12000,
        "nama_pengirim": "Nama saya 2",
        "provinsi": "Bali",
        "kota": "Badung",
        "kecamatan": "Abiansemal",
        "no_hp": "085723453462",
        "kode_pos": "80351",
        "data_produk": [
          {
            "id_transaksi": "xxxxx",
            "id_barang": "196552",
            "nama_barang": "barang 2",
            "jumlah_barang": 1,
            "total_harga": 50000,
            "catatan": " \nVarian : Vairan 1\n",
              "nomor_resi": ""
          },
          {
            "id_transaksi": "xxxxx",
            "id_barang": "196552",
            "nama_barang": "barang 3",
            "jumlah_barang": 1,
            "total_harga": 949449,
            "catatan": " \nVarian : Varian 3\n",
            "nomor_resi": "123456789"
          }
        ]
      }
    ]
  }

Responses

Code Description
200 OK, data berhasil ditemukan.
400 Bad request, pastikan anda telah memasukkan parameter nomor_pembayaran dengan benar
404 Not Found, data nomor pembayaran yang anda masukkan tidak ditemukan

PATCH Edit Status Transaksi

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "nomor_pembayaran"=>"xxxxxxxxxxxxx",
  "status_transaksi"=>"lanjut"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/transaksi/id");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Edit Status Transaksi

Description: Endpoint ini berfungsi untuk mengubah status transaksi pada olshop anda.

HTTP Request

***PATCH*** /transaksi/id

Parameters

Name Located in Description Required Type
nomor_pembayaran body Nomor pembayaran transaksi Yes String
status_transaksi body Isi dengan nilai lanjut,kembali,selesai,diproses atau lunas Yes String

Penjelasan Parameter

Untuk mengubah status transaksi, Anda cukup memasukkan 2 parameter yaitu:

  1. nomor_pembayaran
  2. status_transaksi

Berikut penjelasan kelima nilai tersebut:

  1. lanjut, nilai ini berfungsi untuk melanjutkan status transaksi ke tahap selanjutnya. Contoh, jika metode bayar transaksi menggunakan transfer bank dan memiliki status bayar pending, maka jika anda memasukkan nilai lanjut akan membuat transaksi berubah menjadi lunas, setelah lunas status akan menjadi diproses, dan setelah diproses status akan berubah menjadi dikirim dan seterusnya sampai status pengiriman selesai.

  2. kembali, nilai ini merupakan kebalikan dari nilai lanjut. Jika anda memasukkan nilai ini, maka status transaksi akan dikembalikan ke tahap sebelumnya. Contoh, jika status transaksi sekarang adalah dikirim, maka status akan berubah menjadi diproses, dan dari status diproses akan dirubah menjadi lunas dan seterusnya.

  3. lunas, nilai ini merupakan jalan pintas untuk membuat status pembayaran menjadi lunas.

  4. diproses, nilai ini merupakan jalan pintas untuk membuat status transaksi menjadi diproses.

  5. selesai, nilai ini merupakan jalan pintas untuk menyelesaikan sebuah transaksi (status pembayaran menjadi lunas dan status pengiriman menjadi selesai.

Nilai-nilai pada parameter status_transaksi diatas dibuat agar tidak terjadi kesalahan pada input yang anda lakukan.

Contoh hasil respons

  {
    "code": 200,
    "status": "ok",
    "nomor_pembayaran": "74879326",
    "statu_bayar_awal": "lunas",
    "status_pengiriman_awal": "diproses",
    "status_bayar_terbaru": "lunas",
    "status_pengiriman_terbaru": "dikirim"
  }

Responses

Code Description
200 OK, perubahan berhasil dilakukan.
400 Bad Request, pastikan ada telah mengisi parameter nomor_pembayaran dan status_transaksi
404 Not Found, data tidak ditemukan

PATCH Edit Resi Transaksi

Contoh request dengan PHP

$token="API KEY ANDA";
$header=  array("Authorization: Bearer ".$token );

$post_body=array(
  "id_transaksi"=>"xxxx",
  "nomor_resi"=>"xxxxxxxxxxxxxxxxxxxx"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://bukaolshop.net/api/v1/transaksi/id");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$hasil = curl_exec($ch);
curl_close ($ch);
echo $hasil;

Summary: Edit Resi Transaksi

Description: Endpoint ini berfungsi untuk mengubah nomor resi transaksi pada olshop anda.

HTTP Request

***PATCH*** /transaksi/id

Parameters

Name Located in Description Required Type
id_transaksi body Nomor id_transaksi Yes String
nomor_resi body Isi dengan nomor resi anda Yes String

Contoh hasil respons

  {
    "code": 200,
    "status": "ok - nomor resi berhasil diubah",
  }

Responses

Code Description
200 OK, perubahan berhasil dilakukan.
400 Bad Request, pastikan ada telah mengisi parameter id_transaksi dan nomor_resi
404 Not Found, data tidak ditemukan



Callback bukaOlshop

Apa itu Callback?

Dalam istilah API, Callback merupakan sebuah proses dimana sebuah service mengirim data ke service lainnya, baik itu diluar ruang lingkup aplikasi maupun di dalam internal aplikasi.

Jika dalam API, anda melakukan pemanggilan ke API bukaOlshop, lalu server bukaOlshop akan merespon dengan data yang anda minta. Sedangkan, Callback merupakan kebalikan dari hal tersebut.

Server bukaOlshop akan mengirimkan data ke URL endpoint yang sudah anda inputkan. Data-data tersebut akan dikirim jika ada event tertentu yang terjadi didalam aplikasi, yang kemungkinan anda butuhkan untuk memproses suatu event secara mandiri.

Contoh, jika member melakukan pemesanan didalam aplikasi, maka server bukaOlshop akan mengirimkan data ke URL anda mengenai data pesanan yang baru saja terjadi. Atau bisa juga member telah melakukan konfirmasi pembayaran, anda dapat mendapatkan data konfirmasi tersebut secara langsung dengan adanya callback.

Lihat skema dibawah ini: alt text

Dengan adanya callback, anda dapat mengetahui jika ada pesanan baru yang masuk dan memutuskan sendiri, apa yang anda ingin lakukan dengan data tersebut. Contohnya:

Alur kerja Callback pada bukaOlshop

Berikut ini akan dijelaskan alur teknis cara kerja callback pada aplikasi bukaOlshop.

Callback transaksi baru

Pada bagian ini, server bukaOlshop akan mengirim data jika ada transaksi baru yang telah dibuat oleh member anda. Data tersebut akan dikirim ke URL yang telah anda inputkan di aplikasi bukaOlshop.

Disamping ini contoh data transaksi baru yang dikirimkan oleh server bukaOlshop ke URL anda:

Contoh data transaksi baru yang dikirimkan oleh server bukaOlshop ke URL anda:

{
  "tipe_callback":"transaksi_baru",
  "secret_key_callback":"21c02307f73b042",
  "nomor_pembayaran":"988589585",
  "status_transaksi":"pending",
  "tipe_transaksi":"PRODUK DIGITAL"
}

Contoh cara mengerima data dengan php

//Secret key bisa anda dapatkan di aplikasi android bukaOlshop, di menu API & callback, pada bagian "Secret key callback".
  $secret_key="xxxxxxxxxxxxxxxx";

  //Periksa apakah secret key yang masuk sudah cocok
  if(isset($_POST['secret_key_callback']) && $_POST['secret_key_callback']==$secret_key){

      //dapatkan data yang dikirim oleh callback
      $tipe_callback=$_POST['tipe_callback'];
      $nomor_pembayaran=$_POST['nomor_pembayaran'];
      $status_transaksi=$_POST['status_transaksi'];
      $tipe_transaksi=$_POST['tipe_transaksi'];
  }

COD MANUAL , COD JNT , DELIVERY COD , DELIVERY , PRODUK DIGITAL , EKSPEDISI, MULTI_PENGIRIMAN

Berikut ini merupakan Sequence Diagram yang bisa anda gunakan untuk dalam memproses data callback: Sequence Diagram Transaksi baru

Misal anda ingin mengotomatisasi proses pembelian PPOB, anda bisa mendapatkan data yang di inputkan member pada field "catatan". Disarankan untuk tidak menggunakan fitur varian pada produk digital agar lebih mudah mengetahui informasi produk melalui id_barang.

Callback perubahan status transaksi

Contoh data perubahan status transaksi yang dikirimkan oleh server bukaOlshop ke URL anda:

{
  "tipe_callback":"perubahan_status_transaksi",
  "secret_key_callback":"21c02307f73b042",
  "nomor_pembayaran":"193269871",
  "status_transaksi":"diproses",
  "tipe_transaksi":"EKSPEDISI"
}

Dengan callback perubahan status transaksi, anda bisa melakukan tindakan jika member melakukan konfirmasi pembayaran. Callback tipe ini akan dikirim jika anda melakukan perubahan transaksi pada aplikasi android dan saat member melakukan konfirmasi pembayaran. Callback ini tidak akan dikirim jika anda melakukan perubahan status transaksi secara manual, melalui admin website atau menggunakan API.

Berikut ini merupakan Sequence Diagram yang bisa anda gunakan untuk dalam memproses data callback perubahan status transaksi: Sequence Diagram Perubahan Status Transaksi

Rate Limit

bukaOlshop menerapkan rate limit pada API untuk mencegah penyalahgunaan API yang dapat terjadi. Rate limit merupakan batasan anda melakukan request ke API bukaOlshop setelah anda melakukannya dalam jumlah tertentu. Rate limit ini akan di reset setiap hari, jadi jika anda telah mencapai limit yang telah ditentukan, anda dapat melakukan request pada hari berikutnya.

Jika anda telah mencapat limit yang telah ditentukan, maka server akan merespon dengan kode 429 - Too Many Requests. Sebaiknya anda melakukan pengecekan pada server anda apakah code yang di terima merupakan kode 429 atau tidak.

Gambar dibawah ini merupakan daftar rate limit yang diterapkan pada API bukaOlshop:

Rate Limit API bukaOlshop

Errors Code

API bukaOlshop menggunakan kode respons HTTP standart, berikut ini beberapa respon yang mungkin akan anda terima:

Error Code Meaning
400 Bad Request -- Data yang anda input salah, pastikan anda menginput data yang wajib di isi dengan benar.
401 Unauthorized -- API key anda salah, atau Authorization header tidak dikirim dengan benar.
403 Forbidden -- Autentikasi berhasil, namun anda tidak memiliki hak untuk melihat data.
404 Not Found -- Data yang anda cari tidak ditemukan.
405 Method Not Allowed -- Anda mencoba mengakses endpoint dengan method yang salah.
429 Too Many Requests -- Anda melakukan terlalu banyak request saat bersamaan, atau kuota request perhari anda telah habis.
500 Internal Server Error -- sedang terjadi masalah pada server, silahkan coba lagi nanti.
503 Service Unavailable -- Server bukaOlshop sedang offline atau maintenance, silahkan coba lagi nanti.
PHP