Simple Trial-and-Error library for testing which shipping provider a tracking number belongs to
PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/ShippingServiceProvidersCheck
LICENSE
README.md
composer.json

README.md

shipping-service-providers-check

This is a PHP package for finding out, which shipping service provider a tracking ID belongs to. Since it's used for Germany the service providers available here are the main focus. Contributions are welcome!

It's theoretically possible that a tracking ID is valid at multiple providers. That's why you get an array back that could contain multiple trues.

Blog Article (German): https://repat.de/2016/07/herausfinden-zu-welchem-versanddienstleister-eine-tracking-id-gehoert/

Supported Providers

How it works

  • Scraping the website, try to enter the tracking ID and see what happens OR
  • Checking the format of the tracking ID with regular expressions

Installation

Available via composer on Packagist:

composer require repat/shipping-service-providers-check

Usage

Check out src/ShippingServiceProvidersCheck/default_providers.php for configuration.

use repat\ShippingServiceProvidersCheck\Check;

$check = new Check($trackingId);

// checks all providers, returns an array like 
// [
//   "dhl" => true,
//   "gls" => false,
//    ...
// ]
$check->checkAll();

// replacing providers or with your own providers, see below
$check->checkAll($extraProviders);

// gets all available providers
$check->getProviders();

Replacing providers and adding your own providers

If you want to add your own provider, you can provide checkAll() with an array like this. Any contributions are most welcome.

// online check
"SPO" => [
        'base_url' => "http://example.com/tracking_id=",
        'search_string' => 'This is the string that will be looked for',
        'filter' => 'HTML tag to look for',
     ],
// format check
"SPF" => [
        'regex' => '/[foo]{1}/'
     ],
// ...

It's a positive lookup, so you will get true if search_string was found in the HTML tag filter. For information on filters, see Goutte.

For documentation on regular expressions in PHP see preg_match.

License

Changelog

  • 0.2 added regex for tracking ID recognition and amazon logistics as a provider
  • 0.1.1 adding your own providers
  • 0.1 fixed to working release (dhl, hermes, gls, ups)
  • 0.0.1 initial release for testing

Contact

Flattr this git repo