Fix UPS tracking when multiple packages in shipment
This commit is contained in:
parent
d92aece404
commit
9c0b2bf81d
@ -238,6 +238,7 @@ class TrackingStatus {
|
|||||||
switch ($eventcode) {
|
switch ($eventcode) {
|
||||||
case "M":
|
case "M":
|
||||||
case "MV":
|
case "MV":
|
||||||
|
case "ZA": // UPS My Choice redirect
|
||||||
return TrackingStatus::TRACKING_STATUS_PRE_TRANSIT;
|
return TrackingStatus::TRACKING_STATUS_PRE_TRANSIT;
|
||||||
case "I":
|
case "I":
|
||||||
case "P":
|
case "P":
|
||||||
|
@ -48,6 +48,10 @@ class Tracking_UPS {
|
|||||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($trackrequest));
|
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($trackrequest));
|
||||||
$response = curl_exec($ch);
|
$response = curl_exec($ch);
|
||||||
|
|
||||||
|
//header("Content-Type: application/json");
|
||||||
|
//echo json_encode(json_decode($response), JSON_PRETTY_PRINT);
|
||||||
|
//exit();
|
||||||
|
|
||||||
// CHECK TO SEE IF WE GOT AN ERROR
|
// CHECK TO SEE IF WE GOT AN ERROR
|
||||||
// IF SO, FORMAT IT LIKE THIS ::28::Operation timed out afterseconds
|
// IF SO, FORMAT IT LIKE THIS ::28::Operation timed out afterseconds
|
||||||
if ((curl_errno($ch)) && (curl_errno($ch) != 0)) {
|
if ((curl_errno($ch)) && (curl_errno($ch) != 0)) {
|
||||||
@ -84,8 +88,21 @@ class Tracking_UPS {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$info = new TrackingInfo();
|
$info = new TrackingInfo();
|
||||||
|
if (!empty($trackinfo["Package"]["TrackingNumber"])) {
|
||||||
$info->setCode($trackinfo["Package"]["TrackingNumber"]);
|
$info->setCode($trackinfo["Package"]["TrackingNumber"]);
|
||||||
|
} else if (is_array($trackinfo["Package"])) {
|
||||||
|
// More than one linked package in one shipment, get rid of the extra and make the
|
||||||
|
// schema match what we expect
|
||||||
|
$package = [];
|
||||||
|
for ($i = 0; $i < count($trackinfo["Package"]); $i++) {
|
||||||
|
if ($trackinfo["Package"][$i]["TrackingNumber"] == $code) {
|
||||||
|
$info->setCode($trackinfo["Package"][$i]["TrackingNumber"]);
|
||||||
|
$package = $trackinfo["Package"][$i];
|
||||||
|
$trackinfo["Package"] = $package;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$info->setCarrier("ups");
|
$info->setCarrier("ups");
|
||||||
$info->setService(new Service($trackinfo["Service"]["Code"], $trackinfo["Service"]["Description"]));
|
$info->setService(new Service($trackinfo["Service"]["Code"], $trackinfo["Service"]["Description"]));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user