Skip to content

Commit 66af7ed

Browse files
authored
Use correct country code for Greece VAT validation (#2849)
1 parent 6810c78 commit 66af7ed

File tree

1 file changed

+19
-2
lines changed
  • app/code/core/Mage/Customer/Helper

1 file changed

+19
-2
lines changed

app/code/core/Mage/Customer/Helper/Data.php

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -572,13 +572,16 @@ public function checkVatNumber($countryCode, $vatNumber, $requesterCountryCode =
572572
return $gatewayResponse;
573573
}
574574

575+
$countryCodeForVatNumber = $this->_getCountryCodeForVatNumber($countryCode);
576+
$requesterCountryCodeForVatNumber = $this->_getCountryCodeForVatNumber($requesterCountryCode);
577+
575578
try {
576579
$soapClient = $this->_createVatNumberValidationSoapClient();
577580

578581
$requestParams = [];
579-
$requestParams['countryCode'] = $countryCode;
582+
$requestParams['countryCode'] = $countryCodeForVatNumber;
580583
$requestParams['vatNumber'] = str_replace([' ', '-'], ['', ''], $vatNumber);
581-
$requestParams['requesterCountryCode'] = $requesterCountryCode;
584+
$requestParams['requesterCountryCode'] = $requesterCountryCodeForVatNumber;
582585
$requestParams['requesterVatNumber'] = str_replace([' ', '-'], ['', ''], $requesterVatNumber);
583586

584587
// Send request to service
@@ -738,4 +741,18 @@ protected function _createVatNumberValidationSoapClient($trace = false)
738741
{
739742
return new SoapClient(self::VAT_VALIDATION_WSDL_URL, ['trace' => $trace]);
740743
}
744+
745+
/**
746+
* Returns the country code used in VAT number which can be different from the ISO-2 country code.
747+
*
748+
* @param string $countryCode
749+
* @return string
750+
*/
751+
protected function _getCountryCodeForVatNumber(string $countryCode): string
752+
{
753+
// Greece uses a different code for VAT validation than its ISO-2 country code.
754+
// See: https://en.wikipedia.org/wiki/VAT_identification_number#European_Union_VAT_identification_numbers
755+
756+
return $countryCode === 'GR' ? 'EL' : $countryCode;
757+
}
741758
}

0 commit comments

Comments
 (0)