How to Use REST API¶
The Akeneo PIM comes with a REST API which allows to fetch product data in JSON format.
Note
The REST API is very minimalist for now, we plan to enrich it to add new methods to fetch and update other entities.
Configure a user¶
We first need to generate an API key for a PIM user as shown on following screenshot:
Retrieve the product data¶
Then we can write a simple script to retrieve some product data:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php
$username = "admin";
$apiKey = "79fadafa61723d34582f591586d63cee33199216";
$salt = "2lmnle11aeucsgc0cw0go0o0gcow8sw";
$nonce = uniqid();
$created = date('c');
$digest = base64_encode(sha1(base64_decode($nonce) . $created . $apiKey.'{'.$salt.'}', true));
$headers = array();
$headers[] = 'CONTENT_TYPE: application/json';
$headers[] = 'Authorization: WSSE profile="UsernameToken"';
$headers[] =
sprintf(
'X-WSSE: UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"',
$username,
$digest,
$nonce,
$created
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://pim-dev.local/api/rest/products/sku-000.json');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "HTTP Return code:".$httpStatus."\n";
if (false === $result) {
echo "ERROR:".curl_error($ch)."\n";
} else {
echo "RESULT:$result\n";
}
|
The script can be executed with php-cli:
php rest-api-product.php
The response has the following format:
{
"family":"mug",
"groups":[],
"categories":["desktops"],
"enabled":true,
"associations":{
"X_SELL":{"products":["sku-001","sku-002","sku-003","sku-004"]}
},
"values":{
"sku":[{"locale":null,"scope":null,"value":"sku-000"}],
"color":[{"locale":"en_US","scope":null,"value":["Red","Blue","Purple"]},{"locale":"fr_FR","scope":null,"value":[]}],
"manufacturer":[{"locale":"en_US","scope":null,"value":"MyMug"},{"locale":"fr_FR","scope":null,"value":null}],
"name":[{"locale":"en_US","scope":null,"value":"Iusto ea sint."},{"locale":"fr_FR","scope":null,"value":"Neque eveniet quasi accusantium."}],
"price":[{"locale":"en_US","scope":null,"value":[{"data":"43.21","currency":"EUR"},{"data":"19.70","currency":"USD"}]},{"locale":"fr_FR","scope":null,"value":[{"data":null,"currency":"EUR"},{"data":null,"currency":"USD"}]}],
"release_date":[{"locale":null,"scope":null,"value":"2012-12-27"}],
"weight":[{"locale":"en_US","scope":null,"value":{"data":"360.0000","unit":"GRAM"}},{"locale":"fr_FR","scope":null,"value":null}],
"height":[{"locale":null,"scope":null,"value":"21.0000"}],
"short_description":[{"locale":"en_US","scope":"ecommerce","value":null},{"locale":"fr_FR","scope":"ecommerce","value":null},{"locale":"en_US","scope":"mobile","value":null},{"locale":"fr_FR","scope":"mobile","value":null}]
},
"resource":"http:\/\/pim-dev.local\/api\/rest\/products\/sku-000"
}