diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php index 4162b953f96..f889f1bc84b 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php @@ -245,17 +245,13 @@ public function setRequest(Mage_Shipping_Model_Rate_Request $request) } $r->setDestCountry(Mage::getModel('directory/country')->load($destCountry)->getIso2Code()); - $r->setDestRegionCode($request->getDestRegionCode()); - if ($request->getDestPostcode()) { $r->setDestPostal($request->getDestPostcode()); } $weight = $this->getTotalNumOfBoxes($request->getPackageWeight()); - $weight = $this->_getCorrectWeight($weight); - $r->setWeight($weight); if ($request->getFreeMethodWeight() != $request->getPackageWeight()) { $r->setFreeMethodWeight($request->getFreeMethodWeight()); @@ -270,11 +266,15 @@ public function setRequest(Mage_Shipping_Model_Rate_Request $request) $unit = $this->getConfigData('unit_of_measure'); } $r->setUnitMeasure($unit); - + if ($r->getUnitMeasure() == 'LBS') { + $r->setUnitDimensions('IN'); + $r->setUnitDimensionsDescription('Inches'); + } else { + $r->setUnitDimensions('CM'); + $r->setUnitDimensionsDescription('Centimeters'); + } $r->setIsReturn($request->getIsReturn()); - $r->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax()); - $this->_rawRequest = $r; return $this; @@ -755,8 +755,8 @@ protected function _getXmlQuotes() $xmlRequest .= ( $params['49_residential'] === '01' - ? "{$params['49_residential']}" - : '' + ? "{$params['49_residential']}" + : '' ); $xmlRequest .= <<< XMLRequest @@ -1150,11 +1150,15 @@ protected function _getRestTracking($trackings) $version = "v1"; $query = http_build_query([ 'locale' => 'en_US', - 'returnSignature' => 'false' + 'returnSignature' => 'false', + 'returnMilestones' => 'false', + 'returnPOD' => 'false' ]); $headers = [ "Authorization: Bearer $accessToken", - 'Content-Type: application/json' + 'Content-Type: application/json', + 'transId: track' . uniqid(), + 'transactionSrc: OpenMage' ]; $ch = curl_init(); @@ -1201,7 +1205,7 @@ protected function _parseRestTrackingResponse($trackingValue, $jsonResponse) if ($jsonResponse) { $responseData = json_decode($jsonResponse, true); - if ($responseData['trackResponse']['shipment']) { + if (isset($responseData['trackResponse']['shipment'])) { $activityTags = $responseData['trackResponse']['shipment'][0]['package'][0]['activity'] ?? []; if ($activityTags) { $index = 1; @@ -1218,34 +1222,28 @@ protected function _parseRestTrackingResponse($trackingValue, $jsonResponse) } $dateArr = []; $date = (string)$activityTag['date']; - //YYYYMMDD $dateArr[] = substr($date, 0, 4); $dateArr[] = substr($date, 4, 2); $dateArr[] = substr($date, -2, 2); $timeArr = []; $time = (string)$activityTag['time']; - //HHMMSS $timeArr[] = substr($time, 0, 2); $timeArr[] = substr($time, 2, 2); $timeArr[] = substr($time, -2, 2); if ($index === 1) { $resultArr['status'] = (string)$activityTag['status']['description']; - $resultArr['deliverydate'] = implode('-', $dateArr); - //YYYY-MM-DD - $resultArr['deliverytime'] = implode(':', $timeArr); - //HH:MM:SS + $resultArr['deliverydate'] = implode('-', $dateArr); //YYYY-MM-DD + $resultArr['deliverytime'] = implode(':', $timeArr); //HH:MM:SS if ($addressArr) { $resultArr['deliveryto'] = implode(', ', $addressArr); } } else { $tempArr = []; $tempArr['activity'] = (string)$activityTag['status']['description']; - $tempArr['deliverydate'] = implode('-', $dateArr); - //YYYY-MM-DD - $tempArr['deliverytime'] = implode(':', $timeArr); - //HH:MM:SS + $tempArr['deliverydate'] = implode('-', $dateArr); //YYYY-MM-DD + $tempArr['deliverytime'] = implode(':', $timeArr); //HH:MM:SS if ($addressArr) { $tempArr['deliverylocation'] = implode(', ', $addressArr); } @@ -1255,8 +1253,8 @@ protected function _parseRestTrackingResponse($trackingValue, $jsonResponse) } $resultArr['progressdetail'] = $packageProgress; } - } else { - $errorTitle = $responseData['errors']['message']; + } elseif (isset($responseData['response']['errors'][0]['message'])) { + $errorTitle = $responseData['response']['errors'][0]['message']; } } @@ -1490,9 +1488,9 @@ protected function _formShipmentRequest(Varien_Object $request) $referenceData = $request->getReferenceData() . $request->getPackageId(); } else { $referenceData = 'Order #' - . $request->getOrderShipment()->getOrder()->getIncrementId() - . ' P' - . $request->getPackageId(); + . $request->getOrderShipment()->getOrder()->getIncrementId() + . ' P' + . $request->getPackageId(); } $referencePart = $packagePart->addChild('ReferenceNumber'); $referencePart->addChild('Code', '02'); @@ -1537,9 +1535,9 @@ protected function _formShipmentRequest(Varien_Object $request) $labelPart = $xmlRequest->addChild('LabelSpecification'); $labelPart->addChild('LabelPrintMethod') - ->addChild('Code', 'GIF'); + ->addChild('Code', 'GIF'); $labelPart->addChild('LabelImageFormat') - ->addChild('Code', 'GIF'); + ->addChild('Code', 'GIF'); $this->setXMLAccessRequest(); $xmlRequest = $this->_xmlAccessRequest . $xmlRequest->asXML(); @@ -2045,12 +2043,9 @@ public function getContainerTypes(Varien_Object $params = null) $countryShipper = $params->getCountryShipper(); $countryRecipient = $params->getCountryRecipient(); - if (($countryShipper == self::USA_COUNTRY_ID - && $countryRecipient == self::CANADA_COUNTRY_ID) - || ($countryShipper == self::CANADA_COUNTRY_ID - && $countryRecipient == self::USA_COUNTRY_ID) - || ($countryShipper == self::MEXICO_COUNTRY_ID - && $countryRecipient == self::USA_COUNTRY_ID) + if (($countryShipper == self::USA_COUNTRY_ID && $countryRecipient == self::CANADA_COUNTRY_ID) + || ($countryShipper == self::CANADA_COUNTRY_ID && $countryRecipient == self::USA_COUNTRY_ID) + || ($countryShipper == self::MEXICO_COUNTRY_ID && $countryRecipient == self::USA_COUNTRY_ID) && $method == '11' // UPS Standard ) { $containerTypes = []; @@ -2072,14 +2067,14 @@ public function getContainerTypes(Varien_Object $params = null) '2a' => Mage::helper('usa')->__('Small Express Box'), '2b' => Mage::helper('usa')->__('Medium Express Box'), '2c' => Mage::helper('usa')->__('Large Express Box'), - ]; + ]; } return ['00' => Mage::helper('usa')->__('Customer Packaging')] + $containerTypes; } elseif ($countryShipper == self::USA_COUNTRY_ID && $countryRecipient == self::PUERTORICO_COUNTRY_ID && ( $method == '03' // UPS Ground - || $method == '02' // UPS Second Day Air - || $method == '01' // UPS Next Day Air + || $method == '02' // UPS Second Day Air + || $method == '01' // UPS Next Day Air ) ) { // Container types should be the same as for domestic @@ -2290,8 +2285,8 @@ protected function _getRestQuotes() ], "Dimensions" => [ "UnitOfMeasurement" => [ - "Code" => "IN", - "Description" => "Inches" + "Code" => $rowRequest->getUnitDimensions(), + "Description" => $rowRequest->getUnitDimensionsDescription() ], "Length" => "5", "Width" => "5", @@ -2475,7 +2470,7 @@ private function processShippingRestRateForItem( if (in_array($responseCurrencyCode, $allowedCurrencies)) { $cost = (float)$cost * $this->_getBaseCurrencyRate($responseCurrencyCode); } else { - $errorTitle = __( + $errorTitle = Mage::helper('usa')->__( 'We can\'t convert a rate from "%1-%2".', $responseCurrencyCode, $this->_request->getPackageCurrency()->getCode() diff --git a/app/code/core/Mage/Usa/etc/config.xml b/app/code/core/Mage/Usa/etc/config.xml index 6855b6910cb..eec95e2b558 100644 --- a/app/code/core/Mage/Usa/etc/config.xml +++ b/app/code/core/Mage/Usa/etc/config.xml @@ -155,11 +155,11 @@ RES GND https://onlinetools.ups.com/ups.app/xml/Rate - https://wwwcie.ups.com/api/rating/ + https://onlinetools.ups.com/api/rating/ https://onlinetools.ups.com/ups.app/xml/Track - https://wwwcie.ups.com/api/track/ + https://onlinetools.ups.com/api/track/ https://onlinetools.ups.com/ups.app/xml/ShipConfirm - https://wwwcie.ups.com/api/shipments/v2403/ship + https://onlinetools.ups.com/api/shipments/v2403/ship https://onlinetools.ups.com/ups.app/xml/ShipAccept 0 0 diff --git a/app/code/core/Mage/Usa/etc/system.xml b/app/code/core/Mage/Usa/etc/system.xml index 0b6a75d3b0b..8e39f3a70e9 100644 --- a/app/code/core/Mage/Usa/etc/system.xml +++ b/app/code/core/Mage/Usa/etc/system.xml @@ -832,7 +832,7 @@ - - Register to https://developer.ups.com
- Go to My Apps -> Add Apps and fill all data
- Add Rating/Authorization/Shipping/TimeInTransit products to the app]]>
+ - Register to https://developer.ups.com
- Go to My Apps -> Add Apps and fill all data
- Add Rating, Authorization, Shipping, TimeInTransit, Tracking products to the app]]>
obscure adminhtml/system_config_backend_encrypted 35