This version of the SDK has been deprecated and replaced with the newly reconstructed SDK.
For the latest API features and improved integration, please visit our updated repository at https://github.com/AfterShip/tracking-sdk-php and follow the provided instructions.
aftership-php is a PHP SDK (module) for AfterShip API. Module provides clean and elegant way to access API endpoints.
Contact: [email protected]
Option 1 (recommended): Download and Install Composer. https://getcomposer.org/download/
Run the following command to require AfterShip PHP SDK
composer require aftership/aftership-php-sdk
Use autoloader to import SDK files
require 'vendor/autoload.php';
$key = 'AFTERSHIP API KEY';
$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$last_check_point = new AfterShip\LastCheckPoint($key);
- Download or clone this repository to desired location
- Reference files of this SDK in your project. Absolute path should be prefered.
require('/path/to/repository/src/AfterShipException.php');
require('/path/to/repository/src/BackwardCompatible.php');
require('/path/to/repository/src/Couriers.php');
require('/path/to/repository/src/LastCheckPoint.php');
require('/path/to/repository/src/Notifications.php');
require('/path/to/repository/src/Requestable.php');
require('/path/to/repository/src/Request.php');
require('/path/to/repository/src/Trackings.php');
$key = 'AFTERSHIP API KEY';
$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$notifications = new AfterShip\Notifications($key);
$last_check_point = new AfterShip\LastCheckPoint($key);
Please ensure you have installed the PHP extension CURL, you could run the following command to install it
sudo apt-get install php5-curl
and restart the web server and PHP process.
Use signature headers
require 'vendor/autoload.php';
$api_key = 'AFTERSHIP API KEY';
$api_secret = 'Your api secret'; // if the encryption_method = RSA, the api_secret is PEM private key
$encryption_method = 'AES or RSA';
$encryption_password = 'PEM pass phrase';
$key = ['api_key' => $api_key, 'api_secret' => $api_secret, 'encryption_method' => $encryption_method, 'encryption_password' => $encryption_password]
$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$last_check_point = new AfterShip\LastCheckPoint($key);
Custom CURL opt
require 'vendor/autoload.php';
$api_key = 'AFTERSHIP API KEY';
$curl_opt = [CURLOPT_PROXY => 'http://example.com', 'CURLOPT_PROXYPORT' => '8080']
$couriers = new AfterShip\Couriers($key, null, $curl_opt);
$trackings = new AfterShip\Trackings($key, null, $curl_opt);
$last_check_point = new AfterShip\LastCheckPoint($key, null, $curl_opt);
- Execute the file:
- If you are install manually, please execute 'test/testing.php' on your browser.
- If you are install by composer, please execute 'vendor/aftership/aftership-php-sdk/test/testing.php' on your browser.
- Insert your AfterShip API Key. How to generate AfterShip API Key
- Click the request all button or the button of the represented request.
Simply add a try-catch block
try {
$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $couriers->get();
}catch(\AfterShipException $e) {
echo $e->getMessage();
}
https://www.aftership.com/docs/api/4/couriers/get-couriers
$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $couriers->get();
https://www.aftership.com/docs/api/4/couriers/get-couriers-all
$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $couriers->all();
https://www.aftership.com/docs/api/4/couriers/post-couriers-detect
$courier = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $courier->detect('1234567890Z');
Couriers below need pass additional_fields when create, update, or delete tracking
Courier Slug | Required Fields |
---|---|
abcustom | [tracking_postal_code] |
alliedexpress | [tracking_postal_code] |
amazon-fba-us | [tracking_key] |
apc-overnight-connum | [tracking_postal_code] |
ark-logistics | [tracking_postal_code] |
arrowxl | [tracking_postal_code] |
asm | [tracking_postal_code] |
australia-post-sftp | [tracking_account_number] |
b2ceurope | [tracking_postal_code & tracking_destination_country] |
bestwayparcel | [tracking_key] |
bluestar | [tracking_postal_code] |
bpost | [tracking_postal_code] |
brt-it-sender-ref | [tracking_account_number] |
capital | [tracking_account_number] |
chrobinson | [tracking_key] |
colis-prive | [tracking_postal_code] |
courant-plus | [tracking_account_number] |
deutsch-post | [tracking_ship_date] |
dhl-reference | [tracking_ship_date] |
dpd-fr-reference | [tracking_account_number] |
dx | [tracking_account_number] |
dynamic-logistics | [tracking_account_number] |
endeavour-delivery | [tracking_postal_code] |
eu-fleet-solutions | [tracking_postal_code] |
geodis-espace | [tracking_key] |
gls-netherlands | [tracking_postal_code] |
gls-spain | [tracking_key] |
interlink-express-reference | [tracking_postal_code] |
international-seur-api | [tracking_ship_date] |
mikropakket | [tracking_postal_code] |
mikropakket-be | [tracking_postal_code] |
mondialrelay | [tracking_postal_code] |
nacex | [tracking_account_number] |
nacex-spain | [tracking_postal_code] |
newzealand-couriers | [tracking_account_number] |
packs | [tracking_postal_code] |
palletways | [tracking_postal_code] |
panther-order-number | [tracking_postal_code] |
panther-reference | [tracking_account_number] |
paper-express | [tracking_postal_code] |
parcelpoint | [tracking_key] |
planzer | [tracking_postal_code] |
postnl | [tracking_postal_code] |
postnl-3s | [tracking_destination_country & tracking_postal_code] |
relaiscolis | [tracking_key] |
star-track-courier | [tracking_state] |
tfm | [tracking_postal_code] |
thedeliverygroup | [tracking_postal_code] |
total-express | [tracking_account_number & tracking_key] |
transmission-nl | [tracking_postal_code] |
tuffnells | [tracking_account_number & tracking_postal_code] |
tuffnells-reference | [tracking_postal_code] |
virtransport | [tracking_account_number] |
xdp-uk | [tracking_postal_code] |
xdp-uk-reference | [tracking_postal_code] |
https://www.aftership.com/docs/api/4/trackings/post-trackings
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$tracking_info = [
'slug' => 'dhl',
'title' => 'My Title',
];
$response = $trackings->create('RA123456789US', $tracking_info);
(Will be available soon)
https://www.aftership.com/docs/api/4/trackings/delete-trackings
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->delete('dhl', 'RA123456789US');
https://www.aftership.com/docs/api/4/trackings/delete-trackings
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->delete('abcustom', 'RA123456789US', ['tracking_postal_code' => '90199']);
https://www.aftership.com/docs/api/4/trackings/delete-trackings
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->deleteById('53df4a90868a6df243b6efd8');
https://www.aftership.com/docs/api/4/trackings/get-trackings
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$options = [
'page' => 1,
'limit' => 10
];
$response = $trackings->all($options);
https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('title','order_id'));
https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('fields' => 'title,order_id'));
https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number
In case of china-post
and china-ems
it is possible to customize language of checkpoint messages.
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('lang' => 'en'));
https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->getById('53df4a90868a6df243b6efd8', array('title','order_id'));
https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$params = array(
'smses' => [],
'emails' => [],
'title' => '',
'customer_name' => '',
'order_id' => '',
'order_id_path' => '',
'custom_fields' => []
);
$response = $trackings->update('dhl', 'RA123456789US', $params);
https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$params = array(
'smses' => [],
'emails' => [],
'title' => '',
'customer_name' => '',
'order_id' => '',
'order_id_path' => '',
'custom_fields' => []
);
$response = $trackings->updateById('53df4a90868a6df243b6efd8', $params);
https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrack('dhl','RA123456789US');
https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrack('abcustom','RA123456789US', ['tracking_postal_code' => '90199']);
https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrackById('53df4a90868a6df243b6efd8');
Return the tracking information of the last checkpoint of a single tracking by slug and tracking number
https://www.aftership.com/docs/api/4/last_checkpoint/get-last_checkpoint-slug-tracking_number
$last_check_point = new AfterShip\LastCheckPoint('AFTERSHIP_API_KEY');
$response = $last_check_point->get('dhl','RA123456789US');
https://www.aftership.com/docs/api/4/last_checkpoint/get-last_checkpoint-slug-tracking_number
$last_check_point = new AfterShip\LastCheckPoint('AFTERSHIP_API_KEY');
$response = $last_check_point->getById('53df4a90868a6df243b6efd8');
https://www.aftership.com/docs/api/4/notifications/post-add-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->create('ups', '1ZV90R483A33906706', [
'emails' => ['[email protected]']
])
https://www.aftership.com/docs/api/4/notifications/post-add-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->create('abcustom', '1ZV90R483A33906706', [
'emails' => ['[email protected]']
], ['tracking_postal_code' => '90199'])
https://www.aftership.com/docs/api/4/notifications/post-add-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->createById('53df4a90868a6df243b6efd8');
https://www.aftership.com/docs/api/4/notifications/post-remove-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->delete('ups', '1ZV90R483A33906706', [
'emails' => ['[email protected]']
]);
https://www.aftership.com/docs/api/4/notifications/post-remove-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->delete('abcustom', '1ZV90R483A33906706', [
'emails' => ['[email protected]']
], ['tracking_postal_code' => '90199']);
https://www.aftership.com/docs/api/4/notifications/post-remove-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->deleteById('53df4d66868a6df243b6f882'));
https://www.aftership.com/docs/api/4/notifications/get-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->get('dhl', '2254095771'));
https://www.aftership.com/docs/api/4/notifications/get-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->getById('53df4a90868a6df243b6efd8', ['fields' => 'customer_name']);
https://www.aftership.com/docs/api/4/webhook You could find the example code at here
These amazing people have contributed code to this project:
- Teddy Chan - view contributions
- Sunny Chow - view contributions
- Abishek R Srikaanth - view contributions
- Luis Cordova - view contributions
- Russell Davies - view contributions
- akovalyov - view contributions
- Robert Basic - view contributions
- Marek Narozniak - view contributions