ionicons-v5-a Blog

Several of our customers have a shop on Amazon or Ebay. Thus a lot of our development services include official web services like the Amazon MWS and AWS API.

Usually products on these platforms have own identifiers in the respective system. On Amazon each product’s identifier is called Amazon Standard Identification Number (ASIN).

It is quite often necessary to convert this Amazon based identifier (ASIN) to a global identifier such as EAN (European Article Number or International Article Number) to provide further processing of other applications.

There are several tools out there providing the necessary function to convert a given ASIN to an EAN. These are mainly installable tools like ASIN to EAN Converter, free online tools like erwinmayer.com or even paid services.

These online tools are lacking of an API so they are not easily to integrate into your web application.

The answer to the problem is easier than one might first think. Amazon Web Services AWS already provide the functionality to convert an ASIN to EAN – even if it is not that obvious.

Using a library like http://www.ulrichmierendorff.com/software/aws_hmac_signer.html you can perform a signed request to the AWS API.

 include "aws_signed_request.php"; 

Now you can make an ItemLookup Request to the Amazon AWS API using the ASIN you want to convert and extract the respective EAN from the API response.

ASIN2EAN function

function ASINtoEAN($asin,$locale="de") {
    //Amazon AWS data
    $AWSAccessKeyId = "YourKeyID";
    $AWSSecretKey = "YourSecretKey";
    $associateTag = "YourAssociateTag";
 
 
    $request = array("Operation"=>"ItemLookup", "ItemId"=>$asin, 
    "ResponseGroup"=>"ItemAttributes");
    $signedRequest = aws_signed_request($locale, $request, 
    $AWSAccessKeyId, $AWSSecretKey, $associateTag);
 
 
    //call curl
    $curl = curl_init($signedRequest);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($curl);
    curl_close($curl);
 
 
    //handle response
    if ($response === FALSE){
    return null;
} else {
    $xml = simplexml_load_string($response);
    if ($xml === FALSE)
    return null; //no xml
    else {
    if(isset($xml->Items->Request->Errors)) //ASIN was not found or different error
    return null;
    else
        return $xml->Items->Item->ItemAttributes->EAN;
    }
}
}
  
function ASINtoEAN($asin,$locale="de") {
    //Amazon AWS data
    $AWSAccessKeyId = "YourKeyID";
    $AWSSecretKey = "YourSecretKey";
    $associateTag = "YourAssociateTag";
 
 
    $request = array("Operation"=>"ItemLookup", "ItemId"=>$asin, 
    "ResponseGroup"=>"ItemAttributes");
    $signedRequest = aws_signed_request($locale, $request, 
    $AWSAccessKeyId, $AWSSecretKey, $associateTag);
 
 
    //call curl
    $curl = curl_init($signedRequest);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($curl);
    curl_close($curl);
 
 
    //handle response
    if ($response === FALSE){
    return null;
} else {
    $xml = simplexml_load_string($response);
    if ($xml === FALSE)
    return null; //no xml
    else {
    if(isset($xml->Items->Request->Errors)) //ASIN was not found or different error
    return null;
    else
        return $xml->Items->Item->ItemAttributes->EAN;
    }
}
}
  

You can get the necessary credentials after registering for the Amazon Web Services AWS.

For any questions or thoughts feel free to contact us through your preferred channel.

Newsletter

Get relevant updates, valuable information and zero spam.