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"