diff --git a/vendor/magento/module-fedex/Model/Carrier.php b/vendor/magento/module-fedex/Model/Carrier.php index fa59d618c7397..a6a3d59bd63b8 100644 --- a/vendor/magento/module-fedex/Model/Carrier.php +++ b/vendor/magento/module-fedex/Model/Carrier.php @@ -417,7 +417,7 @@ protected function _formRateRequest($purpose): array ] ] ], - 'rateRequestType' => ['LIST'] + 'rateRequestType' => ['LIST', 'ACCOUNT'] ] ]; @@ -934,6 +934,18 @@ protected function _getAccessToken(): string|null $apiKey = $this->getConfigData('api_key') ?? null; $secretKey = $this->getConfigData('secret_key') ?? null; + return $this->retrieveAccessToken($apiKey, $secretKey); + } + + /** + * Make the call to get the access token + * + * @param string|null $apiKey + * @param string|null $secretKey + * @return string|null + */ + private function retrieveAccessToken(?string $apiKey, ?string $secretKey): string|null + { if (!$apiKey || !$secretKey) { $this->_debug(__('Authentication keys are missing.')); return null; @@ -955,9 +967,23 @@ protected function _getAccessToken(): string|null } elseif (!empty($response['access_token'])) { $accessToken = $response['access_token']; } + return $accessToken; } + /** + * Get Access Token for Tracking Rest API + * + * @return string|null + */ + private function getTrackingApiAccessToken(): string|null + { + $trackingApiKey = $this->getConfigData('tracking_api_key') ?? null; + $trackingSecretKey = $this->getConfigData('tracking_api_secret_key') ?? null; + + return $this->retrieveAccessToken($trackingApiKey, $trackingSecretKey); + } + /** * Send Curl Request * @@ -1007,7 +1033,12 @@ protected function sendRequest($endpoint, $request, $accessToken = null): array| */ protected function _getTrackingInformation($tracking): void { - $accessToken = $this->_getAccessToken(); + if ($this->getConfigData('enabled_tracking_api')) { + $accessToken = $this->getTrackingApiAccessToken(); + } else { + $accessToken = $this->_getAccessToken(); + } + if (!empty($accessToken)) { $trackRequest = [ diff --git a/vendor/magento/module-fedex/etc/adminhtml/system.xml b/vendor/magento/module-fedex/etc/adminhtml/system.xml index 97b3985898092..3ecbd9b926e6c 100644 --- a/vendor/magento/module-fedex/etc/adminhtml/system.xml +++ b/vendor/magento/module-fedex/etc/adminhtml/system.xml @@ -31,6 +31,24 @@ Magento\Config\Model\Config\Backend\Encrypted + + + Magento\Config\Model\Config\Source\Yesno + + + + Magento\Config\Model\Config\Backend\Encrypted + + 1 + + + + + Magento\Config\Model\Config\Backend\Encrypted + + 1 + + Magento\Config\Model\Config\Source\Yesno diff --git a/vendor/magento/module-fedex/etc/config.xml b/vendor/magento/module-fedex/etc/config.xml index 4fada6b852bed..6e7d263072b05 100644 --- a/vendor/magento/module-fedex/etc/config.xml +++ b/vendor/magento/module-fedex/etc/config.xml @@ -12,6 +12,8 @@ + + 0 diff --git a/vendor/magento/module-fedex/i18n/en_US.csv b/vendor/magento/module-fedex/i18n/en_US.csv index fb7ec12d2e4a8..b91043d7cc666 100644 --- a/vendor/magento/module-fedex/i18n/en_US.csv +++ b/vendor/magento/module-fedex/i18n/en_US.csv @@ -88,3 +88,8 @@ Debug,Debug "Package Return Program","Package Return Program" "Regular Stop","Regular Stop" "Tag","Tag" +"Api Key","Api Key" +"Secret Key","Secret Key" +"Enable Tracking API credentials","Enable Tracking API credentials" +"Tracking API Key","Tracking API Key" +"Tracking API Secret Key","Tracking API Secret Key"