afiqiqmal/parcel-track

Api Parcel Tracking API

Installs: 4 103

Dependents: 0

Suggesters: 0

Security: 0

Stars: 16

Watchers: 2

Forks: 9

Open Issues: 2

Type:project

1.13.0 2019-10-01 08:01 UTC

README

Build Status Coverage Packagist Packagist Donate

Simple Parcel Tracker for Local Parcel Courier. Basically it just crawl the courier website or existing API. Need time to time to monitor web/api changes before failure happen.


BTW, Currently available (Successfully Scraped)

  1. Post Laju
  2. GDEX
  3. ABX Express
  4. DHL Express
  5. DHL E-Commerce
  6. SkyNet Express
  7. CityLink Express
  8. FedEx Express
  9. LEL Express
  10. KTM Distribution Sdn Bhd
  11. UPS

Tested in PHP 7.1 Only

Installation

Step 1: Install from composer

composer require afiqiqmal/parcel-track

Alternatively, you can specify as a dependency in your project's existing composer.json file

{
   "require": {
      "afiqiqmal/parcel-tracker": "^1.0"
   }
}

Usage

After installing, you need to require Composer's autoloader and add your code.

require_once __DIR__ .'/../vendor/autoload.php';

Sample for Post Laju

$data = parcel_track()
	->postLaju()
	->setTrackingNumber("ER157080065MY")
	->fetch();

Sample for GDex

$data = parcel_track()
	->gdex()
	->setTrackingNumber("4941410530")
	->fetch();

Sample for Abx Express

$data = parcel_track()
	->abxExpress()
	->setTrackingNumber("EZP843055940197")
	->fetch();

Sample for DHL Express

$data = parcel_track()
	->dhlExpress()
	->setTrackingNumber("5176011131")
	->fetch();

Sample for Check Which Carrier Tracking Number belongs to

$data = parcel_track()
	->setTrackingNumber("5176011131")
	->checkCourier();

Method

Result

Checking Result

For checking which carrier response like below:

{
    "code": 200,
    "error": false,
    "possible_carrier": [
        "ABX Express Sdn Bhd",
        "City Link Express"
    ],
    "generated_at": "2018-05-14 08:53:35",
    "footer": {
        "developer": {
            "name": "Hafiq",
            "homepage": "https://github.com/afiqiqmal"
        }
    }
}
Tracker Result

You should getting data tracker similarly like below:

{
    "code": 200,
    "error": false,
    "tracker": {
        "tracking_number": "4941410530",
        "provider": "gdex",
        "delivered": true,
        "checkpoints": [
            {
                "date": "2016-11-30 17:41:10",
                "timestamp": 1480527670,
                "process": "Outbound from KBR station",
                "type": "item_received",
                "event": "Kota Bharu"
            },
            {
                "date": "2016-11-30 17:47:00",
                "timestamp": 1480528020,
                "process": "Picked up by courier",
                "type": "dispatch",
                "event": "Kota Bharu"
            },
            {
                "date": "2016-12-01 03:25:11",
                "timestamp": 1480562711,
                "process": "In transit",
                "type": "facility_process",
                "event": "Petaling Jaya"
            },
            {
                "date": "2016-12-01 10:00:16",
                "timestamp": 1480586416,
                "process": "Inbound to JHB station",
                "type": "facility_process",
                "event": "Johor Bharu"
            },
            {
                "date": "2016-12-02 10:10:00",
                "timestamp": 1480673400,
                "process": "Delivered",
                "type": "delivered",
                "event": "Sungai Tiram"
            }
        ]
    },
    "generated_at": "2018-05-03 02:07:20",
    "footer": {
        "source": "GD Express Sdn Bhd",
        "developer": {
            "name": "Hafiq",
            "homepage": "https://github.com/afiqiqmal"
        }
    }
}

Todo

  • Struggling for other Parcel Data
  • Keep up to date if any parcel data changes

Issue

  • If Issue happen like the api always return empty [] after cross check with real site, just let me know =)

Pftt.. I just don't know why, the Travis CI is failed. It because of `gnutls_handshake() failed`. In my local env, all Test Unit Passed . I disabled it first because always failing on travis-ci.org =)
## ChangeLog - See changelog.md

License

Licensed under the MIT license

Donate