Skip to content

Commit c3ab234

Browse files
committed
ACP2E-3340: add additional configs for fedex tracking api
1 parent d01ee51 commit c3ab234

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

app/code/Magento/Fedex/Model/Carrier.php

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,19 @@ protected function _getAccessToken(): string|null
934934
$apiKey = $this->getConfigData('api_key') ?? null;
935935
$secretKey = $this->getConfigData('secret_key') ?? null;
936936

937+
return $this->retrieveAccessToken($apiKey, $secretKey);
938+
}
939+
940+
941+
/**
942+
* Make the call to get the access token
943+
*
944+
* @param $apiKey
945+
* @param $secretKey
946+
* @return string|null
947+
*/
948+
private function retrieveAccessToken($apiKey, $secretKey): string|null
949+
{
937950
if (!$apiKey || !$secretKey) {
938951
$this->_debug(__('Authentication keys are missing.'));
939952
return null;
@@ -955,9 +968,23 @@ protected function _getAccessToken(): string|null
955968
} elseif (!empty($response['access_token'])) {
956969
$accessToken = $response['access_token'];
957970
}
971+
958972
return $accessToken;
959973
}
960974

975+
/**
976+
* Get Access Token for Tracking Rest API
977+
*
978+
* @return string|null
979+
*/
980+
private function _getTrackingApiAccessToken(): string|null
981+
{
982+
$trackingApiKey = $this->getConfigData('tracking_api_key') ?? null;
983+
$trackingSecretKey = $this->getConfigData('tracking_api_secret_key') ?? null;
984+
985+
return $this->retrieveAccessToken($trackingApiKey, $trackingSecretKey);
986+
}
987+
961988
/**
962989
* Send Curl Request
963990
*
@@ -1007,7 +1034,12 @@ protected function sendRequest($endpoint, $request, $accessToken = null): array|
10071034
*/
10081035
protected function _getTrackingInformation($tracking): void
10091036
{
1010-
$accessToken = $this->_getAccessToken();
1037+
if ($this->getConfigData('enable_tracking_api')) {
1038+
$accessToken = $this->_getTrackingApiAccessToken();
1039+
} else {
1040+
$accessToken = $this->_getAccessToken();
1041+
}
1042+
10111043
if (!empty($accessToken)) {
10121044

10131045
$trackRequest = [

app/code/Magento/Fedex/etc/adminhtml/system.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,32 @@
3131
<label>Secret Key</label>
3232
<backend_model>Magento\Config\Model\Config\Backend\Encrypted</backend_model>
3333
</field>
34+
<field id="enable_tracking_api" translate="label" type="select" sortOrder="61" showInDefault="1" showInWebsite="1" canRestore="1">
35+
<label>Enable Tracking API credentials</label>
36+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
37+
</field>
38+
<field id="tracking_api_account" translate="label comment" type="obscure" sortOrder="62" showInDefault="1" showInWebsite="1">
39+
<label>Tracking API Account ID</label>
40+
<backend_model>Magento\Config\Model\Config\Backend\Encrypted</backend_model>
41+
<comment>Please make sure to use only digits here. No dashes are allowed.</comment>
42+
<depends>
43+
<field id="enable_tracking_api">1</field>
44+
</depends>
45+
</field>
46+
<field id="tracking_api_key" translate="label" type="obscure" sortOrder="63" showInDefault="1" showInWebsite="1">
47+
<label>Tracking API Key</label>
48+
<backend_model>Magento\Config\Model\Config\Backend\Encrypted</backend_model>
49+
<depends>
50+
<field id="enable_tracking_api">1</field>
51+
</depends>
52+
</field>
53+
<field id="tracking_api_secret_key" translate="label" type="obscure" sortOrder="64" showInDefault="1" showInWebsite="1">
54+
<label>Tracking API Secret Key</label>
55+
<backend_model>Magento\Config\Model\Config\Backend\Encrypted</backend_model>
56+
<depends>
57+
<field id="enable_tracking_api">1</field>
58+
</depends>
59+
</field>
3460
<field id="sandbox_mode" translate="label" type="select" sortOrder="70" showInDefault="1" showInWebsite="1" canRestore="1">
3561
<label>Sandbox Mode</label>
3662
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>

0 commit comments

Comments
 (0)