2017 © Pedro Peláez
 

library smsa-webservice

smsaexpress.com tracking web service (soap api)

image

alhoqbani/smsa-webservice

smsaexpress.com tracking web service (soap api)

  • Tuesday, May 1, 2018
  • by alhoqbani
  • Repository
  • 1 Watchers
  • 1 Stars
  • 52 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 11 % Grown

The README.md

smsa-webservice

![Latest Version on Packagist][ico-version] Software License ![Build Status][ico-travis] Coverage Status ![Quality Score][ico-code-quality] Total Downloads, (*1)

SMSAExpress tracking web service., (*2)

Under development. Don't use for production.

This library provides fluent and intuitive mechanism to interact with SMSAExpress eCommerce Web API: SMSAwebService., (*3)

Through this API you can cretate new shipments, track shipments, and cancel shipments programmatically., (*4)

The API follows SOAP protocol specifications, and it's not straight forward to follow or use with PHP., (*5)

This is unoffocial libary and has no affiliation with SMSAExpress. Usage of SMSAwebService is subject to its terms and conditions., (*6)

Credentials:

Before using the API you need to obtain a passKey from SMSAExpress., (*7)

Install

Via Composer, (*8)

``` bash $ composer require alhoqbani/smsa-webservice, (*9)


## Usage ``` php <?php use \Alhoqbani\SmsaWebService\Smsa; $smsa = new Smsa($passKey);

Get Status:

Get current Status of Shipment by Air waybill Number, (*10)

$result = $smsa->status('290019315792');
var_dump($smsa->data);

Get Tracking

Get Tracking of Shipment by Air waybill Number, (*11)

$track = $smsa->track('290019315792');

if (track->success) {
    var_dump($track->data);
} else {
    var_dump($track->error);
}

Get AWB Print in PDF

Get AWB Print in PDF, (*12)

try {
    $pdf = $smsa->awbPDF('290019315810');
    header('Content-type: application/octet-stream');
    header('Content-disposition: attachment;filename=awb.pdf');
    echo $pdf->data; die();

} catch (\Alhoqbani\SmsaWebService\Exceptions\RequestError $e) {
    echo $e->getMessage();
    var_dump($e->smsaResponse)
}

Create new shipment:

Create Shipment and get SMSA AWB Number, (*13)

You create an object of Shipment and pass it to $smsa->createShipment() The shipment requeires an instance of Customer and optionally a Shipper object., (*14)

<?php

use \Alhoqbani\SmsaWebService\Smsa;
use \Alhoqbani\SmsaWebService\Models\Shipment;
use \Alhoqbani\SmsaWebService\Models\Customer;
use \Alhoqbani\SmsaWebService\Models\Shipper;

$smsa = new Smsa($passKey);
// Create a customer
$customer = new Customer(
    'Customer Name', //customer name
    '0500000000', // mobile number. must be > 9 digits
    '10 King Fahad Road', // street address
    'Jeddah' // city
);

$shipment = new Shipment(
    time(), // Refrence number
    $customer, // Customer object
    Shipment::TYPE_DLV // Shipment type.
      );

$awb = $smsa->createShipment($shipment);

echo $awb->data; // 290019315792

To add additional fields, (*15)

$customer
    ->setEmail('customer@example.com')
    ->setAddressLine2('Building 10, Apartment 1')
    ->setPOBox('12345')
    ->setZipCode('11411')
    ->setTel1('0110000000')
    ->setTel2('0120000000');

// To add shipper details to the shipment
$shipper = new Shipper(
    'Shipper Name (LLC)', // shipper name
    'Shipper Employee', // contact name
    '1 Main Road', // address line 1
    'Riyadh', // city
    'Saudi Arabia', // country
    '0110000000' // phone
);

$shipment->setShipper($shipper);

Cancel shipment:

Cancel a Shipment by Air waybill Number, (*16)

$result = $smsa->cancel('AWB NUMBER')
var_dump($result->jsonSerialize())

Get Cities

Get List of Cities for Retails list, (*17)

$smsa->shouldUseExceptions = false; // Disable throwing exceptions by the library

$cities = $smsa->cities();

if( $cities->success) {
    var_dump($cities->data)
} else {
    var_dump($cities->error)
}

Get Retails

Get Retails list by each city, (*18)

$retails = $smsa->retails();
var_dump($retails); 
// or by city (route code):
$retails =  $smsa->retailsIn('TUU');

Example App

You can check this repository for an example app built with Laravel., (*19)

Change log

Please see CHANGELOG for more information on what has changed recently., (*20)

Testing

Not yet :(, (*21)

TODO

  • [ ] Testing!!
  • [ ] Complete remaining operations.

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details., (*22)

Credits

License

The MIT License (MIT). Please see License File for more information., (*23)

The Versions

01/05 2018

dev-dev

dev-dev https://github.com/alhoqbani/smsa-webservice

smsaexpress.com tracking web service (soap api)

  Sources   Download

MIT

The Requires

 

The Development Requires

alhoqbani smsa-webservice

01/05 2018

dev-master

9999999-dev https://github.com/alhoqbani/smsa-webservice

smsaexpress.com tracking web service (soap api)

  Sources   Download

MIT

The Requires

 

The Development Requires

alhoqbani smsa-webservice

01/05 2018

0.0.2

0.0.2.0 https://github.com/alhoqbani/smsa-webservice

smsaexpress.com tracking web service (soap api)

  Sources   Download

MIT

The Requires

 

The Development Requires

alhoqbani smsa-webservice

13/04 2018

0.0.1

0.0.1.0 https://github.com/alhoqbani/smsa-webservice

smsaexpress.com tracking web service (soap api)

  Sources   Download

MIT

The Requires

 

The Development Requires

alhoqbani smsa-webservice