permadiwibisono / laravel-rajaongkir by permadiwibisono

A wrapper for Raja Ongkir API
182
0
1
Package Data
Maintainer Username: permadiwibisono
Maintainer Contact: mbapewe@gmail.com (Permadi Wibisono)
Package Create Date: 2017-09-25
Package Last Update: 2018-03-18
Language: PHP
License: MIT
Last Refreshed: 2024-04-26 03:17:53
Package Statistics
Total Downloads: 182
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 0
Total Watchers: 1
Total Forks: 1
Total Open Issues: 0

laravel-rajaongkir

A wrapper for Raja Ongkir API built for laravel and lumen (only available for Starter Account) Basic and Pro Accounts available soon

Installations

composer require pewe/laravel-rajaongkir

Configuration

Edit your .env file. Place your key, you can get your key in Raja Ongkir page

RAJAONGKIR_API_KEY=12345667

For Lumen

Edit your boostrap/app.php

Enable Facades

$app->withFacades();

Enable class_alias (Optional)

class_alias('Pewe\RajaOngkir\Facades\Province', 'Province');
class_alias('Pewe\RajaOngkir\Facades\City', 'City');
class_alias('Pewe\RajaOngkir\Facades\Cost', 'Cost');

Register RajaOngkirServiceProvider (Optional)

$app->register(Pewe\RajaOngkir\Providers\RajaOngkirServiceProvider::class);

Copy config file rajaongkir.php (vendor/pewe/laravel-rajaongkir/src/config/rajaongkir.php) to your folder config. Or if You're already install package laravelista/lumen-vendor-publish. You must register RajaOngkirServiceProvider before, then use this command:

php artisan vendor:publish --tag=laravel-rajaongkir-config

Configure your config

$app->configure('rajaongkir');

Usage

Import

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
/*...*/


use City; //if using class_alias
//use Pewe\RajaOngkir\Facades\City; //if not using class_alias

class ExampleController extends Controller
{
  /*...*/
  public function getCities(){
    dd(City::all());
  }
}

City

Get All City

City::all();

Get City by Id

City::find($id);

| Parameters | Type | Description | Default | Example | | ----------------- |:--------------:| ------------------------ | ------------------------- | ---------:| | $id | Integer | City ID | Required | 147 |

Province

Get All Province

Province::all();

Get Province by Id

Province::find($id);

| Parameters | Type | Description | Default | Example | | ----------------- |:--------------:| ------------------------ | ------------------------- | ---------:| | $id | Integer | Province ID | Required | 1 |

Available Couriers & Cost

Get Available Couriers

Cost::couriers($destination,$weight,$origin);

| Parameters | Type | Description | Default | Example | | ----------------- |:--------------:| ------------------------ | ------------------------- | ---------:| | $destination | Integer | City ID of Destination | Required | 147 | | $weight | Integer | Weight of package | 1000 | 1000 | | $origin | Integer | City ID of Origin | config(rajaongkir.origin) | 146 |

Get Cost

Cost::calculate($destination,$courier,$weight,$origin,$service);

| Parameters | Type | Description | Default | Example | | ----------------- |:--------------:| ------------------------ | ------------------------- | ---------:| | $destination | Integer | City ID of Destination | Required | 147 | | $courier | String | Courier code | Required | jne | | $weight | Integer | Weight of package | 1000 | 1000 | | $origin | Integer | City ID of Origin | config(rajaongkir.origin) | 146 | | $service | String | Service name | Nullable | reg |

If your key submit is invalid InvalidTokenException will thrown. And if Bad Request from their server, RajaOngkirRequestException will thrown.

Problem

  • Call undefined function Pewe\RajaOngkir\Providers\config_path()

    To resolve this:

    Create a file called helpers.php in the app/ directory. Paste the code inside it.

    <?php
     if ( ! function_exists('config_path'))
     {
       /**
        * Get the configuration path.
        *
        * @param  string $path
        * @return string
        */
        function config_path($path = '')
        {
           return app()->basePath() . '/config' . ($path ? '/' . $path : $path);
        }
      }
    

    Go to composer.json and add files to autoload so that it looks like this:

     ...
     "autoload": {
          "psr-4": {
          "App\\": "app/"
        },
        "files": [
           "app/helpers.php"
        ]
      },
     ...
    

    Run composer dump-autoload to load the newly created helpers file. Or just following this gist.

Contribute

Show your :heart: and support by giving a :star2: or fork. Any suggestions, issues and pull request are welcome :beers:!