Shipment Tracking Foundation
, (*1)
A flexible and shipment tracking library for multi carriers., (*2)
Basic Usage
$tracker = new Slince\ShipmentTracking\DHLECommerce\DHLECommerceTracker(CLIENT_ID, PASSWORD);
try {
$shipment = $tracker->track('CNAQV100168101');
if ($shipment->isDelivered()) {
echo "Delivered";
}
echo $shipment->getOrigin();
echo $shipment->getDestination();
print_r($shipment->getEvents()); //print the shipment events
} catch (Slince\ShipmentTracking\Exception\TrackException $exception) {
exit('Track error: ' . $exception->getMessage());
}
How to create your own tracker?
All shipment trackers must implement Slince\ShipmentTracking\Foundation\TrackerInterface
, and will usually extend Slince\ShipmentTracking\Foundation\HttpAwareTracker
for basic functionality if the carrier's api is based on
HTTP, (*3)
namespace My\Tracker;
use Slince\ShipmentTracking\Foundation\HttpAwareTracker;
use Slince\ShipmentTracking\Foundation\Shipment;
class MyTracker extends HttpAwareTracker
{
/**
* {@inheritdoc}
*/
public function track($trackingNumber)
{
$response = $this->getHttpClient()->get('/../endpoint', [
'query' => [
'tracking_number' => $trackingNumber
]
]);
return static::buildShipment($response):
}
/**
* @return Shipment
*/
public function buildShipment($response)
{
//....
}
}
$tracker = new MyTracker();
$shipment = $tracker->track('foo-tracking-number');
print_r($shipment):
You can extend all existing classes if you need., (*4)
Shipment trackers:
The following carriers are available:, (*5)
License
The MIT license. See MIT, (*6)