Roketin Client Template
, (*1)
RClient is standard client application to Roketin API to accelerate connecting and integrating basic feature of Roketin Engine API to client's website., (*2)
API Documentation
Documentation for the Roketin API can be found on the Documentation., (*3)
Installation
Laravel 5
"require": {
"laravel/framework": "5.0.*",
"roketin/connect": "v0.0.9"
}
Next, run the Composer update command from the Terminal:, (*4)
composer update
or
composer update "roketin/connect"
CONFIGURATION
-
Open config/app.php and addd this line to your Service Providers Array, (*5)
Roketin\Providers\RoketinServiceProvider::class,
-
Open config/app.php and addd this line to your Aliases, (*6)
'Roketin' => Roketin\Facades\RoketinFacade::class
```
3. Publish the config using the following command:
$ php artisan vendor:publish --provider="Roketin\Providers\RoketinServiceProvider"
4. 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](#basic)
* [Conditions](#conditions)
* [Sorting](#sorting)
* [Grouping](#grouping)
* [Pagination](#pagination)
* [Tags](#tags)
* [Archives](#archives)
* [Shipping](#shipping)
* [Sales Order](#order)
* [Subscribe](#subscribe)
* [Message](#message)
* [B2b](#join)
* [Vouchers](#vouchers)
* [Users](#users)
* [Others](#others)
## Basic
You can call a Roketin Object by using: **Roketin::model()->get()**
```php
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:, (*7)
/*
* 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:, (*8)
/**
* @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:, (*9)
/**
* @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:, (*10)
/**
* @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:, (*11)
/*
* 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:, (*12)
/*
* grouping object before fetch
*
* @param $field
* /
$posts = Roketin::posts()->groupBy('created_at')->get();
$posts = Roketin::posts()->groupBy('id')->groupBy('created_at')->get();
Paginating fetch object, (*13)
/*
* 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();
Get all tags post:, (*14)
$tags = Roketin::tags()->get()
Get all posts by tag:, (*15)
/*
* @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:, (*16)
/*
* @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:, (*17)
$countries = Roketin::shipping()->countries()
Get all available provinces (currently available in Indonesia only):, (*18)
$province = Roketin::shipping()->province()
Get all available city (currently available in Indonesia only):, (*19)
/*
* @param $provinceid
*/
$cities = Roketin::shipping()->province(9)->cities()
Calculate shipping costs:, (*20)
/*
* @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:, (*21)
/*
* @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, (*22)
Confirm payment order:, (*23)
/*
* @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:, (*24)
/*
* @param $invoice_number
*/
$order = Roketin::order()->void('ASD02262016')
Subscribe
Submit a subscription email:, (*25)
/*
* @param $email
* @param $bcc(optional), default = null
*/
$subscribe = Roketin::subscribe('somebody@anythin.com', 'bcc@mailinator.com')
Message
Send a message to Roketin Engine Inbox:, (*26)
/*
* @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:, (*27)
/*
* @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:, (*28)
/*
* @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):, (*29)
/*
* @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:, (*30)
/*
* @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:, (*31)
/*
* @param $token
* @return true if success activation
* @return error object if present
*/
$activation = Roketin::user()->activate('token');
Resend activation code to email:, (*32)
/*
* @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):, (*33)
/*
* @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:, (*34)
/*
* @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:, (*35)
/*
* @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:, (*36)
/*
* @return user object
*/
Roketin::auth()->user();
Update user data:, (*37)
/*
* @return user object
*/
Roketin::user()->update(['first_name' => 'John']);
Note:
- For detailed attribute, see sales order API documentation HERE, (*38)
Get transaction history data:, (*39)
/*
* @return user object
*/
Roketin::user()->transactionHistory()->get();
Note:
- you can also use where(), orWhere(), etc query with this method, (*40)
Logout:, (*41)
/*
* @return boolean
*/
Roketin::auth()->logout();
Others
Get Product Variants By Category:, (*42)
/*
* @param $category_name
* @return variants object
*/
Roketin::variantsByCategory($category_name)->get();