roketin / connect
Roketin Engine API Client
Requires
- php: ^5.5.9 || ^7.0
- guzzlehttp/guzzle: ~5.3|~6.0
- illuminate/http: 5.1.* || 5.*
- illuminate/support: 5.1.* || 5.*
- intervention/image: ^2.3
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
- symfony/var-dumper: 2.7.*@dev
README
RClient is standard client application to Roketin API to accelerate connecting and integrating basic feature of Roketin Engine API to client's website.
API Documentation
Documentation for the Roketin API can be found on the Documentation.
Installation
Laravel 5
"require": { "laravel/framework": "5.0.*", "roketin/connect": "v0.0.9" }
Next, run the Composer update command from the Terminal:
composer update
or
composer update "roketin/connect"
CONFIGURATION
- Open config/app.php and addd this line to your Service Providers Array
Roketin\Providers\RoketinServiceProvider::class,
- Open config/app.php and addd this line to your Aliases
'Roketin' => Roketin\Facades\RoketinFacade::class
-
Publish the config using the following command:
$ php artisan vendor:publish --provider="Roketin\Providers\RoketinServiceProvider"
-
Create an .env file based on .env.example file and change the value based on client credentials
ROKETIN_API=http://dev.roketin.com/api/v2.2/
ROKETIN_PUBLIC=http://dev.roketin.com/
ROKETIN_TOKEN=aBCd1234
ROKETIN_USERNAME=roketin
ROKETIN_RX=4241639264053293060625251241576152575759
HOW TO USE
- Basic Usage
- Conditions
- Sorting
- Grouping
- Pagination
- Tags
- Archives
- Shipping
- Sales Order
- Subscribe
- Message
- B2b
- Vouchers
- Users
- Others
Basic
You can call a Roketin Object by using: Roketin::model()->get()
use Roketin; $menus = Roketin::menus()->get(); $posts = Roketin::posts()->get(); $products = Roketin::products()->get(); $variants = Roketin::variants()->get(); etc..
Fethcing single object with id/slug/etc:
/* * Same as fetching object, but in singular form (without 's') * the second argument can be id or slug or etc .. * this is dynamic function call to Roketin Engine API */ $home = Roketin::menu('home')->get(); $post = Roketin::post('latest-update')->get();
Conditions
Fetching object with simple where conditions:
/** * @param $field * @param $operation * @param $value */ $posts = Roketin::posts()->where('title','like','vacation')->get(); //NOTE : //It doesn't need to add % if using 'like' operator
Fetching object with simple orWhere conditions:
/** * @param $field * @param $operation * @param $value */ $posts = Roketin::posts() ->where('title','like','vacation') ->orWhere('title','like','holiday') ->get(); //NOTE : //It doesn't need to add % if using 'like' operator
Advance where orWhere grouping conditions:
/** * @param $field * @param $operation * @param $value */ $posts = Roketin::posts() ->where('title','like','vacation') ->orWhere('title','like','holiday') ->where('date','>=','2016-04-10') ->where('date','<=','2016-04-18') ->get(); //NOTE : //It will result query grouping // (title like vacation or title like holiday) // AND // (date >= 2016-04-10 and date <= 2016-04-18 )
Sorting
Fetch a Roketin Object API by sorting on it's field:
/* * sorting object before fetch * * @param $field * @param $direction (optional) default is ASC * / $posts = Roketin::posts()->sortBy('created_at')->get(); $posts = Roketin::posts()->sortBy('created_at','DESC')->get();
Grouping
Fetch a Roketin Object API by grouping on it's field:
/* * grouping object before fetch * * @param $field * / $posts = Roketin::posts()->groupBy('created_at')->get(); $posts = Roketin::posts()->groupBy('id')->groupBy('created_at')->get();
Pagination
Paginating fetch object
/* * paginate object before fetch * * @param $size default value is 10 * @param $page (optional) * / $posts = Roketin::posts()->paginate(10)->get(); $posts = Roketin::posts()->paginate(10,2)->get();
Tags
Get all tags post:
$tags = Roketin::tags()->get()
Get all posts by tag:
/* * @param $tag separated by ';' * @param $is_blog (optional) default value is false */ $posts = Roketin::tags('tag_1;tag_2',false)->get()
Archives
Get archives by year:
/* * @param $tags (optional) default value is '', multiple (; as separator) * @param $year (optional) default value is '2016' */ $archive = Roketin::archives('tags;tags2;another tag','2016')->get()
Shipping
Get all available countries:
$countries = Roketin::shipping()->countries()
Get all available provinces (currently available in Indonesia only):
$province = Roketin::shipping()->province()
Get all available city (currently available in Indonesia only):
/* * @param $provinceid */ $cities = Roketin::shipping()->province(9)->cities()
Calculate shipping costs:
/* * @param $destination = city id * @param $courier = JNE/TIKI/POS * @param $weight = item weight in KG (optional) default value 1 * @param $origin = city id */ $costs = Roketin::shipping()->costs(23, 'JNE')
Order
Create sales order:
/* * @param array $generalData * @param array $customerData * @param array $products * @param $bcc(optional), default = null */ $generalData = [ "notes" => "some string here", "is_email_only" => true, //default value false (for customer guest) "ship_cost" => 10000, 'ship_provider' => "JNE" ]; $customerData = [ "first_name" => "Roketin", "last_name" => "User", "phone" => "+628123456789", "email" => "user@roketin.com", ]; $products = [ [ "id" => "2623", "qty" => "1", "sku" => "ADVHEL001", "price_type" => "retail_price", ], ]; $order = Roketin::order()->create($generalData, $customerData, $products, 'test@mailinator.com')
Note:
- For detailed attribute, see sales order API documentation HERE
Confirm payment order:
/* * @param $invoice_number * @param $payment_type * @param $total * @param $customer_name * @param $customer_bank * @param $transaction_number * @param Image $image * @param $bank_account(optional), default = null * @param $paid_date(optional), default = null * @param $bcc(optional), default = null */ //you can create image for bank transfer that //showing transfer is success //by using Image::make() $img = Image::make(Input::file('image')) $payment = Roketin::order() ->confirm('SI16041300058', 'TRANSFER', '150000', 'Customer Roketin', 'Bank BCA', 'TRX-123', $img, '0853909090', '2016-04-10', 'bcc@mailinator.com')
Void an Sales Order and it's invoice:
/* * @param $invoice_number */ $order = Roketin::order()->void('ASD02262016')
Subscribe
Submit a subscription email:
/* * @param $email * @param $bcc(optional), default = null */ $subscribe = Roketin::subscribe('somebody@anythin.com', 'bcc@mailinator.com')
Message
Send a message to Roketin Engine Inbox:
/* * @param $sender_name * @param $sender_email * @param $sender_phone * @param $message_title * @param $message_body * @param $bcc(optional), default = null */ $msg = Roketin::message() ->send( 'test', 'test@mailinator.com', '123123', 'test mesage', 'hai', 'bcc@mailinator.com')
Message
Send a message to Roketin Engine Inbox:
/* * @param $sender_name * @param $sender_email * @param $sender_phone * @param $message_title * @param $message_body * @param $bcc(optional), default = null */ $msg = Roketin::message() ->send( 'test', 'test@mailinator.com', '123123', 'test mesage', 'hai', 'bcc@mailinator.com')
Vouchers
Check validity of a voucher:
/* * @param $code * @param $voucher_type (optional), default = null * voucher type can be giftvoucher (voucher in * exchange to money nominal) or * other (voucher to exchange to free product) * default is voucher_type is other */ $check = Roketin::voucher()->check('AS123D')
invalidate a voucher (use voucher):
/* * @param $voucher_code * @param $voucher_type (optional) default is other * @param $used_by (optional) default is logged in user */ $check = Roketin::voucher()->invalidate('AS123D')
Users
Register new user:
/* * @param $first_name * @param $last_name * @param $email * @param $phone * @param $password * @param $password_confirmation * @param $bcc(optional), default = null * @return user object */ $user = Roketin::user()->register('first_name', 'last_name', 'email', 'phone', 'password', 'password_confirmation', 'bcc');
User activation:
/* * @param $token * @return true if success activation * @return error object if present */ $activation = Roketin::user()->activate('token');
Resend activation code to email:
/* * @param $email * @return true if success activation * @return error object if present */ $resend = Roketin::user()->resendActivation('someone@somthing.com');
Forgot password (generate and send token to user email):
/* * @param $email * @param $bcc(optional), default = null * @return true if success activation * @return error object if present */ Roketin::user()->forgot('someone@somthing.com', 'bcc@mailinator.com');
Reset password:
/* * @param $token * @param $password * @param $password_confirmation * @param $bcc(optional), default = null * @return true if success activation * @return error object if present */ Roketin::user()->resetPassword('token','asdf','asdf', 'bcc@mailinator.com');
Login:
/* * @param $email * @param $password * @param $type (optional) default = user, available = vendor * @return true if success activation * @return error object if present */ Roketin::auth()->login('somebody@somthing.com','asdf');
Current User:
/* * @return user object */ Roketin::auth()->user();
Update user data:
/* * @return user object */ Roketin::user()->update(['first_name' => 'John']);
Note:
- For detailed attribute, see sales order API documentation HERE
Get transaction history data:
/* * @return user object */ Roketin::user()->transactionHistory()->get();
Note:
- you can also use where(), orWhere(), etc query with this method
Logout:
/* * @return boolean */ Roketin::auth()->logout();
Others
Get Product Variants By Category:
/* * @param $category_name * @return variants object */ Roketin::variantsByCategory($category_name)->get();