This library is aimed at wrapping all the UPS API into a simple to use PHP Library. It currently covers the Quantum View®, Tracking API, Shipping API, Rating API and Time in Transit API. Feel free to contribute.
- Requirements
- Installation
- QuantumView Class
- Tracking Class
- Rate Class
- TimeInTransit Class
- Shipping Class
This library uses PHP 5.3+.
To use the UPS API, you have to request an access key from UPS. For every request, you will have to provide the Access Key, your UPS User ID and Password.
It is recommended that you install the PHP UPS API Wrapper library through composer. To do so,
add the following lines to your composer.json file.
{
"require": {
"gabrielbull/ups-api": "dev-master"
}
}The QuantumView Class allow you to request a Quantum View Data subscription.
$quantumView = new Ups\QuantumView($accessKey, $userId, $password);
try {
// Get the subscription for all events for the last hour
$events = $quantumView->getSubscription(null, (time() - 3600));
foreach($events as $event) {
// Your code here
echo $event->Type;
}
} catch (Exception $e) {
var_dump($e);
}QuantumView parameters are:
nameName of subscription requested by user. If null, all events will be returned.beginDateTimeBeginning date time for the retrieval criteria of the subscriptions. Format: Y-m-d H:i:s or Unix timestamp.endDateTimeEnding date time for the retrieval criteria of the subscriptions. Format: Y-m-d H:i:s or Unix timestamp.fileNameFile name of specific subscription requested by user.bookmarkBookmarks the file for next retrieval.
If you provide a beginDateTime, but no endDateTime, the endDateTime will default to the current date time.
To use the fileName parameter, do not provide a beginDateTime.
The Tracking Class allow you to track a shipment using the UPS Tracking API.
$tracking = new Ups\Tracking($accessKey, $userId, $password);
try {
$shipment = $tracking->track('TRACKING NUMBER');
foreach($shipment->Package->Activity as $activity) {
var_dump($activity);
}
} catch (Exception $e) {
var_dump($e);
}Tracking parameters are:
trackingNumberThe package’s tracking number.requestOptionOptional processing. For Mail Innovations the only valid options are Last Activity and All activity.
The Rate Class allow you to get shipment rates using the UPS Rate API.
$rate = new Ups\Rate(
$accessKey,
$userId,
$password
);
try {
$shipment = new Shipment();
$shipperAddress = $shipment->getShipper()->getAddress();
$shipperAddress->setPostalCode('99205');
$shipTo = $shipment->getShipTo();
$shipTo->setCompanyName('Test Ship To');
$shipToAddress = $shipTo->getAddress();
$shipToAddress->setPostalCode('99205');
$package = new Package();
$package->getPackagingType()->setCode(PackagingType::PT_PACKAGE);
$package->getPackageWeight()->setWeight(10);
$shipment->addPackage($package);
var_dump($rate->getRate($shipment));
} catch (Exception $e) {
var_dump($e);
}rateRequestMandatory. rateRequest Object with shipment details
This Rate class is not finished yet! Parameter should be added when it will be finished.
The TimeInTransit Class allow you to get all transit times using the UPS TimeInTransit API.
$timeInTransit = new Ups\TimeInTransit($access, $userid, $passwd);
try {
$times = $timeInTransit->getTimeInTransit($timeInTransitequest);
foreach($times->ServiceSummary as $serviceSummary) {
var_dump($serviceSummary);
}
} catch (Exception $e) {
var_dump($e);
}timeInTransitRequestMandatory. timeInTransitRequest Object with shipment details
Documentation for this class is coming.



