diff --git a/README.md b/README.md index 41c32b0..fd806f0 100644 --- a/README.md +++ b/README.md @@ -30,154 +30,9 @@ Package Laravel atau Lumen yang menyimpan data provinsi, kota, kecamatan, dan ne composer require dipantry/rajaongkir ``` -## Integrasi -### Lumen -Dalam file `bootstrap/app.php`, uncomment baris berikut -```php -$app->withFacades(); -$app->withEloquent(); -``` -dan daftarkan service provider dan alias/facade dengan menambahkan kode berikut -```php -$app->register(Dipantry\Rajaongkir\ServiceProvider::class); - -// class_aliases -class_alias(Dipantry\Rajaongkir\Facade::class, 'Rajaongkir'); -``` - -### Laravel -Dalam file `config/app.php`, masukkan baris berikut pada bagian `providers` -```php -'providers' => [ - ... - Dipantry\Rajaongkir\ServiceProvider::class, -], -``` -dan tambahkan baris berikut pada bagian `aliases` -```php -'aliases' => [ - 'Rajaongkir' => Dipantry\Rajaongkir\Facade::class, -], -``` - -## Konfigurasi -```sh -php artisan vendor:publish --provider="Dipantry\Rajaongkir\ServiceProvider" -``` - -File konfigurasi terletak pada `config/rajaongkir.php` -```php -return [ - 'api_key' => 'Masukkan API Key Anda', - 'package' => 'Masukkan Tipe Akun Anda (Basic, Starter, Pro)', - 'table_prefix' => 'Untuk migrasi dan seeding data', - 'timeout' => 'Waktu timeout untuk API RajaOngkir', -] -``` - -### Jalankan migrasi -```sh -php artisan migrate -``` - -### Jalankan seeder untuk mengisi data provinsi, kota, kecamatan, dan negara -```sh -php artisan rajaongkir:seed -``` - ---- -# Cara menggunakan -## Data Provinsi, Kota, Kecamatan, dan Negara -Untuk mengambil data provinsi, kota, kecamatan, dan negara dapat menggunakan model yang sudah disediakan - -```php -use Dipantry\Rajaongkir\Models\ROProvince; -use Dipantry\Rajaongkir\Models\ROCity; -use Dipantry\Rajaongkir\Models\ROSubDistrict; -use Dipantry\Rajaongkir\Models\ROCountry; - -ROProvince::all(); -ROCity::all(); -ROSubDistrict::all(); -ROCountry::all(); -``` - -## Biaya Pengiriman Lokal - -```php -use Dipantry\Rajaongkir\Constants\RajaongkirCourier; - -\Rajaongkir::getOngkirCost( - int $origin, int $destination, int $weight, string $courier, - string $originType = 'city', string $destinationType = 'city', - int $length = null, int $width = null, int $height = null, int $diameter = null -) - -// Contoh Starter -\Rajaongkir::getOngkirCost( - $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE -); - -// Contoh Pro -\Rajaongkir::getOngkirCost( - $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE, - $originType = 'subdistrict', $destinationType = 'subdistrict' -); -``` - -## Biaya Pengiriman Internasional - -```php -use Dipantry\Rajaongkir\Constants\RajaongkirCourier; - -\Rajaongkir::getInternationalOngkirCost( - int $origin, int $destination, int $weight, string $courier, - int $length = null, int $width = null, int $height = null, int $diameter = null -) - -// Contoh -\Rajaongkir::getOngkirCost( - $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE, - $length = 100, $width = 100, $height = 100, $diameter = 100 -); -``` - -## Nilai Tukar Rupiah -```php -\Rajaongkir::getCurrency() -``` - -## Melacak Status Pengiriman - -```php -use Dipantry\Rajaongkir\Constants\RajaongkirCourier; - -\Rajaongkir::getWaybill( - string $waybill, string $courier -); - -// Contoh -\Rajaongkir::getWaybill( - $waybill = '123456789', $courier = RajaongkirCourier::JNE -); -``` - -### Rajaongkir Courier -Package ini menyediakan model `RajaongkirCourier` yang berisi data kurir yang terdaftar pada RajaOngkir. Model tersebut mengembalikan kode kurir untuk dikirimkan ke server RajaOngkir.
-*Disarankan untuk menggunakan model untuk mencegah kesalahan penulisan kode kurir. - -### Response -Setiap method yang digunakan (kecuali models) mengembalikan response berupa array atau object bergantung pada isi `result` atau `results` yang diterima. - -### Exception -Setiap kali sistem melakukan request ke API Raja Ongkir, jika terjadi kesalahan, maka sistem akan mengembalikan `APIResponseException` dengan pesan kesalahan yang diberikan oleh Raja Ongkir. Jika request berhasil, maka sistem akan mengembalikan hasil request yang diberikan oleh Raja Ongkir. -`APIResponseException` memiliki 2 informasi yaitu `code` dan `message` - -#### Error Code -- 400 Bad Request
-Kode ini biasanya dikirim dari API Raja Ongkir apabila terjadi kesalahan pada request, baik kesalahan pada parameter, HTTP Method, hingga API Key yang tidak valid. -- 500 Internal Server Error
-Kode ini di generate otomatis oleh package ini ketika terjadi kesalahan pada server atau server tidak mengembalikan response yang valid. +## Petunjuk Penggunaan +### 1. [Laravel/Lumen](https://github.com/dipantry/rajaongkir/docs/HOWTO-Laravel.md) +### 2. [Vanilla PHP](https://github.com/dipantry/rajaongkir/docs/HOWTO-Vanilla.md) --- # Testing diff --git a/docs/HOWTO-Laravel.md b/docs/HOWTO-Laravel.md new file mode 100644 index 0000000..cbed348 --- /dev/null +++ b/docs/HOWTO-Laravel.md @@ -0,0 +1,149 @@ +# Petunjuk Penggunaan RajaOngkir API Wrapper untuk Laravel dan Lumen + +## Integrasi +### Lumen +Dalam file `bootstrap/app.php`, uncomment baris berikut +```php +$app->withFacades(); +$app->withEloquent(); +``` +dan daftarkan service provider dan alias/facade dengan menambahkan kode berikut +```php +$app->register(Dipantry\Rajaongkir\ServiceProvider::class); + +// class_aliases +class_alias(Dipantry\Rajaongkir\Facade::class, 'Rajaongkir'); +``` + +### Laravel +Dalam file `config/app.php`, masukkan baris berikut pada bagian `providers` +```php +'providers' => [ + ... + Dipantry\Rajaongkir\ServiceProvider::class, +], +``` +dan tambahkan baris berikut pada bagian `aliases` +```php +'aliases' => [ + 'Rajaongkir' => Dipantry\Rajaongkir\Facade::class, +], +``` + +## Konfigurasi +```sh +php artisan vendor:publish --provider="Dipantry\Rajaongkir\ServiceProvider" +``` + +File konfigurasi terletak pada `config/rajaongkir.php` +```php +return [ + 'api_key' => 'Masukkan API Key Anda', + 'package' => 'Masukkan Tipe Akun Anda (Basic, Starter, Pro)', + 'table_prefix' => 'Untuk migrasi dan seeding data', + 'timeout' => 'Waktu timeout untuk API RajaOngkir', +] +``` + +### Jalankan migrasi +```sh +php artisan migrate +``` + +### Jalankan seeder untuk mengisi data provinsi, kota, kecamatan, dan negara +```sh +php artisan rajaongkir:seed +``` + +--- +## Data Provinsi, Kota, Kecamatan, dan Negara +Untuk mengambil data provinsi, kota, kecamatan, dan negara dapat menggunakan model yang sudah disediakan + +```php +use Dipantry\Rajaongkir\Models\ROProvince; +use Dipantry\Rajaongkir\Models\ROCity; +use Dipantry\Rajaongkir\Models\ROSubDistrict; +use Dipantry\Rajaongkir\Models\ROCountry; + +ROProvince::all(); +ROCity::all(); +ROSubDistrict::all(); +ROCountry::all(); +``` + +## Biaya Pengiriman Lokal + +```php +use Dipantry\Rajaongkir\Constants\RajaongkirCourier; + +\Rajaongkir::getOngkirCost( + int $origin, int $destination, int $weight, string $courier, + string $originType = 'city', string $destinationType = 'city', + int $length = null, int $width = null, int $height = null, int $diameter = null +) + +// Contoh Starter +\Rajaongkir::getOngkirCost( + $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE +); + +// Contoh Pro +\Rajaongkir::getOngkirCost( + $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE, + $originType = 'subdistrict', $destinationType = 'subdistrict' +); +``` + +## Biaya Pengiriman Internasional + +```php +use Dipantry\Rajaongkir\Constants\RajaongkirCourier; + +\Rajaongkir::getInternationalOngkirCost( + int $origin, int $destination, int $weight, string $courier, + int $length = null, int $width = null, int $height = null, int $diameter = null +) + +// Contoh +\Rajaongkir::getInternationalOngkirCost( + $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE, + $length = 100, $width = 100, $height = 100, $diameter = 100 +); +``` + +## Nilai Tukar Rupiah +```php +\Rajaongkir::getCurrency() +``` + +## Melacak Status Pengiriman + +```php +use Dipantry\Rajaongkir\Constants\RajaongkirCourier; + +\Rajaongkir::getWaybill( + string $waybill, string $courier +); + +// Contoh +\Rajaongkir::getWaybill( + $waybill = '123456789', $courier = RajaongkirCourier::JNE +); +``` + +### Rajaongkir Courier +Package ini menyediakan model `RajaongkirCourier` yang berisi data kurir yang terdaftar pada RajaOngkir. Model tersebut mengembalikan kode kurir untuk dikirimkan ke server RajaOngkir.
+*Disarankan untuk menggunakan model untuk mencegah kesalahan penulisan kode kurir. + +### Response +Setiap method yang digunakan (kecuali models) mengembalikan response berupa array atau object bergantung pada isi `result` atau `results` yang diterima. + +### Exception +Setiap kali sistem melakukan request ke API Raja Ongkir, jika terjadi kesalahan, maka sistem akan mengembalikan `APIResponseException` dengan pesan kesalahan yang diberikan oleh Raja Ongkir. Jika request berhasil, maka sistem akan mengembalikan hasil request yang diberikan oleh Raja Ongkir. +`APIResponseException` memiliki 2 informasi yaitu `code` dan `message` + +#### Error Code +- 400 Bad Request
+ Kode ini biasanya dikirim dari API Raja Ongkir apabila terjadi kesalahan pada request, baik kesalahan pada parameter, HTTP Method, hingga API Key yang tidak valid. +- 500 Internal Server Error
+ Kode ini di generate otomatis oleh package ini ketika terjadi kesalahan pada server atau server tidak mengembalikan response yang valid. \ No newline at end of file diff --git a/docs/HOWTO-Vanilla.md b/docs/HOWTO-Vanilla.md new file mode 100644 index 0000000..8b36595 --- /dev/null +++ b/docs/HOWTO-Vanilla.md @@ -0,0 +1,138 @@ +# Petunjuk Penggunaan RajaOngkir API Wrapper untuk Vanilla PHP + +## Inisialisasi +```php +use Dipantry\Rajaongkir\Rajaongkir; + +$rajaongkir = new Rajaongkir('API_KEY', 'PACKAGE', 'TIMEOUT') +``` +- `API_KEY` adalah API Key yang didapat dari RajaOngkir +- `PACKAGE` adalah tipe akun RajaOngkir (starter, pro) +- `TIMEOUT` adalah waktu timeout (dalam detik) untuk API RajaOngkir, default data 30 detik + +--- +## Daftar Provinsi +```php +$rajaongkir->getProvince( + int $provinceId = 0 +); + +// Contoh +$rajaongkir->getProvince(); +$rajaongkir->getProvince($provinceId = 1); +``` + +## Daftar Kota +```php +$rajaongkir->getCity( + int $cityId = 0, int $provinceId = 0 +); + +// Contoh +$rajaongkir->getCity(); +$rajaongkir->getCity($cityId = 1); +$rajaongkir->getCity($provinceId = 2); +$rajaongkir->getCity($cityId = 1, $provinceId = 2); +``` + +## Daftar Kecamatan +```php +$rajaongkir->getSubDistrict( + int $cityId, int $subDistrictId = 0 +); + +// Contoh +$rajaongkir->getSubDistrict($cityId = 1); +$rajaongkir->getSubDistrict($cityId = 1, $provinceId = 1); +``` + +## Biaya Pengiriman Lokal +```php +$rajaongkir->getOngkirCost( + int $origin, int $destination, int $weight, string $courier, + string $originType = 'city', string $destinationType = 'city', + int $length = null, int $width = null, int $height = null, int $diameter = null +) + +// Contoh Starter +$rajaongkir->getOngkirCost( + $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE +); + +// Contoh Pro +$rajaongkir->getOngkirCost( + $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE, + $originType = 'subdistrict', $destinationType = 'subdistrict' +); +``` + +## Daftar Kota Asal untuk Pengiriman Internasional +```php +$rajaongkir->getInternationalOrigin( + int $cityId = 0, int $provinceId = 0 +); + +// Contoh +$rajaongkir->getInternationalOrigin(); +$rajaongkir->getInternationalOrigin($cityId = 1); +$rajaongkir->getInternationalOrigin($provinceId = 2); +$rajaongkir->getInternationalOrigin($cityId = 1, $provinceId = 2); +``` + +## Daftar Negara Tujuan untuk Pengiriman Internasional +```php +$rajaongkir->getInternationalDestination( + int $countryId = 0 +); + +// Contoh +$rajaongkir->getInternationalDestination(); +$rajaongkir->getInternationalDestination($countryId = 1); +``` + +## Biaya Pengiriman Internasional +```php +$rajaongkir->getInternationalOngkirCost( + int $origin, int $destination, int $weight, string $courier, + int $length = null, int $width = null, int $height = null, int $diameter = null +); + +// Contoh +$rajaongkir->getInternationalOngkirCost( + $origin = 1, $destination = 200, $weight = 300, $courier = RajaongkirCourier::JNE, + $length = 100, $width = 100, $height = 100, $diameter = 100 +); +``` + +## Nilai Tukar Rupiah +```php +$rajaongkir->getCurrency(); +``` + +## Melacak Status Pengiriman +```php +$rajaongkir->getWaybill( + string $waybill, string $courier +); + +// Contoh +$rajaongkir->getWaybill($waybill = '123456789', $courier = RajaongkirCourier::JNE); +``` + +--- +### Rajaongkir Courier +Package ini menyediakan model `RajaongkirCourier` yang berisi data kurir yang terdaftar pada RajaOngkir. Model tersebut mengembalikan kode kurir untuk dikirimkan ke server RajaOngkir.
+*Disarankan untuk menggunakan model untuk mencegah kesalahan penulisan kode kurir. + +### Response +Setiap method yang digunakan (kecuali models) mengembalikan response berupa array atau object bergantung pada isi `result` atau `results` yang diterima. + +### Exception +Setiap kali sistem melakukan request ke API Raja Ongkir, jika terjadi kesalahan, maka sistem akan mengembalikan `APIResponseException` dengan pesan kesalahan yang diberikan oleh Raja Ongkir. Jika request berhasil, maka sistem akan mengembalikan hasil request yang diberikan oleh Raja Ongkir. +`APIResponseException` memiliki 2 informasi yaitu `code` dan `message` + +#### Error Code +- 400 Bad Request
+ Kode ini biasanya dikirim dari API Raja Ongkir apabila terjadi kesalahan pada request, baik kesalahan pada parameter, HTTP Method, hingga API Key yang tidak valid. +- 500 Internal Server Error
+ Kode ini di generate otomatis oleh package ini ketika terjadi kesalahan pada server atau server tidak mengembalikan response yang valid. \ No newline at end of file